{"version":3,"file":"static/chunks/560-5178c54707b84909.js","mappings":"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","sources":["webpack://_N_E/./node_modules/.aspect_rules_js/exenv@1.2.2/node_modules/exenv/index.js","webpack://_N_E/./node_modules/.aspect_rules_js/extend@3.0.2/node_modules/extend/index.js","webpack://_N_E/./node_modules/.aspect_rules_js/google-protobuf@3.21.4/node_modules/google-protobuf/google-protobuf.js","webpack://_N_E/./node_modules/.aspect_rules_js/google-protobuf@3.21.4/node_modules/google-protobuf/google/protobuf/empty_pb.js","webpack://_N_E/./node_modules/.aspect_rules_js/inline-style-parser@0.2.4/node_modules/inline-style-parser/index.js","webpack://_N_E/./node_modules/.aspect_rules_js/next@14.2.13_1440303034/node_modules/next/dist/build/polyfills/process.js","webpack://_N_E/./node_modules/.aspect_rules_js/next@14.2.13_1440303034/node_modules/next/dist/compiled/process/browser.js","webpack://_N_E/./node_modules/.aspect_rules_js/next@14.2.13_1440303034/node_modules/next/head.js","webpack://_N_E/./node_modules/.aspect_rules_js/prop-types@15.8.1/node_modules/prop-types/factoryWithThrowingShims.js","webpack://_N_E/./node_modules/.aspect_rules_js/prop-types@15.8.1/node_modules/prop-types/index.js","webpack://_N_E/./node_modules/.aspect_rules_js/prop-types@15.8.1/node_modules/prop-types/lib/ReactPropTypesSecret.js","webpack://_N_E/./node_modules/.aspect_rules_js/react-lifecycles-compat@3.0.4/node_modules/react-lifecycles-compat/react-lifecycles-compat.es.js","webpack://_N_E/./node_modules/.aspect_rules_js/react-mde@11.5.0_1440303034/node_modules/react-mde/lib/js/commands/command-orchestrator.js","webpack://_N_E/./node_modules/.aspect_rules_js/react-mde@11.5.0_1440303034/node_modules/react-mde/lib/js/commands/command-utils.js","webpack://_N_E/./node_modules/.aspect_rules_js/react-mde@11.5.0_1440303034/node_modules/react-mde/lib/js/commands/default-commands/boldCommand.js","webpack://_N_E/./node_modules/.aspect_rules_js/react-mde@11.5.0_1440303034/node_modules/react-mde/lib/js/commands/default-commands/codeCommand.js","webpack://_N_E/./node_modules/.aspect_rules_js/react-mde@11.5.0_1440303034/node_modules/react-mde/lib/js/commands/default-commands/defaults.js","webpack://_N_E/./node_modules/.aspect_rules_js/react-mde@11.5.0_1440303034/node_modules/react-mde/lib/js/commands/default-commands/headerCommand.js","webpack://_N_E/./node_modules/.aspect_rules_js/react-mde@11.5.0_1440303034/node_modules/react-mde/lib/js/commands/default-commands/imageCommand.js","webpack://_N_E/./node_modules/.aspect_rules_js/react-mde@11.5.0_1440303034/node_modules/react-mde/lib/js/commands/default-commands/italicCommand.js","webpack://_N_E/./node_modules/.aspect_rules_js/react-mde@11.5.0_1440303034/node_modules/react-mde/lib/js/commands/default-commands/linkCommand.js","webpack://_N_E/./node_modules/.aspect_rules_js/react-mde@11.5.0_1440303034/node_modules/react-mde/lib/js/commands/default-commands/listCommands.js","webpack://_N_E/./node_modules/.aspect_rules_js/react-mde@11.5.0_1440303034/node_modules/react-mde/lib/js/commands/default-commands/quoteCommand.js","webpack://_N_E/./node_modules/.aspect_rules_js/react-mde@11.5.0_1440303034/node_modules/react-mde/lib/js/commands/default-commands/save-image-command.js","webpack://_N_E/./node_modules/.aspect_rules_js/react-mde@11.5.0_1440303034/node_modules/react-mde/lib/js/commands/default-commands/strikeThroughCommand.js","webpack://_N_E/./node_modules/.aspect_rules_js/react-mde@11.5.0_1440303034/node_modules/react-mde/lib/js/components/Preview.js","webpack://_N_E/./node_modules/.aspect_rules_js/react-mde@11.5.0_1440303034/node_modules/react-mde/lib/js/components/ReactMde.js","webpack://_N_E/./node_modules/.aspect_rules_js/react-mde@11.5.0_1440303034/node_modules/react-mde/lib/js/components/SuggestionsDropdown.js","webpack://_N_E/./node_modules/.aspect_rules_js/react-mde@11.5.0_1440303034/node_modules/react-mde/lib/js/components/TextArea.js","webpack://_N_E/./node_modules/.aspect_rules_js/react-mde@11.5.0_1440303034/node_modules/react-mde/lib/js/components/Toolbar.js","webpack://_N_E/./node_modules/.aspect_rules_js/react-mde@11.5.0_1440303034/node_modules/react-mde/lib/js/components/ToolbarButton.js","webpack://_N_E/./node_modules/.aspect_rules_js/react-mde@11.5.0_1440303034/node_modules/react-mde/lib/js/components/ToolbarButtonGroup.js","webpack://_N_E/./node_modules/.aspect_rules_js/react-mde@11.5.0_1440303034/node_modules/react-mde/lib/js/components/index.js","webpack://_N_E/./node_modules/.aspect_rules_js/react-mde@11.5.0_1440303034/node_modules/react-mde/lib/js/icons/MdeFontAwesomeIcon.js","webpack://_N_E/./node_modules/.aspect_rules_js/react-mde@11.5.0_1440303034/node_modules/react-mde/lib/js/icons/SvgIcon.js","webpack://_N_E/./node_modules/.aspect_rules_js/react-mde@11.5.0_1440303034/node_modules/react-mde/lib/js/icons/index.js","webpack://_N_E/./node_modules/.aspect_rules_js/react-mde@11.5.0_1440303034/node_modules/react-mde/lib/js/index.js","webpack://_N_E/./node_modules/.aspect_rules_js/react-mde@11.5.0_1440303034/node_modules/react-mde/lib/js/l18n/react-mde.en.js","webpack://_N_E/./node_modules/.aspect_rules_js/react-mde@11.5.0_1440303034/node_modules/react-mde/lib/js/util/ClassNames.js","webpack://_N_E/./node_modules/.aspect_rules_js/react-mde@11.5.0_1440303034/node_modules/react-mde/lib/js/util/InsertTextAtPosition.js","webpack://_N_E/./node_modules/.aspect_rules_js/react-mde@11.5.0_1440303034/node_modules/react-mde/lib/js/util/MarkdownUtil.js","webpack://_N_E/./node_modules/.aspect_rules_js/react-mde@11.5.0_1440303034/node_modules/react-mde/lib/js/util/Math.js","webpack://_N_E/./node_modules/.aspect_rules_js/react-mde@11.5.0_1440303034/node_modules/react-mde/lib/js/util/TextAreaCaretPosition.js","webpack://_N_E/./node_modules/.aspect_rules_js/react-mde@11.5.0_1440303034/node_modules/react-mde/lib/js/util/files.js","webpack://_N_E/./node_modules/.aspect_rules_js/react-modal@3.16.1_1440303034/node_modules/react-modal/lib/components/Modal.js","webpack://_N_E/./node_modules/.aspect_rules_js/react-modal@3.16.1_1440303034/node_modules/react-modal/lib/components/ModalPortal.js","webpack://_N_E/./node_modules/.aspect_rules_js/react-modal@3.16.1_1440303034/node_modules/react-modal/lib/helpers/ariaAppHider.js","webpack://_N_E/./node_modules/.aspect_rules_js/react-modal@3.16.1_1440303034/node_modules/react-modal/lib/helpers/bodyTrap.js","webpack://_N_E/./node_modules/.aspect_rules_js/react-modal@3.16.1_1440303034/node_modules/react-modal/lib/helpers/classList.js","webpack://_N_E/./node_modules/.aspect_rules_js/react-modal@3.16.1_1440303034/node_modules/react-modal/lib/helpers/focusManager.js","webpack://_N_E/./node_modules/.aspect_rules_js/react-modal@3.16.1_1440303034/node_modules/react-modal/lib/helpers/portalOpenInstances.js","webpack://_N_E/./node_modules/.aspect_rules_js/react-modal@3.16.1_1440303034/node_modules/react-modal/lib/helpers/safeHTMLElement.js","webpack://_N_E/./node_modules/.aspect_rules_js/react-modal@3.16.1_1440303034/node_modules/react-modal/lib/helpers/scopeTab.js","webpack://_N_E/./node_modules/.aspect_rules_js/react-modal@3.16.1_1440303034/node_modules/react-modal/lib/helpers/tabbable.js","webpack://_N_E/./node_modules/.aspect_rules_js/react-modal@3.16.1_1440303034/node_modules/react-modal/lib/index.js","webpack://_N_E/./node_modules/.aspect_rules_js/style-to-object@1.0.8/node_modules/style-to-object/cjs/index.js","webpack://_N_E/./node_modules/.aspect_rules_js/warning@4.0.3/node_modules/warning/warning.js","webpack://_N_E/./node_modules/.aspect_rules_js/@bufbuild+protobuf@1.10.0/node_modules/@bufbuild/protobuf/dist/esm/google/protobuf/empty_pb.js","webpack://_N_E/./node_modules/.aspect_rules_js/@bufbuild+protobuf@1.10.0/node_modules/@bufbuild/protobuf/dist/esm/message.js","webpack://_N_E/./node_modules/.aspect_rules_js/@bufbuild+protobuf@1.10.0/node_modules/@bufbuild/protobuf/dist/esm/proto-base64.js","webpack://_N_E/./node_modules/.aspect_rules_js/@bufbuild+protobuf@1.10.0/node_modules/@bufbuild/protobuf/dist/esm/private/assert.js","webpack://_N_E/./node_modules/.aspect_rules_js/@bufbuild+protobuf@1.10.0/node_modules/@bufbuild/protobuf/dist/esm/private/enum.js","webpack://_N_E/./node_modules/.aspect_rules_js/@bufbuild+protobuf@1.10.0/node_modules/@bufbuild/protobuf/dist/esm/private/message-type.js","webpack://_N_E/./node_modules/.aspect_rules_js/@bufbuild+protobuf@1.10.0/node_modules/@bufbuild/protobuf/dist/esm/google/varint.js","webpack://_N_E/./node_modules/.aspect_rules_js/@bufbuild+protobuf@1.10.0/node_modules/@bufbuild/protobuf/dist/esm/proto-int64.js","webpack://_N_E/./node_modules/.aspect_rules_js/@bufbuild+protobuf@1.10.0/node_modules/@bufbuild/protobuf/dist/esm/scalar.js","webpack://_N_E/./node_modules/.aspect_rules_js/@bufbuild+protobuf@1.10.0/node_modules/@bufbuild/protobuf/dist/esm/private/scalars.js","webpack://_N_E/./node_modules/.aspect_rules_js/@bufbuild+protobuf@1.10.0/node_modules/@bufbuild/protobuf/dist/esm/private/extensions.js","webpack://_N_E/./node_modules/.aspect_rules_js/@bufbuild+protobuf@1.10.0/node_modules/@bufbuild/protobuf/dist/esm/extension-accessor.js","webpack://_N_E/./node_modules/.aspect_rules_js/@bufbuild+protobuf@1.10.0/node_modules/@bufbuild/protobuf/dist/esm/private/reflect.js","webpack://_N_E/./node_modules/.aspect_rules_js/@bufbuild+protobuf@1.10.0/node_modules/@bufbuild/protobuf/dist/esm/is-message.js","webpack://_N_E/./node_modules/.aspect_rules_js/@bufbuild+protobuf@1.10.0/node_modules/@bufbuild/protobuf/dist/esm/private/field-wrapper.js","webpack://_N_E/./node_modules/.aspect_rules_js/@bufbuild+protobuf@1.10.0/node_modules/@bufbuild/protobuf/dist/esm/private/json-format.js","webpack://_N_E/./node_modules/.aspect_rules_js/@bufbuild+protobuf@1.10.0/node_modules/@bufbuild/protobuf/dist/esm/binary-encoding.js","webpack://_N_E/./node_modules/.aspect_rules_js/@bufbuild+protobuf@1.10.0/node_modules/@bufbuild/protobuf/dist/esm/private/binary-format.js","webpack://_N_E/./node_modules/.aspect_rules_js/@bufbuild+protobuf@1.10.0/node_modules/@bufbuild/protobuf/dist/esm/private/util-common.js","webpack://_N_E/./node_modules/.aspect_rules_js/@bufbuild+protobuf@1.10.0/node_modules/@bufbuild/protobuf/dist/esm/private/proto-runtime.js","webpack://_N_E/./node_modules/.aspect_rules_js/@bufbuild+protobuf@1.10.0/node_modules/@bufbuild/protobuf/dist/esm/private/field-list.js","webpack://_N_E/./node_modules/.aspect_rules_js/@bufbuild+protobuf@1.10.0/node_modules/@bufbuild/protobuf/dist/esm/private/names.js","webpack://_N_E/./node_modules/.aspect_rules_js/@bufbuild+protobuf@1.10.0/node_modules/@bufbuild/protobuf/dist/esm/private/field.js","webpack://_N_E/./node_modules/.aspect_rules_js/@bufbuild+protobuf@1.10.0/node_modules/@bufbuild/protobuf/dist/esm/private/field-normalize.js","webpack://_N_E/./node_modules/.aspect_rules_js/@bufbuild+protobuf@1.10.0/node_modules/@bufbuild/protobuf/dist/esm/proto3.js","webpack://_N_E/./node_modules/.aspect_rules_js/@bufbuild+protobuf@1.10.0/node_modules/@bufbuild/protobuf/dist/esm/service-type.js","webpack://_N_E/./node_modules/.aspect_rules_js/@connectrpc+connect@1.5.0_at_bufbuild_protobuf_1.10.0/node_modules/@connectrpc/connect/dist/esm/context-values.js","webpack://_N_E/./node_modules/.aspect_rules_js/@connectrpc+connect@1.5.0_at_bufbuild_protobuf_1.10.0/node_modules/@connectrpc/connect/dist/esm/http-headers.js","webpack://_N_E/./node_modules/.aspect_rules_js/@connectrpc+connect@1.5.0_at_bufbuild_protobuf_1.10.0/node_modules/@connectrpc/connect/dist/esm/protocol/serialization.js","webpack://_N_E/./node_modules/.aspect_rules_js/@connectrpc+connect@1.5.0_at_bufbuild_protobuf_1.10.0/node_modules/@connectrpc/connect/dist/esm/interceptor.js","webpack://_N_E/./node_modules/.aspect_rules_js/@connectrpc+connect@1.5.0_at_bufbuild_protobuf_1.10.0/node_modules/@connectrpc/connect/dist/esm/protocol/signals.js","webpack://_N_E/./node_modules/.aspect_rules_js/@connectrpc+connect@1.5.0_at_bufbuild_protobuf_1.10.0/node_modules/@connectrpc/connect/dist/esm/protocol/normalize.js","webpack://_N_E/./node_modules/.aspect_rules_js/@connectrpc+connect@1.5.0_at_bufbuild_protobuf_1.10.0/node_modules/@connectrpc/connect/dist/esm/protocol/run-call.js","webpack://_N_E/./node_modules/.aspect_rules_js/@connectrpc+connect@1.5.0_at_bufbuild_protobuf_1.10.0/node_modules/@connectrpc/connect/dist/esm/protocol/create-method-url.js","webpack://_N_E/./node_modules/.aspect_rules_js/@connectrpc+connect@1.5.0_at_bufbuild_protobuf_1.10.0/node_modules/@connectrpc/connect/dist/esm/protocol/envelope.js","webpack://_N_E/./node_modules/.aspect_rules_js/@connectrpc+connect@1.5.0_at_bufbuild_protobuf_1.10.0/node_modules/@connectrpc/connect/dist/esm/protocol/compression.js","webpack://_N_E/./node_modules/.aspect_rules_js/@connectrpc+connect@1.5.0_at_bufbuild_protobuf_1.10.0/node_modules/@connectrpc/connect/dist/esm/protocol-connect/headers.js","webpack://_N_E/./node_modules/.aspect_rules_js/@connectrpc+connect@1.5.0_at_bufbuild_protobuf_1.10.0/node_modules/@connectrpc/connect/dist/esm/protocol-connect/version.js","webpack://_N_E/./node_modules/.aspect_rules_js/@connectrpc+connect@1.5.0_at_bufbuild_protobuf_1.10.0/node_modules/@connectrpc/connect/dist/esm/protocol-connect/content-type.js","webpack://_N_E/./node_modules/.aspect_rules_js/@connectrpc+connect@1.5.0_at_bufbuild_protobuf_1.10.0/node_modules/@connectrpc/connect/dist/esm/protocol-connect/request-header.js","webpack://_N_E/./node_modules/.aspect_rules_js/@connectrpc+connect@1.5.0_at_bufbuild_protobuf_1.10.0/node_modules/@connectrpc/connect/dist/esm/protocol-connect/get-request.js","webpack://_N_E/./node_modules/.aspect_rules_js/@connectrpc+connect@1.5.0_at_bufbuild_protobuf_1.10.0/node_modules/@connectrpc/connect/dist/esm/protocol-connect/http-status.js","webpack://_N_E/./node_modules/.aspect_rules_js/@connectrpc+connect@1.5.0_at_bufbuild_protobuf_1.10.0/node_modules/@connectrpc/connect/dist/esm/protocol-connect/validate-response.js","webpack://_N_E/./node_modules/.aspect_rules_js/@connectrpc+connect@1.5.0_at_bufbuild_protobuf_1.10.0/node_modules/@connectrpc/connect/dist/esm/protocol-connect/error-json.js","webpack://_N_E/./node_modules/.aspect_rules_js/@connectrpc+connect@1.5.0_at_bufbuild_protobuf_1.10.0/node_modules/@connectrpc/connect/dist/esm/protocol-connect/trailer-mux.js","webpack://_N_E/./node_modules/.aspect_rules_js/@connectrpc+connect@1.5.0_at_bufbuild_protobuf_1.10.0/node_modules/@connectrpc/connect/dist/esm/protocol-connect/end-stream.js","webpack://_N_E/./node_modules/.aspect_rules_js/@connectrpc+connect-web@1.5.0_970494545/node_modules/@connectrpc/connect-web/dist/esm/assert-fetch-api.js","webpack://_N_E/./node_modules/.aspect_rules_js/@connectrpc+connect-web@1.5.0_970494545/node_modules/@connectrpc/connect-web/dist/esm/connect-transport.js","webpack://_N_E/./node_modules/.aspect_rules_js/@connectrpc+connect@1.5.0_at_bufbuild_protobuf_1.10.0/node_modules/@connectrpc/connect/dist/esm/code.js","webpack://_N_E/./node_modules/.aspect_rules_js/@connectrpc+connect@1.5.0_at_bufbuild_protobuf_1.10.0/node_modules/@connectrpc/connect/dist/esm/connect-error.js","webpack://_N_E/./node_modules/.aspect_rules_js/@connectrpc+connect@1.5.0_at_bufbuild_protobuf_1.10.0/node_modules/@connectrpc/connect/dist/esm/any-client.js","webpack://_N_E/./node_modules/.aspect_rules_js/@connectrpc+connect@1.5.0_at_bufbuild_protobuf_1.10.0/node_modules/@connectrpc/connect/dist/esm/protocol/async-iterable.js","webpack://_N_E/./node_modules/.aspect_rules_js/@connectrpc+connect@1.5.0_at_bufbuild_protobuf_1.10.0/node_modules/@connectrpc/connect/dist/esm/promise-client.js","webpack://_N_E/./node_modules/.aspect_rules_js/@connectrpc+connect@1.5.0_at_bufbuild_protobuf_1.10.0/node_modules/@connectrpc/connect/dist/esm/protocol-connect/code-string.js","webpack://_N_E/./node_modules/.aspect_rules_js/devlop@1.1.0/node_modules/devlop/lib/default.js","webpack://_N_E/./node_modules/.aspect_rules_js/mdast-util-to-string@4.0.0/node_modules/mdast-util-to-string/lib/index.js","webpack://_N_E/./node_modules/.aspect_rules_js/micromark-core-commonmark@2.0.1/node_modules/micromark-core-commonmark/lib/blank-line.js","webpack://_N_E/./node_modules/.aspect_rules_js/micromark-factory-space@2.0.0/node_modules/micromark-factory-space/index.js","webpack://_N_E/./node_modules/.aspect_rules_js/micromark-util-character@2.1.0/node_modules/micromark-util-character/index.js","webpack://_N_E/./node_modules/.aspect_rules_js/micromark-util-chunked@2.0.0/node_modules/micromark-util-chunked/index.js","webpack://_N_E/./node_modules/.aspect_rules_js/micromark-util-classify-character@2.0.0/node_modules/micromark-util-classify-character/index.js","webpack://_N_E/./node_modules/.aspect_rules_js/micromark-util-combine-extensions@2.0.0/node_modules/micromark-util-combine-extensions/index.js","webpack://_N_E/./node_modules/.aspect_rules_js/micromark-util-normalize-identifier@2.0.0/node_modules/micromark-util-normalize-identifier/index.js","webpack://_N_E/./node_modules/.aspect_rules_js/micromark-util-resolve-all@2.0.0/node_modules/micromark-util-resolve-all/index.js","webpack://_N_E/./node_modules/.aspect_rules_js/universal-cookie@7.2.0/node_modules/universal-cookie/esm/index.mjs","webpack://_N_E/./node_modules/.aspect_rules_js/react-cookie@7.2.0_react_18.3.1/node_modules/react-cookie/esm/index.mjs","webpack://_N_E/./node_modules/.aspect_rules_js/comma-separated-tokens@2.0.3/node_modules/comma-separated-tokens/index.js","webpack://_N_E/./node_modules/.aspect_rules_js/estree-util-is-identifier-name@3.0.0/node_modules/estree-util-is-identifier-name/lib/index.js","webpack://_N_E/./node_modules/.aspect_rules_js/hast-util-whitespace@3.0.0/node_modules/hast-util-whitespace/lib/index.js","webpack://_N_E/./node_modules/.aspect_rules_js/property-information@6.5.0/node_modules/property-information/lib/util/schema.js","webpack://_N_E/./node_modules/.aspect_rules_js/property-information@6.5.0/node_modules/property-information/lib/util/merge.js","webpack://_N_E/./node_modules/.aspect_rules_js/property-information@6.5.0/node_modules/property-information/lib/normalize.js","webpack://_N_E/./node_modules/.aspect_rules_js/property-information@6.5.0/node_modules/property-information/lib/util/info.js","webpack://_N_E/./node_modules/.aspect_rules_js/property-information@6.5.0/node_modules/property-information/lib/util/types.js","webpack://_N_E/./node_modules/.aspect_rules_js/property-information@6.5.0/node_modules/property-information/lib/util/defined-info.js","webpack://_N_E/./node_modules/.aspect_rules_js/property-information@6.5.0/node_modules/property-information/lib/util/create.js","webpack://_N_E/./node_modules/.aspect_rules_js/property-information@6.5.0/node_modules/property-information/lib/xlink.js","webpack://_N_E/./node_modules/.aspect_rules_js/property-information@6.5.0/node_modules/property-information/lib/xml.js","webpack://_N_E/./node_modules/.aspect_rules_js/property-information@6.5.0/node_modules/property-information/lib/util/case-sensitive-transform.js","webpack://_N_E/./node_modules/.aspect_rules_js/property-information@6.5.0/node_modules/property-information/lib/util/case-insensitive-transform.js","webpack://_N_E/./node_modules/.aspect_rules_js/property-information@6.5.0/node_modules/property-information/lib/xmlns.js","webpack://_N_E/./node_modules/.aspect_rules_js/property-information@6.5.0/node_modules/property-information/lib/aria.js","webpack://_N_E/./node_modules/.aspect_rules_js/property-information@6.5.0/node_modules/property-information/lib/html.js","webpack://_N_E/./node_modules/.aspect_rules_js/property-information@6.5.0/node_modules/property-information/lib/svg.js","webpack://_N_E/./node_modules/.aspect_rules_js/property-information@6.5.0/node_modules/property-information/index.js","webpack://_N_E/./node_modules/.aspect_rules_js/property-information@6.5.0/node_modules/property-information/lib/find.js","webpack://_N_E/./node_modules/.aspect_rules_js/property-information@6.5.0/node_modules/property-information/lib/hast-to-react.js","webpack://_N_E/./node_modules/.aspect_rules_js/space-separated-tokens@2.0.2/node_modules/space-separated-tokens/index.js","webpack://_N_E/./node_modules/.aspect_rules_js/style-to-object@1.0.8/node_modules/style-to-object/esm/index.mjs","webpack://_N_E/./node_modules/.aspect_rules_js/unist-util-position@5.0.0/node_modules/unist-util-position/lib/index.js","webpack://_N_E/./node_modules/.aspect_rules_js/unist-util-stringify-position@4.0.0/node_modules/unist-util-stringify-position/lib/index.js","webpack://_N_E/./node_modules/.aspect_rules_js/vfile-message@4.0.2/node_modules/vfile-message/lib/index.js","webpack://_N_E/./node_modules/.aspect_rules_js/hast-util-to-jsx-runtime@2.3.0/node_modules/hast-util-to-jsx-runtime/lib/index.js","webpack://_N_E/./node_modules/.aspect_rules_js/html-url-attributes@3.0.0/node_modules/html-url-attributes/lib/index.js","webpack://_N_E/./node_modules/.aspect_rules_js/micromark-util-subtokenize@2.0.1/node_modules/micromark-util-subtokenize/lib/splice-buffer.js","webpack://_N_E/./node_modules/.aspect_rules_js/micromark-util-subtokenize@2.0.1/node_modules/micromark-util-subtokenize/index.js","webpack://_N_E/./node_modules/.aspect_rules_js/micromark@4.0.0/node_modules/micromark/lib/postprocess.js","webpack://_N_E/./node_modules/.aspect_rules_js/micromark@4.0.0/node_modules/micromark/lib/initialize/content.js","webpack://_N_E/./node_modules/.aspect_rules_js/micromark@4.0.0/node_modules/micromark/lib/initialize/document.js","webpack://_N_E/./node_modules/.aspect_rules_js/micromark-core-commonmark@2.0.1/node_modules/micromark-core-commonmark/lib/content.js","webpack://_N_E/./node_modules/.aspect_rules_js/micromark@4.0.0/node_modules/micromark/lib/initialize/flow.js","webpack://_N_E/./node_modules/.aspect_rules_js/micromark@4.0.0/node_modules/micromark/lib/initialize/text.js","webpack://_N_E/./node_modules/.aspect_rules_js/micromark@4.0.0/node_modules/micromark/lib/create-tokenizer.js","webpack://_N_E/./node_modules/.aspect_rules_js/micromark-core-commonmark@2.0.1/node_modules/micromark-core-commonmark/lib/thematic-break.js","webpack://_N_E/./node_modules/.aspect_rules_js/micromark-core-commonmark@2.0.1/node_modules/micromark-core-commonmark/lib/list.js","webpack://_N_E/./node_modules/.aspect_rules_js/micromark-core-commonmark@2.0.1/node_modules/micromark-core-commonmark/lib/block-quote.js","webpack://_N_E/./node_modules/.aspect_rules_js/micromark-factory-destination@2.0.0/node_modules/micromark-factory-destination/index.js","webpack://_N_E/./node_modules/.aspect_rules_js/micromark-factory-label@2.0.0/node_modules/micromark-factory-label/index.js","webpack://_N_E/./node_modules/.aspect_rules_js/micromark-factory-title@2.0.0/node_modules/micromark-factory-title/index.js","webpack://_N_E/./node_modules/.aspect_rules_js/micromark-factory-whitespace@2.0.0/node_modules/micromark-factory-whitespace/index.js","webpack://_N_E/./node_modules/.aspect_rules_js/micromark-core-commonmark@2.0.1/node_modules/micromark-core-commonmark/lib/definition.js","webpack://_N_E/./node_modules/.aspect_rules_js/micromark-core-commonmark@2.0.1/node_modules/micromark-core-commonmark/lib/code-indented.js","webpack://_N_E/./node_modules/.aspect_rules_js/micromark-core-commonmark@2.0.1/node_modules/micromark-core-commonmark/lib/heading-atx.js","webpack://_N_E/./node_modules/.aspect_rules_js/micromark-core-commonmark@2.0.1/node_modules/micromark-core-commonmark/lib/setext-underline.js","webpack://_N_E/./node_modules/.aspect_rules_js/micromark-util-html-tag-name@2.0.0/node_modules/micromark-util-html-tag-name/index.js","webpack://_N_E/./node_modules/.aspect_rules_js/micromark-core-commonmark@2.0.1/node_modules/micromark-core-commonmark/lib/html-flow.js","webpack://_N_E/./node_modules/.aspect_rules_js/micromark-core-commonmark@2.0.1/node_modules/micromark-core-commonmark/lib/code-fenced.js","webpack://_N_E/./node_modules/.aspect_rules_js/decode-named-character-reference@1.0.2/node_modules/decode-named-character-reference/index.dom.js","webpack://_N_E/./node_modules/.aspect_rules_js/micromark-core-commonmark@2.0.1/node_modules/micromark-core-commonmark/lib/character-reference.js","webpack://_N_E/./node_modules/.aspect_rules_js/micromark-core-commonmark@2.0.1/node_modules/micromark-core-commonmark/lib/character-escape.js","webpack://_N_E/./node_modules/.aspect_rules_js/micromark-core-commonmark@2.0.1/node_modules/micromark-core-commonmark/lib/line-ending.js","webpack://_N_E/./node_modules/.aspect_rules_js/micromark-core-commonmark@2.0.1/node_modules/micromark-core-commonmark/lib/label-end.js","webpack://_N_E/./node_modules/.aspect_rules_js/micromark-core-commonmark@2.0.1/node_modules/micromark-core-commonmark/lib/label-start-image.js","webpack://_N_E/./node_modules/.aspect_rules_js/micromark-core-commonmark@2.0.1/node_modules/micromark-core-commonmark/lib/attention.js","webpack://_N_E/./node_modules/.aspect_rules_js/micromark-core-commonmark@2.0.1/node_modules/micromark-core-commonmark/lib/autolink.js","webpack://_N_E/./node_modules/.aspect_rules_js/micromark-core-commonmark@2.0.1/node_modules/micromark-core-commonmark/lib/html-text.js","webpack://_N_E/./node_modules/.aspect_rules_js/micromark-core-commonmark@2.0.1/node_modules/micromark-core-commonmark/lib/label-start-link.js","webpack://_N_E/./node_modules/.aspect_rules_js/micromark-core-commonmark@2.0.1/node_modules/micromark-core-commonmark/lib/hard-break-escape.js","webpack://_N_E/./node_modules/.aspect_rules_js/micromark-core-commonmark@2.0.1/node_modules/micromark-core-commonmark/lib/code-text.js","webpack://_N_E/./node_modules/.aspect_rules_js/micromark@4.0.0/node_modules/micromark/lib/constructs.js","webpack://_N_E/./node_modules/.aspect_rules_js/micromark@4.0.0/node_modules/micromark/lib/parse.js","webpack://_N_E/./node_modules/.aspect_rules_js/micromark@4.0.0/node_modules/micromark/lib/preprocess.js","webpack://_N_E/./node_modules/.aspect_rules_js/micromark-util-decode-numeric-character-reference@2.0.1/node_modules/micromark-util-decode-numeric-character-reference/index.js","webpack://_N_E/./node_modules/.aspect_rules_js/micromark-util-decode-string@2.0.0/node_modules/micromark-util-decode-string/index.js","webpack://_N_E/./node_modules/.aspect_rules_js/mdast-util-from-markdown@2.0.1/node_modules/mdast-util-from-markdown/lib/index.js","webpack://_N_E/./node_modules/.aspect_rules_js/remark-parse@11.0.0/node_modules/remark-parse/lib/index.js","webpack://_N_E/./node_modules/.aspect_rules_js/@ungap+structured-clone@1.2.0/node_modules/@ungap/structured-clone/esm/types.js","webpack://_N_E/./node_modules/.aspect_rules_js/@ungap+structured-clone@1.2.0/node_modules/@ungap/structured-clone/esm/deserialize.js","webpack://_N_E/./node_modules/.aspect_rules_js/@ungap+structured-clone@1.2.0/node_modules/@ungap/structured-clone/esm/serialize.js","webpack://_N_E/./node_modules/.aspect_rules_js/@ungap+structured-clone@1.2.0/node_modules/@ungap/structured-clone/esm/index.js","webpack://_N_E/./node_modules/.aspect_rules_js/micromark-util-sanitize-uri@2.0.0/node_modules/micromark-util-sanitize-uri/index.js","webpack://_N_E/./node_modules/.aspect_rules_js/mdast-util-to-hast@13.2.0/node_modules/mdast-util-to-hast/lib/footer.js","webpack://_N_E/./node_modules/.aspect_rules_js/mdast-util-to-hast@13.2.0/node_modules/mdast-util-to-hast/lib/handlers/blockquote.js","webpack://_N_E/./node_modules/.aspect_rules_js/mdast-util-to-hast@13.2.0/node_modules/mdast-util-to-hast/lib/handlers/break.js","webpack://_N_E/./node_modules/.aspect_rules_js/mdast-util-to-hast@13.2.0/node_modules/mdast-util-to-hast/lib/handlers/code.js","webpack://_N_E/./node_modules/.aspect_rules_js/mdast-util-to-hast@13.2.0/node_modules/mdast-util-to-hast/lib/handlers/delete.js","webpack://_N_E/./node_modules/.aspect_rules_js/mdast-util-to-hast@13.2.0/node_modules/mdast-util-to-hast/lib/handlers/emphasis.js","webpack://_N_E/./node_modules/.aspect_rules_js/mdast-util-to-hast@13.2.0/node_modules/mdast-util-to-hast/lib/handlers/footnote-reference.js","webpack://_N_E/./node_modules/.aspect_rules_js/mdast-util-to-hast@13.2.0/node_modules/mdast-util-to-hast/lib/handlers/heading.js","webpack://_N_E/./node_modules/.aspect_rules_js/mdast-util-to-hast@13.2.0/node_modules/mdast-util-to-hast/lib/handlers/html.js","webpack://_N_E/./node_modules/.aspect_rules_js/mdast-util-to-hast@13.2.0/node_modules/mdast-util-to-hast/lib/revert.js","webpack://_N_E/./node_modules/.aspect_rules_js/mdast-util-to-hast@13.2.0/node_modules/mdast-util-to-hast/lib/handlers/image-reference.js","webpack://_N_E/./node_modules/.aspect_rules_js/mdast-util-to-hast@13.2.0/node_modules/mdast-util-to-hast/lib/handlers/image.js","webpack://_N_E/./node_modules/.aspect_rules_js/mdast-util-to-hast@13.2.0/node_modules/mdast-util-to-hast/lib/handlers/inline-code.js","webpack://_N_E/./node_modules/.aspect_rules_js/mdast-util-to-hast@13.2.0/node_modules/mdast-util-to-hast/lib/handlers/link-reference.js","webpack://_N_E/./node_modules/.aspect_rules_js/mdast-util-to-hast@13.2.0/node_modules/mdast-util-to-hast/lib/handlers/link.js","webpack://_N_E/./node_modules/.aspect_rules_js/mdast-util-to-hast@13.2.0/node_modules/mdast-util-to-hast/lib/handlers/list-item.js","webpack://_N_E/./node_modules/.aspect_rules_js/mdast-util-to-hast@13.2.0/node_modules/mdast-util-to-hast/lib/handlers/list.js","webpack://_N_E/./node_modules/.aspect_rules_js/mdast-util-to-hast@13.2.0/node_modules/mdast-util-to-hast/lib/handlers/paragraph.js","webpack://_N_E/./node_modules/.aspect_rules_js/mdast-util-to-hast@13.2.0/node_modules/mdast-util-to-hast/lib/handlers/root.js","webpack://_N_E/./node_modules/.aspect_rules_js/mdast-util-to-hast@13.2.0/node_modules/mdast-util-to-hast/lib/handlers/strong.js","webpack://_N_E/./node_modules/.aspect_rules_js/mdast-util-to-hast@13.2.0/node_modules/mdast-util-to-hast/lib/handlers/table.js","webpack://_N_E/./node_modules/.aspect_rules_js/mdast-util-to-hast@13.2.0/node_modules/mdast-util-to-hast/lib/handlers/table-row.js","webpack://_N_E/./node_modules/.aspect_rules_js/mdast-util-to-hast@13.2.0/node_modules/mdast-util-to-hast/lib/handlers/table-cell.js","webpack://_N_E/./node_modules/.aspect_rules_js/trim-lines@3.0.1/node_modules/trim-lines/index.js","webpack://_N_E/./node_modules/.aspect_rules_js/mdast-util-to-hast@13.2.0/node_modules/mdast-util-to-hast/lib/handlers/text.js","webpack://_N_E/./node_modules/.aspect_rules_js/mdast-util-to-hast@13.2.0/node_modules/mdast-util-to-hast/lib/handlers/thematic-break.js","webpack://_N_E/./node_modules/.aspect_rules_js/mdast-util-to-hast@13.2.0/node_modules/mdast-util-to-hast/lib/handlers/index.js","webpack://_N_E/./node_modules/.aspect_rules_js/mdast-util-to-hast@13.2.0/node_modules/mdast-util-to-hast/lib/state.js","webpack://_N_E/./node_modules/.aspect_rules_js/mdast-util-to-hast@13.2.0/node_modules/mdast-util-to-hast/lib/index.js","webpack://_N_E/./node_modules/.aspect_rules_js/remark-rehype@11.1.0/node_modules/remark-rehype/lib/index.js","webpack://_N_E/./node_modules/.aspect_rules_js/bail@2.0.2/node_modules/bail/index.js","webpack://_N_E/./node_modules/.aspect_rules_js/is-plain-obj@4.1.0/node_modules/is-plain-obj/index.js","webpack://_N_E/./node_modules/.aspect_rules_js/trough@2.2.0/node_modules/trough/lib/index.js","webpack://_N_E/./node_modules/.aspect_rules_js/vfile@6.0.3/node_modules/vfile/lib/minpath.browser.js","webpack://_N_E/./node_modules/.aspect_rules_js/vfile@6.0.3/node_modules/vfile/lib/minproc.browser.js","webpack://_N_E/./node_modules/.aspect_rules_js/vfile@6.0.3/node_modules/vfile/lib/minurl.shared.js","webpack://_N_E/./node_modules/.aspect_rules_js/vfile@6.0.3/node_modules/vfile/lib/minurl.browser.js","webpack://_N_E/./node_modules/.aspect_rules_js/vfile@6.0.3/node_modules/vfile/lib/index.js","webpack://_N_E/./node_modules/.aspect_rules_js/unified@11.0.5/node_modules/unified/lib/callable-instance.js","webpack://_N_E/./node_modules/.aspect_rules_js/unified@11.0.5/node_modules/unified/lib/index.js","webpack://_N_E/./node_modules/.aspect_rules_js/react-markdown@9.0.1_1584644116/node_modules/react-markdown/lib/index.js","webpack://_N_E/./node_modules/.aspect_rules_js/ccount@2.0.1/node_modules/ccount/index.js","webpack://_N_E/./node_modules/.aspect_rules_js/escape-string-regexp@5.0.0/node_modules/escape-string-regexp/index.js","webpack://_N_E/./node_modules/.aspect_rules_js/mdast-util-find-and-replace@3.0.1/node_modules/mdast-util-find-and-replace/lib/index.js","webpack://_N_E/./node_modules/.aspect_rules_js/mdast-util-gfm-autolink-literal@2.0.1/node_modules/mdast-util-gfm-autolink-literal/lib/index.js","webpack://_N_E/./node_modules/.aspect_rules_js/mdast-util-gfm-footnote@2.0.0/node_modules/mdast-util-gfm-footnote/lib/index.js","webpack://_N_E/./node_modules/.aspect_rules_js/mdast-util-gfm-strikethrough@2.0.0/node_modules/mdast-util-gfm-strikethrough/lib/index.js","webpack://_N_E/./node_modules/.aspect_rules_js/markdown-table@3.0.3/node_modules/markdown-table/index.js","webpack://_N_E/./node_modules/.aspect_rules_js/mdast-util-to-markdown@2.1.0/node_modules/mdast-util-to-markdown/lib/handle/blockquote.js","webpack://_N_E/./node_modules/.aspect_rules_js/mdast-util-to-markdown@2.1.0/node_modules/mdast-util-to-markdown/lib/util/pattern-in-scope.js","webpack://_N_E/./node_modules/.aspect_rules_js/mdast-util-to-markdown@2.1.0/node_modules/mdast-util-to-markdown/lib/handle/break.js","webpack://_N_E/./node_modules/.aspect_rules_js/longest-streak@3.1.0/node_modules/longest-streak/index.js","webpack://_N_E/./node_modules/.aspect_rules_js/mdast-util-to-markdown@2.1.0/node_modules/mdast-util-to-markdown/lib/util/format-code-as-indented.js","webpack://_N_E/./node_modules/.aspect_rules_js/mdast-util-to-markdown@2.1.0/node_modules/mdast-util-to-markdown/lib/util/check-fence.js","webpack://_N_E/./node_modules/.aspect_rules_js/mdast-util-to-markdown@2.1.0/node_modules/mdast-util-to-markdown/lib/handle/code.js","webpack://_N_E/./node_modules/.aspect_rules_js/mdast-util-to-markdown@2.1.0/node_modules/mdast-util-to-markdown/lib/util/check-quote.js","webpack://_N_E/./node_modules/.aspect_rules_js/mdast-util-to-markdown@2.1.0/node_modules/mdast-util-to-markdown/lib/handle/definition.js","webpack://_N_E/./node_modules/.aspect_rules_js/mdast-util-to-markdown@2.1.0/node_modules/mdast-util-to-markdown/lib/util/check-emphasis.js","webpack://_N_E/./node_modules/.aspect_rules_js/mdast-util-to-markdown@2.1.0/node_modules/mdast-util-to-markdown/lib/handle/emphasis.js","webpack://_N_E/./node_modules/.aspect_rules_js/mdast-util-to-markdown@2.1.0/node_modules/mdast-util-to-markdown/lib/util/format-heading-as-setext.js","webpack://_N_E/./node_modules/.aspect_rules_js/mdast-util-to-markdown@2.1.0/node_modules/mdast-util-to-markdown/lib/handle/heading.js","webpack://_N_E/./node_modules/.aspect_rules_js/mdast-util-to-markdown@2.1.0/node_modules/mdast-util-to-markdown/lib/handle/html.js","webpack://_N_E/./node_modules/.aspect_rules_js/mdast-util-to-markdown@2.1.0/node_modules/mdast-util-to-markdown/lib/handle/image.js","webpack://_N_E/./node_modules/.aspect_rules_js/mdast-util-to-markdown@2.1.0/node_modules/mdast-util-to-markdown/lib/handle/image-reference.js","webpack://_N_E/./node_modules/.aspect_rules_js/mdast-util-to-markdown@2.1.0/node_modules/mdast-util-to-markdown/lib/handle/inline-code.js","webpack://_N_E/./node_modules/.aspect_rules_js/mdast-util-to-markdown@2.1.0/node_modules/mdast-util-to-markdown/lib/util/format-link-as-autolink.js","webpack://_N_E/./node_modules/.aspect_rules_js/mdast-util-to-markdown@2.1.0/node_modules/mdast-util-to-markdown/lib/handle/link.js","webpack://_N_E/./node_modules/.aspect_rules_js/mdast-util-to-markdown@2.1.0/node_modules/mdast-util-to-markdown/lib/handle/link-reference.js","webpack://_N_E/./node_modules/.aspect_rules_js/mdast-util-to-markdown@2.1.0/node_modules/mdast-util-to-markdown/lib/util/check-bullet.js","webpack://_N_E/./node_modules/.aspect_rules_js/mdast-util-to-markdown@2.1.0/node_modules/mdast-util-to-markdown/lib/util/check-bullet-other.js","webpack://_N_E/./node_modules/.aspect_rules_js/mdast-util-to-markdown@2.1.0/node_modules/mdast-util-to-markdown/lib/util/check-bullet-ordered.js","webpack://_N_E/./node_modules/.aspect_rules_js/mdast-util-to-markdown@2.1.0/node_modules/mdast-util-to-markdown/lib/util/check-rule.js","webpack://_N_E/./node_modules/.aspect_rules_js/mdast-util-to-markdown@2.1.0/node_modules/mdast-util-to-markdown/lib/handle/list.js","webpack://_N_E/./node_modules/.aspect_rules_js/mdast-util-to-markdown@2.1.0/node_modules/mdast-util-to-markdown/lib/util/check-list-item-indent.js","webpack://_N_E/./node_modules/.aspect_rules_js/mdast-util-to-markdown@2.1.0/node_modules/mdast-util-to-markdown/lib/handle/list-item.js","webpack://_N_E/./node_modules/.aspect_rules_js/mdast-util-to-markdown@2.1.0/node_modules/mdast-util-to-markdown/lib/handle/paragraph.js","webpack://_N_E/./node_modules/.aspect_rules_js/mdast-util-phrasing@4.1.0/node_modules/mdast-util-phrasing/lib/index.js","webpack://_N_E/./node_modules/.aspect_rules_js/mdast-util-to-markdown@2.1.0/node_modules/mdast-util-to-markdown/lib/handle/root.js","webpack://_N_E/./node_modules/.aspect_rules_js/mdast-util-to-markdown@2.1.0/node_modules/mdast-util-to-markdown/lib/util/check-strong.js","webpack://_N_E/./node_modules/.aspect_rules_js/mdast-util-to-markdown@2.1.0/node_modules/mdast-util-to-markdown/lib/handle/strong.js","webpack://_N_E/./node_modules/.aspect_rules_js/mdast-util-to-markdown@2.1.0/node_modules/mdast-util-to-markdown/lib/handle/text.js","webpack://_N_E/./node_modules/.aspect_rules_js/mdast-util-to-markdown@2.1.0/node_modules/mdast-util-to-markdown/lib/util/check-rule-repetition.js","webpack://_N_E/./node_modules/.aspect_rules_js/mdast-util-to-markdown@2.1.0/node_modules/mdast-util-to-markdown/lib/handle/thematic-break.js","webpack://_N_E/./node_modules/.aspect_rules_js/mdast-util-to-markdown@2.1.0/node_modules/mdast-util-to-markdown/lib/handle/index.js","webpack://_N_E/./node_modules/.aspect_rules_js/mdast-util-gfm-table@2.0.0/node_modules/mdast-util-gfm-table/lib/index.js","webpack://_N_E/./node_modules/.aspect_rules_js/mdast-util-gfm-task-list-item@2.0.0/node_modules/mdast-util-gfm-task-list-item/lib/index.js","webpack://_N_E/./node_modules/.aspect_rules_js/mdast-util-gfm@3.0.0/node_modules/mdast-util-gfm/lib/index.js","webpack://_N_E/./node_modules/.aspect_rules_js/micromark-extension-gfm-autolink-literal@2.1.0/node_modules/micromark-extension-gfm-autolink-literal/lib/syntax.js","webpack://_N_E/./node_modules/.aspect_rules_js/micromark-extension-gfm-footnote@2.1.0/node_modules/micromark-extension-gfm-footnote/lib/syntax.js","webpack://_N_E/./node_modules/.aspect_rules_js/micromark-extension-gfm-strikethrough@2.1.0/node_modules/micromark-extension-gfm-strikethrough/lib/syntax.js","webpack://_N_E/./node_modules/.aspect_rules_js/micromark-extension-gfm-table@2.1.0/node_modules/micromark-extension-gfm-table/lib/edit-map.js","webpack://_N_E/./node_modules/.aspect_rules_js/micromark-extension-gfm-table@2.1.0/node_modules/micromark-extension-gfm-table/lib/infer.js","webpack://_N_E/./node_modules/.aspect_rules_js/micromark-extension-gfm-table@2.1.0/node_modules/micromark-extension-gfm-table/lib/syntax.js","webpack://_N_E/./node_modules/.aspect_rules_js/micromark-extension-gfm-task-list-item@2.1.0/node_modules/micromark-extension-gfm-task-list-item/lib/syntax.js","webpack://_N_E/./node_modules/.aspect_rules_js/micromark-extension-gfm@3.0.0/node_modules/micromark-extension-gfm/index.js","webpack://_N_E/./node_modules/.aspect_rules_js/remark-gfm@4.0.0/node_modules/remark-gfm/lib/index.js","webpack://_N_E/./node_modules/.aspect_rules_js/unist-util-is@6.0.0/node_modules/unist-util-is/lib/index.js","webpack://_N_E/./node_modules/.aspect_rules_js/unist-util-visit-parents@6.0.1/node_modules/unist-util-visit-parents/lib/color.js","webpack://_N_E/./node_modules/.aspect_rules_js/unist-util-visit-parents@6.0.1/node_modules/unist-util-visit-parents/lib/index.js","webpack://_N_E/./node_modules/.aspect_rules_js/unist-util-visit@5.0.0/node_modules/unist-util-visit/lib/index.js"],"sourcesContent":["/*!\n Copyright (c) 2015 Jed Watson.\n Based on code that is Copyright 2013-2015, Facebook, Inc.\n All rights reserved.\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar canUseDOM = !!(\n\t\ttypeof window !== 'undefined' &&\n\t\twindow.document &&\n\t\twindow.document.createElement\n\t);\n\n\tvar ExecutionEnvironment = {\n\n\t\tcanUseDOM: canUseDOM,\n\n\t\tcanUseWorkers: typeof Worker !== 'undefined',\n\n\t\tcanUseEventListeners:\n\t\t\tcanUseDOM && !!(window.addEventListener || window.attachEvent),\n\n\t\tcanUseViewport: canUseDOM && !!window.screen\n\n\t};\n\n\tif (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\tdefine(function () {\n\t\t\treturn ExecutionEnvironment;\n\t\t});\n\t} else if (typeof module !== 'undefined' && module.exports) {\n\t\tmodule.exports = ExecutionEnvironment;\n\t} else {\n\t\twindow.ExecutionEnvironment = ExecutionEnvironment;\n\t}\n\n}());\n","'use strict';\n\nvar hasOwn = Object.prototype.hasOwnProperty;\nvar toStr = Object.prototype.toString;\nvar defineProperty = Object.defineProperty;\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nvar isArray = function isArray(arr) {\n\tif (typeof Array.isArray === 'function') {\n\t\treturn Array.isArray(arr);\n\t}\n\n\treturn toStr.call(arr) === '[object Array]';\n};\n\nvar isPlainObject = function isPlainObject(obj) {\n\tif (!obj || toStr.call(obj) !== '[object Object]') {\n\t\treturn false;\n\t}\n\n\tvar hasOwnConstructor = hasOwn.call(obj, 'constructor');\n\tvar hasIsPrototypeOf = obj.constructor && obj.constructor.prototype && hasOwn.call(obj.constructor.prototype, 'isPrototypeOf');\n\t// Not own constructor property must be Object\n\tif (obj.constructor && !hasOwnConstructor && !hasIsPrototypeOf) {\n\t\treturn false;\n\t}\n\n\t// Own properties are enumerated firstly, so to speed up,\n\t// if last one is own, then all properties are own.\n\tvar key;\n\tfor (key in obj) { /**/ }\n\n\treturn typeof key === 'undefined' || hasOwn.call(obj, key);\n};\n\n// If name is '__proto__', and Object.defineProperty is available, define __proto__ as an own property on target\nvar setProperty = function setProperty(target, options) {\n\tif (defineProperty && options.name === '__proto__') {\n\t\tdefineProperty(target, options.name, {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\t\t\tvalue: options.newValue,\n\t\t\twritable: true\n\t\t});\n\t} else {\n\t\ttarget[options.name] = options.newValue;\n\t}\n};\n\n// Return undefined instead of __proto__ if '__proto__' is not an own property\nvar getProperty = function getProperty(obj, name) {\n\tif (name === '__proto__') {\n\t\tif (!hasOwn.call(obj, name)) {\n\t\t\treturn void 0;\n\t\t} else if (gOPD) {\n\t\t\t// In early versions of node, obj['__proto__'] is buggy when obj has\n\t\t\t// __proto__ as an own property. Object.getOwnPropertyDescriptor() works.\n\t\t\treturn gOPD(obj, name).value;\n\t\t}\n\t}\n\n\treturn obj[name];\n};\n\nmodule.exports = function extend() {\n\tvar options, name, src, copy, copyIsArray, clone;\n\tvar target = arguments[0];\n\tvar i = 1;\n\tvar length = arguments.length;\n\tvar deep = false;\n\n\t// Handle a deep copy situation\n\tif (typeof target === 'boolean') {\n\t\tdeep = target;\n\t\ttarget = arguments[1] || {};\n\t\t// skip the boolean and the target\n\t\ti = 2;\n\t}\n\tif (target == null || (typeof target !== 'object' && typeof target !== 'function')) {\n\t\ttarget = {};\n\t}\n\n\tfor (; i < length; ++i) {\n\t\toptions = arguments[i];\n\t\t// Only deal with non-null/undefined values\n\t\tif (options != null) {\n\t\t\t// Extend the base object\n\t\t\tfor (name in options) {\n\t\t\t\tsrc = getProperty(target, name);\n\t\t\t\tcopy = getProperty(options, name);\n\n\t\t\t\t// Prevent never-ending loop\n\t\t\t\tif (target !== copy) {\n\t\t\t\t\t// Recurse if we're merging plain objects or arrays\n\t\t\t\t\tif (deep && copy && (isPlainObject(copy) || (copyIsArray = isArray(copy)))) {\n\t\t\t\t\t\tif (copyIsArray) {\n\t\t\t\t\t\t\tcopyIsArray = false;\n\t\t\t\t\t\t\tclone = src && isArray(src) ? src : [];\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tclone = src && isPlainObject(src) ? src : {};\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Never move original objects, clone them\n\t\t\t\t\t\tsetProperty(target, { name: name, newValue: extend(deep, clone, copy) });\n\n\t\t\t\t\t// Don't bring in undefined values\n\t\t\t\t\t} else if (typeof copy !== 'undefined') {\n\t\t\t\t\t\tsetProperty(target, { name: name, newValue: copy });\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Return the modified object\n\treturn target;\n};\n","/*\n\n Copyright The Closure Library Authors.\n SPDX-License-Identifier: Apache-2.0\n*/\nvar aa=\"function\"==typeof Object.defineProperties?Object.defineProperty:function(a,b,c){a!=Array.prototype&&a!=Object.prototype&&(a[b]=c.value)},e=\"undefined\"!=typeof window&&window===this?this:\"undefined\"!=typeof global&&null!=global?global:this;function ba(a,b){if(b){var c=e;a=a.split(\".\");for(var d=0;d=arguments.length?Array.prototype.slice.call(a,b):Array.prototype.slice.call(a,b,c)};function sa(a,b,c,d){var f=\"Assertion failed\";if(c){f+=\": \"+c;var h=d}else a&&(f+=\": \"+a,h=b);throw Error(f,h||[]);}function n(a,b,c){for(var d=[],f=2;f=a.length)return String.fromCharCode.apply(null,a);for(var b=\"\",c=0;c>2;f=(f&3)<<4|m>>4;m=(m&15)<<2|B>>6;B&=63;t||(B=64,h||(m=64));c.push(b[M],b[f],b[m]||\"\",b[B]||\"\")}return c.join(\"\")}function Da(a){var b=a.length,c=3*b/4;c%3?c=Math.floor(c):-1!=\"=.\".indexOf(a[b-1])&&(c=-1!=\"=.\".indexOf(a[b-2])?c-2:c-1);var d=new Uint8Array(c),f=0;Ea(a,function(h){d[f++]=h});return d.subarray(0,f)}\nfunction Ea(a,b){function c(B){for(;d>4);64!=m&&(b(h<<4&240|m>>2),64!=t&&b(m<<6&192|t))}}\nfunction Ca(){if(!x){x={};for(var a=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\".split(\"\"),b=[\"+/=\",\"+/\",\"-_=\",\"-_.\",\"-_\"],c=0;5>c;c++){var d=a.concat(b[c].split(\"\"));Aa[c]=d;for(var f=0;f>>0;a=Math.floor((a-b)/4294967296)>>>0;y=b;z=a}g(\"jspb.utils.splitUint64\",Fa,void 0);function A(a){var b=0>a;a=Math.abs(a);var c=a>>>0;a=Math.floor((a-c)/4294967296);a>>>=0;b&&(a=~a>>>0,c=(~c>>>0)+1,4294967295a;a=2*Math.abs(a);Fa(a);a=y;var c=z;b&&(0==a?0==c?c=a=4294967295:(c--,a=4294967295):a--);y=a;z=c}g(\"jspb.utils.splitZigzag64\",Ga,void 0);\nfunction Ha(a){var b=0>a?1:0;a=b?-a:a;if(0===a)0<1/a?y=z=0:(z=0,y=2147483648);else if(isNaN(a))z=0,y=2147483647;else if(3.4028234663852886E38>>0;else if(1.1754943508222875E-38>a)a=Math.round(a/Math.pow(2,-149)),z=0,y=(b<<31|a)>>>0;else{var c=Math.floor(Math.log(a)/Math.LN2);a*=Math.pow(2,-c);a=Math.round(8388608*a);16777216<=a&&++c;z=0;y=(b<<31|c+127<<23|a&8388607)>>>0}}g(\"jspb.utils.splitFloat32\",Ha,void 0);\nfunction Ia(a){var b=0>a?1:0;a=b?-a:a;if(0===a)z=0<1/a?0:2147483648,y=0;else if(isNaN(a))z=2147483647,y=4294967295;else if(1.7976931348623157E308>>0,y=0;else if(2.2250738585072014E-308>a)a/=Math.pow(2,-1074),z=(b<<31|a/4294967296)>>>0,y=a>>>0;else{var c=a,d=0;if(2<=c)for(;2<=c&&1023>d;)d++,c/=2;else for(;1>c&&-1022>>0;y=4503599627370496*a>>>0}}g(\"jspb.utils.splitFloat64\",Ia,void 0);\nfunction C(a){var b=a.charCodeAt(4),c=a.charCodeAt(5),d=a.charCodeAt(6),f=a.charCodeAt(7);y=a.charCodeAt(0)+(a.charCodeAt(1)<<8)+(a.charCodeAt(2)<<16)+(a.charCodeAt(3)<<24)>>>0;z=b+(c<<8)+(d<<16)+(f<<24)>>>0}g(\"jspb.utils.splitHash64\",C,void 0);function D(a,b){return 4294967296*b+(a>>>0)}g(\"jspb.utils.joinUint64\",D,void 0);function E(a,b){var c=b&2147483648;c&&(a=~a+1>>>0,b=~b>>>0,0==a&&(b=b+1>>>0));a=D(a,b);return c?-a:a}g(\"jspb.utils.joinInt64\",E,void 0);\nfunction Ja(a,b,c){var d=b>>31;return c(a<<1^d,(b<<1|a>>>31)^d)}g(\"jspb.utils.toZigzag64\",Ja,void 0);function Ka(a,b){return Ma(a,b,E)}g(\"jspb.utils.joinZigzag64\",Ka,void 0);function Ma(a,b,c){var d=-(a&1);return c((a>>>1|b<<31)^d,b>>>1^d)}g(\"jspb.utils.fromZigzag64\",Ma,void 0);function Na(a){var b=2*(a>>31)+1,c=a>>>23&255;a&=8388607;return 255==c?a?NaN:Infinity*b:0==c?b*Math.pow(2,-149)*a:b*Math.pow(2,c-150)*(a+Math.pow(2,23))}g(\"jspb.utils.joinFloat32\",Na,void 0);\nfunction Oa(a,b){var c=2*(b>>31)+1,d=b>>>20&2047;a=4294967296*(b&1048575)+a;return 2047==d?a?NaN:Infinity*c:0==d?c*Math.pow(2,-1074)*a:c*Math.pow(2,d-1075)*(a+4503599627370496)}g(\"jspb.utils.joinFloat64\",Oa,void 0);function Pa(a,b){return String.fromCharCode(a>>>0&255,a>>>8&255,a>>>16&255,a>>>24&255,b>>>0&255,b>>>8&255,b>>>16&255,b>>>24&255)}g(\"jspb.utils.joinHash64\",Pa,void 0);g(\"jspb.utils.DIGITS\",\"0123456789abcdef\".split(\"\"),void 0);\nfunction F(a,b){function c(f,h){f=f?String(f):\"\";return h?\"0000000\".slice(f.length)+f:f}if(2097151>=b)return\"\"+D(a,b);var d=(a>>>24|b<<8)>>>0&16777215;b=b>>16&65535;a=(a&16777215)+6777216*d+6710656*b;d+=8147497*b;b*=2;1E7<=a&&(d+=Math.floor(a/1E7),a%=1E7);1E7<=d&&(b+=Math.floor(d/1E7),d%=1E7);return c(b,0)+c(d,b)+c(a,1)}g(\"jspb.utils.joinUnsignedDecimalString\",F,void 0);function G(a,b){var c=b&2147483648;c&&(a=~a+1>>>0,b=~b+(0==a?1:0)>>>0);a=F(a,b);return c?\"-\"+a:a}\ng(\"jspb.utils.joinSignedDecimalString\",G,void 0);function Qa(a,b){C(a);a=y;var c=z;return b?G(a,c):F(a,c)}g(\"jspb.utils.hash64ToDecimalString\",Qa,void 0);g(\"jspb.utils.hash64ArrayToDecimalStrings\",function(a,b){for(var c=Array(a.length),d=0;dB&&(1!==m||0>>=8}function c(){for(var m=0;8>m;m++)f[m]=~f[m]&255}n(0a?48+a:87+a)}\nfunction Sa(a){return 97<=a?a-97+10:a-48}g(\"jspb.utils.hash64ToHexString\",function(a){var b=Array(18);b[0]=\"0\";b[1]=\"x\";for(var c=0;8>c;c++){var d=a.charCodeAt(7-c);b[2*c+2]=Ra(d>>4);b[2*c+3]=Ra(d&15)}return b.join(\"\")},void 0);g(\"jspb.utils.hexStringToHash64\",function(a){a=a.toLowerCase();n(18==a.length);n(\"0\"==a[0]);n(\"x\"==a[1]);for(var b=\"\",c=0;8>c;c++)b=String.fromCharCode(16*Sa(a.charCodeAt(2*c+2))+Sa(a.charCodeAt(2*c+3)))+b;return b},void 0);\ng(\"jspb.utils.hash64ToNumber\",function(a,b){C(a);a=y;var c=z;return b?E(a,c):D(a,c)},void 0);g(\"jspb.utils.numberToHash64\",function(a){A(a);return Pa(y,z)},void 0);g(\"jspb.utils.countVarints\",function(a,b,c){for(var d=0,f=b;f>7;return c-b-d},void 0);\ng(\"jspb.utils.countVarintFields\",function(a,b,c,d){var f=0;d*=8;if(128>d)for(;b>=7}if(a[b++]!=h)break;for(f++;h=a[b++],0!=(h&128););}return f},void 0);function Ta(a,b,c,d,f){var h=0;if(128>d)for(;b>=7}if(a[b++]!=m)break;h++;b+=f}return h}\ng(\"jspb.utils.countFixed32Fields\",function(a,b,c,d){return Ta(a,b,c,8*d+5,4)},void 0);g(\"jspb.utils.countFixed64Fields\",function(a,b,c,d){return Ta(a,b,c,8*d+1,8)},void 0);g(\"jspb.utils.countDelimitedFields\",function(a,b,c,d){var f=0;for(d=8*d+2;b>=7}if(a[b++]!=h)break;f++;for(var m=0,t=1;h=a[b++],m+=(h&127)*t,t*=128,0!=(h&128););b+=m}return f},void 0);\ng(\"jspb.utils.debugBytesToTextFormat\",function(a){var b='\"';if(a){a=Ua(a);for(var c=0;ca[c]&&(b+=\"0\"),b+=a[c].toString(16)}return b+'\"'},void 0);\ng(\"jspb.utils.debugScalarToTextFormat\",function(a){if(\"string\"===typeof a){a=String(a);for(var b=['\"'],c=0;cf))if(f=d,f in za)d=za[f];else if(f in ya)d=za[f]=ya[f];else{m=f.charCodeAt(0);if(31m)d=f;else{if(256>m){if(d=\"\\\\x\",16>m||256m&&(d+=\"0\");d+=m.toString(16).toUpperCase()}d=za[f]=d}m=d}b[h]=m}b.push('\"');a=b.join(\"\")}else a=a.toString();return a},void 0);\ng(\"jspb.utils.stringToByteArray\",function(a){for(var b=new Uint8Array(a.length),c=0;cVa.length&&Va.push(this)};I.prototype.free=I.prototype.Ca;I.prototype.clone=function(){return Wa(this.b,this.h,this.c-this.h)};I.prototype.clone=I.prototype.clone;\nI.prototype.clear=function(){this.b=null;this.a=this.c=this.h=0;this.v=!1};I.prototype.clear=I.prototype.clear;I.prototype.Y=function(){return this.b};I.prototype.getBuffer=I.prototype.Y;I.prototype.H=function(a,b,c){this.b=Ua(a);this.h=void 0!==b?b:0;this.c=void 0!==c?this.h+c:this.b.length;this.a=this.h};I.prototype.setBlock=I.prototype.H;I.prototype.Db=function(){return this.c};I.prototype.getEnd=I.prototype.Db;I.prototype.setEnd=function(a){this.c=a};I.prototype.setEnd=I.prototype.setEnd;\nI.prototype.reset=function(){this.a=this.h};I.prototype.reset=I.prototype.reset;I.prototype.B=function(){return this.a};I.prototype.getCursor=I.prototype.B;I.prototype.Ma=function(a){this.a=a};I.prototype.setCursor=I.prototype.Ma;I.prototype.advance=function(a){this.a+=a;n(this.a<=this.c)};I.prototype.advance=I.prototype.advance;I.prototype.ya=function(){return this.a==this.c};I.prototype.atEnd=I.prototype.ya;I.prototype.Qb=function(){return this.a>this.c};I.prototype.pastEnd=I.prototype.Qb;\nI.prototype.getError=function(){return this.v||0>this.a||this.a>this.c};I.prototype.getError=I.prototype.getError;I.prototype.w=function(a){for(var b=128,c=0,d=0,f=0;4>f&&128<=b;f++)b=this.b[this.a++],c|=(b&127)<<7*f;128<=b&&(b=this.b[this.a++],c|=(b&127)<<28,d|=(b&127)>>4);if(128<=b)for(f=0;5>f&&128<=b;f++)b=this.b[this.a++],d|=(b&127)<<7*f+3;if(128>b)return a(c>>>0,d>>>0);p(\"Failed to read varint, encoding is invalid.\");this.v=!0};I.prototype.readSplitVarint64=I.prototype.w;\nI.prototype.ea=function(a){return this.w(function(b,c){return Ma(b,c,a)})};I.prototype.readSplitZigzagVarint64=I.prototype.ea;I.prototype.ta=function(a){var b=this.b,c=this.a;this.a+=8;for(var d=0,f=0,h=c+7;h>=c;h--)d=d<<8|b[h],f=f<<8|b[h+4];return a(d,f)};I.prototype.readSplitFixed64=I.prototype.ta;I.prototype.kb=function(){for(;this.b[this.a]&128;)this.a++;this.a++};I.prototype.skipVarint=I.prototype.kb;I.prototype.mb=function(a){for(;128>>=7;this.a--};I.prototype.unskipVarint=I.prototype.mb;\nI.prototype.o=function(){var a=this.b;var b=a[this.a];var c=b&127;if(128>b)return this.a+=1,n(this.a<=this.c),c;b=a[this.a+1];c|=(b&127)<<7;if(128>b)return this.a+=2,n(this.a<=this.c),c;b=a[this.a+2];c|=(b&127)<<14;if(128>b)return this.a+=3,n(this.a<=this.c),c;b=a[this.a+3];c|=(b&127)<<21;if(128>b)return this.a+=4,n(this.a<=this.c),c;b=a[this.a+4];c|=(b&15)<<28;if(128>b)return this.a+=5,n(this.a<=this.c),c>>>0;this.a+=5;128<=a[this.a++]&&128<=a[this.a++]&&128<=a[this.a++]&&128<=a[this.a++]&&128<=\na[this.a++]&&n(!1);n(this.a<=this.c);return c};I.prototype.readUnsignedVarint32=I.prototype.o;I.prototype.da=function(){return~~this.o()};I.prototype.readSignedVarint32=I.prototype.da;I.prototype.O=function(){return this.o().toString()};I.prototype.Ea=function(){return this.da().toString()};I.prototype.readSignedVarint32String=I.prototype.Ea;I.prototype.Ia=function(){var a=this.o();return a>>>1^-(a&1)};I.prototype.readZigzagVarint32=I.prototype.Ia;I.prototype.Ga=function(){return this.w(D)};\nI.prototype.readUnsignedVarint64=I.prototype.Ga;I.prototype.Ha=function(){return this.w(F)};I.prototype.readUnsignedVarint64String=I.prototype.Ha;I.prototype.sa=function(){return this.w(E)};I.prototype.readSignedVarint64=I.prototype.sa;I.prototype.Fa=function(){return this.w(G)};I.prototype.readSignedVarint64String=I.prototype.Fa;I.prototype.Ja=function(){return this.w(Ka)};I.prototype.readZigzagVarint64=I.prototype.Ja;I.prototype.fb=function(){return this.ea(Pa)};\nI.prototype.readZigzagVarintHash64=I.prototype.fb;I.prototype.Ka=function(){return this.ea(G)};I.prototype.readZigzagVarint64String=I.prototype.Ka;I.prototype.Gc=function(){var a=this.b[this.a];this.a+=1;n(this.a<=this.c);return a};I.prototype.readUint8=I.prototype.Gc;I.prototype.Ec=function(){var a=this.b[this.a],b=this.b[this.a+1];this.a+=2;n(this.a<=this.c);return a<<0|b<<8};I.prototype.readUint16=I.prototype.Ec;\nI.prototype.m=function(){var a=this.b[this.a],b=this.b[this.a+1],c=this.b[this.a+2],d=this.b[this.a+3];this.a+=4;n(this.a<=this.c);return(a<<0|b<<8|c<<16|d<<24)>>>0};I.prototype.readUint32=I.prototype.m;I.prototype.ga=function(){var a=this.m(),b=this.m();return D(a,b)};I.prototype.readUint64=I.prototype.ga;I.prototype.ha=function(){var a=this.m(),b=this.m();return F(a,b)};I.prototype.readUint64String=I.prototype.ha;\nI.prototype.Xb=function(){var a=this.b[this.a];this.a+=1;n(this.a<=this.c);return a<<24>>24};I.prototype.readInt8=I.prototype.Xb;I.prototype.Vb=function(){var a=this.b[this.a],b=this.b[this.a+1];this.a+=2;n(this.a<=this.c);return(a<<0|b<<8)<<16>>16};I.prototype.readInt16=I.prototype.Vb;I.prototype.P=function(){var a=this.b[this.a],b=this.b[this.a+1],c=this.b[this.a+2],d=this.b[this.a+3];this.a+=4;n(this.a<=this.c);return a<<0|b<<8|c<<16|d<<24};I.prototype.readInt32=I.prototype.P;\nI.prototype.ba=function(){var a=this.m(),b=this.m();return E(a,b)};I.prototype.readInt64=I.prototype.ba;I.prototype.ca=function(){var a=this.m(),b=this.m();return G(a,b)};I.prototype.readInt64String=I.prototype.ca;I.prototype.aa=function(){var a=this.m();return Na(a,0)};I.prototype.readFloat=I.prototype.aa;I.prototype.Z=function(){var a=this.m(),b=this.m();return Oa(a,b)};I.prototype.readDouble=I.prototype.Z;I.prototype.pa=function(){return!!this.b[this.a++]};I.prototype.readBool=I.prototype.pa;\nI.prototype.ra=function(){return this.da()};I.prototype.readEnum=I.prototype.ra;\nI.prototype.fa=function(a){var b=this.b,c=this.a;a=c+a;for(var d=[],f=\"\";ch)d.push(h);else if(192>h)continue;else if(224>h){var m=b[c++];d.push((h&31)<<6|m&63)}else if(240>h){m=b[c++];var t=b[c++];d.push((h&15)<<12|(m&63)<<6|t&63)}else if(248>h){m=b[c++];t=b[c++];var B=b[c++];h=(h&7)<<18|(m&63)<<12|(t&63)<<6|B&63;h-=65536;d.push((h>>10&1023)+55296,(h&1023)+56320)}8192<=d.length&&(f+=String.fromCharCode.apply(null,d),d.length=0)}f+=xa(d);this.a=c;return f};\nI.prototype.readString=I.prototype.fa;I.prototype.Dc=function(){var a=this.o();return this.fa(a)};I.prototype.readStringWithLength=I.prototype.Dc;I.prototype.qa=function(a){if(0>a||this.a+a>this.b.length)return this.v=!0,p(\"Invalid byte length!\"),new Uint8Array(0);var b=this.b.subarray(this.a,this.a+a);this.a+=a;n(this.a<=this.c);return b};I.prototype.readBytes=I.prototype.qa;I.prototype.ia=function(){return this.w(Pa)};I.prototype.readVarintHash64=I.prototype.ia;\nI.prototype.$=function(){var a=this.b,b=this.a,c=a[b],d=a[b+1],f=a[b+2],h=a[b+3],m=a[b+4],t=a[b+5],B=a[b+6];a=a[b+7];this.a+=8;return String.fromCharCode(c,d,f,h,m,t,B,a)};I.prototype.readFixedHash64=I.prototype.$;function J(a,b,c){this.a=Wa(a,b,c);this.O=this.a.B();this.b=this.c=-1;this.h=!1;this.v=null}g(\"jspb.BinaryReader\",J,void 0);var K=[];J.clearInstanceCache=function(){K=[]};J.getInstanceCacheLength=function(){return K.length};function Xa(a,b,c){if(K.length){var d=K.pop();a&&d.a.H(a,b,c);return d}return new J(a,b,c)}J.alloc=Xa;J.prototype.zb=Xa;J.prototype.alloc=J.prototype.zb;J.prototype.Ca=function(){this.a.clear();this.b=this.c=-1;this.h=!1;this.v=null;100>K.length&&K.push(this)};\nJ.prototype.free=J.prototype.Ca;J.prototype.Fb=function(){return this.O};J.prototype.getFieldCursor=J.prototype.Fb;J.prototype.B=function(){return this.a.B()};J.prototype.getCursor=J.prototype.B;J.prototype.Y=function(){return this.a.Y()};J.prototype.getBuffer=J.prototype.Y;J.prototype.Hb=function(){return this.c};J.prototype.getFieldNumber=J.prototype.Hb;J.prototype.Lb=function(){return this.b};J.prototype.getWireType=J.prototype.Lb;J.prototype.Mb=function(){return 2==this.b};\nJ.prototype.isDelimited=J.prototype.Mb;J.prototype.bb=function(){return 4==this.b};J.prototype.isEndGroup=J.prototype.bb;J.prototype.getError=function(){return this.h||this.a.getError()};J.prototype.getError=J.prototype.getError;J.prototype.H=function(a,b,c){this.a.H(a,b,c);this.b=this.c=-1};J.prototype.setBlock=J.prototype.H;J.prototype.reset=function(){this.a.reset();this.b=this.c=-1};J.prototype.reset=J.prototype.reset;J.prototype.advance=function(a){this.a.advance(a)};J.prototype.advance=J.prototype.advance;\nJ.prototype.oa=function(){if(this.a.ya())return!1;if(this.getError())return p(\"Decoder hit an error\"),!1;this.O=this.a.B();var a=this.a.o(),b=a>>>3;a&=7;if(0!=a&&5!=a&&1!=a&&2!=a&&3!=a&&4!=a)return p(\"Invalid wire type: %s (at position %s)\",a,this.O),this.h=!0,!1;this.c=b;this.b=a;return!0};J.prototype.nextField=J.prototype.oa;J.prototype.Oa=function(){this.a.mb(this.c<<3|this.b)};J.prototype.unskipHeader=J.prototype.Oa;\nJ.prototype.Lc=function(){var a=this.c;for(this.Oa();this.oa()&&this.c==a;)this.C();this.a.ya()||this.Oa()};J.prototype.skipMatchingFields=J.prototype.Lc;J.prototype.lb=function(){0!=this.b?(p(\"Invalid wire type for skipVarintField\"),this.C()):this.a.kb()};J.prototype.skipVarintField=J.prototype.lb;J.prototype.gb=function(){if(2!=this.b)p(\"Invalid wire type for skipDelimitedField\"),this.C();else{var a=this.a.o();this.a.advance(a)}};J.prototype.skipDelimitedField=J.prototype.gb;\nJ.prototype.hb=function(){5!=this.b?(p(\"Invalid wire type for skipFixed32Field\"),this.C()):this.a.advance(4)};J.prototype.skipFixed32Field=J.prototype.hb;J.prototype.ib=function(){1!=this.b?(p(\"Invalid wire type for skipFixed64Field\"),this.C()):this.a.advance(8)};J.prototype.skipFixed64Field=J.prototype.ib;J.prototype.jb=function(){var a=this.c;do{if(!this.oa()){p(\"Unmatched start-group tag: stream EOF\");this.h=!0;break}if(4==this.b){this.c!=a&&(p(\"Unmatched end-group tag\"),this.h=!0);break}this.C()}while(1)};\nJ.prototype.skipGroup=J.prototype.jb;J.prototype.C=function(){switch(this.b){case 0:this.lb();break;case 1:this.ib();break;case 2:this.gb();break;case 5:this.hb();break;case 3:this.jb();break;default:p(\"Invalid wire encoding for field.\")}};J.prototype.skipField=J.prototype.C;J.prototype.Hc=function(a,b){null===this.v&&(this.v={});n(!this.v[a]);this.v[a]=b};J.prototype.registerReadCallback=J.prototype.Hc;J.prototype.Ic=function(a){n(null!==this.v);a=this.v[a];n(a);return a(this)};\nJ.prototype.runReadCallback=J.prototype.Ic;J.prototype.Yb=function(a,b){n(2==this.b);var c=this.a.c,d=this.a.o();d=this.a.B()+d;this.a.setEnd(d);b(a,this);this.a.Ma(d);this.a.setEnd(c)};J.prototype.readMessage=J.prototype.Yb;J.prototype.Ub=function(a,b,c){n(3==this.b);n(this.c==a);c(b,this);this.h||4==this.b||(p(\"Group submessage did not end with an END_GROUP tag\"),this.h=!0)};J.prototype.readGroup=J.prototype.Ub;\nJ.prototype.Gb=function(){n(2==this.b);var a=this.a.o(),b=this.a.B(),c=b+a;a=Wa(this.a.Y(),b,a);this.a.Ma(c);return a};J.prototype.getFieldDecoder=J.prototype.Gb;J.prototype.P=function(){n(0==this.b);return this.a.da()};J.prototype.readInt32=J.prototype.P;J.prototype.Wb=function(){n(0==this.b);return this.a.Ea()};J.prototype.readInt32String=J.prototype.Wb;J.prototype.ba=function(){n(0==this.b);return this.a.sa()};J.prototype.readInt64=J.prototype.ba;J.prototype.ca=function(){n(0==this.b);return this.a.Fa()};\nJ.prototype.readInt64String=J.prototype.ca;J.prototype.m=function(){n(0==this.b);return this.a.o()};J.prototype.readUint32=J.prototype.m;J.prototype.Fc=function(){n(0==this.b);return this.a.O()};J.prototype.readUint32String=J.prototype.Fc;J.prototype.ga=function(){n(0==this.b);return this.a.Ga()};J.prototype.readUint64=J.prototype.ga;J.prototype.ha=function(){n(0==this.b);return this.a.Ha()};J.prototype.readUint64String=J.prototype.ha;J.prototype.zc=function(){n(0==this.b);return this.a.Ia()};\nJ.prototype.readSint32=J.prototype.zc;J.prototype.Ac=function(){n(0==this.b);return this.a.Ja()};J.prototype.readSint64=J.prototype.Ac;J.prototype.Bc=function(){n(0==this.b);return this.a.Ka()};J.prototype.readSint64String=J.prototype.Bc;J.prototype.Rb=function(){n(5==this.b);return this.a.m()};J.prototype.readFixed32=J.prototype.Rb;J.prototype.Sb=function(){n(1==this.b);return this.a.ga()};J.prototype.readFixed64=J.prototype.Sb;J.prototype.Tb=function(){n(1==this.b);return this.a.ha()};\nJ.prototype.readFixed64String=J.prototype.Tb;J.prototype.vc=function(){n(5==this.b);return this.a.P()};J.prototype.readSfixed32=J.prototype.vc;J.prototype.wc=function(){n(5==this.b);return this.a.P().toString()};J.prototype.readSfixed32String=J.prototype.wc;J.prototype.xc=function(){n(1==this.b);return this.a.ba()};J.prototype.readSfixed64=J.prototype.xc;J.prototype.yc=function(){n(1==this.b);return this.a.ca()};J.prototype.readSfixed64String=J.prototype.yc;\nJ.prototype.aa=function(){n(5==this.b);return this.a.aa()};J.prototype.readFloat=J.prototype.aa;J.prototype.Z=function(){n(1==this.b);return this.a.Z()};J.prototype.readDouble=J.prototype.Z;J.prototype.pa=function(){n(0==this.b);return!!this.a.o()};J.prototype.readBool=J.prototype.pa;J.prototype.ra=function(){n(0==this.b);return this.a.sa()};J.prototype.readEnum=J.prototype.ra;J.prototype.fa=function(){n(2==this.b);var a=this.a.o();return this.a.fa(a)};J.prototype.readString=J.prototype.fa;\nJ.prototype.qa=function(){n(2==this.b);var a=this.a.o();return this.a.qa(a)};J.prototype.readBytes=J.prototype.qa;J.prototype.ia=function(){n(0==this.b);return this.a.ia()};J.prototype.readVarintHash64=J.prototype.ia;J.prototype.Cc=function(){n(0==this.b);return this.a.fb()};J.prototype.readSintHash64=J.prototype.Cc;J.prototype.w=function(a){n(0==this.b);return this.a.w(a)};J.prototype.readSplitVarint64=J.prototype.w;\nJ.prototype.ea=function(a){n(0==this.b);return this.a.w(function(b,c){return Ma(b,c,a)})};J.prototype.readSplitZigzagVarint64=J.prototype.ea;J.prototype.$=function(){n(1==this.b);return this.a.$()};J.prototype.readFixedHash64=J.prototype.$;J.prototype.ta=function(a){n(1==this.b);return this.a.ta(a)};J.prototype.readSplitFixed64=J.prototype.ta;function L(a,b){n(2==a.b);var c=a.a.o();c=a.a.B()+c;for(var d=[];a.a.B()b.length?c.length:b.length;a.b&&(d[0]=a.b,f=1);for(;fa);for(n(0<=b&&4294967296>b);0>>7|b<<25)>>>0,b>>>=7;this.a.push(a)};S.prototype.writeSplitVarint64=S.prototype.l;\nS.prototype.A=function(a,b){n(a==Math.floor(a));n(b==Math.floor(b));n(0<=a&&4294967296>a);n(0<=b&&4294967296>b);this.s(a);this.s(b)};S.prototype.writeSplitFixed64=S.prototype.A;S.prototype.j=function(a){n(a==Math.floor(a));for(n(0<=a&&4294967296>a);127>>=7;this.a.push(a)};S.prototype.writeUnsignedVarint32=S.prototype.j;S.prototype.M=function(a){n(a==Math.floor(a));n(-2147483648<=a&&2147483648>a);if(0<=a)this.j(a);else{for(var b=0;9>b;b++)this.a.push(a&127|128),a>>=7;this.a.push(1)}};\nS.prototype.writeSignedVarint32=S.prototype.M;S.prototype.va=function(a){n(a==Math.floor(a));n(0<=a&&1.8446744073709552E19>a);A(a);this.l(y,z)};S.prototype.writeUnsignedVarint64=S.prototype.va;S.prototype.ua=function(a){n(a==Math.floor(a));n(-9223372036854775808<=a&&0x7fffffffffffffff>a);A(a);this.l(y,z)};S.prototype.writeSignedVarint64=S.prototype.ua;S.prototype.wa=function(a){n(a==Math.floor(a));n(-2147483648<=a&&2147483648>a);this.j((a<<1^a>>31)>>>0)};S.prototype.writeZigzagVarint32=S.prototype.wa;\nS.prototype.xa=function(a){n(a==Math.floor(a));n(-9223372036854775808<=a&&0x7fffffffffffffff>a);Ga(a);this.l(y,z)};S.prototype.writeZigzagVarint64=S.prototype.xa;S.prototype.Ta=function(a){this.W(H(a))};S.prototype.writeZigzagVarint64String=S.prototype.Ta;S.prototype.W=function(a){var b=this;C(a);Ja(y,z,function(c,d){b.l(c>>>0,d>>>0)})};S.prototype.writeZigzagVarintHash64=S.prototype.W;S.prototype.be=function(a){n(a==Math.floor(a));n(0<=a&&256>a);this.a.push(a>>>0&255)};S.prototype.writeUint8=S.prototype.be;\nS.prototype.ae=function(a){n(a==Math.floor(a));n(0<=a&&65536>a);this.a.push(a>>>0&255);this.a.push(a>>>8&255)};S.prototype.writeUint16=S.prototype.ae;S.prototype.s=function(a){n(a==Math.floor(a));n(0<=a&&4294967296>a);this.a.push(a>>>0&255);this.a.push(a>>>8&255);this.a.push(a>>>16&255);this.a.push(a>>>24&255)};S.prototype.writeUint32=S.prototype.s;S.prototype.V=function(a){n(a==Math.floor(a));n(0<=a&&1.8446744073709552E19>a);Fa(a);this.s(y);this.s(z)};S.prototype.writeUint64=S.prototype.V;\nS.prototype.Qc=function(a){n(a==Math.floor(a));n(-128<=a&&128>a);this.a.push(a>>>0&255)};S.prototype.writeInt8=S.prototype.Qc;S.prototype.Pc=function(a){n(a==Math.floor(a));n(-32768<=a&&32768>a);this.a.push(a>>>0&255);this.a.push(a>>>8&255)};S.prototype.writeInt16=S.prototype.Pc;S.prototype.S=function(a){n(a==Math.floor(a));n(-2147483648<=a&&2147483648>a);this.a.push(a>>>0&255);this.a.push(a>>>8&255);this.a.push(a>>>16&255);this.a.push(a>>>24&255)};S.prototype.writeInt32=S.prototype.S;\nS.prototype.T=function(a){n(a==Math.floor(a));n(-9223372036854775808<=a&&0x7fffffffffffffff>a);A(a);this.A(y,z)};S.prototype.writeInt64=S.prototype.T;S.prototype.ka=function(a){n(a==Math.floor(a));n(-9223372036854775808<=+a&&0x7fffffffffffffff>+a);C(H(a));this.A(y,z)};S.prototype.writeInt64String=S.prototype.ka;S.prototype.L=function(a){n(Infinity===a||-Infinity===a||isNaN(a)||-3.4028234663852886E38<=a&&3.4028234663852886E38>=a);Ha(a);this.s(y)};S.prototype.writeFloat=S.prototype.L;\nS.prototype.J=function(a){n(Infinity===a||-Infinity===a||isNaN(a)||-1.7976931348623157E308<=a&&1.7976931348623157E308>=a);Ia(a);this.s(y);this.s(z)};S.prototype.writeDouble=S.prototype.J;S.prototype.I=function(a){n(\"boolean\"===typeof a||\"number\"===typeof a);this.a.push(a?1:0)};S.prototype.writeBool=S.prototype.I;S.prototype.R=function(a){n(a==Math.floor(a));n(-2147483648<=a&&2147483648>a);this.M(a)};S.prototype.writeEnum=S.prototype.R;S.prototype.ja=function(a){this.a.push.apply(this.a,a)};\nS.prototype.writeBytes=S.prototype.ja;S.prototype.N=function(a){C(a);this.l(y,z)};S.prototype.writeVarintHash64=S.prototype.N;S.prototype.K=function(a){C(a);this.s(y);this.s(z)};S.prototype.writeFixedHash64=S.prototype.K;\nS.prototype.U=function(a){var b=this.a.length;ta(a);for(var c=0;cd)this.a.push(d);else if(2048>d)this.a.push(d>>6|192),this.a.push(d&63|128);else if(65536>d)if(55296<=d&&56319>=d&&c+1=f&&(d=1024*(d-55296)+f-56320+65536,this.a.push(d>>18|240),this.a.push(d>>12&63|128),this.a.push(d>>6&63|128),this.a.push(d&63|128),c++)}else this.a.push(d>>12|224),this.a.push(d>>6&63|128),this.a.push(d&63|128)}return this.a.length-\nb};S.prototype.writeString=S.prototype.U;function T(a,b){this.lo=a;this.hi=b}g(\"jspb.arith.UInt64\",T,void 0);T.prototype.cmp=function(a){return this.hi>>1|(this.hi&1)<<31)>>>0,this.hi>>>1>>>0)};T.prototype.rightShift=T.prototype.La;T.prototype.Da=function(){return new T(this.lo<<1>>>0,(this.hi<<1|this.lo>>>31)>>>0)};T.prototype.leftShift=T.prototype.Da;\nT.prototype.cb=function(){return!!(this.hi&2147483648)};T.prototype.msb=T.prototype.cb;T.prototype.Ob=function(){return!!(this.lo&1)};T.prototype.lsb=T.prototype.Ob;T.prototype.Ua=function(){return 0==this.lo&&0==this.hi};T.prototype.zero=T.prototype.Ua;T.prototype.add=function(a){return new T((this.lo+a.lo&4294967295)>>>0>>>0,((this.hi+a.hi&4294967295)>>>0)+(4294967296<=this.lo+a.lo?1:0)>>>0)};T.prototype.add=T.prototype.add;\nT.prototype.sub=function(a){return new T((this.lo-a.lo&4294967295)>>>0>>>0,((this.hi-a.hi&4294967295)>>>0)-(0>this.lo-a.lo?1:0)>>>0)};T.prototype.sub=T.prototype.sub;function rb(a,b){var c=a&65535;a>>>=16;var d=b&65535,f=b>>>16;b=c*d+65536*(c*f&65535)+65536*(a*d&65535);for(c=a*f+(c*f>>>16)+(a*d>>>16);4294967296<=b;)b-=4294967296,c+=1;return new T(b>>>0,c>>>0)}T.mul32x32=rb;T.prototype.eb=function(a){var b=rb(this.lo,a);a=rb(this.hi,a);a.hi=a.lo;a.lo=0;return b.add(a)};T.prototype.mul=T.prototype.eb;\nT.prototype.Xa=function(a){if(0==a)return[];var b=new T(0,0),c=new T(this.lo,this.hi);a=new T(a,0);for(var d=new T(1,0);!a.cb();)a=a.Da(),d=d.Da();for(;!d.Ua();)0>=a.cmp(c)&&(b=b.add(d),c=c.sub(a)),a=a.La(),d=d.La();return[b,c]};T.prototype.div=T.prototype.Xa;T.prototype.toString=function(){for(var a=\"\",b=this;!b.Ua();){b=b.Xa(10);var c=b[0];a=b[1].lo+a;b=c}\"\"==a&&(a=\"0\");return a};T.prototype.toString=T.prototype.toString;\nfunction U(a){for(var b=new T(0,0),c=new T(0,0),d=0;da[d]||\"9\">>0>>>0,((this.hi+a.hi&4294967295)>>>0)+(4294967296<=this.lo+a.lo?1:0)>>>0)};V.prototype.add=V.prototype.add;\nV.prototype.sub=function(a){return new V((this.lo-a.lo&4294967295)>>>0>>>0,((this.hi-a.hi&4294967295)>>>0)-(0>this.lo-a.lo?1:0)>>>0)};V.prototype.sub=V.prototype.sub;V.prototype.clone=function(){return new V(this.lo,this.hi)};V.prototype.clone=V.prototype.clone;V.prototype.toString=function(){var a=0!=(this.hi&2147483648),b=new T(this.lo,this.hi);a&&(b=(new T(0,0)).sub(b));return(a?\"-\":\"\")+b.toString()};V.prototype.toString=V.prototype.toString;\nfunction sb(a){var b=0>>=7,a.b++;b.push(c);a.b++}W.prototype.pb=function(a,b,c){tb(this,a.subarray(b,c))};W.prototype.writeSerializedMessage=W.prototype.pb;\nW.prototype.Pb=function(a,b,c){null!=a&&null!=b&&null!=c&&this.pb(a,b,c)};W.prototype.maybeWriteSerializedMessage=W.prototype.Pb;W.prototype.reset=function(){this.c=[];this.a.end();this.b=0;this.h=[]};W.prototype.reset=W.prototype.reset;W.prototype.ab=function(){n(0==this.h.length);for(var a=new Uint8Array(this.b+this.a.length()),b=this.c,c=b.length,d=0,f=0;fb),vb(this,a,b))};W.prototype.writeInt32=W.prototype.S;\nW.prototype.ob=function(a,b){null!=b&&(b=parseInt(b,10),n(-2147483648<=b&&2147483648>b),vb(this,a,b))};W.prototype.writeInt32String=W.prototype.ob;W.prototype.T=function(a,b){null!=b&&(n(-9223372036854775808<=b&&0x7fffffffffffffff>b),null!=b&&(Y(this,a,0),this.a.ua(b)))};W.prototype.writeInt64=W.prototype.T;W.prototype.ka=function(a,b){null!=b&&(b=sb(b),Y(this,a,0),this.a.l(b.lo,b.hi))};W.prototype.writeInt64String=W.prototype.ka;\nW.prototype.s=function(a,b){null!=b&&(n(0<=b&&4294967296>b),ub(this,a,b))};W.prototype.writeUint32=W.prototype.s;W.prototype.ub=function(a,b){null!=b&&(b=parseInt(b,10),n(0<=b&&4294967296>b),ub(this,a,b))};W.prototype.writeUint32String=W.prototype.ub;W.prototype.V=function(a,b){null!=b&&(n(0<=b&&1.8446744073709552E19>b),null!=b&&(Y(this,a,0),this.a.va(b)))};W.prototype.writeUint64=W.prototype.V;W.prototype.vb=function(a,b){null!=b&&(b=U(b),Y(this,a,0),this.a.l(b.lo,b.hi))};\nW.prototype.writeUint64String=W.prototype.vb;W.prototype.rb=function(a,b){null!=b&&(n(-2147483648<=b&&2147483648>b),null!=b&&(Y(this,a,0),this.a.wa(b)))};W.prototype.writeSint32=W.prototype.rb;W.prototype.sb=function(a,b){null!=b&&(n(-9223372036854775808<=b&&0x7fffffffffffffff>b),null!=b&&(Y(this,a,0),this.a.xa(b)))};W.prototype.writeSint64=W.prototype.sb;W.prototype.$d=function(a,b){null!=b&&null!=b&&(Y(this,a,0),this.a.W(b))};W.prototype.writeSintHash64=W.prototype.$d;\nW.prototype.Zd=function(a,b){null!=b&&null!=b&&(Y(this,a,0),this.a.Ta(b))};W.prototype.writeSint64String=W.prototype.Zd;W.prototype.Pa=function(a,b){null!=b&&(n(0<=b&&4294967296>b),Y(this,a,5),this.a.s(b))};W.prototype.writeFixed32=W.prototype.Pa;W.prototype.Qa=function(a,b){null!=b&&(n(0<=b&&1.8446744073709552E19>b),Y(this,a,1),this.a.V(b))};W.prototype.writeFixed64=W.prototype.Qa;W.prototype.nb=function(a,b){null!=b&&(b=U(b),Y(this,a,1),this.a.A(b.lo,b.hi))};W.prototype.writeFixed64String=W.prototype.nb;\nW.prototype.Ra=function(a,b){null!=b&&(n(-2147483648<=b&&2147483648>b),Y(this,a,5),this.a.S(b))};W.prototype.writeSfixed32=W.prototype.Ra;W.prototype.Sa=function(a,b){null!=b&&(n(-9223372036854775808<=b&&0x7fffffffffffffff>b),Y(this,a,1),this.a.T(b))};W.prototype.writeSfixed64=W.prototype.Sa;W.prototype.qb=function(a,b){null!=b&&(b=sb(b),Y(this,a,1),this.a.A(b.lo,b.hi))};W.prototype.writeSfixed64String=W.prototype.qb;W.prototype.L=function(a,b){null!=b&&(Y(this,a,5),this.a.L(b))};\nW.prototype.writeFloat=W.prototype.L;W.prototype.J=function(a,b){null!=b&&(Y(this,a,1),this.a.J(b))};W.prototype.writeDouble=W.prototype.J;W.prototype.I=function(a,b){null!=b&&(n(\"boolean\"===typeof b||\"number\"===typeof b),Y(this,a,0),this.a.I(b))};W.prototype.writeBool=W.prototype.I;W.prototype.R=function(a,b){null!=b&&(n(-2147483648<=b&&2147483648>b),Y(this,a,0),this.a.M(b))};W.prototype.writeEnum=W.prototype.R;W.prototype.U=function(a,b){null!=b&&(a=X(this,a),this.a.U(b),Z(this,a))};\nW.prototype.writeString=W.prototype.U;W.prototype.ja=function(a,b){null!=b&&(b=Ua(b),Y(this,a,2),this.a.j(b.length),tb(this,b))};W.prototype.writeBytes=W.prototype.ja;W.prototype.Rc=function(a,b,c){null!=b&&(a=X(this,a),c(b,this),Z(this,a))};W.prototype.writeMessage=W.prototype.Rc;W.prototype.Sc=function(a,b,c){null!=b&&(Y(this,1,3),Y(this,2,0),this.a.M(a),a=X(this,3),c(b,this),Z(this,a),Y(this,1,4))};W.prototype.writeMessageSet=W.prototype.Sc;\nW.prototype.Oc=function(a,b,c){null!=b&&(Y(this,a,3),c(b,this),Y(this,a,4))};W.prototype.writeGroup=W.prototype.Oc;W.prototype.K=function(a,b){null!=b&&(n(8==b.length),Y(this,a,1),this.a.K(b))};W.prototype.writeFixedHash64=W.prototype.K;W.prototype.N=function(a,b){null!=b&&(n(8==b.length),Y(this,a,0),this.a.N(b))};W.prototype.writeVarintHash64=W.prototype.N;W.prototype.A=function(a,b,c){Y(this,a,1);this.a.A(b,c)};W.prototype.writeSplitFixed64=W.prototype.A;\nW.prototype.l=function(a,b,c){Y(this,a,0);this.a.l(b,c)};W.prototype.writeSplitVarint64=W.prototype.l;W.prototype.tb=function(a,b,c){Y(this,a,0);var d=this.a;Ja(b,c,function(f,h){d.l(f>>>0,h>>>0)})};W.prototype.writeSplitZigzagVarint64=W.prototype.tb;W.prototype.Ed=function(a,b){if(null!=b)for(var c=0;c>>0,t>>>0)});Z(this,a)}};\nW.prototype.writePackedSplitZigzagVarint64=W.prototype.od;W.prototype.dd=function(a,b){if(null!=b&&b.length){a=X(this,a);for(var c=0;c, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.google.protobuf.Empty.prototype.toObject = function(opt_includeInstance) {\n return proto.google.protobuf.Empty.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.google.protobuf.Empty} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.google.protobuf.Empty.toObject = function(includeInstance, msg) {\n var f, obj = {\n\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.google.protobuf.Empty}\n */\nproto.google.protobuf.Empty.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.google.protobuf.Empty;\n return proto.google.protobuf.Empty.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.google.protobuf.Empty} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.google.protobuf.Empty}\n */\nproto.google.protobuf.Empty.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.google.protobuf.Empty.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.google.protobuf.Empty.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.google.protobuf.Empty} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.google.protobuf.Empty.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n};\n\n\ngoog.object.extend(exports, proto.google.protobuf);\n","// http://www.w3.org/TR/CSS21/grammar.html\n// https://github.com/visionmedia/css-parse/pull/49#issuecomment-30088027\nvar COMMENT_REGEX = /\\/\\*[^*]*\\*+([^/*][^*]*\\*+)*\\//g;\n\nvar NEWLINE_REGEX = /\\n/g;\nvar WHITESPACE_REGEX = /^\\s*/;\n\n// declaration\nvar PROPERTY_REGEX = /^(\\*?[-#/*\\\\\\w]+(\\[[0-9a-z_-]+\\])?)\\s*/;\nvar COLON_REGEX = /^:\\s*/;\nvar VALUE_REGEX = /^((?:'(?:\\\\'|.)*?'|\"(?:\\\\\"|.)*?\"|\\([^)]*?\\)|[^};])+)/;\nvar SEMICOLON_REGEX = /^[;\\s]*/;\n\n// https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String/Trim#Polyfill\nvar TRIM_REGEX = /^\\s+|\\s+$/g;\n\n// strings\nvar NEWLINE = '\\n';\nvar FORWARD_SLASH = '/';\nvar ASTERISK = '*';\nvar EMPTY_STRING = '';\n\n// types\nvar TYPE_COMMENT = 'comment';\nvar TYPE_DECLARATION = 'declaration';\n\n/**\n * @param {String} style\n * @param {Object} [options]\n * @return {Object[]}\n * @throws {TypeError}\n * @throws {Error}\n */\nmodule.exports = function (style, options) {\n if (typeof style !== 'string') {\n throw new TypeError('First argument must be a string');\n }\n\n if (!style) return [];\n\n options = options || {};\n\n /**\n * Positional.\n */\n var lineno = 1;\n var column = 1;\n\n /**\n * Update lineno and column based on `str`.\n *\n * @param {String} str\n */\n function updatePosition(str) {\n var lines = str.match(NEWLINE_REGEX);\n if (lines) lineno += lines.length;\n var i = str.lastIndexOf(NEWLINE);\n column = ~i ? str.length - i : column + str.length;\n }\n\n /**\n * Mark position and patch `node.position`.\n *\n * @return {Function}\n */\n function position() {\n var start = { line: lineno, column: column };\n return function (node) {\n node.position = new Position(start);\n whitespace();\n return node;\n };\n }\n\n /**\n * Store position information for a node.\n *\n * @constructor\n * @property {Object} start\n * @property {Object} end\n * @property {undefined|String} source\n */\n function Position(start) {\n this.start = start;\n this.end = { line: lineno, column: column };\n this.source = options.source;\n }\n\n /**\n * Non-enumerable source string.\n */\n Position.prototype.content = style;\n\n var errorsList = [];\n\n /**\n * Error `msg`.\n *\n * @param {String} msg\n * @throws {Error}\n */\n function error(msg) {\n var err = new Error(\n options.source + ':' + lineno + ':' + column + ': ' + msg\n );\n err.reason = msg;\n err.filename = options.source;\n err.line = lineno;\n err.column = column;\n err.source = style;\n\n if (options.silent) {\n errorsList.push(err);\n } else {\n throw err;\n }\n }\n\n /**\n * Match `re` and return captures.\n *\n * @param {RegExp} re\n * @return {undefined|Array}\n */\n function match(re) {\n var m = re.exec(style);\n if (!m) return;\n var str = m[0];\n updatePosition(str);\n style = style.slice(str.length);\n return m;\n }\n\n /**\n * Parse whitespace.\n */\n function whitespace() {\n match(WHITESPACE_REGEX);\n }\n\n /**\n * Parse comments.\n *\n * @param {Object[]} [rules]\n * @return {Object[]}\n */\n function comments(rules) {\n var c;\n rules = rules || [];\n while ((c = comment())) {\n if (c !== false) {\n rules.push(c);\n }\n }\n return rules;\n }\n\n /**\n * Parse comment.\n *\n * @return {Object}\n * @throws {Error}\n */\n function comment() {\n var pos = position();\n if (FORWARD_SLASH != style.charAt(0) || ASTERISK != style.charAt(1)) return;\n\n var i = 2;\n while (\n EMPTY_STRING != style.charAt(i) &&\n (ASTERISK != style.charAt(i) || FORWARD_SLASH != style.charAt(i + 1))\n ) {\n ++i;\n }\n i += 2;\n\n if (EMPTY_STRING === style.charAt(i - 1)) {\n return error('End of comment missing');\n }\n\n var str = style.slice(2, i - 2);\n column += 2;\n updatePosition(str);\n style = style.slice(i);\n column += 2;\n\n return pos({\n type: TYPE_COMMENT,\n comment: str\n });\n }\n\n /**\n * Parse declaration.\n *\n * @return {Object}\n * @throws {Error}\n */\n function declaration() {\n var pos = position();\n\n // prop\n var prop = match(PROPERTY_REGEX);\n if (!prop) return;\n comment();\n\n // :\n if (!match(COLON_REGEX)) return error(\"property missing ':'\");\n\n // val\n var val = match(VALUE_REGEX);\n\n var ret = pos({\n type: TYPE_DECLARATION,\n property: trim(prop[0].replace(COMMENT_REGEX, EMPTY_STRING)),\n value: val\n ? trim(val[0].replace(COMMENT_REGEX, EMPTY_STRING))\n : EMPTY_STRING\n });\n\n // ;\n match(SEMICOLON_REGEX);\n\n return ret;\n }\n\n /**\n * Parse declarations.\n *\n * @return {Object[]}\n */\n function declarations() {\n var decls = [];\n\n comments(decls);\n\n // declarations\n var decl;\n while ((decl = declaration())) {\n if (decl !== false) {\n decls.push(decl);\n comments(decls);\n }\n }\n\n return decls;\n }\n\n whitespace();\n return declarations();\n};\n\n/**\n * Trim `str`.\n *\n * @param {String} str\n * @return {String}\n */\nfunction trim(str) {\n return str ? str.replace(TRIM_REGEX, EMPTY_STRING) : EMPTY_STRING;\n}\n","\"use strict\";\nvar _global_process, _global_process1;\nmodule.exports = ((_global_process = global.process) == null ? void 0 : _global_process.env) && typeof ((_global_process1 = global.process) == null ? void 0 : _global_process1.env) === \"object\" ? global.process : require(\"next/dist/compiled/process\");\n\n//# sourceMappingURL=process.js.map","(function(){var e={229:function(e){var t=e.exports={};var r;var n;function defaultSetTimout(){throw new Error(\"setTimeout has not been defined\")}function defaultClearTimeout(){throw new Error(\"clearTimeout has not been defined\")}(function(){try{if(typeof setTimeout===\"function\"){r=setTimeout}else{r=defaultSetTimout}}catch(e){r=defaultSetTimout}try{if(typeof clearTimeout===\"function\"){n=clearTimeout}else{n=defaultClearTimeout}}catch(e){n=defaultClearTimeout}})();function runTimeout(e){if(r===setTimeout){return setTimeout(e,0)}if((r===defaultSetTimout||!r)&&setTimeout){r=setTimeout;return setTimeout(e,0)}try{return r(e,0)}catch(t){try{return r.call(null,e,0)}catch(t){return r.call(this,e,0)}}}function runClearTimeout(e){if(n===clearTimeout){return clearTimeout(e)}if((n===defaultClearTimeout||!n)&&clearTimeout){n=clearTimeout;return clearTimeout(e)}try{return n(e)}catch(t){try{return n.call(null,e)}catch(t){return n.call(this,e)}}}var i=[];var o=false;var u;var a=-1;function cleanUpNextTick(){if(!o||!u){return}o=false;if(u.length){i=u.concat(i)}else{a=-1}if(i.length){drainQueue()}}function drainQueue(){if(o){return}var e=runTimeout(cleanUpNextTick);o=true;var t=i.length;while(t){u=i;i=[];while(++a1){for(var r=1;r 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CommandOrchestrator = exports.getStateFromTextArea = exports.TextAreaTextApi = void 0;\nvar __1 = require(\"..\");\nvar InsertTextAtPosition_1 = require(\"../util/InsertTextAtPosition\");\nvar command_utils_1 = require(\"./command-utils\");\nvar defaults_1 = require(\"./default-commands/defaults\");\nvar TextAreaTextApi = /** @class */ (function () {\n function TextAreaTextApi(textAreaRef) {\n this.textAreaRef = textAreaRef;\n }\n TextAreaTextApi.prototype.replaceSelection = function (text) {\n var textArea = this.textAreaRef.current;\n InsertTextAtPosition_1.insertText(textArea, text);\n return getStateFromTextArea(textArea);\n };\n TextAreaTextApi.prototype.setSelectionRange = function (selection) {\n var textArea = this.textAreaRef.current;\n textArea.focus();\n textArea.selectionStart = selection.start;\n textArea.selectionEnd = selection.end;\n return getStateFromTextArea(textArea);\n };\n TextAreaTextApi.prototype.getState = function () {\n var textArea = this.textAreaRef.current;\n return getStateFromTextArea(textArea);\n };\n return TextAreaTextApi;\n}());\nexports.TextAreaTextApi = TextAreaTextApi;\nfunction getStateFromTextArea(textArea) {\n return {\n selection: {\n start: textArea.selectionStart,\n end: textArea.selectionEnd\n },\n text: textArea.value,\n selectedText: textArea.value.slice(textArea.selectionStart, textArea.selectionEnd)\n };\n}\nexports.getStateFromTextArea = getStateFromTextArea;\nvar CommandOrchestrator = /** @class */ (function () {\n function CommandOrchestrator(customCommands, textArea, l18n, pasteOptions) {\n var _this = this;\n this.getCommand = function (name) {\n var command = _this.commandMap[name];\n if (!command) {\n throw new Error(\"Cannot execute command. Command not found: \" + name);\n }\n return command;\n };\n /**\n * Tries to find a command the wants to handle the keyboard event.\n * If a command is found, it is executed and the function returns\n */\n this.handlePossibleKeyCommand = function (e) {\n for (var _i = 0, _a = _this.keyActivatedCommands; _i < _a.length; _i++) {\n var commandName = _a[_i];\n if (_this.getCommand(commandName).handleKeyCommand(e)) {\n _this.executeCommand(commandName).then(function (r) { });\n return true;\n }\n }\n return false;\n };\n if (pasteOptions && !pasteOptions.saveImage) {\n throw new Error(\"paste options are incomplete. saveImage are required \");\n }\n this.commandMap = __assign(__assign({}, __1.getDefaultCommandMap()), (customCommands || {}));\n this.pasteOptions = pasteOptions;\n this.keyActivatedCommands = command_utils_1.extractKeyActivatedCommands(customCommands);\n this.textAreaRef = textArea;\n this.textApi = new TextAreaTextApi(textArea);\n this.l18n = l18n;\n }\n CommandOrchestrator.prototype.executeCommand = function (commandName, context) {\n return __awaiter(this, void 0, void 0, function () {\n var command, result;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (this.isExecuting) {\n // The simplest thing to do is to ignore commands while\n // there is already a command executing. The alternative would be to queue commands\n // but there is no guarantee that the state after one command executes will still be compatible\n // with the next one. In fact, it is likely not to be.\n return [2 /*return*/];\n }\n this.isExecuting = true;\n command = this.commandMap[commandName];\n result = command.execute({\n initialState: getStateFromTextArea(this.textAreaRef.current),\n textApi: this.textApi,\n l18n: this.l18n,\n context: context\n });\n return [4 /*yield*/, result];\n case 1:\n _a.sent();\n this.isExecuting = false;\n return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Executes the paste command\n */\n CommandOrchestrator.prototype.executePasteCommand = function (event) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n if (this.pasteOptions) {\n return [2 /*return*/, this.executeCommand(this.pasteOptions.command || defaults_1.getDefaultSaveImageCommandName(), {\n pasteOptions: this.pasteOptions,\n event: event\n })];\n }\n return [2 /*return*/];\n });\n });\n };\n /**\n * Executes the drop command\n */\n CommandOrchestrator.prototype.executeDropCommand = function (event) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n if (this.pasteOptions) {\n return [2 /*return*/, this.executeCommand(this.pasteOptions.command || defaults_1.getDefaultSaveImageCommandName(), {\n pasteOptions: this.pasteOptions,\n event: event\n })];\n }\n return [2 /*return*/];\n });\n });\n };\n /**\n * Executes the \"select image\" command\n */\n CommandOrchestrator.prototype.executeSelectImageCommand = function (event) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n if (this.pasteOptions) {\n return [2 /*return*/, this.executeCommand(this.pasteOptions.command || defaults_1.getDefaultSaveImageCommandName(), {\n pasteOptions: this.pasteOptions,\n event: event\n })];\n }\n return [2 /*return*/];\n });\n });\n };\n /**\n * Returns a command by name\n * @param name\n */\n CommandOrchestrator.prototype.getCommandByName = function (name) {\n return this.commandMap[name];\n };\n return CommandOrchestrator;\n}());\nexports.CommandOrchestrator = CommandOrchestrator;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.extractKeyActivatedCommands = void 0;\n/**\n * Returns a flat array of commands that can be activated by the keyboard.\n * When keydowns happen, these commands 'handleKeyCommand' will be executed, in this order,\n * and the first that returns true will be executed.\n */\nfunction extractKeyActivatedCommands(commandMap) {\n var result = [];\n for (var command in commandMap) {\n if (commandMap.hasOwnProperty(command)) {\n if (commandMap[command].handleKeyCommand) {\n result.push(command);\n }\n }\n }\n return result;\n}\nexports.extractKeyActivatedCommands = extractKeyActivatedCommands;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.boldCommand = void 0;\nvar MarkdownUtil_1 = require(\"../../util/MarkdownUtil\");\nexports.boldCommand = {\n buttonProps: { \"aria-label\": \"Add bold text\" },\n execute: function (_a) {\n var initialState = _a.initialState, textApi = _a.textApi;\n // Adjust the selection to encompass the whole word if the caret is inside one\n var newSelectionRange = MarkdownUtil_1.selectWord({\n text: initialState.text,\n selection: initialState.selection\n });\n var state1 = textApi.setSelectionRange(newSelectionRange);\n // Replaces the current selection with the bold mark up\n var state2 = textApi.replaceSelection(\"**\" + state1.selectedText + \"**\");\n // Adjust the selection to not contain the **\n textApi.setSelectionRange({\n start: state2.selection.end - 2 - state1.selectedText.length,\n end: state2.selection.end - 2\n });\n },\n handleKeyCommand: function (e) { return (e.ctrlKey || e.metaKey) && e.key == \"b\"; }\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.codeCommand = void 0;\nvar MarkdownUtil_1 = require(\"../../util/MarkdownUtil\");\nexports.codeCommand = {\n buttonProps: { \"aria-label\": \"Insert code\" },\n execute: function (_a) {\n var initialState = _a.initialState, textApi = _a.textApi;\n // Adjust the selection to encompass the whole word if the caret is inside one\n var newSelectionRange = MarkdownUtil_1.selectWord({\n text: initialState.text,\n selection: initialState.selection\n });\n var state1 = textApi.setSelectionRange(newSelectionRange);\n // when there's no breaking line\n if (state1.selectedText.indexOf(\"\\n\") === -1) {\n textApi.replaceSelection(\"`\" + state1.selectedText + \"`\");\n // Adjust the selection to not contain the **\n var selectionStart_1 = state1.selection.start + 1;\n var selectionEnd_1 = selectionStart_1 + state1.selectedText.length;\n textApi.setSelectionRange({\n start: selectionStart_1,\n end: selectionEnd_1\n });\n return;\n }\n var breaksBeforeCount = MarkdownUtil_1.getBreaksNeededForEmptyLineBefore(state1.text, state1.selection.start);\n var breaksBefore = Array(breaksBeforeCount + 1).join(\"\\n\");\n var breaksAfterCount = MarkdownUtil_1.getBreaksNeededForEmptyLineAfter(state1.text, state1.selection.end);\n var breaksAfter = Array(breaksAfterCount + 1).join(\"\\n\");\n textApi.replaceSelection(breaksBefore + \"```\\n\" + state1.selectedText + \"\\n```\" + breaksAfter);\n var selectionStart = state1.selection.start + breaksBeforeCount + 4;\n var selectionEnd = selectionStart + state1.selectedText.length;\n textApi.setSelectionRange({\n start: selectionStart,\n end: selectionEnd\n });\n }\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getDefaultSaveImageCommandName = exports.getDefaultCommandMap = exports.getDefaultToolbarCommands = void 0;\nvar headerCommand_1 = require(\"./headerCommand\");\nvar boldCommand_1 = require(\"./boldCommand\");\nvar italicCommand_1 = require(\"./italicCommand\");\nvar strikeThroughCommand_1 = require(\"./strikeThroughCommand\");\nvar linkCommand_1 = require(\"./linkCommand\");\nvar quoteCommand_1 = require(\"./quoteCommand\");\nvar codeCommand_1 = require(\"./codeCommand\");\nvar listCommands_1 = require(\"./listCommands\");\nvar imageCommand_1 = require(\"./imageCommand\");\nvar save_image_command_1 = require(\"./save-image-command\");\nfunction getDefaultToolbarCommands() {\n return [\n [\"header\", \"bold\", \"italic\", \"strikethrough\"],\n [\"link\", \"quote\", \"code\", \"image\"],\n [\"unordered-list\", \"ordered-list\", \"checked-list\"]\n ];\n}\nexports.getDefaultToolbarCommands = getDefaultToolbarCommands;\nfunction getDefaultCommandMap() {\n return {\n header: headerCommand_1.headerCommand,\n bold: boldCommand_1.boldCommand,\n italic: italicCommand_1.italicCommand,\n strikethrough: strikeThroughCommand_1.strikeThroughCommand,\n link: linkCommand_1.linkCommand,\n quote: quoteCommand_1.quoteCommand,\n code: codeCommand_1.codeCommand,\n image: imageCommand_1.imageCommand,\n \"unordered-list\": listCommands_1.unorderedListCommand,\n \"ordered-list\": listCommands_1.orderedListCommand,\n \"checked-list\": listCommands_1.checkedListCommand,\n \"save-image\": save_image_command_1.saveImageCommand\n };\n}\nexports.getDefaultCommandMap = getDefaultCommandMap;\nfunction getDefaultSaveImageCommandName() {\n return \"save-image\";\n}\nexports.getDefaultSaveImageCommandName = getDefaultSaveImageCommandName;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.headerCommand = void 0;\nvar MarkdownUtil_1 = require(\"../../util/MarkdownUtil\");\nfunction setHeader(initialState, api, prefix) {\n // Adjust the selection to encompass the whole word if the caret is inside one\n var newSelectionRange = MarkdownUtil_1.selectWord({\n text: initialState.text,\n selection: initialState.selection\n });\n var state1 = api.setSelectionRange(newSelectionRange);\n // Add the prefix to the selection\n var state2 = api.replaceSelection(\"\" + prefix + state1.selectedText);\n // Adjust the selection to not contain the prefix\n api.setSelectionRange({\n start: state2.selection.end - state1.selectedText.length,\n end: state2.selection.end\n });\n}\nexports.headerCommand = {\n buttonProps: { \"aria-label\": \"Add header\" },\n execute: function (_a) {\n var initialState = _a.initialState, textApi = _a.textApi;\n setHeader(initialState, textApi, \"### \");\n }\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.imageCommand = void 0;\nvar MarkdownUtil_1 = require(\"../../util/MarkdownUtil\");\nexports.imageCommand = {\n buttonProps: { \"aria-label\": \"Add image\" },\n execute: function (_a) {\n var initialState = _a.initialState, textApi = _a.textApi;\n // Replaces the current selection with the whole word selected\n var state1 = textApi.setSelectionRange(MarkdownUtil_1.selectWord({\n text: initialState.text,\n selection: initialState.selection\n }));\n // Replaces the current selection with the image\n var imageTemplate = state1.selectedText || \"https://example.com/your-image.png\";\n textApi.replaceSelection(\"![](\" + imageTemplate + \")\");\n // Adjust the selection to not contain the **\n textApi.setSelectionRange({\n start: state1.selection.start + 4,\n end: state1.selection.start + 4 + imageTemplate.length\n });\n }\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.italicCommand = void 0;\nvar MarkdownUtil_1 = require(\"../../util/MarkdownUtil\");\nexports.italicCommand = {\n buttonProps: { \"aria-label\": \"Add italic text\" },\n execute: function (_a) {\n var initialState = _a.initialState, textApi = _a.textApi;\n // Adjust the selection to encompass the whole word if the caret is inside one\n var newSelectionRange = MarkdownUtil_1.selectWord({\n text: initialState.text,\n selection: initialState.selection\n });\n var state1 = textApi.setSelectionRange(newSelectionRange);\n // Replaces the current selection with the italic mark up\n var state2 = textApi.replaceSelection(\"*\" + state1.selectedText + \"*\");\n // Adjust the selection to not contain the *\n textApi.setSelectionRange({\n start: state2.selection.end - 1 - state1.selectedText.length,\n end: state2.selection.end - 1\n });\n },\n handleKeyCommand: function (e) { return (e.ctrlKey || e.metaKey) && e.key == \"i\"; }\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.linkCommand = void 0;\nvar MarkdownUtil_1 = require(\"../../util/MarkdownUtil\");\nexports.linkCommand = {\n buttonProps: { \"aria-label\": \"Add a link\" },\n execute: function (_a) {\n var initialState = _a.initialState, textApi = _a.textApi;\n // Adjust the selection to encompass the whole word if the caret is inside one\n var newSelectionRange = MarkdownUtil_1.selectWord({\n text: initialState.text,\n selection: initialState.selection\n });\n var state1 = textApi.setSelectionRange(newSelectionRange);\n // Replaces the current selection with the bold mark up\n var state2 = textApi.replaceSelection(\"[\" + state1.selectedText + \"](url)\");\n // Adjust the selection to not contain the **\n textApi.setSelectionRange({\n start: state2.selection.end - 6 - state1.selectedText.length,\n end: state2.selection.end - 6\n });\n },\n handleKeyCommand: function (e) { return (e.ctrlKey || e.metaKey) && e.key == \"k\"; }\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.checkedListCommand = exports.orderedListCommand = exports.unorderedListCommand = exports.makeList = exports.insertBeforeEachLine = void 0;\nvar MarkdownUtil_1 = require(\"../../util/MarkdownUtil\");\n/**\n * Inserts insertionString before each line\n */\nfunction insertBeforeEachLine(selectedText, insertBefore) {\n var lines = selectedText.split(/\\n/);\n var insertionLength = 0;\n var modifiedText = lines\n .map(function (item, index) {\n if (typeof insertBefore === \"string\") {\n insertionLength += insertBefore.length;\n return insertBefore + item;\n }\n else if (typeof insertBefore === \"function\") {\n var insertionResult = insertBefore(item, index);\n insertionLength += insertionResult.length;\n return insertBefore(item, index) + item;\n }\n throw Error(\"insertion is expected to be either a string or a function\");\n })\n .join(\"\\n\");\n return { modifiedText: modifiedText, insertionLength: insertionLength };\n}\nexports.insertBeforeEachLine = insertBeforeEachLine;\nvar makeList = function (state0, api, insertBefore) {\n // Adjust the selection to encompass the whole word if the caret is inside one\n var newSelectionRange = MarkdownUtil_1.selectWord({\n text: state0.text,\n selection: state0.selection\n });\n var state1 = api.setSelectionRange(newSelectionRange);\n var breaksBeforeCount = MarkdownUtil_1.getBreaksNeededForEmptyLineBefore(state1.text, state1.selection.start);\n var breaksBefore = Array(breaksBeforeCount + 1).join(\"\\n\");\n var breaksAfterCount = MarkdownUtil_1.getBreaksNeededForEmptyLineAfter(state1.text, state1.selection.end);\n var breaksAfter = Array(breaksAfterCount + 1).join(\"\\n\");\n var modifiedText = insertBeforeEachLine(state1.selectedText, insertBefore);\n api.replaceSelection(\"\" + breaksBefore + modifiedText.modifiedText + breaksAfter);\n // Specifically when the text has only one line, we can exclude the \"- \", for example, from the selection\n var oneLinerOffset = state1.selectedText.indexOf(\"\\n\") === -1 ? modifiedText.insertionLength : 0;\n var selectionStart = state1.selection.start + breaksBeforeCount + oneLinerOffset;\n var selectionEnd = selectionStart + modifiedText.modifiedText.length - oneLinerOffset;\n // Adjust the selection to not contain the **\n api.setSelectionRange({\n start: selectionStart,\n end: selectionEnd\n });\n};\nexports.makeList = makeList;\nexports.unorderedListCommand = {\n buttonProps: { \"aria-label\": \"Add unordered list\" },\n execute: function (_a) {\n var initialState = _a.initialState, textApi = _a.textApi;\n exports.makeList(initialState, textApi, \"- \");\n }\n};\nexports.orderedListCommand = {\n buttonProps: { \"aria-label\": \"Add ordered list\" },\n execute: function (_a) {\n var initialState = _a.initialState, textApi = _a.textApi;\n exports.makeList(initialState, textApi, function (item, index) { return index + 1 + \". \"; });\n }\n};\nexports.checkedListCommand = {\n buttonProps: { \"aria-label\": \"Add checked list\" },\n execute: function (_a) {\n var initialState = _a.initialState, textApi = _a.textApi;\n exports.makeList(initialState, textApi, function (item, index) { return \"- [ ] \"; });\n }\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.quoteCommand = void 0;\nvar MarkdownUtil_1 = require(\"../../util/MarkdownUtil\");\nexports.quoteCommand = {\n buttonProps: { \"aria-label\": \"Insert a quote\" },\n execute: function (_a) {\n var initialState = _a.initialState, textApi = _a.textApi;\n // Adjust the selection to encompass the whole word if the caret is inside one\n var newSelectionRange = MarkdownUtil_1.selectWord({\n text: initialState.text,\n selection: initialState.selection\n });\n var state1 = textApi.setSelectionRange(newSelectionRange);\n var breaksBeforeCount = MarkdownUtil_1.getBreaksNeededForEmptyLineBefore(state1.text, state1.selection.start);\n var breaksBefore = Array(breaksBeforeCount + 1).join(\"\\n\");\n var breaksAfterCount = MarkdownUtil_1.getBreaksNeededForEmptyLineAfter(state1.text, state1.selection.end);\n var breaksAfter = Array(breaksAfterCount + 1).join(\"\\n\");\n // Replaces the current selection with the quote mark up\n textApi.replaceSelection(breaksBefore + \"> \" + state1.selectedText + breaksAfter);\n var selectionStart = state1.selection.start + breaksBeforeCount + 2;\n var selectionEnd = selectionStart + state1.selectedText.length;\n textApi.setSelectionRange({\n start: selectionStart,\n end: selectionEnd\n });\n }\n};\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.saveImageCommand = void 0;\nvar files_1 = require(\"../../util/files\");\nvar MarkdownUtil_1 = require(\"../../util/MarkdownUtil\");\nfunction dataTransferToArray(items) {\n var result = [];\n for (var index in items) {\n var item = items[index];\n if (item.kind === \"file\") {\n result.push(item.getAsFile());\n }\n }\n return result;\n}\nfunction fileListToArray(list) {\n var result = [];\n for (var i = 0; i < list.length; i++) {\n result.push(list[0]);\n }\n return result;\n}\nfunction filterItems(items, _a) {\n var multiple = _a.multiple, accept = _a.accept;\n var filteredItems = items;\n if (!multiple) {\n filteredItems = filteredItems.slice(0, 1);\n }\n if (accept) {\n //https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/file#unique_file_type_specifiers\n var acceptedTypes = accept.split(\",\");\n var fileExtensions_1 = new Set(acceptedTypes.filter(function (t) { return /^\\.\\w+/.test(t); }).map(function (t) { return t.split(\".\")[1]; }));\n var mimeTypes_1 = new Set(acceptedTypes.filter(function (t) { return /^[-\\w.]+\\/[-\\w.]+$/.test(t); }));\n var anyTypes_1 = new Set(acceptedTypes\n .filter(function (t) { return /(audio|video|image)\\/\\*/.test(t); })\n .map(function (t) { return t.split(\"/\")[0]; }));\n filteredItems = filteredItems.filter(function (f) {\n return fileExtensions_1.has(f.name.split(\".\")[1]) ||\n mimeTypes_1.has(f.type) ||\n anyTypes_1.has(f.type.split(\"/\")[0]);\n });\n }\n return filteredItems;\n}\nexports.saveImageCommand = {\n execute: function (_a) {\n var initialState = _a.initialState, textApi = _a.textApi, context = _a.context, l18n = _a.l18n;\n return __awaiter(this, void 0, void 0, function () {\n var pasteContext, event, _b, saveImage, multiple, accept, items, filteredItems, _c, _d, _i, index, initialState_1, breaksBeforeCount, breaksBefore, placeHolder, blob, blobContents, savingImage, imageUrl, newState, uploadingText, realImageMarkdown, selectionDelta;\n return __generator(this, function (_e) {\n switch (_e.label) {\n case 0:\n if (!context) {\n throw new Error(\"wrong context\");\n }\n pasteContext = context;\n event = pasteContext.event, _b = pasteContext.pasteOptions, saveImage = _b.saveImage, multiple = _b.multiple, accept = _b.accept;\n items = isPasteEvent(context)\n ? dataTransferToArray(event.clipboardData.items)\n : isDragEvent(context)\n ? dataTransferToArray(event.dataTransfer.items)\n : fileListToArray(event.target.files);\n filteredItems = filterItems(items, { multiple: multiple, accept: accept });\n _c = [];\n for (_d in filteredItems)\n _c.push(_d);\n _i = 0;\n _e.label = 1;\n case 1:\n if (!(_i < _c.length)) return [3 /*break*/, 5];\n index = _c[_i];\n initialState_1 = textApi.getState();\n breaksBeforeCount = MarkdownUtil_1.getBreaksNeededForEmptyLineBefore(initialState_1.text, initialState_1.selection.start);\n breaksBefore = Array(breaksBeforeCount + 1).join(\"\\n\");\n placeHolder = breaksBefore + \"![\" + l18n.uploadingImage + \"]()\";\n textApi.replaceSelection(placeHolder);\n blob = items[index];\n return [4 /*yield*/, files_1.readFileAsync(blob)];\n case 2:\n blobContents = _e.sent();\n savingImage = saveImage(blobContents, blob);\n return [4 /*yield*/, savingImage.next()];\n case 3:\n imageUrl = (_e.sent()).value;\n newState = textApi.getState();\n uploadingText = newState.text.substr(initialState_1.selection.start, placeHolder.length);\n if (uploadingText === placeHolder) {\n // In this case, the user did not touch the placeholder. Good user\n // we will replace it with the real one that came from the server\n textApi.setSelectionRange({\n start: initialState_1.selection.start,\n end: initialState_1.selection.start + placeHolder.length\n });\n realImageMarkdown = imageUrl\n ? breaksBefore + \"![image](\" + imageUrl + \")\"\n : \"\";\n selectionDelta = realImageMarkdown.length - placeHolder.length;\n textApi.replaceSelection(realImageMarkdown);\n textApi.setSelectionRange({\n start: newState.selection.start + selectionDelta,\n end: newState.selection.end + selectionDelta\n });\n }\n _e.label = 4;\n case 4:\n _i++;\n return [3 /*break*/, 1];\n case 5: return [2 /*return*/];\n }\n });\n });\n }\n};\nfunction isPasteEvent(context) {\n return (context.event\n .clipboardData !== undefined);\n}\nfunction isDragEvent(context) {\n return (context.event.dataTransfer !==\n undefined);\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.strikeThroughCommand = void 0;\nvar MarkdownUtil_1 = require(\"../../util/MarkdownUtil\");\nexports.strikeThroughCommand = {\n buttonProps: { \"aria-label\": \"Add strikethrough text\" },\n execute: function (_a) {\n var initialState = _a.initialState, textApi = _a.textApi;\n // Adjust the selection to encompass the whole word if the caret is inside one\n var newSelectionRange = MarkdownUtil_1.selectWord({\n text: initialState.text,\n selection: initialState.selection\n });\n var state1 = textApi.setSelectionRange(newSelectionRange);\n // Replaces the current selection with the strikethrough mark up\n var state2 = textApi.replaceSelection(\"~~\" + state1.selectedText + \"~~\");\n // Adjust the selection to not contain the ~~\n textApi.setSelectionRange({\n start: state2.selection.end - 2 - state1.selectedText.length,\n end: state2.selection.end - 2\n });\n }\n};\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Preview = void 0;\nvar React = require(\"react\");\nvar ClassNames_1 = require(\"../util/ClassNames\");\nvar Preview = /** @class */ (function (_super) {\n __extends(Preview, _super);\n function Preview(props) {\n var _this = _super.call(this, props) || this;\n _this.state = {\n loading: true\n };\n return _this;\n }\n Preview.prototype.componentDidMount = function () {\n this.generatePreview();\n };\n Preview.prototype.componentDidUpdate = function (prevProps, prevState) {\n if (this.props.markdown !== prevProps.markdown) {\n this.generatePreview();\n }\n };\n Preview.prototype.generatePreview = function () {\n var _this = this;\n var _a = this.props, markdown = _a.markdown, generateMarkdownPreview = _a.generateMarkdownPreview;\n generateMarkdownPreview(markdown).then(function (preview) {\n _this.setState({\n preview: preview,\n loading: false\n });\n });\n };\n Preview.prototype.render = function () {\n var _a = this.props, classes = _a.classes, minHeight = _a.minHeight, loadingPreview = _a.loadingPreview, refObject = _a.refObject, heightUnits = _a.heightUnits;\n var _b = this.state, preview = _b.preview, loading = _b.loading;\n var finalHtml = loading ? loadingPreview : preview;\n var content;\n if (typeof finalHtml === \"string\") {\n content = (React.createElement(\"div\", { className: \"mde-preview-content\", dangerouslySetInnerHTML: { __html: finalHtml || \"

 

\" }, ref: refObject }));\n }\n else {\n content = React.createElement(\"div\", { className: \"mde-preview-content\" }, finalHtml);\n }\n var minHeightVal = minHeight && heightUnits ? minHeight + 10 + heightUnits : minHeight + 10;\n return (React.createElement(\"div\", { className: ClassNames_1.classNames(\"mde-preview\", classes, { loading: loading }), style: { minHeight: minHeightVal }, \"data-testid\": \"mde-preview\" }, content));\n };\n return Preview;\n}(React.Component));\nexports.Preview = Preview;\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ReactMde = void 0;\nvar React = require(\"react\");\nvar _1 = require(\".\");\nvar defaults_1 = require(\"../commands/default-commands/defaults\");\nvar react_mde_en_1 = require(\"../l18n/react-mde.en\");\nvar icons_1 = require(\"../icons\");\nvar ClassNames_1 = require(\"../util/ClassNames\");\nvar command_orchestrator_1 = require(\"../commands/command-orchestrator\");\nvar pasteOptionDefaults = {\n accept: \"image/*\",\n multiple: false\n};\nvar ReactMde = /** @class */ (function (_super) {\n __extends(ReactMde, _super);\n function ReactMde(props) {\n var _a;\n var _this = _super.call(this, props) || this;\n _this.handleTextChange = function (value) {\n var onChange = _this.props.onChange;\n onChange(value);\n };\n _this.handlePaste = function (event) { return __awaiter(_this, void 0, void 0, function () {\n var paste;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n paste = this.props.paste;\n if (!paste || !paste.saveImage) {\n return [2 /*return*/];\n }\n return [4 /*yield*/, this.commandOrchestrator.executePasteCommand(event)];\n case 1:\n _a.sent();\n return [2 /*return*/];\n }\n });\n }); };\n _this.handleDrop = function (event) { return __awaiter(_this, void 0, void 0, function () {\n var paste;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n paste = this.props.paste;\n if (!paste || !paste.saveImage) {\n return [2 /*return*/];\n }\n return [4 /*yield*/, this.commandOrchestrator.executeDropCommand(event)];\n case 1:\n _a.sent();\n return [2 /*return*/];\n }\n });\n }); };\n _this.handleImageSelection = function (event) { return __awaiter(_this, void 0, void 0, function () {\n var paste;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n paste = this.props.paste;\n if (!paste || !paste.saveImage) {\n return [2 /*return*/];\n }\n return [4 /*yield*/, this.commandOrchestrator.executeSelectImageCommand(event)];\n case 1:\n _a.sent();\n return [2 /*return*/];\n }\n });\n }); };\n _this.handleTabChange = function (newTab) {\n var onTabChange = _this.props.onTabChange;\n onTabChange(newTab);\n };\n _this.handleCommand = function (commandName) { return __awaiter(_this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.commandOrchestrator.executeCommand(commandName)];\n case 1:\n _a.sent();\n return [2 /*return*/];\n }\n });\n }); };\n _this.finalRefs = __assign({}, (props.refs || {}));\n if (!_this.finalRefs.textarea) {\n _this.finalRefs.textarea = React.createRef();\n }\n if (!_this.finalRefs.preview) {\n _this.finalRefs.preview = React.createRef();\n }\n _this.commandOrchestrator = new command_orchestrator_1.CommandOrchestrator(_this.props.commands, _this.finalRefs.textarea, _this.props.l18n, _this.props.paste\n ? __assign(__assign({}, pasteOptionDefaults), _this.props.paste) : undefined);\n var minEditorHeight = Math.min(props.maxEditorHeight, props.minEditorHeight);\n _this.state = {\n editorHeight: (_a = props.initialEditorHeight) !== null && _a !== void 0 ? _a : minEditorHeight\n };\n return _this;\n }\n ReactMde.prototype.render = function () {\n var _this = this;\n var _a, _b;\n var _c = this.props, getIcon = _c.getIcon, toolbarCommands = _c.toolbarCommands, classes = _c.classes, loadingPreview = _c.loadingPreview, readOnly = _c.readOnly, disablePreview = _c.disablePreview, value = _c.value, l18n = _c.l18n, minPreviewHeight = _c.minPreviewHeight, heightUnits = _c.heightUnits, childProps = _c.childProps, selectedTab = _c.selectedTab, generateMarkdownPreview = _c.generateMarkdownPreview, loadSuggestions = _c.loadSuggestions, suggestionTriggerCharacters = _c.suggestionTriggerCharacters, textAreaComponent = _c.textAreaComponent;\n var finalChildProps = childProps || {};\n var toolbarButtons = toolbarCommands.map(function (group) {\n return group.map(function (commandName) {\n var command = _this.commandOrchestrator.getCommand(commandName);\n return {\n commandName: commandName,\n buttonContent: command.icon\n ? command.icon(getIcon)\n : getIcon(commandName),\n buttonProps: command.buttonProps,\n buttonComponentClass: command.buttonComponentClass\n };\n });\n });\n return (React.createElement(\"div\", { className: ClassNames_1.classNames(\"react-mde\", \"react-mde-tabbed-layout\", classes === null || classes === void 0 ? void 0 : classes.reactMde) },\n React.createElement(_1.Toolbar, { classes: classes === null || classes === void 0 ? void 0 : classes.toolbar, buttons: toolbarButtons, onCommand: this.handleCommand, onTabChange: this.handleTabChange, tab: selectedTab, readOnly: readOnly, disablePreview: disablePreview, l18n: l18n, buttonProps: finalChildProps.commandButtons, writeButtonProps: finalChildProps.writeButton, previewButtonProps: finalChildProps.previewButton }),\n React.createElement(\"div\", { className: ClassNames_1.classNames({ invisible: selectedTab !== \"write\" }) },\n React.createElement(_1.TextArea, { classes: classes === null || classes === void 0 ? void 0 : classes.textArea, suggestionsDropdownClasses: classes === null || classes === void 0 ? void 0 : classes.suggestionsDropdown, suggestionsAutoplace: this.props.suggestionsAutoplace, refObject: this.finalRefs.textarea, onChange: this.handleTextChange, onPaste: this.handlePaste, onDrop: this.handleDrop, readOnly: readOnly, textAreaComponent: textAreaComponent, textAreaProps: childProps && childProps.textArea, height: this.state.editorHeight, heightUnits: this.props.heightUnits, value: value, suggestionTriggerCharacters: suggestionTriggerCharacters, loadSuggestions: loadSuggestions, onPossibleKeyCommand: this.commandOrchestrator.handlePossibleKeyCommand }),\n this.props.paste && (React.createElement(\"label\", { className: ClassNames_1.classNames(\"image-tip\") },\n React.createElement(\"input\", { className: ClassNames_1.classNames(\"image-input\"), type: \"file\", accept: (_a = this.props.paste.accept) !== null && _a !== void 0 ? _a : pasteOptionDefaults.accept, multiple: (_b = this.props.paste.multiple) !== null && _b !== void 0 ? _b : pasteOptionDefaults.multiple, onChange: this.handleImageSelection }),\n React.createElement(\"span\", null, l18n.pasteDropSelect)))),\n selectedTab !== \"write\" && (React.createElement(_1.Preview, { classes: classes === null || classes === void 0 ? void 0 : classes.preview, refObject: this.finalRefs.preview, loadingPreview: loadingPreview, minHeight: minPreviewHeight, heightUnits: heightUnits, generateMarkdownPreview: generateMarkdownPreview, markdown: value }))));\n };\n ReactMde.defaultProps = {\n commands: defaults_1.getDefaultCommandMap(),\n toolbarCommands: defaults_1.getDefaultToolbarCommands(),\n getIcon: function (name) { return React.createElement(icons_1.SvgIcon, { icon: name }); },\n readOnly: false,\n l18n: react_mde_en_1.enL18n,\n minEditorHeight: 200,\n maxEditorHeight: 500,\n minPreviewHeight: 200,\n heightUnits: \"px\",\n selectedTab: \"write\",\n disablePreview: false,\n suggestionTriggerCharacters: [\"@\"],\n suggestionsAutoplace: false\n };\n return ReactMde;\n}(React.Component));\nexports.ReactMde = ReactMde;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SuggestionsDropdown = void 0;\nvar React = require(\"react\");\nvar ClassNames_1 = require(\"../util/ClassNames\");\nvar SuggestionsDropdown = function (_a) {\n var classes = _a.classes, suggestions = _a.suggestions, caret = _a.caret, onSuggestionSelected = _a.onSuggestionSelected, suggestionsAutoplace = _a.suggestionsAutoplace, focusIndex = _a.focusIndex, textAreaRef = _a.textAreaRef;\n var handleSuggestionClick = function (event) {\n event.preventDefault();\n var index = parseInt(event.currentTarget.attributes[\"data-index\"].value);\n onSuggestionSelected(index);\n };\n var handleMouseDown = function (event) { return event.preventDefault(); };\n var vw = Math.max(document.documentElement.clientWidth || 0, window.innerWidth || 0);\n var vh = Math.max(document.documentElement.clientHeight || 0, window.innerHeight || 0);\n var left = caret.left - textAreaRef.current.scrollLeft;\n var top = caret.top - textAreaRef.current.scrollTop;\n var style = {};\n if (suggestionsAutoplace &&\n top + textAreaRef.current.getBoundingClientRect().top > vh / 2)\n style.bottom = textAreaRef.current.offsetHeight - top;\n else\n style.top = top;\n if (suggestionsAutoplace &&\n left + textAreaRef.current.getBoundingClientRect().left > vw / 2)\n style.right = textAreaRef.current.offsetWidth - left;\n else\n style.left = left;\n return (React.createElement(\"ul\", { className: ClassNames_1.classNames(\"mde-suggestions\", classes), style: style }, suggestions.map(function (s, i) { return (React.createElement(\"li\", { onClick: handleSuggestionClick, onMouseDown: handleMouseDown, key: i, \"aria-selected\": focusIndex === i ? \"true\" : \"false\", \"data-index\": \"\" + i }, s.preview)); })));\n};\nexports.SuggestionsDropdown = SuggestionsDropdown;\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TextArea = void 0;\nvar React = require(\"react\");\nvar ClassNames_1 = require(\"../util/ClassNames\");\nvar TextAreaCaretPosition_1 = require(\"../util/TextAreaCaretPosition\");\nvar InsertTextAtPosition_1 = require(\"../util/InsertTextAtPosition\");\nvar Math_1 = require(\"../util/Math\");\nvar SuggestionsDropdown_1 = require(\"./SuggestionsDropdown\");\nvar TextArea = /** @class */ (function (_super) {\n __extends(TextArea, _super);\n function TextArea(props) {\n var _this = _super.call(this, props) || this;\n _this.currentLoadSuggestionsPromise = Promise.resolve(undefined);\n /**\n * suggestionsPromiseIndex exists as a means to cancel what happens when the suggestions promise finishes loading.\n *\n * When the user is searching for suggestions, there is a promise that, when resolved, causes a re-render.\n * However, in case there is another promise to be resolved after the current one, it does not make sense to re-render\n * only to re-render again after the next one is complete.\n *\n * When there is a promise loading and the user cancels the suggestion, you don't want the status to go back to \"active\"\n * when the promise resolves.\n *\n * suggestionsPromiseIndex increments every time the mentions query\n */\n _this.suggestionsPromiseIndex = 0;\n _this.getTextArea = function () {\n return _this.props.refObject.current;\n };\n _this.handleOnChange = function (event) {\n var onChange = _this.props.onChange;\n onChange(event.target.value);\n };\n _this.handleBlur = function () {\n var mention = _this.state.mention;\n if (mention) {\n _this.setState({ mention: { status: \"inactive\", suggestions: [] } });\n }\n };\n _this.startLoadingSuggestions = function (text) {\n var promiseIndex = ++_this.suggestionsPromiseIndex;\n var loadSuggestions = _this.props.loadSuggestions;\n _this.currentLoadSuggestionsPromise = _this.currentLoadSuggestionsPromise\n .then(function () { return loadSuggestions(text, _this.state.mention.triggeredBy); })\n .then(function (suggestions) {\n if (_this.state.mention.status === \"inactive\") {\n // This means this promise resolved too late when the status has already been set to inactice\n return;\n }\n else if (_this.suggestionsPromiseIndex === promiseIndex) {\n if (!suggestions || !suggestions.length) {\n _this.setState({\n mention: {\n status: \"inactive\",\n suggestions: []\n }\n });\n }\n else {\n _this.setState({\n mention: __assign(__assign({}, _this.state.mention), { status: \"active\", suggestions: suggestions, focusIndex: 0 })\n });\n }\n _this.suggestionsPromiseIndex = 0;\n }\n return Promise.resolve();\n });\n };\n _this.loadEmptySuggestion = function (target, key) {\n var caret = TextAreaCaretPosition_1.getCaretCoordinates(target, key);\n _this.startLoadingSuggestions(\"\");\n _this.setState({\n mention: {\n status: \"loading\",\n startPosition: target.selectionStart + 1,\n caret: caret,\n suggestions: [],\n triggeredBy: key\n }\n });\n };\n _this.handleSuggestionSelected = function (index) {\n var mention = _this.state.mention;\n _this.getTextArea().selectionStart = mention.startPosition - 1;\n var textForInsert = _this.props.value.substr(_this.getTextArea().selectionStart, _this.getTextArea().selectionEnd - _this.getTextArea().selectionStart);\n InsertTextAtPosition_1.insertText(_this.getTextArea(), mention.suggestions[index].value + \" \");\n _this.setState({\n mention: {\n status: \"inactive\",\n suggestions: []\n }\n });\n };\n _this.handleKeyDown = function (event) {\n if (_this.props.onPossibleKeyCommand) {\n var handled = _this.props.onPossibleKeyCommand(event);\n if (handled) {\n event.preventDefault();\n // If the keydown resulted in a command being executed, we will just close the suggestions if they are open.\n // Resetting suggestionsPromiseIndex will cause any promise that is yet to be resolved to have no effect\n // when they finish loading.\n // TODO: The code below is duplicate, we need to clean this up\n _this.suggestionsPromiseIndex = 0;\n _this.setState({\n mention: {\n status: \"inactive\",\n suggestions: []\n }\n });\n return;\n }\n }\n if (!_this.suggestionsEnabled()) {\n return;\n }\n var key = event.key, shiftKey = event.shiftKey, currentTarget = event.currentTarget;\n var selectionStart = currentTarget.selectionStart;\n var mention = _this.state.mention;\n switch (mention.status) {\n case \"loading\":\n case \"active\":\n if (key === \"Escape\" ||\n (key === \"Backspace\" &&\n selectionStart <= _this.state.mention.startPosition)) {\n // resetting suggestionsPromiseIndex will cause any promise that is yet to be resolved to have no effect\n // when they finish loading.\n _this.suggestionsPromiseIndex = 0;\n _this.setState({\n mention: {\n status: \"inactive\",\n suggestions: []\n }\n });\n }\n else if (mention.status === \"active\" &&\n (key === \"ArrowUp\" || key === \"ArrowDown\") &&\n !shiftKey) {\n event.preventDefault();\n var focusDelta = key === \"ArrowUp\" ? -1 : 1;\n _this.setState({\n mention: __assign(__assign({}, mention), { focusIndex: Math_1.mod(mention.focusIndex + focusDelta, mention.suggestions.length) })\n });\n }\n else if (key === \"Enter\" &&\n mention.status === \"active\" &&\n mention.suggestions.length) {\n event.preventDefault();\n _this.handleSuggestionSelected(mention.focusIndex);\n }\n break;\n default:\n // Ignore\n }\n };\n _this.handleKeyUp = function (event) {\n var key = event.key;\n var mention = _this.state.mention;\n var _a = _this.props, suggestionTriggerCharacters = _a.suggestionTriggerCharacters, value = _a.value;\n switch (mention.status) {\n case \"loading\":\n case \"active\":\n if (key === \"Backspace\") {\n var searchText = value.substr(mention.startPosition, _this.getTextArea().selectionStart - mention.startPosition);\n _this.startLoadingSuggestions(searchText);\n if (mention.status !== \"loading\") {\n _this.setState({\n mention: __assign(__assign({}, _this.state.mention), { status: \"loading\" })\n });\n }\n }\n break;\n case \"inactive\":\n if (key === \"Backspace\") {\n var prevChar = value.charAt(_this.getTextArea().selectionStart - 1);\n var isAtMention = suggestionTriggerCharacters.includes(value.charAt(_this.getTextArea().selectionStart - 1));\n if (isAtMention) {\n _this.loadEmptySuggestion(event.currentTarget, prevChar);\n }\n }\n break;\n default:\n // Ignore\n }\n };\n _this.handleKeyPress = function (event) {\n var _a = _this.props, suggestionTriggerCharacters = _a.suggestionTriggerCharacters, value = _a.value;\n var mention = _this.state.mention;\n var key = event.key;\n switch (mention.status) {\n case \"loading\":\n case \"active\":\n if (key === \" \") {\n _this.setState({\n mention: __assign(__assign({}, _this.state.mention), { status: \"inactive\" })\n });\n return;\n }\n var searchText = value.substr(mention.startPosition, _this.getTextArea().selectionStart - mention.startPosition) + key;\n // In this case, the mentions box was open but the user typed something else\n _this.startLoadingSuggestions(searchText);\n if (mention.status !== \"loading\") {\n _this.setState({\n mention: __assign(__assign({}, _this.state.mention), { status: \"loading\" })\n });\n }\n break;\n case \"inactive\":\n if (suggestionTriggerCharacters.indexOf(event.key) === -1 ||\n !/\\s|\\(|\\[|^.{0}$/.test(value.charAt(_this.getTextArea().selectionStart - 1))) {\n return;\n }\n _this.loadEmptySuggestion(event.currentTarget, event.key);\n break;\n }\n };\n _this.state = { mention: { status: \"inactive\", suggestions: [] } };\n return _this;\n }\n TextArea.prototype.suggestionsEnabled = function () {\n return (this.props.suggestionTriggerCharacters &&\n this.props.suggestionTriggerCharacters.length &&\n this.props.loadSuggestions);\n };\n TextArea.prototype.render = function () {\n var _this = this;\n var _a = this.props, classes = _a.classes, readOnly = _a.readOnly, textAreaProps = _a.textAreaProps, height = _a.height, heightUnits = _a.heightUnits, value = _a.value, suggestionTriggerCharacters = _a.suggestionTriggerCharacters, loadSuggestions = _a.loadSuggestions, suggestionsDropdownClasses = _a.suggestionsDropdownClasses, textAreaComponent = _a.textAreaComponent, onPaste = _a.onPaste, onDrop = _a.onDrop;\n var suggestionsEnabled = suggestionTriggerCharacters &&\n suggestionTriggerCharacters.length &&\n loadSuggestions;\n var mention = this.state.mention;\n var TextAreaComponent = (textAreaComponent ||\n \"textarea\");\n var heightVal = height && heightUnits ? height + heightUnits : height;\n return (React.createElement(\"div\", { className: \"mde-textarea-wrapper\" },\n React.createElement(TextAreaComponent, __assign({ className: ClassNames_1.classNames(\"mde-text\", classes), style: { height: heightVal }, ref: this.props.refObject, readOnly: readOnly, value: value, \"data-testid\": \"text-area\" }, textAreaProps, { onChange: function (event) {\n var _a;\n (_a = textAreaProps === null || textAreaProps === void 0 ? void 0 : textAreaProps.onChange) === null || _a === void 0 ? void 0 : _a.call(textAreaProps, event);\n _this.handleOnChange(event);\n }, onBlur: function (event) {\n var _a;\n (_a = textAreaProps === null || textAreaProps === void 0 ? void 0 : textAreaProps.onBlur) === null || _a === void 0 ? void 0 : _a.call(textAreaProps, event);\n if (suggestionsEnabled) {\n _this.handleBlur();\n }\n }, onKeyDown: function (event) {\n var _a;\n (_a = textAreaProps === null || textAreaProps === void 0 ? void 0 : textAreaProps.onKeyDown) === null || _a === void 0 ? void 0 : _a.call(textAreaProps, event);\n _this.handleKeyDown(event);\n }, onKeyUp: function (event) {\n var _a;\n (_a = textAreaProps === null || textAreaProps === void 0 ? void 0 : textAreaProps.onKeyUp) === null || _a === void 0 ? void 0 : _a.call(textAreaProps, event);\n if (suggestionsEnabled) {\n _this.handleKeyUp(event);\n }\n }, onKeyPress: function (event) {\n var _a;\n (_a = textAreaProps === null || textAreaProps === void 0 ? void 0 : textAreaProps.onKeyPress) === null || _a === void 0 ? void 0 : _a.call(textAreaProps, event);\n if (suggestionsEnabled) {\n _this.handleKeyPress(event);\n }\n }, onPaste: function (event) {\n var _a;\n (_a = textAreaProps === null || textAreaProps === void 0 ? void 0 : textAreaProps.onPaste) === null || _a === void 0 ? void 0 : _a.call(textAreaProps, event);\n onPaste(event);\n }, onDragOver: function (event) {\n event.preventDefault();\n event.stopPropagation();\n }, onDrop: function (event) {\n var _a;\n (_a = textAreaProps === null || textAreaProps === void 0 ? void 0 : textAreaProps.onDrop) === null || _a === void 0 ? void 0 : _a.call(textAreaProps, event);\n onDrop(event);\n event.preventDefault();\n } })),\n mention.status === \"active\" && mention.suggestions.length && (React.createElement(SuggestionsDropdown_1.SuggestionsDropdown, { classes: suggestionsDropdownClasses, caret: mention.caret, suggestions: mention.suggestions, onSuggestionSelected: this.handleSuggestionSelected, suggestionsAutoplace: this.props.suggestionsAutoplace, focusIndex: mention.focusIndex, textAreaRef: this.props.refObject }))));\n };\n return TextArea;\n}(React.Component));\nexports.TextArea = TextArea;\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Toolbar = void 0;\nvar React = require(\"react\");\nvar ClassNames_1 = require(\"../util/ClassNames\");\nvar ToolbarButtonGroup_1 = require(\"./ToolbarButtonGroup\");\nvar ToolbarButton_1 = require(\"./ToolbarButton\");\nvar Toolbar = /** @class */ (function (_super) {\n __extends(Toolbar, _super);\n function Toolbar() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.handleTabChange = function (tab) {\n var onTabChange = _this.props.onTabChange;\n onTabChange(tab);\n };\n return _this;\n }\n Toolbar.prototype.render = function () {\n var _this = this;\n var l18n = this.props.l18n;\n var _a = this.props, classes = _a.classes, children = _a.children, buttons = _a.buttons, onCommand = _a.onCommand, readOnly = _a.readOnly, disablePreview = _a.disablePreview, writeButtonProps = _a.writeButtonProps, previewButtonProps = _a.previewButtonProps, buttonProps = _a.buttonProps;\n if ((!buttons || buttons.length === 0) && !children) {\n return null;\n }\n var writePreviewTabs = (React.createElement(\"div\", { className: \"mde-tabs\" },\n React.createElement(\"button\", __assign({ type: \"button\", className: ClassNames_1.classNames({ selected: this.props.tab === \"write\" }), onClick: function () { return _this.handleTabChange(\"write\"); } }, writeButtonProps), l18n.write),\n React.createElement(\"button\", __assign({ type: \"button\", className: ClassNames_1.classNames({ selected: this.props.tab === \"preview\" }), onClick: function () { return _this.handleTabChange(\"preview\"); } }, previewButtonProps), l18n.preview)));\n return (React.createElement(\"div\", { className: ClassNames_1.classNames(\"mde-header\", classes) },\n !disablePreview && writePreviewTabs,\n buttons.map(function (commandGroup, i) { return (React.createElement(ToolbarButtonGroup_1.ToolbarButtonGroup, { key: i, hidden: _this.props.tab === \"preview\" }, commandGroup.map(function (c, j) {\n return (React.createElement(ToolbarButton_1.ToolbarButton, { key: j, name: c.commandName, buttonContent: c.buttonContent, buttonProps: __assign(__assign({}, (buttonProps || {})), c.buttonProps), onClick: function () { return onCommand(c.commandName); }, readOnly: readOnly, buttonComponentClass: c.buttonComponentClass }));\n }))); })));\n };\n return Toolbar;\n}(React.Component));\nexports.Toolbar = Toolbar;\n","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ToolbarButton = void 0;\nvar React = require(\"react\");\nvar defaultButtonProps = {\n tabIndex: -1\n};\nvar ToolbarButton = function (props) {\n var buttonComponentClass = props.buttonComponentClass, buttonContent = props.buttonContent, buttonProps = props.buttonProps, onClick = props.onClick, readOnly = props.readOnly, name = props.name;\n var finalButtonProps = __assign(__assign({}, defaultButtonProps), (buttonProps || {}));\n var finalButtonComponent = buttonComponentClass || \"button\";\n return (React.createElement(\"li\", { className: \"mde-header-item\" }, React.createElement(finalButtonComponent, __assign(__assign({ \"data-name\": name }, finalButtonProps), {\n onClick: onClick,\n disabled: readOnly,\n type: \"button\"\n }), buttonContent)));\n};\nexports.ToolbarButton = ToolbarButton;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ToolbarButtonGroup = void 0;\nvar React = require(\"react\");\nvar ClassNames_1 = require(\"../util/ClassNames\");\nvar ToolbarButtonGroup = function (props) {\n return (React.createElement(\"ul\", { className: ClassNames_1.classNames(\"mde-header-group\", { hidden: props.hidden }) }, props.children));\n};\nexports.ToolbarButtonGroup = ToolbarButtonGroup;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ToolbarButtonGroup\"), exports);\n__exportStar(require(\"./ToolbarButton\"), exports);\n__exportStar(require(\"../icons/MdeFontAwesomeIcon\"), exports);\n__exportStar(require(\"./Preview\"), exports);\n__exportStar(require(\"./TextArea\"), exports);\n__exportStar(require(\"./Toolbar\"), exports);\n__exportStar(require(\"./ReactMde\"), exports);\n__exportStar(require(\"./SuggestionsDropdown\"), exports);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MdeFontAwesomeIcon = void 0;\nvar React = require(\"react\");\nvar MdeFontAwesomeIcon = function (_a) {\n var icon = _a.icon;\n var transformedIcon = icon;\n switch (icon) {\n case \"header\":\n transformedIcon = \"heading\";\n break;\n case \"quote\":\n transformedIcon = \"quote-right\";\n break;\n case \"unordered-list\":\n transformedIcon = \"tasks\";\n break;\n case \"ordered-list\":\n transformedIcon = \"list-ol\";\n break;\n case \"checked-list\":\n transformedIcon = \"tasks\";\n break;\n default:\n transformedIcon = icon;\n }\n return React.createElement(\"i\", { className: \"fas fa-\" + transformedIcon, \"aria-hidden\": \"true\" });\n};\nexports.MdeFontAwesomeIcon = MdeFontAwesomeIcon;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SvgIcon = void 0;\nvar React = require(\"react\");\nvar checkedListIcon = (React.createElement(\"svg\", { className: \"svg-icon\", \"aria-hidden\": \"true\", \"data-prefix\": \"fas\", \"data-icon\": \"tasks\", role: \"img\", xmlns: \"http://www.w3.org/2000/svg\", viewBox: \"0 0 512 512\", \"data-fa-i2svg\": \"\" },\n React.createElement(\"path\", { fill: \"currentColor\", d: \"M208 132h288c8.8 0 16-7.2 16-16V76c0-8.8-7.2-16-16-16H208c-8.8 0-16 7.2-16 16v40c0 8.8 7.2 16 16 16zm0 160h288c8.8 0 16-7.2 16-16v-40c0-8.8-7.2-16-16-16H208c-8.8 0-16 7.2-16 16v40c0 8.8 7.2 16 16 16zm0 160h288c8.8 0 16-7.2 16-16v-40c0-8.8-7.2-16-16-16H208c-8.8 0-16 7.2-16 16v40c0 8.8 7.2 16 16 16zM64 368c-26.5 0-48.6 21.5-48.6 48s22.1 48 48.6 48 48-21.5 48-48-21.5-48-48-48zm92.5-299l-72.2 72.2-15.6 15.6c-4.7 4.7-12.9 4.7-17.6 0L3.5 109.4c-4.7-4.7-4.7-12.3 0-17l15.7-15.7c4.7-4.7 12.3-4.7 17 0l22.7 22.1 63.7-63.3c4.7-4.7 12.3-4.7 17 0l17 16.5c4.6 4.7 4.6 12.3-.1 17zm0 159.6l-72.2 72.2-15.7 15.7c-4.7 4.7-12.9 4.7-17.6 0L3.5 269c-4.7-4.7-4.7-12.3 0-17l15.7-15.7c4.7-4.7 12.3-4.7 17 0l22.7 22.1 63.7-63.7c4.7-4.7 12.3-4.7 17 0l17 17c4.6 4.6 4.6 12.2-.1 16.9z\" })));\nvar orderedListIcon = (React.createElement(\"svg\", { className: \"svg-icon\", \"aria-hidden\": \"true\", \"data-prefix\": \"fas\", \"data-icon\": \"list-ol\", role: \"img\", xmlns: \"http://www.w3.org/2000/svg\", viewBox: \"0 0 512 512\", \"data-fa-i2svg\": \"\" },\n React.createElement(\"path\", { fill: \"currentColor\", d: \"M3.263 139.527c0-7.477 3.917-11.572 11.573-11.572h15.131V88.078c0-5.163.534-10.503.534-10.503h-.356s-1.779 2.67-2.848 3.738c-4.451 4.273-10.504 4.451-15.666-1.068l-5.518-6.231c-5.342-5.341-4.984-11.216.534-16.379l21.72-19.938C32.815 33.602 36.732 32 42.785 32H54.89c7.656 0 11.749 3.916 11.749 11.572v84.384h15.488c7.655 0 11.572 4.094 11.572 11.572v8.901c0 7.477-3.917 11.572-11.572 11.572H14.836c-7.656 0-11.573-4.095-11.573-11.572v-8.902zM2.211 304.591c0-47.278 50.955-56.383 50.955-69.165 0-7.18-5.954-8.755-9.28-8.755-3.153 0-6.479 1.051-9.455 3.852-5.079 4.903-10.507 7.004-16.111 2.451l-8.579-6.829c-5.779-4.553-7.18-9.805-2.803-15.409C13.592 201.981 26.025 192 47.387 192c19.437 0 44.476 10.506 44.476 39.573 0 38.347-46.753 46.402-48.679 56.909h39.049c7.529 0 11.557 4.027 11.557 11.382v8.755c0 7.354-4.028 11.382-11.557 11.382h-67.94c-7.005 0-12.083-4.028-12.083-11.382v-4.028zM5.654 454.61l5.603-9.28c3.853-6.654 9.105-7.004 15.584-3.152 4.903 2.101 9.63 3.152 14.359 3.152 10.155 0 14.358-3.502 14.358-8.23 0-6.654-5.604-9.106-15.934-9.106h-4.728c-5.954 0-9.28-2.101-12.258-7.88l-1.05-1.926c-2.451-4.728-1.226-9.806 2.801-14.884l5.604-7.004c6.829-8.405 12.257-13.483 12.257-13.483v-.35s-4.203 1.051-12.608 1.051H16.685c-7.53 0-11.383-4.028-11.383-11.382v-8.755c0-7.53 3.853-11.382 11.383-11.382h58.484c7.529 0 11.382 4.027 11.382 11.382v3.327c0 5.778-1.401 9.806-5.079 14.183l-17.509 20.137c19.611 5.078 28.716 20.487 28.716 34.845 0 21.363-14.358 44.126-48.503 44.126-16.636 0-28.192-4.728-35.896-9.455-5.779-4.202-6.304-9.805-2.626-15.934zM144 132h352c8.837 0 16-7.163 16-16V76c0-8.837-7.163-16-16-16H144c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h352c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H144c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h352c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H144c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z\" })));\nvar unorderedListIcon = (React.createElement(\"svg\", { className: \"svg-icon\", \"aria-hidden\": \"true\", \"data-prefix\": \"fas\", \"data-icon\": \"list-ul\", role: \"img\", xmlns: \"http://www.w3.org/2000/svg\", viewBox: \"0 0 512 512\", \"data-fa-i2svg\": \"\" },\n React.createElement(\"path\", { fill: \"currentColor\", d: \"M96 96c0 26.51-21.49 48-48 48S0 122.51 0 96s21.49-48 48-48 48 21.49 48 48zM48 208c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48zm0 160c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48zm96-236h352c8.837 0 16-7.163 16-16V76c0-8.837-7.163-16-16-16H144c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h352c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H144c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h352c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H144c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z\" })));\nvar imageIcon = (React.createElement(\"svg\", { className: \"svg-icon\", \"aria-hidden\": \"true\", \"data-prefix\": \"fas\", \"data-icon\": \"image\", role: \"img\", xmlns: \"http://www.w3.org/2000/svg\", viewBox: \"0 0 512 512\", \"data-fa-i2svg\": \"\" },\n React.createElement(\"path\", { fill: \"currentColor\", d: \"M464 448H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h416c26.51 0 48 21.49 48 48v288c0 26.51-21.49 48-48 48zM112 120c-30.928 0-56 25.072-56 56s25.072 56 56 56 56-25.072 56-56-25.072-56-56-56zM64 384h384V272l-87.515-87.515c-4.686-4.686-12.284-4.686-16.971 0L208 320l-55.515-55.515c-4.686-4.686-12.284-4.686-16.971 0L64 336v48z\" })));\nvar codeIcon = (React.createElement(\"svg\", { className: \"svg-icon\", \"aria-hidden\": \"true\", \"data-prefix\": \"fas\", \"data-icon\": \"code\", role: \"img\", xmlns: \"http://www.w3.org/2000/svg\", viewBox: \"0 0 640 512\", \"data-fa-i2svg\": \"\" },\n React.createElement(\"path\", { fill: \"currentColor\", d: \"M278.9 511.5l-61-17.7c-6.4-1.8-10-8.5-8.2-14.9L346.2 8.7c1.8-6.4 8.5-10 14.9-8.2l61 17.7c6.4 1.8 10 8.5 8.2 14.9L293.8 503.3c-1.9 6.4-8.5 10.1-14.9 8.2zm-114-112.2l43.5-46.4c4.6-4.9 4.3-12.7-.8-17.2L117 256l90.6-79.7c5.1-4.5 5.5-12.3.8-17.2l-43.5-46.4c-4.5-4.8-12.1-5.1-17-.5L3.8 247.2c-5.1 4.7-5.1 12.8 0 17.5l144.1 135.1c4.9 4.6 12.5 4.4 17-.5zm327.2.6l144.1-135.1c5.1-4.7 5.1-12.8 0-17.5L492.1 112.1c-4.8-4.5-12.4-4.3-17 .5L431.6 159c-4.6 4.9-4.3 12.7.8 17.2L523 256l-90.6 79.7c-5.1 4.5-5.5 12.3-.8 17.2l43.5 46.4c4.5 4.9 12.1 5.1 17 .6z\" })));\nvar quoteIcon = (React.createElement(\"svg\", { className: \"svg-icon\", \"aria-hidden\": \"true\", \"data-prefix\": \"fas\", \"data-icon\": \"quote-right\", role: \"img\", xmlns: \"http://www.w3.org/2000/svg\", viewBox: \"0 0 512 512\", \"data-fa-i2svg\": \"\" },\n React.createElement(\"path\", { fill: \"currentColor\", d: \"M512 80v128c0 137.018-63.772 236.324-193.827 271.172-15.225 4.08-30.173-7.437-30.173-23.199v-33.895c0-10.057 6.228-19.133 15.687-22.55C369.684 375.688 408 330.054 408 256h-72c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h128c26.51 0 48 21.49 48 48zM176 32H48C21.49 32 0 53.49 0 80v128c0 26.51 21.49 48 48 48h72c0 74.054-38.316 119.688-104.313 143.528C6.228 402.945 0 412.021 0 422.078v33.895c0 15.762 14.948 27.279 30.173 23.199C160.228 444.324 224 345.018 224 208V80c0-26.51-21.49-48-48-48z\" })));\nvar linkIcon = (React.createElement(\"svg\", { className: \"svg-icon\", \"aria-hidden\": \"true\", \"data-prefix\": \"fas\", \"data-icon\": \"link\", role: \"img\", xmlns: \"http://www.w3.org/2000/svg\", viewBox: \"0 0 512 512\", \"data-fa-i2svg\": \"\" },\n React.createElement(\"path\", { fill: \"currentColor\", d: \"M326.612 185.391c59.747 59.809 58.927 155.698.36 214.59-.11.12-.24.25-.36.37l-67.2 67.2c-59.27 59.27-155.699 59.262-214.96 0-59.27-59.26-59.27-155.7 0-214.96l37.106-37.106c9.84-9.84 26.786-3.3 27.294 10.606.648 17.722 3.826 35.527 9.69 52.721 1.986 5.822.567 12.262-3.783 16.612l-13.087 13.087c-28.026 28.026-28.905 73.66-1.155 101.96 28.024 28.579 74.086 28.749 102.325.51l67.2-67.19c28.191-28.191 28.073-73.757 0-101.83-3.701-3.694-7.429-6.564-10.341-8.569a16.037 16.037 0 0 1-6.947-12.606c-.396-10.567 3.348-21.456 11.698-29.806l21.054-21.055c5.521-5.521 14.182-6.199 20.584-1.731a152.482 152.482 0 0 1 20.522 17.197zM467.547 44.449c-59.261-59.262-155.69-59.27-214.96 0l-67.2 67.2c-.12.12-.25.25-.36.37-58.566 58.892-59.387 154.781.36 214.59a152.454 152.454 0 0 0 20.521 17.196c6.402 4.468 15.064 3.789 20.584-1.731l21.054-21.055c8.35-8.35 12.094-19.239 11.698-29.806a16.037 16.037 0 0 0-6.947-12.606c-2.912-2.005-6.64-4.875-10.341-8.569-28.073-28.073-28.191-73.639 0-101.83l67.2-67.19c28.239-28.239 74.3-28.069 102.325.51 27.75 28.3 26.872 73.934-1.155 101.96l-13.087 13.087c-4.35 4.35-5.769 10.79-3.783 16.612 5.864 17.194 9.042 34.999 9.69 52.721.509 13.906 17.454 20.446 27.294 10.606l37.106-37.106c59.271-59.259 59.271-155.699.001-214.959z\" })));\nvar strikeThroughIcon = (React.createElement(\"svg\", { className: \"svg-icon\", \"aria-hidden\": \"true\", \"data-prefix\": \"fas\", \"data-icon\": \"strikethrough\", role: \"img\", xmlns: \"http://www.w3.org/2000/svg\", viewBox: \"0 0 512 512\", \"data-fa-i2svg\": \"\" },\n React.createElement(\"path\", { fill: \"currentColor\", d: \"M496 288H16c-8.837 0-16-7.163-16-16v-32c0-8.837 7.163-16 16-16h480c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16zm-214.666 16c27.258 12.937 46.524 28.683 46.524 56.243 0 33.108-28.977 53.676-75.621 53.676-32.325 0-76.874-12.08-76.874-44.271V368c0-8.837-7.164-16-16-16H113.75c-8.836 0-16 7.163-16 16v19.204c0 66.845 77.717 101.82 154.487 101.82 88.578 0 162.013-45.438 162.013-134.424 0-19.815-3.618-36.417-10.143-50.6H281.334zm-30.952-96c-32.422-13.505-56.836-28.946-56.836-59.683 0-33.92 30.901-47.406 64.962-47.406 42.647 0 64.962 16.593 64.962 32.985V136c0 8.837 7.164 16 16 16h45.613c8.836 0 16-7.163 16-16v-30.318c0-52.438-71.725-79.875-142.575-79.875-85.203 0-150.726 40.972-150.726 125.646 0 22.71 4.665 41.176 12.777 56.547h129.823z\" })));\nvar italicIcon = (React.createElement(\"svg\", { className: \"svg-icon\", \"aria-hidden\": \"true\", \"data-prefix\": \"fas\", \"data-icon\": \"italic\", role: \"img\", xmlns: \"http://www.w3.org/2000/svg\", viewBox: \"0 0 320 512\", \"data-fa-i2svg\": \"\" },\n React.createElement(\"path\", { fill: \"currentColor\", d: \"M204.758 416h-33.849l62.092-320h40.725a16 16 0 0 0 15.704-12.937l6.242-32C297.599 41.184 290.034 32 279.968 32H120.235a16 16 0 0 0-15.704 12.937l-6.242 32C96.362 86.816 103.927 96 113.993 96h33.846l-62.09 320H46.278a16 16 0 0 0-15.704 12.935l-6.245 32C22.402 470.815 29.967 480 40.034 480h158.479a16 16 0 0 0 15.704-12.935l6.245-32c1.927-9.88-5.638-19.065-15.704-19.065z\" })));\nvar headerIcon = (React.createElement(\"svg\", { className: \"svg-icon\", \"aria-hidden\": \"true\", \"data-prefix\": \"fas\", \"data-icon\": \"heading\", role: \"img\", xmlns: \"http://www.w3.org/2000/svg\", viewBox: \"0 0 512 512\", \"data-fa-i2svg\": \"\" },\n React.createElement(\"path\", { fill: \"currentColor\", d: \"M496 80V48c0-8.837-7.163-16-16-16H320c-8.837 0-16 7.163-16 16v32c0 8.837 7.163 16 16 16h37.621v128H154.379V96H192c8.837 0 16-7.163 16-16V48c0-8.837-7.163-16-16-16H32c-8.837 0-16 7.163-16 16v32c0 8.837 7.163 16 16 16h37.275v320H32c-8.837 0-16 7.163-16 16v32c0 8.837 7.163 16 16 16h160c8.837 0 16-7.163 16-16v-32c0-8.837-7.163-16-16-16h-37.621V288H357.62v128H320c-8.837 0-16 7.163-16 16v32c0 8.837 7.163 16 16 16h160c8.837 0 16-7.163 16-16v-32c0-8.837-7.163-16-16-16h-37.275V96H480c8.837 0 16-7.163 16-16z\" })));\nvar boldIcon = (React.createElement(\"svg\", { className: \"svg-icon\", \"aria-hidden\": \"true\", \"data-prefix\": \"fas\", \"data-icon\": \"bold\", role: \"img\", xmlns: \"http://www.w3.org/2000/svg\", viewBox: \"0 0 384 512\", \"data-fa-i2svg\": \"\" },\n React.createElement(\"path\", { fill: \"currentColor\", d: \"M304.793 243.891c33.639-18.537 53.657-54.16 53.657-95.693 0-48.236-26.25-87.626-68.626-104.179C265.138 34.01 240.849 32 209.661 32H24c-8.837 0-16 7.163-16 16v33.049c0 8.837 7.163 16 16 16h33.113v318.53H24c-8.837 0-16 7.163-16 16V464c0 8.837 7.163 16 16 16h195.69c24.203 0 44.834-1.289 66.866-7.584C337.52 457.193 376 410.647 376 350.014c0-52.168-26.573-91.684-71.207-106.123zM142.217 100.809h67.444c16.294 0 27.536 2.019 37.525 6.717 15.828 8.479 24.906 26.502 24.906 49.446 0 35.029-20.32 56.79-53.029 56.79h-76.846V100.809zm112.642 305.475c-10.14 4.056-22.677 4.907-31.409 4.907h-81.233V281.943h84.367c39.645 0 63.057 25.38 63.057 63.057.001 28.425-13.66 52.483-34.782 61.284z\" })));\nvar SvgIcon = function (_a) {\n var icon = _a.icon;\n switch (icon) {\n case \"header\":\n return headerIcon;\n case \"bold\":\n return boldIcon;\n case \"italic\":\n return italicIcon;\n case \"strikethrough\":\n return strikeThroughIcon;\n case \"link\":\n return linkIcon;\n case \"quote\":\n return quoteIcon;\n case \"code\":\n return codeIcon;\n case \"image\":\n return imageIcon;\n case \"unordered-list\":\n return unorderedListIcon;\n case \"ordered-list\":\n return orderedListIcon;\n case \"checked-list\":\n return checkedListIcon;\n default:\n return null;\n }\n};\nexports.SvgIcon = SvgIcon;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./MdeFontAwesomeIcon\"), exports);\n__exportStar(require(\"./SvgIcon\"), exports);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getDefaultToolbarCommands = exports.getDefaultCommandMap = exports.MdeFontAwesomeIcon = exports.SvgIcon = exports.MarkdownUtil = exports.ToolbarButtonGroup = exports.Toolbar = exports.Preview = exports.SuggestionsDropdown = exports.TextArea = void 0;\nvar MarkdownUtil = require(\"./util/MarkdownUtil\");\nexports.MarkdownUtil = MarkdownUtil;\nvar components_1 = require(\"./components\");\nObject.defineProperty(exports, \"TextArea\", { enumerable: true, get: function () { return components_1.TextArea; } });\nObject.defineProperty(exports, \"SuggestionsDropdown\", { enumerable: true, get: function () { return components_1.SuggestionsDropdown; } });\nObject.defineProperty(exports, \"Preview\", { enumerable: true, get: function () { return components_1.Preview; } });\nObject.defineProperty(exports, \"Toolbar\", { enumerable: true, get: function () { return components_1.Toolbar; } });\nObject.defineProperty(exports, \"ToolbarButtonGroup\", { enumerable: true, get: function () { return components_1.ToolbarButtonGroup; } });\nvar icons_1 = require(\"./icons\");\nObject.defineProperty(exports, \"SvgIcon\", { enumerable: true, get: function () { return icons_1.SvgIcon; } });\nObject.defineProperty(exports, \"MdeFontAwesomeIcon\", { enumerable: true, get: function () { return icons_1.MdeFontAwesomeIcon; } });\nvar defaults_1 = require(\"./commands/default-commands/defaults\");\nObject.defineProperty(exports, \"getDefaultCommandMap\", { enumerable: true, get: function () { return defaults_1.getDefaultCommandMap; } });\nObject.defineProperty(exports, \"getDefaultToolbarCommands\", { enumerable: true, get: function () { return defaults_1.getDefaultToolbarCommands; } });\nexports.default = components_1.ReactMde;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.enL18n = void 0;\nexports.enL18n = {\n write: \"Write\",\n preview: \"Preview\",\n uploadingImage: \"Uploading image...\",\n pasteDropSelect: \"Attach files by dragging & dropping, selecting or pasting them.\"\n};\n","\"use strict\";\n/*!\n Copyright (c) 2018 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.classNames = void 0;\nfunction isString(classValue) {\n return typeof classValue === \"string\";\n}\nfunction isNonEmptyArray(classValue) {\n return Array.isArray(classValue) && classValue.length > 0;\n}\nfunction isClassDictionary(classValue) {\n return typeof classValue === \"object\";\n}\nfunction classNames() {\n var classValues = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n classValues[_i] = arguments[_i];\n }\n var classes = [];\n for (var i = 0; i < classValues.length; i++) {\n var classValue = classValues[i];\n if (!classValue)\n continue;\n if (isString(classValue)) {\n classes.push(classValue);\n }\n else if (isNonEmptyArray(classValue)) {\n var inner = classNames.apply(null, classValue);\n if (inner) {\n classes.push(inner);\n }\n }\n else if (isClassDictionary(classValue)) {\n for (var key in classValue) {\n if (classValue.hasOwnProperty(key) && classValue[key]) {\n classes.push(key);\n }\n }\n }\n }\n return classes.join(\" \");\n}\nexports.classNames = classNames;\n","\"use strict\";\n/*!\n * The MIT License\n Copyright (c) 2018 Dmitriy Kubyshkin\n Copied from https://github.com/grassator/insert-text-at-cursor\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.insertText = void 0;\n/**\n * Inserts the given text at the cursor. If the element contains a selection, the selection\n * will be replaced by the text.\n */\nfunction insertText(input, text) {\n // Most of the used APIs only work with the field selected\n input.focus();\n // IE 8-10\n if (document.selection) {\n var ieRange = document.selection.createRange();\n ieRange.text = text;\n // Move cursor after the inserted text\n ieRange.collapse(false /* to the end */);\n ieRange.select();\n return;\n }\n // Webkit + Edge\n var isSuccess = document.execCommand(\"insertText\", false, text);\n if (!isSuccess) {\n var start = input.selectionStart;\n var end = input.selectionEnd;\n // Firefox (non-standard method)\n if (typeof input.setRangeText === \"function\") {\n input.setRangeText(text);\n }\n else {\n if (canManipulateViaTextNodes(input)) {\n var textNode = document.createTextNode(text);\n var node = input.firstChild;\n // If textarea is empty, just insert the text\n if (!node) {\n input.appendChild(textNode);\n }\n else {\n // Otherwise we need to find a nodes for start and end\n var offset = 0;\n var startNode = null;\n var endNode = null;\n // To make a change we just need a Range, not a Selection\n var range = document.createRange();\n while (node && (startNode === null || endNode === null)) {\n var nodeLength = node.nodeValue.length;\n // if start of the selection falls into current node\n if (start >= offset && start <= offset + nodeLength) {\n range.setStart((startNode = node), start - offset);\n }\n // if end of the selection falls into current node\n if (end >= offset && end <= offset + nodeLength) {\n range.setEnd((endNode = node), end - offset);\n }\n offset += nodeLength;\n node = node.nextSibling;\n }\n // If there is some text selected, remove it as we should replace it\n if (start !== end) {\n range.deleteContents();\n }\n // Finally insert a new node. The browser will automatically\n // split start and end nodes into two if necessary\n range.insertNode(textNode);\n }\n }\n else {\n // For the text input the only way is to replace the whole value :(\n var value = input.value;\n input.value = value.slice(0, start) + text + value.slice(end);\n }\n }\n // Correct the cursor position to be at the end of the insertion\n input.setSelectionRange(start + text.length, start + text.length);\n // Notify any possible listeners of the change\n var e = document.createEvent(\"UIEvent\");\n e.initEvent(\"input\", true, false);\n input.dispatchEvent(e);\n }\n}\nexports.insertText = insertText;\nfunction canManipulateViaTextNodes(input) {\n if (input.nodeName !== \"TEXTAREA\") {\n return false;\n }\n var browserSupportsTextareaTextNodes;\n if (typeof browserSupportsTextareaTextNodes === \"undefined\") {\n var textarea = document.createElement(\"textarea\");\n textarea.value = \"1\";\n browserSupportsTextareaTextNodes = !!textarea.firstChild;\n }\n return browserSupportsTextareaTextNodes;\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getBreaksNeededForEmptyLineAfter = exports.getBreaksNeededForEmptyLineBefore = exports.selectWord = exports.getSurroundingWord = void 0;\nfunction getSurroundingWord(text, position) {\n if (!text)\n throw Error(\"Argument 'text' should be truthy\");\n var isWordDelimiter = function (c) { return c === \" \" || c.charCodeAt(0) === 10; };\n // leftIndex is initialized to 0 because if selection is 0, it won't even enter the iteration\n var start = 0;\n // rightIndex is initialized to text.length because if selection is equal to text.length it won't even enter the interation\n var end = text.length;\n // iterate to the left\n for (var i = position; i - 1 > -1; i--) {\n if (isWordDelimiter(text[i - 1])) {\n start = i;\n break;\n }\n }\n // iterate to the right\n for (var i = position; i < text.length; i++) {\n if (isWordDelimiter(text[i])) {\n end = i;\n break;\n }\n }\n return { start: start, end: end };\n}\nexports.getSurroundingWord = getSurroundingWord;\n/**\n * If the cursor is inside a word and (selection.start === selection.end)\n * returns a new Selection where the whole word is selected\n * @param text\n * @param selection\n */\nfunction selectWord(_a) {\n var text = _a.text, selection = _a.selection;\n if (text && text.length && selection.start === selection.end) {\n // the user is pointing to a word\n return getSurroundingWord(text, selection.start);\n }\n return selection;\n}\nexports.selectWord = selectWord;\n/**\n * Gets the number of line-breaks that would have to be inserted before the given 'startPosition'\n * to make sure there's an empty line between 'startPosition' and the previous text\n */\nfunction getBreaksNeededForEmptyLineBefore(text, startPosition) {\n if (text === void 0) { text = \"\"; }\n if (startPosition === 0)\n return 0;\n // rules:\n // - If we're in the first line, no breaks are needed\n // - Otherwise there must be 2 breaks before the previous character. Depending on how many breaks exist already, we\n // may need to insert 0, 1 or 2 breaks\n var neededBreaks = 2;\n var isInFirstLine = true;\n for (var i = startPosition - 1; i >= 0 && neededBreaks >= 0; i--) {\n switch (text.charCodeAt(i)) {\n case 32: // blank space\n continue;\n case 10: // line break\n neededBreaks--;\n isInFirstLine = false;\n break;\n default:\n return neededBreaks;\n }\n }\n return isInFirstLine ? 0 : neededBreaks;\n}\nexports.getBreaksNeededForEmptyLineBefore = getBreaksNeededForEmptyLineBefore;\n/**\n * Gets the number of line-breaks that would have to be inserted after the given 'startPosition'\n * to make sure there's an empty line between 'startPosition' and the next text\n */\nfunction getBreaksNeededForEmptyLineAfter(text, startPosition) {\n if (text === void 0) { text = \"\"; }\n if (startPosition === text.length - 1)\n return 0;\n // rules:\n // - If we're in the first line, no breaks are needed\n // - Otherwise there must be 2 breaks before the previous character. Depending on how many breaks exist already, we\n // may need to insert 0, 1 or 2 breaks\n var neededBreaks = 2;\n var isInLastLine = true;\n for (var i = startPosition; i < text.length && neededBreaks >= 0; i++) {\n switch (text.charCodeAt(i)) {\n case 32:\n continue;\n case 10: {\n neededBreaks--;\n isInLastLine = false;\n break;\n }\n default:\n return neededBreaks;\n }\n }\n return isInLastLine ? 0 : neededBreaks;\n}\nexports.getBreaksNeededForEmptyLineAfter = getBreaksNeededForEmptyLineAfter;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.mod = void 0;\n/**\n * Calculates modulus, like %, except that it works with negative numbers\n */\nfunction mod(n, m) {\n return ((n % m) + m) % m;\n}\nexports.mod = mod;\n","\"use strict\";\n/* jshint browser: true */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getCaretCoordinates = void 0;\n// We'll copy the properties below into the mirror div.\n// Note that some browsers, such as Firefox, do not concatenate properties\n// into their shorthand (e.g. padding-top, padding-bottom etc. -> padding),\n// so we have to list every single property explicitly.\nvar properties = [\n \"direction\",\n \"boxSizing\",\n \"width\",\n \"height\",\n \"overflowX\",\n \"overflowY\",\n \"borderTopWidth\",\n \"borderRightWidth\",\n \"borderBottomWidth\",\n \"borderLeftWidth\",\n \"borderStyle\",\n \"paddingTop\",\n \"paddingRight\",\n \"paddingBottom\",\n \"paddingLeft\",\n // https://developer.mozilla.org/en-US/docs/Web/CSS/font\n \"fontStyle\",\n \"fontVariant\",\n \"fontWeight\",\n \"fontStretch\",\n \"fontSize\",\n \"fontSizeAdjust\",\n \"lineHeight\",\n \"fontFamily\",\n \"textAlign\",\n \"textTransform\",\n \"textIndent\",\n \"textDecoration\",\n \"letterSpacing\",\n \"wordSpacing\",\n \"tabSize\",\n \"MozTabSize\"\n];\nvar isBrowser = typeof window !== \"undefined\";\nvar isFirefox = isBrowser && window.mozInnerScreenX != null;\nfunction getCaretCoordinates(element, append) {\n if (!isBrowser) {\n throw new Error(\"getCaretCoordinates should only be called in a browser\");\n }\n // The mirror div will replicate the textarea's style\n var div = document.createElement(\"div\");\n div.id = \"input-textarea-caret-position-mirror-div\";\n document.body.appendChild(div);\n var style = div.style;\n var computed = window.getComputedStyle\n ? window.getComputedStyle(element)\n : element.currentStyle; // currentStyle for IE < 9\n // Default textarea styles\n style.whiteSpace = \"pre-wrap\";\n style.wordWrap = \"break-word\"; // only for textarea-s\n // Position off-screen\n style.position = \"absolute\"; // required to return coordinates properly\n style.visibility = \"hidden\"; // not 'display: none' because we want rendering\n // Transfer the element's properties to the div\n properties.forEach(function (prop) {\n style[prop] = computed[prop];\n });\n if (isFirefox) {\n // Firefox lies about the overflow property for textareas: https://bugzilla.mozilla.org/show_bug.cgi?id=984275\n if (element.scrollHeight > parseInt(computed.height))\n style.overflowY = \"scroll\";\n }\n else {\n style.overflow = \"hidden\"; // for Chrome to not render a scrollbar; IE keeps overflowY = 'scroll'\n }\n div.textContent = element.value.substring(0, element.selectionStart);\n if (append) {\n div.textContent += append;\n }\n var span = document.createElement(\"span\");\n // Wrapping must be replicated *exactly*, including when a long word gets\n // onto the next line, with whitespace at the end of the line before (#7).\n // The *only* reliable way to do that is to copy the *entire* rest of the\n // textarea's content into the created at the caret position.\n // For inputs, just '.' would be enough, but no need to bother.\n span.textContent = element.value.substring(element.selectionEnd) || \".\"; // || because a completely empty faux span doesn't render at all\n div.appendChild(span);\n var coordinates = {\n top: span.offsetTop + parseInt(computed[\"borderTopWidth\"]),\n left: span.offsetLeft + parseInt(computed[\"borderLeftWidth\"]),\n lineHeight: parseInt(computed[\"lineHeight\"])\n };\n document.body.removeChild(div);\n return coordinates;\n}\nexports.getCaretCoordinates = getCaretCoordinates;\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.readFileAsync = void 0;\n/**\n * Reads a file and returns an ArrayBuffer\n * @param file\n */\nfunction readFileAsync(file) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, new Promise(function (resolve, reject) {\n var reader = new FileReader();\n reader.onload = function () {\n if (typeof reader.result === \"string\") {\n throw new Error(\"reader.result is expected to be an ArrayBuffer\");\n }\n resolve(reader.result);\n };\n reader.onerror = reject;\n reader.readAsArrayBuffer(file);\n })];\n });\n });\n}\nexports.readFileAsync = readFileAsync;\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.bodyOpenClassName = exports.portalClassName = undefined;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require(\"react\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactDom = require(\"react-dom\");\n\nvar _reactDom2 = _interopRequireDefault(_reactDom);\n\nvar _propTypes = require(\"prop-types\");\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _ModalPortal = require(\"./ModalPortal\");\n\nvar _ModalPortal2 = _interopRequireDefault(_ModalPortal);\n\nvar _ariaAppHider = require(\"../helpers/ariaAppHider\");\n\nvar ariaAppHider = _interopRequireWildcard(_ariaAppHider);\n\nvar _safeHTMLElement = require(\"../helpers/safeHTMLElement\");\n\nvar _safeHTMLElement2 = _interopRequireDefault(_safeHTMLElement);\n\nvar _reactLifecyclesCompat = require(\"react-lifecycles-compat\");\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar portalClassName = exports.portalClassName = \"ReactModalPortal\";\nvar bodyOpenClassName = exports.bodyOpenClassName = \"ReactModal__Body--open\";\n\nvar isReact16 = _safeHTMLElement.canUseDOM && _reactDom2.default.createPortal !== undefined;\n\nvar createHTMLElement = function createHTMLElement(name) {\n return document.createElement(name);\n};\n\nvar getCreatePortal = function getCreatePortal() {\n return isReact16 ? _reactDom2.default.createPortal : _reactDom2.default.unstable_renderSubtreeIntoContainer;\n};\n\nfunction getParentElement(parentSelector) {\n return parentSelector();\n}\n\nvar Modal = function (_Component) {\n _inherits(Modal, _Component);\n\n function Modal() {\n var _ref;\n\n var _temp, _this, _ret;\n\n _classCallCheck(this, Modal);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = Modal.__proto__ || Object.getPrototypeOf(Modal)).call.apply(_ref, [this].concat(args))), _this), _this.removePortal = function () {\n !isReact16 && _reactDom2.default.unmountComponentAtNode(_this.node);\n var parent = getParentElement(_this.props.parentSelector);\n if (parent && parent.contains(_this.node)) {\n parent.removeChild(_this.node);\n } else {\n // eslint-disable-next-line no-console\n console.warn('React-Modal: \"parentSelector\" prop did not returned any DOM ' + \"element. Make sure that the parent element is unmounted to \" + \"avoid any memory leaks.\");\n }\n }, _this.portalRef = function (ref) {\n _this.portal = ref;\n }, _this.renderPortal = function (props) {\n var createPortal = getCreatePortal();\n var portal = createPortal(_this, _react2.default.createElement(_ModalPortal2.default, _extends({ defaultStyles: Modal.defaultStyles }, props)), _this.node);\n _this.portalRef(portal);\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n _createClass(Modal, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n if (!_safeHTMLElement.canUseDOM) return;\n\n if (!isReact16) {\n this.node = createHTMLElement(\"div\");\n }\n this.node.className = this.props.portalClassName;\n\n var parent = getParentElement(this.props.parentSelector);\n parent.appendChild(this.node);\n\n !isReact16 && this.renderPortal(this.props);\n }\n }, {\n key: \"getSnapshotBeforeUpdate\",\n value: function getSnapshotBeforeUpdate(prevProps) {\n var prevParent = getParentElement(prevProps.parentSelector);\n var nextParent = getParentElement(this.props.parentSelector);\n return { prevParent: prevParent, nextParent: nextParent };\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps, _, snapshot) {\n if (!_safeHTMLElement.canUseDOM) return;\n var _props = this.props,\n isOpen = _props.isOpen,\n portalClassName = _props.portalClassName;\n\n\n if (prevProps.portalClassName !== portalClassName) {\n this.node.className = portalClassName;\n }\n\n var prevParent = snapshot.prevParent,\n nextParent = snapshot.nextParent;\n\n if (nextParent !== prevParent) {\n prevParent.removeChild(this.node);\n nextParent.appendChild(this.node);\n }\n\n // Stop unnecessary renders if modal is remaining closed\n if (!prevProps.isOpen && !isOpen) return;\n\n !isReact16 && this.renderPortal(this.props);\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (!_safeHTMLElement.canUseDOM || !this.node || !this.portal) return;\n\n var state = this.portal.state;\n var now = Date.now();\n var closesAt = state.isOpen && this.props.closeTimeoutMS && (state.closesAt || now + this.props.closeTimeoutMS);\n\n if (closesAt) {\n if (!state.beforeClose) {\n this.portal.closeWithTimeout();\n }\n\n setTimeout(this.removePortal, closesAt - now);\n } else {\n this.removePortal();\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n if (!_safeHTMLElement.canUseDOM || !isReact16) {\n return null;\n }\n\n if (!this.node && isReact16) {\n this.node = createHTMLElement(\"div\");\n }\n\n var createPortal = getCreatePortal();\n return createPortal(_react2.default.createElement(_ModalPortal2.default, _extends({\n ref: this.portalRef,\n defaultStyles: Modal.defaultStyles\n }, this.props)), this.node);\n }\n }], [{\n key: \"setAppElement\",\n value: function setAppElement(element) {\n ariaAppHider.setElement(element);\n }\n\n /* eslint-disable react/no-unused-prop-types */\n\n /* eslint-enable react/no-unused-prop-types */\n\n }]);\n\n return Modal;\n}(_react.Component);\n\nModal.propTypes = {\n isOpen: _propTypes2.default.bool.isRequired,\n style: _propTypes2.default.shape({\n content: _propTypes2.default.object,\n overlay: _propTypes2.default.object\n }),\n portalClassName: _propTypes2.default.string,\n bodyOpenClassName: _propTypes2.default.string,\n htmlOpenClassName: _propTypes2.default.string,\n className: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.shape({\n base: _propTypes2.default.string.isRequired,\n afterOpen: _propTypes2.default.string.isRequired,\n beforeClose: _propTypes2.default.string.isRequired\n })]),\n overlayClassName: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.shape({\n base: _propTypes2.default.string.isRequired,\n afterOpen: _propTypes2.default.string.isRequired,\n beforeClose: _propTypes2.default.string.isRequired\n })]),\n appElement: _propTypes2.default.oneOfType([_propTypes2.default.instanceOf(_safeHTMLElement2.default), _propTypes2.default.instanceOf(_safeHTMLElement.SafeHTMLCollection), _propTypes2.default.instanceOf(_safeHTMLElement.SafeNodeList), _propTypes2.default.arrayOf(_propTypes2.default.instanceOf(_safeHTMLElement2.default))]),\n onAfterOpen: _propTypes2.default.func,\n onRequestClose: _propTypes2.default.func,\n closeTimeoutMS: _propTypes2.default.number,\n ariaHideApp: _propTypes2.default.bool,\n shouldFocusAfterRender: _propTypes2.default.bool,\n shouldCloseOnOverlayClick: _propTypes2.default.bool,\n shouldReturnFocusAfterClose: _propTypes2.default.bool,\n preventScroll: _propTypes2.default.bool,\n parentSelector: _propTypes2.default.func,\n aria: _propTypes2.default.object,\n data: _propTypes2.default.object,\n role: _propTypes2.default.string,\n contentLabel: _propTypes2.default.string,\n shouldCloseOnEsc: _propTypes2.default.bool,\n overlayRef: _propTypes2.default.func,\n contentRef: _propTypes2.default.func,\n id: _propTypes2.default.string,\n overlayElement: _propTypes2.default.func,\n contentElement: _propTypes2.default.func\n};\nModal.defaultProps = {\n isOpen: false,\n portalClassName: portalClassName,\n bodyOpenClassName: bodyOpenClassName,\n role: \"dialog\",\n ariaHideApp: true,\n closeTimeoutMS: 0,\n shouldFocusAfterRender: true,\n shouldCloseOnEsc: true,\n shouldCloseOnOverlayClick: true,\n shouldReturnFocusAfterClose: true,\n preventScroll: false,\n parentSelector: function parentSelector() {\n return document.body;\n },\n overlayElement: function overlayElement(props, contentEl) {\n return _react2.default.createElement(\n \"div\",\n props,\n contentEl\n );\n },\n contentElement: function contentElement(props, children) {\n return _react2.default.createElement(\n \"div\",\n props,\n children\n );\n }\n};\nModal.defaultStyles = {\n overlay: {\n position: \"fixed\",\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n backgroundColor: \"rgba(255, 255, 255, 0.75)\"\n },\n content: {\n position: \"absolute\",\n top: \"40px\",\n left: \"40px\",\n right: \"40px\",\n bottom: \"40px\",\n border: \"1px solid #ccc\",\n background: \"#fff\",\n overflow: \"auto\",\n WebkitOverflowScrolling: \"touch\",\n borderRadius: \"4px\",\n outline: \"none\",\n padding: \"20px\"\n }\n};\n\n\n(0, _reactLifecyclesCompat.polyfill)(Modal);\n\nif (process.env.NODE_ENV !== \"production\") {\n Modal.setCreateHTMLElement = function (fn) {\n return createHTMLElement = fn;\n };\n}\n\nexports.default = Modal;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require(\"react\");\n\nvar _propTypes = require(\"prop-types\");\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _focusManager = require(\"../helpers/focusManager\");\n\nvar focusManager = _interopRequireWildcard(_focusManager);\n\nvar _scopeTab = require(\"../helpers/scopeTab\");\n\nvar _scopeTab2 = _interopRequireDefault(_scopeTab);\n\nvar _ariaAppHider = require(\"../helpers/ariaAppHider\");\n\nvar ariaAppHider = _interopRequireWildcard(_ariaAppHider);\n\nvar _classList = require(\"../helpers/classList\");\n\nvar classList = _interopRequireWildcard(_classList);\n\nvar _safeHTMLElement = require(\"../helpers/safeHTMLElement\");\n\nvar _safeHTMLElement2 = _interopRequireDefault(_safeHTMLElement);\n\nvar _portalOpenInstances = require(\"../helpers/portalOpenInstances\");\n\nvar _portalOpenInstances2 = _interopRequireDefault(_portalOpenInstances);\n\nrequire(\"../helpers/bodyTrap\");\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n// so that our CSS is statically analyzable\nvar CLASS_NAMES = {\n overlay: \"ReactModal__Overlay\",\n content: \"ReactModal__Content\"\n};\n\n/**\n * We need to support the deprecated `KeyboardEvent.keyCode` in addition to\n * `KeyboardEvent.code` for apps that still support IE11. Can be removed when\n * `react-modal` only supports React >18 (which dropped IE support).\n */\nvar isTabKey = function isTabKey(event) {\n return event.code === \"Tab\" || event.keyCode === 9;\n};\nvar isEscKey = function isEscKey(event) {\n return event.code === \"Escape\" || event.keyCode === 27;\n};\n\nvar ariaHiddenInstances = 0;\n\nvar ModalPortal = function (_Component) {\n _inherits(ModalPortal, _Component);\n\n function ModalPortal(props) {\n _classCallCheck(this, ModalPortal);\n\n var _this = _possibleConstructorReturn(this, (ModalPortal.__proto__ || Object.getPrototypeOf(ModalPortal)).call(this, props));\n\n _this.setOverlayRef = function (overlay) {\n _this.overlay = overlay;\n _this.props.overlayRef && _this.props.overlayRef(overlay);\n };\n\n _this.setContentRef = function (content) {\n _this.content = content;\n _this.props.contentRef && _this.props.contentRef(content);\n };\n\n _this.afterClose = function () {\n var _this$props = _this.props,\n appElement = _this$props.appElement,\n ariaHideApp = _this$props.ariaHideApp,\n htmlOpenClassName = _this$props.htmlOpenClassName,\n bodyOpenClassName = _this$props.bodyOpenClassName,\n parentSelector = _this$props.parentSelector;\n\n\n var parentDocument = parentSelector && parentSelector().ownerDocument || document;\n\n // Remove classes.\n bodyOpenClassName && classList.remove(parentDocument.body, bodyOpenClassName);\n\n htmlOpenClassName && classList.remove(parentDocument.getElementsByTagName(\"html\")[0], htmlOpenClassName);\n\n // Reset aria-hidden attribute if all modals have been removed\n if (ariaHideApp && ariaHiddenInstances > 0) {\n ariaHiddenInstances -= 1;\n\n if (ariaHiddenInstances === 0) {\n ariaAppHider.show(appElement);\n }\n }\n\n if (_this.props.shouldFocusAfterRender) {\n if (_this.props.shouldReturnFocusAfterClose) {\n focusManager.returnFocus(_this.props.preventScroll);\n focusManager.teardownScopedFocus();\n } else {\n focusManager.popWithoutFocus();\n }\n }\n\n if (_this.props.onAfterClose) {\n _this.props.onAfterClose();\n }\n\n _portalOpenInstances2.default.deregister(_this);\n };\n\n _this.open = function () {\n _this.beforeOpen();\n if (_this.state.afterOpen && _this.state.beforeClose) {\n clearTimeout(_this.closeTimer);\n _this.setState({ beforeClose: false });\n } else {\n if (_this.props.shouldFocusAfterRender) {\n focusManager.setupScopedFocus(_this.node);\n focusManager.markForFocusLater();\n }\n\n _this.setState({ isOpen: true }, function () {\n _this.openAnimationFrame = requestAnimationFrame(function () {\n _this.setState({ afterOpen: true });\n\n if (_this.props.isOpen && _this.props.onAfterOpen) {\n _this.props.onAfterOpen({\n overlayEl: _this.overlay,\n contentEl: _this.content\n });\n }\n });\n });\n }\n };\n\n _this.close = function () {\n if (_this.props.closeTimeoutMS > 0) {\n _this.closeWithTimeout();\n } else {\n _this.closeWithoutTimeout();\n }\n };\n\n _this.focusContent = function () {\n return _this.content && !_this.contentHasFocus() && _this.content.focus({ preventScroll: true });\n };\n\n _this.closeWithTimeout = function () {\n var closesAt = Date.now() + _this.props.closeTimeoutMS;\n _this.setState({ beforeClose: true, closesAt: closesAt }, function () {\n _this.closeTimer = setTimeout(_this.closeWithoutTimeout, _this.state.closesAt - Date.now());\n });\n };\n\n _this.closeWithoutTimeout = function () {\n _this.setState({\n beforeClose: false,\n isOpen: false,\n afterOpen: false,\n closesAt: null\n }, _this.afterClose);\n };\n\n _this.handleKeyDown = function (event) {\n if (isTabKey(event)) {\n (0, _scopeTab2.default)(_this.content, event);\n }\n\n if (_this.props.shouldCloseOnEsc && isEscKey(event)) {\n event.stopPropagation();\n _this.requestClose(event);\n }\n };\n\n _this.handleOverlayOnClick = function (event) {\n if (_this.shouldClose === null) {\n _this.shouldClose = true;\n }\n\n if (_this.shouldClose && _this.props.shouldCloseOnOverlayClick) {\n if (_this.ownerHandlesClose()) {\n _this.requestClose(event);\n } else {\n _this.focusContent();\n }\n }\n _this.shouldClose = null;\n };\n\n _this.handleContentOnMouseUp = function () {\n _this.shouldClose = false;\n };\n\n _this.handleOverlayOnMouseDown = function (event) {\n if (!_this.props.shouldCloseOnOverlayClick && event.target == _this.overlay) {\n event.preventDefault();\n }\n };\n\n _this.handleContentOnClick = function () {\n _this.shouldClose = false;\n };\n\n _this.handleContentOnMouseDown = function () {\n _this.shouldClose = false;\n };\n\n _this.requestClose = function (event) {\n return _this.ownerHandlesClose() && _this.props.onRequestClose(event);\n };\n\n _this.ownerHandlesClose = function () {\n return _this.props.onRequestClose;\n };\n\n _this.shouldBeClosed = function () {\n return !_this.state.isOpen && !_this.state.beforeClose;\n };\n\n _this.contentHasFocus = function () {\n return document.activeElement === _this.content || _this.content.contains(document.activeElement);\n };\n\n _this.buildClassName = function (which, additional) {\n var classNames = (typeof additional === \"undefined\" ? \"undefined\" : _typeof(additional)) === \"object\" ? additional : {\n base: CLASS_NAMES[which],\n afterOpen: CLASS_NAMES[which] + \"--after-open\",\n beforeClose: CLASS_NAMES[which] + \"--before-close\"\n };\n var className = classNames.base;\n if (_this.state.afterOpen) {\n className = className + \" \" + classNames.afterOpen;\n }\n if (_this.state.beforeClose) {\n className = className + \" \" + classNames.beforeClose;\n }\n return typeof additional === \"string\" && additional ? className + \" \" + additional : className;\n };\n\n _this.attributesFromObject = function (prefix, items) {\n return Object.keys(items).reduce(function (acc, name) {\n acc[prefix + \"-\" + name] = items[name];\n return acc;\n }, {});\n };\n\n _this.state = {\n afterOpen: false,\n beforeClose: false\n };\n\n _this.shouldClose = null;\n _this.moveFromContentToOverlay = null;\n return _this;\n }\n\n _createClass(ModalPortal, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n if (this.props.isOpen) {\n this.open();\n }\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps, prevState) {\n if (process.env.NODE_ENV !== \"production\") {\n if (prevProps.bodyOpenClassName !== this.props.bodyOpenClassName) {\n // eslint-disable-next-line no-console\n console.warn('React-Modal: \"bodyOpenClassName\" prop has been modified. ' + \"This may cause unexpected behavior when multiple modals are open.\");\n }\n if (prevProps.htmlOpenClassName !== this.props.htmlOpenClassName) {\n // eslint-disable-next-line no-console\n console.warn('React-Modal: \"htmlOpenClassName\" prop has been modified. ' + \"This may cause unexpected behavior when multiple modals are open.\");\n }\n }\n\n if (this.props.isOpen && !prevProps.isOpen) {\n this.open();\n } else if (!this.props.isOpen && prevProps.isOpen) {\n this.close();\n }\n\n // Focus only needs to be set once when the modal is being opened\n if (this.props.shouldFocusAfterRender && this.state.isOpen && !prevState.isOpen) {\n this.focusContent();\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (this.state.isOpen) {\n this.afterClose();\n }\n clearTimeout(this.closeTimer);\n cancelAnimationFrame(this.openAnimationFrame);\n }\n }, {\n key: \"beforeOpen\",\n value: function beforeOpen() {\n var _props = this.props,\n appElement = _props.appElement,\n ariaHideApp = _props.ariaHideApp,\n htmlOpenClassName = _props.htmlOpenClassName,\n bodyOpenClassName = _props.bodyOpenClassName,\n parentSelector = _props.parentSelector;\n\n\n var parentDocument = parentSelector && parentSelector().ownerDocument || document;\n\n // Add classes.\n bodyOpenClassName && classList.add(parentDocument.body, bodyOpenClassName);\n\n htmlOpenClassName && classList.add(parentDocument.getElementsByTagName(\"html\")[0], htmlOpenClassName);\n\n if (ariaHideApp) {\n ariaHiddenInstances += 1;\n ariaAppHider.hide(appElement);\n }\n\n _portalOpenInstances2.default.register(this);\n }\n\n // Don't steal focus from inner elements\n\n }, {\n key: \"render\",\n value: function render() {\n var _props2 = this.props,\n id = _props2.id,\n className = _props2.className,\n overlayClassName = _props2.overlayClassName,\n defaultStyles = _props2.defaultStyles,\n children = _props2.children;\n\n var contentStyles = className ? {} : defaultStyles.content;\n var overlayStyles = overlayClassName ? {} : defaultStyles.overlay;\n\n if (this.shouldBeClosed()) {\n return null;\n }\n\n var overlayProps = {\n ref: this.setOverlayRef,\n className: this.buildClassName(\"overlay\", overlayClassName),\n style: _extends({}, overlayStyles, this.props.style.overlay),\n onClick: this.handleOverlayOnClick,\n onMouseDown: this.handleOverlayOnMouseDown\n };\n\n var contentProps = _extends({\n id: id,\n ref: this.setContentRef,\n style: _extends({}, contentStyles, this.props.style.content),\n className: this.buildClassName(\"content\", className),\n tabIndex: \"-1\",\n onKeyDown: this.handleKeyDown,\n onMouseDown: this.handleContentOnMouseDown,\n onMouseUp: this.handleContentOnMouseUp,\n onClick: this.handleContentOnClick,\n role: this.props.role,\n \"aria-label\": this.props.contentLabel\n }, this.attributesFromObject(\"aria\", _extends({ modal: true }, this.props.aria)), this.attributesFromObject(\"data\", this.props.data || {}), {\n \"data-testid\": this.props.testId\n });\n\n var contentElement = this.props.contentElement(contentProps, children);\n return this.props.overlayElement(overlayProps, contentElement);\n }\n }]);\n\n return ModalPortal;\n}(_react.Component);\n\nModalPortal.defaultProps = {\n style: {\n overlay: {},\n content: {}\n },\n defaultStyles: {}\n};\nModalPortal.propTypes = {\n isOpen: _propTypes2.default.bool.isRequired,\n defaultStyles: _propTypes2.default.shape({\n content: _propTypes2.default.object,\n overlay: _propTypes2.default.object\n }),\n style: _propTypes2.default.shape({\n content: _propTypes2.default.object,\n overlay: _propTypes2.default.object\n }),\n className: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.object]),\n overlayClassName: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.object]),\n parentSelector: _propTypes2.default.func,\n bodyOpenClassName: _propTypes2.default.string,\n htmlOpenClassName: _propTypes2.default.string,\n ariaHideApp: _propTypes2.default.bool,\n appElement: _propTypes2.default.oneOfType([_propTypes2.default.instanceOf(_safeHTMLElement2.default), _propTypes2.default.instanceOf(_safeHTMLElement.SafeHTMLCollection), _propTypes2.default.instanceOf(_safeHTMLElement.SafeNodeList), _propTypes2.default.arrayOf(_propTypes2.default.instanceOf(_safeHTMLElement2.default))]),\n onAfterOpen: _propTypes2.default.func,\n onAfterClose: _propTypes2.default.func,\n onRequestClose: _propTypes2.default.func,\n closeTimeoutMS: _propTypes2.default.number,\n shouldFocusAfterRender: _propTypes2.default.bool,\n shouldCloseOnOverlayClick: _propTypes2.default.bool,\n shouldReturnFocusAfterClose: _propTypes2.default.bool,\n preventScroll: _propTypes2.default.bool,\n role: _propTypes2.default.string,\n contentLabel: _propTypes2.default.string,\n aria: _propTypes2.default.object,\n data: _propTypes2.default.object,\n children: _propTypes2.default.node,\n shouldCloseOnEsc: _propTypes2.default.bool,\n overlayRef: _propTypes2.default.func,\n contentRef: _propTypes2.default.func,\n id: _propTypes2.default.string,\n overlayElement: _propTypes2.default.func,\n contentElement: _propTypes2.default.func,\n testId: _propTypes2.default.string\n};\nexports.default = ModalPortal;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.resetState = resetState;\nexports.log = log;\nexports.assertNodeList = assertNodeList;\nexports.setElement = setElement;\nexports.validateElement = validateElement;\nexports.hide = hide;\nexports.show = show;\nexports.documentNotReadyOrSSRTesting = documentNotReadyOrSSRTesting;\n\nvar _warning = require(\"warning\");\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nvar _safeHTMLElement = require(\"./safeHTMLElement\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar globalElement = null;\n\n/* eslint-disable no-console */\n/* istanbul ignore next */\nfunction resetState() {\n if (globalElement) {\n if (globalElement.removeAttribute) {\n globalElement.removeAttribute(\"aria-hidden\");\n } else if (globalElement.length != null) {\n globalElement.forEach(function (element) {\n return element.removeAttribute(\"aria-hidden\");\n });\n } else {\n document.querySelectorAll(globalElement).forEach(function (element) {\n return element.removeAttribute(\"aria-hidden\");\n });\n }\n }\n globalElement = null;\n}\n\n/* istanbul ignore next */\nfunction log() {\n if (process.env.NODE_ENV !== \"production\") {\n var check = globalElement || {};\n console.log(\"ariaAppHider ----------\");\n console.log(check.nodeName, check.className, check.id);\n console.log(\"end ariaAppHider ----------\");\n }\n}\n/* eslint-enable no-console */\n\nfunction assertNodeList(nodeList, selector) {\n if (!nodeList || !nodeList.length) {\n throw new Error(\"react-modal: No elements were found for selector \" + selector + \".\");\n }\n}\n\nfunction setElement(element) {\n var useElement = element;\n if (typeof useElement === \"string\" && _safeHTMLElement.canUseDOM) {\n var el = document.querySelectorAll(useElement);\n assertNodeList(el, useElement);\n useElement = el;\n }\n globalElement = useElement || globalElement;\n return globalElement;\n}\n\nfunction validateElement(appElement) {\n var el = appElement || globalElement;\n if (el) {\n return Array.isArray(el) || el instanceof HTMLCollection || el instanceof NodeList ? el : [el];\n } else {\n (0, _warning2.default)(false, [\"react-modal: App element is not defined.\", \"Please use `Modal.setAppElement(el)` or set `appElement={el}`.\", \"This is needed so screen readers don't see main content\", \"when modal is opened. It is not recommended, but you can opt-out\", \"by setting `ariaHideApp={false}`.\"].join(\" \"));\n\n return [];\n }\n}\n\nfunction hide(appElement) {\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = validateElement(appElement)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var el = _step.value;\n\n el.setAttribute(\"aria-hidden\", \"true\");\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n}\n\nfunction show(appElement) {\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = validateElement(appElement)[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var el = _step2.value;\n\n el.removeAttribute(\"aria-hidden\");\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n}\n\nfunction documentNotReadyOrSSRTesting() {\n globalElement = null;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.resetState = resetState;\nexports.log = log;\n\nvar _portalOpenInstances = require(\"./portalOpenInstances\");\n\nvar _portalOpenInstances2 = _interopRequireDefault(_portalOpenInstances);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// Body focus trap see Issue #742\n\nvar before = void 0,\n after = void 0,\n instances = [];\n\n/* eslint-disable no-console */\n/* istanbul ignore next */\nfunction resetState() {\n var _arr = [before, after];\n\n for (var _i = 0; _i < _arr.length; _i++) {\n var item = _arr[_i];\n if (!item) continue;\n item.parentNode && item.parentNode.removeChild(item);\n }\n before = after = null;\n instances = [];\n}\n\n/* istanbul ignore next */\nfunction log() {\n console.log(\"bodyTrap ----------\");\n console.log(instances.length);\n var _arr2 = [before, after];\n for (var _i2 = 0; _i2 < _arr2.length; _i2++) {\n var item = _arr2[_i2];\n var check = item || {};\n console.log(check.nodeName, check.className, check.id);\n }\n console.log(\"edn bodyTrap ----------\");\n}\n/* eslint-enable no-console */\n\nfunction focusContent() {\n if (instances.length === 0) {\n if (process.env.NODE_ENV !== \"production\") {\n // eslint-disable-next-line no-console\n console.warn(\"React-Modal: Open instances > 0 expected\");\n }\n return;\n }\n instances[instances.length - 1].focusContent();\n}\n\nfunction bodyTrap(eventType, openInstances) {\n if (!before && !after) {\n before = document.createElement(\"div\");\n before.setAttribute(\"data-react-modal-body-trap\", \"\");\n before.style.position = \"absolute\";\n before.style.opacity = \"0\";\n before.setAttribute(\"tabindex\", \"0\");\n before.addEventListener(\"focus\", focusContent);\n after = before.cloneNode();\n after.addEventListener(\"focus\", focusContent);\n }\n\n instances = openInstances;\n\n if (instances.length > 0) {\n // Add focus trap\n if (document.body.firstChild !== before) {\n document.body.insertBefore(before, document.body.firstChild);\n }\n if (document.body.lastChild !== after) {\n document.body.appendChild(after);\n }\n } else {\n // Remove focus trap\n if (before.parentElement) {\n before.parentElement.removeChild(before);\n }\n if (after.parentElement) {\n after.parentElement.removeChild(after);\n }\n }\n}\n\n_portalOpenInstances2.default.subscribe(bodyTrap);","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.resetState = resetState;\nexports.log = log;\nvar htmlClassList = {};\nvar docBodyClassList = {};\n\n/* eslint-disable no-console */\n/* istanbul ignore next */\nfunction removeClass(at, cls) {\n at.classList.remove(cls);\n}\n\n/* istanbul ignore next */\nfunction resetState() {\n var htmlElement = document.getElementsByTagName(\"html\")[0];\n for (var cls in htmlClassList) {\n removeClass(htmlElement, htmlClassList[cls]);\n }\n\n var body = document.body;\n for (var _cls in docBodyClassList) {\n removeClass(body, docBodyClassList[_cls]);\n }\n\n htmlClassList = {};\n docBodyClassList = {};\n}\n\n/* istanbul ignore next */\nfunction log() {\n if (process.env.NODE_ENV !== \"production\") {\n var classes = document.getElementsByTagName(\"html\")[0].className;\n var buffer = \"Show tracked classes:\\n\\n\";\n\n buffer += \" (\" + classes + \"):\\n \";\n for (var x in htmlClassList) {\n buffer += \" \" + x + \" \" + htmlClassList[x] + \"\\n \";\n }\n\n classes = document.body.className;\n\n buffer += \"\\n\\ndoc.body (\" + classes + \"):\\n \";\n for (var _x in docBodyClassList) {\n buffer += \" \" + _x + \" \" + docBodyClassList[_x] + \"\\n \";\n }\n\n buffer += \"\\n\";\n\n console.log(buffer);\n }\n}\n/* eslint-enable no-console */\n\n/**\n * Track the number of reference of a class.\n * @param {object} poll The poll to receive the reference.\n * @param {string} className The class name.\n * @return {string}\n */\nvar incrementReference = function incrementReference(poll, className) {\n if (!poll[className]) {\n poll[className] = 0;\n }\n poll[className] += 1;\n return className;\n};\n\n/**\n * Drop the reference of a class.\n * @param {object} poll The poll to receive the reference.\n * @param {string} className The class name.\n * @return {string}\n */\nvar decrementReference = function decrementReference(poll, className) {\n if (poll[className]) {\n poll[className] -= 1;\n }\n return className;\n};\n\n/**\n * Track a class and add to the given class list.\n * @param {Object} classListRef A class list of an element.\n * @param {Object} poll The poll to be used.\n * @param {Array} classes The list of classes to be tracked.\n */\nvar trackClass = function trackClass(classListRef, poll, classes) {\n classes.forEach(function (className) {\n incrementReference(poll, className);\n classListRef.add(className);\n });\n};\n\n/**\n * Untrack a class and remove from the given class list if the reference\n * reaches 0.\n * @param {Object} classListRef A class list of an element.\n * @param {Object} poll The poll to be used.\n * @param {Array} classes The list of classes to be untracked.\n */\nvar untrackClass = function untrackClass(classListRef, poll, classes) {\n classes.forEach(function (className) {\n decrementReference(poll, className);\n poll[className] === 0 && classListRef.remove(className);\n });\n};\n\n/**\n * Public inferface to add classes to the document.body.\n * @param {string} bodyClass The class string to be added.\n * It may contain more then one class\n * with ' ' as separator.\n */\nvar add = exports.add = function add(element, classString) {\n return trackClass(element.classList, element.nodeName.toLowerCase() == \"html\" ? htmlClassList : docBodyClassList, classString.split(\" \"));\n};\n\n/**\n * Public inferface to remove classes from the document.body.\n * @param {string} bodyClass The class string to be added.\n * It may contain more then one class\n * with ' ' as separator.\n */\nvar remove = exports.remove = function remove(element, classString) {\n return untrackClass(element.classList, element.nodeName.toLowerCase() == \"html\" ? htmlClassList : docBodyClassList, classString.split(\" \"));\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.resetState = resetState;\nexports.log = log;\nexports.handleBlur = handleBlur;\nexports.handleFocus = handleFocus;\nexports.markForFocusLater = markForFocusLater;\nexports.returnFocus = returnFocus;\nexports.popWithoutFocus = popWithoutFocus;\nexports.setupScopedFocus = setupScopedFocus;\nexports.teardownScopedFocus = teardownScopedFocus;\n\nvar _tabbable = require(\"../helpers/tabbable\");\n\nvar _tabbable2 = _interopRequireDefault(_tabbable);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar focusLaterElements = [];\nvar modalElement = null;\nvar needToFocus = false;\n\n/* eslint-disable no-console */\n/* istanbul ignore next */\nfunction resetState() {\n focusLaterElements = [];\n}\n\n/* istanbul ignore next */\nfunction log() {\n if (process.env.NODE_ENV !== \"production\") {\n console.log(\"focusManager ----------\");\n focusLaterElements.forEach(function (f) {\n var check = f || {};\n console.log(check.nodeName, check.className, check.id);\n });\n console.log(\"end focusManager ----------\");\n }\n}\n/* eslint-enable no-console */\n\nfunction handleBlur() {\n needToFocus = true;\n}\n\nfunction handleFocus() {\n if (needToFocus) {\n needToFocus = false;\n if (!modalElement) {\n return;\n }\n // need to see how jQuery shims document.on('focusin') so we don't need the\n // setTimeout, firefox doesn't support focusin, if it did, we could focus\n // the element outside of a setTimeout. Side-effect of this implementation\n // is that the document.body gets focus, and then we focus our element right\n // after, seems fine.\n setTimeout(function () {\n if (modalElement.contains(document.activeElement)) {\n return;\n }\n var el = (0, _tabbable2.default)(modalElement)[0] || modalElement;\n el.focus();\n }, 0);\n }\n}\n\nfunction markForFocusLater() {\n focusLaterElements.push(document.activeElement);\n}\n\n/* eslint-disable no-console */\nfunction returnFocus() {\n var preventScroll = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n var toFocus = null;\n try {\n if (focusLaterElements.length !== 0) {\n toFocus = focusLaterElements.pop();\n toFocus.focus({ preventScroll: preventScroll });\n }\n return;\n } catch (e) {\n console.warn([\"You tried to return focus to\", toFocus, \"but it is not in the DOM anymore\"].join(\" \"));\n }\n}\n/* eslint-enable no-console */\n\nfunction popWithoutFocus() {\n focusLaterElements.length > 0 && focusLaterElements.pop();\n}\n\nfunction setupScopedFocus(element) {\n modalElement = element;\n\n if (window.addEventListener) {\n window.addEventListener(\"blur\", handleBlur, false);\n document.addEventListener(\"focus\", handleFocus, true);\n } else {\n window.attachEvent(\"onBlur\", handleBlur);\n document.attachEvent(\"onFocus\", handleFocus);\n }\n}\n\nfunction teardownScopedFocus() {\n modalElement = null;\n\n if (window.addEventListener) {\n window.removeEventListener(\"blur\", handleBlur);\n document.removeEventListener(\"focus\", handleFocus);\n } else {\n window.detachEvent(\"onBlur\", handleBlur);\n document.detachEvent(\"onFocus\", handleFocus);\n }\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.log = log;\nexports.resetState = resetState;\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n// Tracks portals that are open and emits events to subscribers\n\nvar PortalOpenInstances = function PortalOpenInstances() {\n var _this = this;\n\n _classCallCheck(this, PortalOpenInstances);\n\n this.register = function (openInstance) {\n if (_this.openInstances.indexOf(openInstance) !== -1) {\n if (process.env.NODE_ENV !== \"production\") {\n // eslint-disable-next-line no-console\n console.warn(\"React-Modal: Cannot register modal instance that's already open\");\n }\n return;\n }\n _this.openInstances.push(openInstance);\n _this.emit(\"register\");\n };\n\n this.deregister = function (openInstance) {\n var index = _this.openInstances.indexOf(openInstance);\n if (index === -1) {\n if (process.env.NODE_ENV !== \"production\") {\n // eslint-disable-next-line no-console\n console.warn(\"React-Modal: Unable to deregister \" + openInstance + \" as \" + \"it was never registered\");\n }\n return;\n }\n _this.openInstances.splice(index, 1);\n _this.emit(\"deregister\");\n };\n\n this.subscribe = function (callback) {\n _this.subscribers.push(callback);\n };\n\n this.emit = function (eventType) {\n _this.subscribers.forEach(function (subscriber) {\n return subscriber(eventType,\n // shallow copy to avoid accidental mutation\n _this.openInstances.slice());\n });\n };\n\n this.openInstances = [];\n this.subscribers = [];\n};\n\nvar portalOpenInstances = new PortalOpenInstances();\n\n/* eslint-disable no-console */\n/* istanbul ignore next */\nfunction log() {\n console.log(\"portalOpenInstances ----------\");\n console.log(portalOpenInstances.openInstances.length);\n portalOpenInstances.openInstances.forEach(function (p) {\n return console.log(p);\n });\n console.log(\"end portalOpenInstances ----------\");\n}\n\n/* istanbul ignore next */\nfunction resetState() {\n portalOpenInstances = new PortalOpenInstances();\n}\n/* eslint-enable no-console */\n\nexports.default = portalOpenInstances;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.canUseDOM = exports.SafeNodeList = exports.SafeHTMLCollection = undefined;\n\nvar _exenv = require(\"exenv\");\n\nvar _exenv2 = _interopRequireDefault(_exenv);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar EE = _exenv2.default;\n\nvar SafeHTMLElement = EE.canUseDOM ? window.HTMLElement : {};\n\nvar SafeHTMLCollection = exports.SafeHTMLCollection = EE.canUseDOM ? window.HTMLCollection : {};\n\nvar SafeNodeList = exports.SafeNodeList = EE.canUseDOM ? window.NodeList : {};\n\nvar canUseDOM = exports.canUseDOM = EE.canUseDOM;\n\nexports.default = SafeHTMLElement;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = scopeTab;\n\nvar _tabbable = require(\"./tabbable\");\n\nvar _tabbable2 = _interopRequireDefault(_tabbable);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction getActiveElement() {\n var el = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : document;\n\n return el.activeElement.shadowRoot ? getActiveElement(el.activeElement.shadowRoot) : el.activeElement;\n}\n\nfunction scopeTab(node, event) {\n var tabbable = (0, _tabbable2.default)(node);\n\n if (!tabbable.length) {\n // Do nothing, since there are no elements that can receive focus.\n event.preventDefault();\n return;\n }\n\n var target = void 0;\n\n var shiftKey = event.shiftKey;\n var head = tabbable[0];\n var tail = tabbable[tabbable.length - 1];\n var activeElement = getActiveElement();\n\n // proceed with default browser behavior on tab.\n // Focus on last element on shift + tab.\n if (node === activeElement) {\n if (!shiftKey) return;\n target = tail;\n }\n\n if (tail === activeElement && !shiftKey) {\n target = head;\n }\n\n if (head === activeElement && shiftKey) {\n target = tail;\n }\n\n if (target) {\n event.preventDefault();\n target.focus();\n return;\n }\n\n // Safari radio issue.\n //\n // Safari does not move the focus to the radio button,\n // so we need to force it to really walk through all elements.\n //\n // This is very error prone, since we are trying to guess\n // if it is a safari browser from the first occurence between\n // chrome or safari.\n //\n // The chrome user agent contains the first ocurrence\n // as the 'chrome/version' and later the 'safari/version'.\n var checkSafari = /(\\bChrome\\b|\\bSafari\\b)\\//.exec(navigator.userAgent);\n var isSafariDesktop = checkSafari != null && checkSafari[1] != \"Chrome\" && /\\biPod\\b|\\biPad\\b/g.exec(navigator.userAgent) == null;\n\n // If we are not in safari desktop, let the browser control\n // the focus\n if (!isSafariDesktop) return;\n\n var x = tabbable.indexOf(activeElement);\n\n if (x > -1) {\n x += shiftKey ? -1 : 1;\n }\n\n target = tabbable[x];\n\n // If the tabbable element does not exist,\n // focus head/tail based on shiftKey\n if (typeof target === \"undefined\") {\n event.preventDefault();\n target = shiftKey ? tail : head;\n target.focus();\n return;\n }\n\n event.preventDefault();\n\n target.focus();\n}\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = findTabbableDescendants;\n/*!\n * Adapted from jQuery UI core\n *\n * http://jqueryui.com\n *\n * Copyright 2014 jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n *\n * http://api.jqueryui.com/category/ui-core/\n */\n\nvar DISPLAY_NONE = \"none\";\nvar DISPLAY_CONTENTS = \"contents\";\n\nvar tabbableNode = /input|select|textarea|button|object|iframe/;\n\nfunction isNotOverflowing(element, style) {\n return style.getPropertyValue(\"overflow\") !== \"visible\" ||\n // if 'overflow: visible' set, check if there is actually any overflow\n element.scrollWidth <= 0 && element.scrollHeight <= 0;\n}\n\nfunction hidesContents(element) {\n var zeroSize = element.offsetWidth <= 0 && element.offsetHeight <= 0;\n\n // If the node is empty, this is good enough\n if (zeroSize && !element.innerHTML) return true;\n\n try {\n // Otherwise we need to check some styles\n var style = window.getComputedStyle(element);\n var displayValue = style.getPropertyValue(\"display\");\n return zeroSize ? displayValue !== DISPLAY_CONTENTS && isNotOverflowing(element, style) : displayValue === DISPLAY_NONE;\n } catch (exception) {\n // eslint-disable-next-line no-console\n console.warn(\"Failed to inspect element style\");\n return false;\n }\n}\n\nfunction visible(element) {\n var parentElement = element;\n var rootNode = element.getRootNode && element.getRootNode();\n while (parentElement) {\n if (parentElement === document.body) break;\n\n // if we are not hidden yet, skip to checking outside the Web Component\n if (rootNode && parentElement === rootNode) parentElement = rootNode.host.parentNode;\n\n if (hidesContents(parentElement)) return false;\n parentElement = parentElement.parentNode;\n }\n return true;\n}\n\nfunction focusable(element, isTabIndexNotNaN) {\n var nodeName = element.nodeName.toLowerCase();\n var res = tabbableNode.test(nodeName) && !element.disabled || (nodeName === \"a\" ? element.href || isTabIndexNotNaN : isTabIndexNotNaN);\n return res && visible(element);\n}\n\nfunction tabbable(element) {\n var tabIndex = element.getAttribute(\"tabindex\");\n if (tabIndex === null) tabIndex = undefined;\n var isTabIndexNaN = isNaN(tabIndex);\n return (isTabIndexNaN || tabIndex >= 0) && focusable(element, !isTabIndexNaN);\n}\n\nfunction findTabbableDescendants(element) {\n var descendants = [].slice.call(element.querySelectorAll(\"*\"), 0).reduce(function (finished, el) {\n return finished.concat(!el.shadowRoot ? [el] : findTabbableDescendants(el.shadowRoot));\n }, []);\n return descendants.filter(tabbable);\n}\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _Modal = require(\"./components/Modal\");\n\nvar _Modal2 = _interopRequireDefault(_Modal);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = _Modal2.default;\nmodule.exports = exports[\"default\"];","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = StyleToObject;\nvar inline_style_parser_1 = __importDefault(require(\"inline-style-parser\"));\n/**\n * Parses inline style to object.\n *\n * @param style - Inline style.\n * @param iterator - Iterator.\n * @returns - Style object or null.\n *\n * @example Parsing inline style to object:\n *\n * ```js\n * import parse from 'style-to-object';\n * parse('line-height: 42;'); // { 'line-height': '42' }\n * ```\n */\nfunction StyleToObject(style, iterator) {\n var styleObject = null;\n if (!style || typeof style !== 'string') {\n return styleObject;\n }\n var declarations = (0, inline_style_parser_1.default)(style);\n var hasIterator = typeof iterator === 'function';\n declarations.forEach(function (declaration) {\n if (declaration.type !== 'declaration') {\n return;\n }\n var property = declaration.property, value = declaration.value;\n if (hasIterator) {\n iterator(property, value, declaration);\n }\n else if (value) {\n styleObject = styleObject || {};\n styleObject[property] = value;\n }\n });\n return styleObject;\n}\n//# sourceMappingURL=index.js.map","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar __DEV__ = process.env.NODE_ENV !== 'production';\n\nvar warning = function() {};\n\nif (__DEV__) {\n var printWarning = function printWarning(format, args) {\n var len = arguments.length;\n args = new Array(len > 1 ? len - 1 : 0);\n for (var key = 1; key < len; key++) {\n args[key - 1] = arguments[key];\n }\n var argIndex = 0;\n var message = 'Warning: ' +\n format.replace(/%s/g, function() {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n }\n\n warning = function(condition, format, args) {\n var len = arguments.length;\n args = new Array(len > 2 ? len - 2 : 0);\n for (var key = 2; key < len; key++) {\n args[key - 2] = arguments[key];\n }\n if (format === undefined) {\n throw new Error(\n '`warning(condition, format, ...args)` requires a warning ' +\n 'message argument'\n );\n }\n if (!condition) {\n printWarning.apply(null, [format].concat(args));\n }\n };\n}\n\nmodule.exports = warning;\n","// Copyright 2021-2024 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { Message } from \"../../message.js\";\nimport { proto3 } from \"../../proto3.js\";\n/**\n * A generic empty message that you can re-use to avoid defining duplicated\n * empty messages in your APIs. A typical example is to use it as the request\n * or the response type of an API method. For instance:\n *\n * service Foo {\n * rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);\n * }\n *\n *\n * @generated from message google.protobuf.Empty\n */\nexport class Empty extends Message {\n constructor(data) {\n super();\n proto3.util.initPartial(data, this);\n }\n static fromBinary(bytes, options) {\n return new Empty().fromBinary(bytes, options);\n }\n static fromJson(jsonValue, options) {\n return new Empty().fromJson(jsonValue, options);\n }\n static fromJsonString(jsonString, options) {\n return new Empty().fromJsonString(jsonString, options);\n }\n static equals(a, b) {\n return proto3.util.equals(Empty, a, b);\n }\n}\nEmpty.runtime = proto3;\nEmpty.typeName = \"google.protobuf.Empty\";\nEmpty.fields = proto3.util.newFieldList(() => []);\n","// Copyright 2021-2024 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n/**\n * Message is the base class of every message, generated, or created at\n * runtime.\n *\n * It is _not_ safe to extend this class. If you want to create a message at\n * run time, use proto3.makeMessageType().\n */\nexport class Message {\n /**\n * Compare with a message of the same type.\n * Note that this function disregards extensions and unknown fields.\n */\n equals(other) {\n return this.getType().runtime.util.equals(this.getType(), this, other);\n }\n /**\n * Create a deep copy.\n */\n clone() {\n return this.getType().runtime.util.clone(this);\n }\n /**\n * Parse from binary data, merging fields.\n *\n * Repeated fields are appended. Map entries are added, overwriting\n * existing keys.\n *\n * If a message field is already present, it will be merged with the\n * new data.\n */\n fromBinary(bytes, options) {\n const type = this.getType(), format = type.runtime.bin, opt = format.makeReadOptions(options);\n format.readMessage(this, opt.readerFactory(bytes), bytes.byteLength, opt);\n return this;\n }\n /**\n * Parse a message from a JSON value.\n */\n fromJson(jsonValue, options) {\n const type = this.getType(), format = type.runtime.json, opt = format.makeReadOptions(options);\n format.readMessage(type, jsonValue, opt, this);\n return this;\n }\n /**\n * Parse a message from a JSON string.\n */\n fromJsonString(jsonString, options) {\n let json;\n try {\n json = JSON.parse(jsonString);\n }\n catch (e) {\n throw new Error(`cannot decode ${this.getType().typeName} from JSON: ${e instanceof Error ? e.message : String(e)}`);\n }\n return this.fromJson(json, options);\n }\n /**\n * Serialize the message to binary data.\n */\n toBinary(options) {\n const type = this.getType(), bin = type.runtime.bin, opt = bin.makeWriteOptions(options), writer = opt.writerFactory();\n bin.writeMessage(this, writer, opt);\n return writer.finish();\n }\n /**\n * Serialize the message to a JSON value, a JavaScript value that can be\n * passed to JSON.stringify().\n */\n toJson(options) {\n const type = this.getType(), json = type.runtime.json, opt = json.makeWriteOptions(options);\n return json.writeMessage(this, opt);\n }\n /**\n * Serialize the message to a JSON string.\n */\n toJsonString(options) {\n var _a;\n const value = this.toJson(options);\n return JSON.stringify(value, null, (_a = options === null || options === void 0 ? void 0 : options.prettySpaces) !== null && _a !== void 0 ? _a : 0);\n }\n /**\n * Override for serialization behavior. This will be invoked when calling\n * JSON.stringify on this message (i.e. JSON.stringify(msg)).\n *\n * Note that this will not serialize google.protobuf.Any with a packed\n * message because the protobuf JSON format specifies that it needs to be\n * unpacked, and this is only possible with a type registry to look up the\n * message type. As a result, attempting to serialize a message with this\n * type will throw an Error.\n *\n * This method is protected because you should not need to invoke it\n * directly -- instead use JSON.stringify or toJsonString for\n * stringified JSON. Alternatively, if actual JSON is desired, you should\n * use toJson.\n */\n toJSON() {\n return this.toJson({\n emitDefaultValues: true,\n });\n }\n /**\n * Retrieve the MessageType of this message - a singleton that represents\n * the protobuf message declaration and provides metadata for reflection-\n * based operations.\n */\n getType() {\n // Any class that extends Message _must_ provide a complete static\n // implementation of MessageType.\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access,@typescript-eslint/no-unsafe-return\n return Object.getPrototypeOf(this).constructor;\n }\n}\n","// Copyright 2021-2024 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n/* eslint-disable @typescript-eslint/ban-ts-comment, @typescript-eslint/no-unnecessary-condition, prefer-const */\n// lookup table from base64 character to byte\nlet encTable = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\".split(\"\");\n// lookup table from base64 character *code* to byte because lookup by number is fast\nlet decTable = [];\nfor (let i = 0; i < encTable.length; i++)\n decTable[encTable[i].charCodeAt(0)] = i;\n// support base64url variants\ndecTable[\"-\".charCodeAt(0)] = encTable.indexOf(\"+\");\ndecTable[\"_\".charCodeAt(0)] = encTable.indexOf(\"/\");\nexport const protoBase64 = {\n /**\n * Decodes a base64 string to a byte array.\n *\n * - ignores white-space, including line breaks and tabs\n * - allows inner padding (can decode concatenated base64 strings)\n * - does not require padding\n * - understands base64url encoding:\n * \"-\" instead of \"+\",\n * \"_\" instead of \"/\",\n * no padding\n */\n dec(base64Str) {\n // estimate byte size, not accounting for inner padding and whitespace\n let es = (base64Str.length * 3) / 4;\n if (base64Str[base64Str.length - 2] == \"=\")\n es -= 2;\n else if (base64Str[base64Str.length - 1] == \"=\")\n es -= 1;\n let bytes = new Uint8Array(es), bytePos = 0, // position in byte array\n groupPos = 0, // position in base64 group\n b, // current byte\n p = 0; // previous byte\n for (let i = 0; i < base64Str.length; i++) {\n b = decTable[base64Str.charCodeAt(i)];\n if (b === undefined) {\n switch (base64Str[i]) {\n // @ts-ignore TS7029: Fallthrough case in switch\n case \"=\":\n groupPos = 0; // reset state when padding found\n // @ts-ignore TS7029: Fallthrough case in switch\n case \"\\n\":\n case \"\\r\":\n case \"\\t\":\n case \" \":\n continue; // skip white-space, and padding\n default:\n throw Error(\"invalid base64 string.\");\n }\n }\n switch (groupPos) {\n case 0:\n p = b;\n groupPos = 1;\n break;\n case 1:\n bytes[bytePos++] = (p << 2) | ((b & 48) >> 4);\n p = b;\n groupPos = 2;\n break;\n case 2:\n bytes[bytePos++] = ((p & 15) << 4) | ((b & 60) >> 2);\n p = b;\n groupPos = 3;\n break;\n case 3:\n bytes[bytePos++] = ((p & 3) << 6) | b;\n groupPos = 0;\n break;\n }\n }\n if (groupPos == 1)\n throw Error(\"invalid base64 string.\");\n return bytes.subarray(0, bytePos);\n },\n /**\n * Encode a byte array to a base64 string.\n */\n enc(bytes) {\n let base64 = \"\", groupPos = 0, // position in base64 group\n b, // current byte\n p = 0; // carry over from previous byte\n for (let i = 0; i < bytes.length; i++) {\n b = bytes[i];\n switch (groupPos) {\n case 0:\n base64 += encTable[b >> 2];\n p = (b & 3) << 4;\n groupPos = 1;\n break;\n case 1:\n base64 += encTable[p | (b >> 4)];\n p = (b & 15) << 2;\n groupPos = 2;\n break;\n case 2:\n base64 += encTable[p | (b >> 6)];\n base64 += encTable[b & 63];\n groupPos = 0;\n break;\n }\n }\n // add output padding\n if (groupPos) {\n base64 += encTable[p];\n base64 += \"=\";\n if (groupPos == 1)\n base64 += \"=\";\n }\n return base64;\n },\n};\n","// Copyright 2021-2024 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n/**\n * Assert that condition is truthy or throw error (with message)\n */\nexport function assert(condition, msg) {\n // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions -- we want the implicit conversion to boolean\n if (!condition) {\n throw new Error(msg);\n }\n}\nconst FLOAT32_MAX = 3.4028234663852886e38, FLOAT32_MIN = -3.4028234663852886e38, UINT32_MAX = 0xffffffff, INT32_MAX = 0x7fffffff, INT32_MIN = -0x80000000;\n/**\n * Assert a valid signed protobuf 32-bit integer.\n */\nexport function assertInt32(arg) {\n if (typeof arg !== \"number\")\n throw new Error(\"invalid int 32: \" + typeof arg);\n if (!Number.isInteger(arg) || arg > INT32_MAX || arg < INT32_MIN)\n throw new Error(\"invalid int 32: \" + arg); // eslint-disable-line @typescript-eslint/restrict-plus-operands -- we want the implicit conversion to string\n}\n/**\n * Assert a valid unsigned protobuf 32-bit integer.\n */\nexport function assertUInt32(arg) {\n if (typeof arg !== \"number\")\n throw new Error(\"invalid uint 32: \" + typeof arg);\n if (!Number.isInteger(arg) || arg > UINT32_MAX || arg < 0)\n throw new Error(\"invalid uint 32: \" + arg); // eslint-disable-line @typescript-eslint/restrict-plus-operands -- we want the implicit conversion to string\n}\n/**\n * Assert a valid protobuf float value.\n */\nexport function assertFloat32(arg) {\n if (typeof arg !== \"number\")\n throw new Error(\"invalid float 32: \" + typeof arg);\n if (!Number.isFinite(arg))\n return;\n if (arg > FLOAT32_MAX || arg < FLOAT32_MIN)\n throw new Error(\"invalid float 32: \" + arg); // eslint-disable-line @typescript-eslint/restrict-plus-operands -- we want the implicit conversion to string\n}\n","// Copyright 2021-2024 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { assert } from \"./assert.js\";\nconst enumTypeSymbol = Symbol(\"@bufbuild/protobuf/enum-type\");\n/**\n * Get reflection information from a generated enum.\n * If this function is called on something other than a generated\n * enum, it raises an error.\n */\nexport function getEnumType(enumObject) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access,@typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-explicit-any\n const t = enumObject[enumTypeSymbol];\n assert(t, \"missing enum type on enum object\");\n return t; // eslint-disable-line @typescript-eslint/no-unsafe-return\n}\n/**\n * Sets reflection information on a generated enum.\n */\nexport function setEnumType(enumObject, typeName, values, opt) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-explicit-any\n enumObject[enumTypeSymbol] = makeEnumType(typeName, values.map((v) => ({\n no: v.no,\n name: v.name,\n localName: enumObject[v.no],\n })), opt);\n}\n/**\n * Create a new EnumType with the given values.\n */\nexport function makeEnumType(typeName, values, \n// eslint-disable-next-line @typescript-eslint/no-unused-vars\n_opt) {\n const names = Object.create(null);\n const numbers = Object.create(null);\n const normalValues = [];\n for (const value of values) {\n // We do not surface options at this time\n // const value: EnumValueInfo = {...v, options: v.options ?? emptyReadonlyObject};\n const n = normalizeEnumValue(value);\n normalValues.push(n);\n names[value.name] = n;\n numbers[value.no] = n;\n }\n return {\n typeName,\n values: normalValues,\n // We do not surface options at this time\n // options: opt?.options ?? Object.create(null),\n findName(name) {\n return names[name];\n },\n findNumber(no) {\n return numbers[no];\n },\n };\n}\n/**\n * Create a new enum object with the given values.\n * Sets reflection information.\n */\nexport function makeEnum(typeName, values, opt) {\n const enumObject = {};\n for (const value of values) {\n const n = normalizeEnumValue(value);\n enumObject[n.localName] = n.no;\n enumObject[n.no] = n.localName;\n }\n setEnumType(enumObject, typeName, values, opt);\n return enumObject;\n}\nfunction normalizeEnumValue(value) {\n if (\"localName\" in value) {\n return value;\n }\n return Object.assign(Object.assign({}, value), { localName: value.name });\n}\n","// Copyright 2021-2024 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { Message } from \"../message.js\";\n/**\n * Create a new message type using the given runtime.\n */\nexport function makeMessageType(runtime, typeName, fields, opt) {\n var _a;\n const localName = (_a = opt === null || opt === void 0 ? void 0 : opt.localName) !== null && _a !== void 0 ? _a : typeName.substring(typeName.lastIndexOf(\".\") + 1);\n const type = {\n [localName]: function (data) {\n runtime.util.initFields(this);\n runtime.util.initPartial(data, this);\n },\n }[localName];\n Object.setPrototypeOf(type.prototype, new Message());\n Object.assign(type, {\n runtime,\n typeName,\n fields: runtime.util.newFieldList(fields),\n fromBinary(bytes, options) {\n return new type().fromBinary(bytes, options);\n },\n fromJson(jsonValue, options) {\n return new type().fromJson(jsonValue, options);\n },\n fromJsonString(jsonString, options) {\n return new type().fromJsonString(jsonString, options);\n },\n equals(a, b) {\n return runtime.util.equals(type, a, b);\n },\n });\n return type;\n}\n","// Copyright 2008 Google Inc. All rights reserved.\n//\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions are\n// met:\n//\n// * Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n// * Redistributions in binary form must reproduce the above\n// copyright notice, this list of conditions and the following disclaimer\n// in the documentation and/or other materials provided with the\n// distribution.\n// * Neither the name of Google Inc. nor the names of its\n// contributors may be used to endorse or promote products derived from\n// this software without specific prior written permission.\n//\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n// \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n//\n// Code generated by the Protocol Buffer compiler is owned by the owner\n// of the input file used when generating it. This code is not\n// standalone and requires a support library to be linked with it. This\n// support library is itself covered by the above license.\n/* eslint-disable prefer-const,@typescript-eslint/restrict-plus-operands */\n/**\n * Read a 64 bit varint as two JS numbers.\n *\n * Returns tuple:\n * [0]: low bits\n * [1]: high bits\n *\n * Copyright 2008 Google Inc. All rights reserved.\n *\n * See https://github.com/protocolbuffers/protobuf/blob/8a71927d74a4ce34efe2d8769fda198f52d20d12/js/experimental/runtime/kernel/buffer_decoder.js#L175\n */\nexport function varint64read() {\n let lowBits = 0;\n let highBits = 0;\n for (let shift = 0; shift < 28; shift += 7) {\n let b = this.buf[this.pos++];\n lowBits |= (b & 0x7f) << shift;\n if ((b & 0x80) == 0) {\n this.assertBounds();\n return [lowBits, highBits];\n }\n }\n let middleByte = this.buf[this.pos++];\n // last four bits of the first 32 bit number\n lowBits |= (middleByte & 0x0f) << 28;\n // 3 upper bits are part of the next 32 bit number\n highBits = (middleByte & 0x70) >> 4;\n if ((middleByte & 0x80) == 0) {\n this.assertBounds();\n return [lowBits, highBits];\n }\n for (let shift = 3; shift <= 31; shift += 7) {\n let b = this.buf[this.pos++];\n highBits |= (b & 0x7f) << shift;\n if ((b & 0x80) == 0) {\n this.assertBounds();\n return [lowBits, highBits];\n }\n }\n throw new Error(\"invalid varint\");\n}\n/**\n * Write a 64 bit varint, given as two JS numbers, to the given bytes array.\n *\n * Copyright 2008 Google Inc. All rights reserved.\n *\n * See https://github.com/protocolbuffers/protobuf/blob/8a71927d74a4ce34efe2d8769fda198f52d20d12/js/experimental/runtime/kernel/writer.js#L344\n */\nexport function varint64write(lo, hi, bytes) {\n for (let i = 0; i < 28; i = i + 7) {\n const shift = lo >>> i;\n const hasNext = !(shift >>> 7 == 0 && hi == 0);\n const byte = (hasNext ? shift | 0x80 : shift) & 0xff;\n bytes.push(byte);\n if (!hasNext) {\n return;\n }\n }\n const splitBits = ((lo >>> 28) & 0x0f) | ((hi & 0x07) << 4);\n const hasMoreBits = !(hi >> 3 == 0);\n bytes.push((hasMoreBits ? splitBits | 0x80 : splitBits) & 0xff);\n if (!hasMoreBits) {\n return;\n }\n for (let i = 3; i < 31; i = i + 7) {\n const shift = hi >>> i;\n const hasNext = !(shift >>> 7 == 0);\n const byte = (hasNext ? shift | 0x80 : shift) & 0xff;\n bytes.push(byte);\n if (!hasNext) {\n return;\n }\n }\n bytes.push((hi >>> 31) & 0x01);\n}\n// constants for binary math\nconst TWO_PWR_32_DBL = 0x100000000;\n/**\n * Parse decimal string of 64 bit integer value as two JS numbers.\n *\n * Copyright 2008 Google Inc. All rights reserved.\n *\n * See https://github.com/protocolbuffers/protobuf-javascript/blob/a428c58273abad07c66071d9753bc4d1289de426/experimental/runtime/int64.js#L10\n */\nexport function int64FromString(dec) {\n // Check for minus sign.\n const minus = dec[0] === \"-\";\n if (minus) {\n dec = dec.slice(1);\n }\n // Work 6 decimal digits at a time, acting like we're converting base 1e6\n // digits to binary. This is safe to do with floating point math because\n // Number.isSafeInteger(ALL_32_BITS * 1e6) == true.\n const base = 1e6;\n let lowBits = 0;\n let highBits = 0;\n function add1e6digit(begin, end) {\n // Note: Number('') is 0.\n const digit1e6 = Number(dec.slice(begin, end));\n highBits *= base;\n lowBits = lowBits * base + digit1e6;\n // Carry bits from lowBits to\n if (lowBits >= TWO_PWR_32_DBL) {\n highBits = highBits + ((lowBits / TWO_PWR_32_DBL) | 0);\n lowBits = lowBits % TWO_PWR_32_DBL;\n }\n }\n add1e6digit(-24, -18);\n add1e6digit(-18, -12);\n add1e6digit(-12, -6);\n add1e6digit(-6);\n return minus ? negate(lowBits, highBits) : newBits(lowBits, highBits);\n}\n/**\n * Losslessly converts a 64-bit signed integer in 32:32 split representation\n * into a decimal string.\n *\n * Copyright 2008 Google Inc. All rights reserved.\n *\n * See https://github.com/protocolbuffers/protobuf-javascript/blob/a428c58273abad07c66071d9753bc4d1289de426/experimental/runtime/int64.js#L10\n */\nexport function int64ToString(lo, hi) {\n let bits = newBits(lo, hi);\n // If we're treating the input as a signed value and the high bit is set, do\n // a manual two's complement conversion before the decimal conversion.\n const negative = (bits.hi & 0x80000000);\n if (negative) {\n bits = negate(bits.lo, bits.hi);\n }\n const result = uInt64ToString(bits.lo, bits.hi);\n return negative ? \"-\" + result : result;\n}\n/**\n * Losslessly converts a 64-bit unsigned integer in 32:32 split representation\n * into a decimal string.\n *\n * Copyright 2008 Google Inc. All rights reserved.\n *\n * See https://github.com/protocolbuffers/protobuf-javascript/blob/a428c58273abad07c66071d9753bc4d1289de426/experimental/runtime/int64.js#L10\n */\nexport function uInt64ToString(lo, hi) {\n ({ lo, hi } = toUnsigned(lo, hi));\n // Skip the expensive conversion if the number is small enough to use the\n // built-in conversions.\n // Number.MAX_SAFE_INTEGER = 0x001FFFFF FFFFFFFF, thus any number with\n // highBits <= 0x1FFFFF can be safely expressed with a double and retain\n // integer precision.\n // Proven by: Number.isSafeInteger(0x1FFFFF * 2**32 + 0xFFFFFFFF) == true.\n if (hi <= 0x1FFFFF) {\n return String(TWO_PWR_32_DBL * hi + lo);\n }\n // What this code is doing is essentially converting the input number from\n // base-2 to base-1e7, which allows us to represent the 64-bit range with\n // only 3 (very large) digits. Those digits are then trivial to convert to\n // a base-10 string.\n // The magic numbers used here are -\n // 2^24 = 16777216 = (1,6777216) in base-1e7.\n // 2^48 = 281474976710656 = (2,8147497,6710656) in base-1e7.\n // Split 32:32 representation into 16:24:24 representation so our\n // intermediate digits don't overflow.\n const low = lo & 0xFFFFFF;\n const mid = ((lo >>> 24) | (hi << 8)) & 0xFFFFFF;\n const high = (hi >> 16) & 0xFFFF;\n // Assemble our three base-1e7 digits, ignoring carries. The maximum\n // value in a digit at this step is representable as a 48-bit integer, which\n // can be stored in a 64-bit floating point number.\n let digitA = low + (mid * 6777216) + (high * 6710656);\n let digitB = mid + (high * 8147497);\n let digitC = (high * 2);\n // Apply carries from A to B and from B to C.\n const base = 10000000;\n if (digitA >= base) {\n digitB += Math.floor(digitA / base);\n digitA %= base;\n }\n if (digitB >= base) {\n digitC += Math.floor(digitB / base);\n digitB %= base;\n }\n // If digitC is 0, then we should have returned in the trivial code path\n // at the top for non-safe integers. Given this, we can assume both digitB\n // and digitA need leading zeros.\n return digitC.toString() + decimalFrom1e7WithLeadingZeros(digitB) +\n decimalFrom1e7WithLeadingZeros(digitA);\n}\nfunction toUnsigned(lo, hi) {\n return { lo: lo >>> 0, hi: hi >>> 0 };\n}\nfunction newBits(lo, hi) {\n return { lo: lo | 0, hi: hi | 0 };\n}\n/**\n * Returns two's compliment negation of input.\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Bitwise_Operators#Signed_32-bit_integers\n */\nfunction negate(lowBits, highBits) {\n highBits = ~highBits;\n if (lowBits) {\n lowBits = ~lowBits + 1;\n }\n else {\n // If lowBits is 0, then bitwise-not is 0xFFFFFFFF,\n // adding 1 to that, results in 0x100000000, which leaves\n // the low bits 0x0 and simply adds one to the high bits.\n highBits += 1;\n }\n return newBits(lowBits, highBits);\n}\n/**\n * Returns decimal representation of digit1e7 with leading zeros.\n */\nconst decimalFrom1e7WithLeadingZeros = (digit1e7) => {\n const partial = String(digit1e7);\n return \"0000000\".slice(partial.length) + partial;\n};\n/**\n * Write a 32 bit varint, signed or unsigned. Same as `varint64write(0, value, bytes)`\n *\n * Copyright 2008 Google Inc. All rights reserved.\n *\n * See https://github.com/protocolbuffers/protobuf/blob/1b18833f4f2a2f681f4e4a25cdf3b0a43115ec26/js/binary/encoder.js#L144\n */\nexport function varint32write(value, bytes) {\n if (value >= 0) {\n // write value as varint 32\n while (value > 0x7f) {\n bytes.push((value & 0x7f) | 0x80);\n value = value >>> 7;\n }\n bytes.push(value);\n }\n else {\n for (let i = 0; i < 9; i++) {\n bytes.push((value & 127) | 128);\n value = value >> 7;\n }\n bytes.push(1);\n }\n}\n/**\n * Read an unsigned 32 bit varint.\n *\n * See https://github.com/protocolbuffers/protobuf/blob/8a71927d74a4ce34efe2d8769fda198f52d20d12/js/experimental/runtime/kernel/buffer_decoder.js#L220\n */\nexport function varint32read() {\n let b = this.buf[this.pos++];\n let result = b & 0x7f;\n if ((b & 0x80) == 0) {\n this.assertBounds();\n return result;\n }\n b = this.buf[this.pos++];\n result |= (b & 0x7f) << 7;\n if ((b & 0x80) == 0) {\n this.assertBounds();\n return result;\n }\n b = this.buf[this.pos++];\n result |= (b & 0x7f) << 14;\n if ((b & 0x80) == 0) {\n this.assertBounds();\n return result;\n }\n b = this.buf[this.pos++];\n result |= (b & 0x7f) << 21;\n if ((b & 0x80) == 0) {\n this.assertBounds();\n return result;\n }\n // Extract only last 4 bits\n b = this.buf[this.pos++];\n result |= (b & 0x0f) << 28;\n for (let readBytes = 5; (b & 0x80) !== 0 && readBytes < 10; readBytes++)\n b = this.buf[this.pos++];\n if ((b & 0x80) != 0)\n throw new Error(\"invalid varint\");\n this.assertBounds();\n // Result can have 32 bits, convert it to unsigned\n return result >>> 0;\n}\n","// Copyright 2021-2024 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { assert } from \"./private/assert.js\";\nimport { int64FromString, int64ToString, uInt64ToString, } from \"./google/varint.js\";\nfunction makeInt64Support() {\n const dv = new DataView(new ArrayBuffer(8));\n // note that Safari 14 implements BigInt, but not the DataView methods\n const ok = typeof BigInt === \"function\" &&\n typeof dv.getBigInt64 === \"function\" &&\n typeof dv.getBigUint64 === \"function\" &&\n typeof dv.setBigInt64 === \"function\" &&\n typeof dv.setBigUint64 === \"function\" &&\n (typeof process != \"object\" ||\n typeof process.env != \"object\" ||\n process.env.BUF_BIGINT_DISABLE !== \"1\");\n if (ok) {\n const MIN = BigInt(\"-9223372036854775808\"), MAX = BigInt(\"9223372036854775807\"), UMIN = BigInt(\"0\"), UMAX = BigInt(\"18446744073709551615\");\n return {\n zero: BigInt(0),\n supported: true,\n parse(value) {\n const bi = typeof value == \"bigint\" ? value : BigInt(value);\n if (bi > MAX || bi < MIN) {\n throw new Error(`int64 invalid: ${value}`);\n }\n return bi;\n },\n uParse(value) {\n const bi = typeof value == \"bigint\" ? value : BigInt(value);\n if (bi > UMAX || bi < UMIN) {\n throw new Error(`uint64 invalid: ${value}`);\n }\n return bi;\n },\n enc(value) {\n dv.setBigInt64(0, this.parse(value), true);\n return {\n lo: dv.getInt32(0, true),\n hi: dv.getInt32(4, true),\n };\n },\n uEnc(value) {\n dv.setBigInt64(0, this.uParse(value), true);\n return {\n lo: dv.getInt32(0, true),\n hi: dv.getInt32(4, true),\n };\n },\n dec(lo, hi) {\n dv.setInt32(0, lo, true);\n dv.setInt32(4, hi, true);\n return dv.getBigInt64(0, true);\n },\n uDec(lo, hi) {\n dv.setInt32(0, lo, true);\n dv.setInt32(4, hi, true);\n return dv.getBigUint64(0, true);\n },\n };\n }\n const assertInt64String = (value) => assert(/^-?[0-9]+$/.test(value), `int64 invalid: ${value}`);\n const assertUInt64String = (value) => assert(/^[0-9]+$/.test(value), `uint64 invalid: ${value}`);\n return {\n zero: \"0\",\n supported: false,\n parse(value) {\n if (typeof value != \"string\") {\n value = value.toString();\n }\n assertInt64String(value);\n return value;\n },\n uParse(value) {\n if (typeof value != \"string\") {\n value = value.toString();\n }\n assertUInt64String(value);\n return value;\n },\n enc(value) {\n if (typeof value != \"string\") {\n value = value.toString();\n }\n assertInt64String(value);\n return int64FromString(value);\n },\n uEnc(value) {\n if (typeof value != \"string\") {\n value = value.toString();\n }\n assertUInt64String(value);\n return int64FromString(value);\n },\n dec(lo, hi) {\n return int64ToString(lo, hi);\n },\n uDec(lo, hi) {\n return uInt64ToString(lo, hi);\n },\n };\n}\nexport const protoInt64 = makeInt64Support();\n","// Copyright 2021-2024 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n/**\n * Scalar value types. This is a subset of field types declared by protobuf\n * enum google.protobuf.FieldDescriptorProto.Type The types GROUP and MESSAGE\n * are omitted, but the numerical values are identical.\n */\nexport var ScalarType;\n(function (ScalarType) {\n // 0 is reserved for errors.\n // Order is weird for historical reasons.\n ScalarType[ScalarType[\"DOUBLE\"] = 1] = \"DOUBLE\";\n ScalarType[ScalarType[\"FLOAT\"] = 2] = \"FLOAT\";\n // Not ZigZag encoded. Negative numbers take 10 bytes. Use TYPE_SINT64 if\n // negative values are likely.\n ScalarType[ScalarType[\"INT64\"] = 3] = \"INT64\";\n ScalarType[ScalarType[\"UINT64\"] = 4] = \"UINT64\";\n // Not ZigZag encoded. Negative numbers take 10 bytes. Use TYPE_SINT32 if\n // negative values are likely.\n ScalarType[ScalarType[\"INT32\"] = 5] = \"INT32\";\n ScalarType[ScalarType[\"FIXED64\"] = 6] = \"FIXED64\";\n ScalarType[ScalarType[\"FIXED32\"] = 7] = \"FIXED32\";\n ScalarType[ScalarType[\"BOOL\"] = 8] = \"BOOL\";\n ScalarType[ScalarType[\"STRING\"] = 9] = \"STRING\";\n // Tag-delimited aggregate.\n // Group type is deprecated and not supported in proto3. However, Proto3\n // implementations should still be able to parse the group wire format and\n // treat group fields as unknown fields.\n // TYPE_GROUP = 10,\n // TYPE_MESSAGE = 11, // Length-delimited aggregate.\n // New in version 2.\n ScalarType[ScalarType[\"BYTES\"] = 12] = \"BYTES\";\n ScalarType[ScalarType[\"UINT32\"] = 13] = \"UINT32\";\n // TYPE_ENUM = 14,\n ScalarType[ScalarType[\"SFIXED32\"] = 15] = \"SFIXED32\";\n ScalarType[ScalarType[\"SFIXED64\"] = 16] = \"SFIXED64\";\n ScalarType[ScalarType[\"SINT32\"] = 17] = \"SINT32\";\n ScalarType[ScalarType[\"SINT64\"] = 18] = \"SINT64\";\n})(ScalarType || (ScalarType = {}));\n/**\n * JavaScript representation of fields with 64 bit integral types (int64, uint64,\n * sint64, fixed64, sfixed64).\n *\n * This is a subset of google.protobuf.FieldOptions.JSType, which defines JS_NORMAL,\n * JS_STRING, and JS_NUMBER. Protobuf-ES uses BigInt by default, but will use\n * String if `[jstype = JS_STRING]` is specified.\n *\n * ```protobuf\n * uint64 field_a = 1; // BigInt\n * uint64 field_b = 2 [jstype = JS_NORMAL]; // BigInt\n * uint64 field_b = 2 [jstype = JS_NUMBER]; // BigInt\n * uint64 field_b = 2 [jstype = JS_STRING]; // String\n * ```\n */\nexport var LongType;\n(function (LongType) {\n /**\n * Use JavaScript BigInt.\n */\n LongType[LongType[\"BIGINT\"] = 0] = \"BIGINT\";\n /**\n * Use JavaScript String.\n *\n * Field option `[jstype = JS_STRING]`.\n */\n LongType[LongType[\"STRING\"] = 1] = \"STRING\";\n})(LongType || (LongType = {}));\n","// Copyright 2021-2024 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { protoInt64 } from \"../proto-int64.js\";\nimport { LongType, ScalarType } from \"../scalar.js\";\n/**\n * Returns true if both scalar values are equal.\n */\nexport function scalarEquals(type, a, b) {\n if (a === b) {\n // This correctly matches equal values except BYTES and (possibly) 64-bit integers.\n return true;\n }\n // Special case BYTES - we need to compare each byte individually\n if (type == ScalarType.BYTES) {\n if (!(a instanceof Uint8Array) || !(b instanceof Uint8Array)) {\n return false;\n }\n if (a.length !== b.length) {\n return false;\n }\n for (let i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) {\n return false;\n }\n }\n return true;\n }\n // Special case 64-bit integers - we support number, string and bigint representation.\n // eslint-disable-next-line @typescript-eslint/switch-exhaustiveness-check\n switch (type) {\n case ScalarType.UINT64:\n case ScalarType.FIXED64:\n case ScalarType.INT64:\n case ScalarType.SFIXED64:\n case ScalarType.SINT64:\n // Loose comparison will match between 0n, 0 and \"0\".\n return a == b;\n }\n // Anything that hasn't been caught by strict comparison or special cased\n // BYTES and 64-bit integers is not equal.\n return false;\n}\n/**\n * Returns the zero value for the given scalar type.\n */\nexport function scalarZeroValue(type, longType) {\n switch (type) {\n case ScalarType.BOOL:\n return false;\n case ScalarType.UINT64:\n case ScalarType.FIXED64:\n case ScalarType.INT64:\n case ScalarType.SFIXED64:\n case ScalarType.SINT64:\n // eslint-disable-next-line @typescript-eslint/no-unsafe-enum-comparison -- acceptable since it's covered by tests\n return (longType == 0 ? protoInt64.zero : \"0\");\n case ScalarType.DOUBLE:\n case ScalarType.FLOAT:\n return 0.0;\n case ScalarType.BYTES:\n return new Uint8Array(0);\n case ScalarType.STRING:\n return \"\";\n default:\n // Handles INT32, UINT32, SINT32, FIXED32, SFIXED32.\n // We do not use individual cases to save a few bytes code size.\n return 0;\n }\n}\n/**\n * Returns true for a zero-value. For example, an integer has the zero-value `0`,\n * a boolean is `false`, a string is `\"\"`, and bytes is an empty Uint8Array.\n *\n * In proto3, zero-values are not written to the wire, unless the field is\n * optional or repeated.\n */\nexport function isScalarZeroValue(type, value) {\n switch (type) {\n case ScalarType.BOOL:\n return value === false;\n case ScalarType.STRING:\n return value === \"\";\n case ScalarType.BYTES:\n return value instanceof Uint8Array && !value.byteLength;\n default:\n return value == 0; // Loose comparison matches 0n, 0 and \"0\"\n }\n}\n","// Copyright 2021-2024 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { scalarZeroValue } from \"./scalars.js\";\nimport { WireType } from \"../binary-encoding.js\";\n/**\n * Create a new extension using the given runtime.\n */\nexport function makeExtension(runtime, typeName, extendee, field) {\n let fi;\n return {\n typeName,\n extendee,\n get field() {\n if (!fi) {\n const i = (typeof field == \"function\" ? field() : field);\n i.name = typeName.split(\".\").pop();\n i.jsonName = `[${typeName}]`;\n fi = runtime.util.newFieldList([i]).list()[0];\n }\n return fi;\n },\n runtime,\n };\n}\n/**\n * Create a container that allows us to read extension fields into it with the\n * same logic as regular fields.\n */\nexport function createExtensionContainer(extension) {\n const localName = extension.field.localName;\n const container = Object.create(null);\n container[localName] = initExtensionField(extension);\n return [container, () => container[localName]];\n}\nfunction initExtensionField(ext) {\n const field = ext.field;\n if (field.repeated) {\n return [];\n }\n if (field.default !== undefined) {\n return field.default;\n }\n switch (field.kind) {\n case \"enum\":\n return field.T.values[0].no;\n case \"scalar\":\n return scalarZeroValue(field.T, field.L);\n case \"message\":\n // eslint-disable-next-line no-case-declarations\n const T = field.T, value = new T();\n return T.fieldWrapper ? T.fieldWrapper.unwrapField(value) : value;\n case \"map\":\n throw \"map fields are not allowed to be extensions\";\n }\n}\n/**\n * Helper to filter unknown fields, optimized based on field type.\n */\nexport function filterUnknownFields(unknownFields, field) {\n if (!field.repeated && (field.kind == \"enum\" || field.kind == \"scalar\")) {\n // singular scalar fields do not merge, we pick the last\n for (let i = unknownFields.length - 1; i >= 0; --i) {\n if (unknownFields[i].no == field.no) {\n return [unknownFields[i]];\n }\n }\n return [];\n }\n return unknownFields.filter((uf) => uf.no === field.no);\n}\n","// Copyright 2021-2024 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { assert } from \"./private/assert.js\";\nimport { createExtensionContainer, filterUnknownFields, } from \"./private/extensions.js\";\n/**\n * Retrieve an extension value from a message.\n *\n * The function never returns undefined. Use hasExtension() to check whether an\n * extension is set. If the extension is not set, this function returns the\n * default value (if one was specified in the protobuf source), or the zero value\n * (for example `0` for numeric types, `[]` for repeated extension fields, and\n * an empty message instance for message fields).\n *\n * Extensions are stored as unknown fields on a message. To mutate an extension\n * value, make sure to store the new value with setExtension() after mutating.\n *\n * If the extension does not extend the given message, an error is raised.\n */\nexport function getExtension(message, extension, options) {\n assertExtendee(extension, message);\n const opt = extension.runtime.bin.makeReadOptions(options);\n const ufs = filterUnknownFields(message.getType().runtime.bin.listUnknownFields(message), extension.field);\n const [container, get] = createExtensionContainer(extension);\n for (const uf of ufs) {\n extension.runtime.bin.readField(container, opt.readerFactory(uf.data), extension.field, uf.wireType, opt);\n }\n return get();\n}\n/**\n * Set an extension value on a message. If the message already has a value for\n * this extension, the value is replaced.\n *\n * If the extension does not extend the given message, an error is raised.\n */\nexport function setExtension(message, extension, value, options) {\n assertExtendee(extension, message);\n const readOpt = extension.runtime.bin.makeReadOptions(options);\n const writeOpt = extension.runtime.bin.makeWriteOptions(options);\n if (hasExtension(message, extension)) {\n const ufs = message\n .getType()\n .runtime.bin.listUnknownFields(message)\n .filter((uf) => uf.no != extension.field.no);\n message.getType().runtime.bin.discardUnknownFields(message);\n for (const uf of ufs) {\n message\n .getType()\n .runtime.bin.onUnknownField(message, uf.no, uf.wireType, uf.data);\n }\n }\n const writer = writeOpt.writerFactory();\n let f = extension.field;\n // Implicit presence does not apply to extensions, see https://github.com/protocolbuffers/protobuf/issues/8234\n // We patch the field info to use explicit presence:\n if (!f.opt && !f.repeated && (f.kind == \"enum\" || f.kind == \"scalar\")) {\n f = Object.assign(Object.assign({}, extension.field), { opt: true });\n }\n extension.runtime.bin.writeField(f, value, writer, writeOpt);\n const reader = readOpt.readerFactory(writer.finish());\n while (reader.pos < reader.len) {\n const [no, wireType] = reader.tag();\n const data = reader.skip(wireType, no);\n message.getType().runtime.bin.onUnknownField(message, no, wireType, data);\n }\n}\n/**\n * Remove an extension value from a message.\n *\n * If the extension does not extend the given message, an error is raised.\n */\nexport function clearExtension(message, extension) {\n assertExtendee(extension, message);\n if (hasExtension(message, extension)) {\n const bin = message.getType().runtime.bin;\n const ufs = bin\n .listUnknownFields(message)\n .filter((uf) => uf.no != extension.field.no);\n bin.discardUnknownFields(message);\n for (const uf of ufs) {\n bin.onUnknownField(message, uf.no, uf.wireType, uf.data);\n }\n }\n}\n/**\n * Check whether an extension is set on a message.\n */\nexport function hasExtension(message, extension) {\n const messageType = message.getType();\n return (extension.extendee.typeName === messageType.typeName &&\n !!messageType.runtime.bin\n .listUnknownFields(message)\n .find((uf) => uf.no == extension.field.no));\n}\nfunction assertExtendee(extension, message) {\n assert(extension.extendee.typeName == message.getType().typeName, `extension ${extension.typeName} can only be applied to message ${extension.extendee.typeName}`);\n}\n","// Copyright 2021-2024 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { isScalarZeroValue, scalarZeroValue } from \"./scalars.js\";\n/**\n * Returns true if the field is set.\n */\nexport function isFieldSet(field, target) {\n const localName = field.localName;\n if (field.repeated) {\n return target[localName].length > 0;\n }\n if (field.oneof) {\n return target[field.oneof.localName].case === localName; // eslint-disable-line @typescript-eslint/no-unsafe-member-access\n }\n switch (field.kind) {\n case \"enum\":\n case \"scalar\":\n if (field.opt || field.req) {\n // explicit presence\n return target[localName] !== undefined;\n }\n // implicit presence\n if (field.kind == \"enum\") {\n return target[localName] !== field.T.values[0].no;\n }\n return !isScalarZeroValue(field.T, target[localName]);\n case \"message\":\n return target[localName] !== undefined;\n case \"map\":\n return Object.keys(target[localName]).length > 0; // eslint-disable-line @typescript-eslint/no-unsafe-argument\n }\n}\n/**\n * Resets the field, so that isFieldSet() will return false.\n */\nexport function clearField(field, target) {\n const localName = field.localName;\n const implicitPresence = !field.opt && !field.req;\n if (field.repeated) {\n target[localName] = [];\n }\n else if (field.oneof) {\n target[field.oneof.localName] = { case: undefined };\n }\n else {\n switch (field.kind) {\n case \"map\":\n target[localName] = {};\n break;\n case \"enum\":\n target[localName] = implicitPresence ? field.T.values[0].no : undefined;\n break;\n case \"scalar\":\n target[localName] = implicitPresence\n ? scalarZeroValue(field.T, field.L)\n : undefined;\n break;\n case \"message\":\n target[localName] = undefined;\n break;\n }\n }\n}\n","// Copyright 2021-2024 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { Message } from \"./message.js\";\n/**\n * Check whether the given object is any subtype of Message or is a specific\n * Message by passing the type.\n *\n * Just like `instanceof`, `isMessage` narrows the type. The advantage of\n * `isMessage` is that it compares identity by the message type name, not by\n * class identity. This makes it robust against the dual package hazard and\n * similar situations, where the same message is duplicated.\n *\n * This function is _mostly_ equivalent to the `instanceof` operator. For\n * example, `isMessage(foo, MyMessage)` is the same as `foo instanceof MyMessage`,\n * and `isMessage(foo)` is the same as `foo instanceof Message`. In most cases,\n * `isMessage` should be preferred over `instanceof`.\n *\n * However, due to the fact that `isMessage` does not use class identity, there\n * are subtle differences between this function and `instanceof`. Notably,\n * calling `isMessage` on an explicit type of Message will return false.\n */\nexport function isMessage(arg, type) {\n if (arg === null || typeof arg != \"object\") {\n return false;\n }\n if (!Object.getOwnPropertyNames(Message.prototype).every((m) => m in arg && typeof arg[m] == \"function\")) {\n return false;\n }\n const actualType = arg.getType();\n if (actualType === null ||\n typeof actualType != \"function\" ||\n !(\"typeName\" in actualType) ||\n typeof actualType.typeName != \"string\") {\n return false;\n }\n return type === undefined ? true : actualType.typeName == type.typeName;\n}\n","// Copyright 2021-2024 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { Message } from \"../message.js\";\nimport { ScalarType } from \"../scalar.js\";\nimport { isMessage } from \"../is-message.js\";\n/**\n * Wrap a primitive message field value in its corresponding wrapper\n * message. This function is idempotent.\n */\nexport function wrapField(type, value) {\n if (isMessage(value) || !type.fieldWrapper) {\n return value;\n }\n return type.fieldWrapper.wrapField(value);\n}\n/**\n * If the given field uses one of the well-known wrapper types, return\n * the primitive type it wraps.\n */\nexport function getUnwrappedFieldType(field) {\n if (field.fieldKind !== \"message\") {\n return undefined;\n }\n if (field.repeated) {\n return undefined;\n }\n if (field.oneof != undefined) {\n return undefined;\n }\n return wktWrapperToScalarType[field.message.typeName];\n}\nconst wktWrapperToScalarType = {\n \"google.protobuf.DoubleValue\": ScalarType.DOUBLE,\n \"google.protobuf.FloatValue\": ScalarType.FLOAT,\n \"google.protobuf.Int64Value\": ScalarType.INT64,\n \"google.protobuf.UInt64Value\": ScalarType.UINT64,\n \"google.protobuf.Int32Value\": ScalarType.INT32,\n \"google.protobuf.UInt32Value\": ScalarType.UINT32,\n \"google.protobuf.BoolValue\": ScalarType.BOOL,\n \"google.protobuf.StringValue\": ScalarType.STRING,\n \"google.protobuf.BytesValue\": ScalarType.BYTES,\n};\n","// Copyright 2021-2024 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { Message } from \"../message.js\";\nimport { assert, assertFloat32, assertInt32, assertUInt32 } from \"./assert.js\";\nimport { protoInt64 } from \"../proto-int64.js\";\nimport { protoBase64 } from \"../proto-base64.js\";\nimport { createExtensionContainer } from \"./extensions.js\";\nimport { getExtension, hasExtension, setExtension, } from \"../extension-accessor.js\";\nimport { clearField, isFieldSet } from \"./reflect.js\";\nimport { wrapField } from \"./field-wrapper.js\";\nimport { scalarZeroValue } from \"./scalars.js\";\nimport { isScalarZeroValue } from \"./scalars.js\";\nimport { LongType, ScalarType } from \"../scalar.js\";\nimport { isMessage } from \"../is-message.js\";\n/* eslint-disable no-case-declarations,@typescript-eslint/no-unsafe-argument,@typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-unsafe-member-access,@typescript-eslint/no-unsafe-call */\n// Default options for parsing JSON.\nconst jsonReadDefaults = {\n ignoreUnknownFields: false,\n};\n// Default options for serializing to JSON.\nconst jsonWriteDefaults = {\n emitDefaultValues: false,\n enumAsInteger: false,\n useProtoFieldName: false,\n prettySpaces: 0,\n};\nfunction makeReadOptions(options) {\n return options ? Object.assign(Object.assign({}, jsonReadDefaults), options) : jsonReadDefaults;\n}\nfunction makeWriteOptions(options) {\n return options ? Object.assign(Object.assign({}, jsonWriteDefaults), options) : jsonWriteDefaults;\n}\nconst tokenNull = Symbol();\nconst tokenIgnoredUnknownEnum = Symbol();\nexport function makeJsonFormat() {\n return {\n makeReadOptions,\n makeWriteOptions,\n readMessage(type, json, options, message) {\n if (json == null || Array.isArray(json) || typeof json != \"object\") {\n throw new Error(`cannot decode message ${type.typeName} from JSON: ${debugJsonValue(json)}`);\n }\n message = message !== null && message !== void 0 ? message : new type();\n const oneofSeen = new Map();\n const registry = options.typeRegistry;\n for (const [jsonKey, jsonValue] of Object.entries(json)) {\n const field = type.fields.findJsonName(jsonKey);\n if (field) {\n if (field.oneof) {\n if (jsonValue === null && field.kind == \"scalar\") {\n // see conformance test Required.Proto3.JsonInput.OneofFieldNull{First,Second}\n continue;\n }\n const seen = oneofSeen.get(field.oneof);\n if (seen !== undefined) {\n throw new Error(`cannot decode message ${type.typeName} from JSON: multiple keys for oneof \"${field.oneof.name}\" present: \"${seen}\", \"${jsonKey}\"`);\n }\n oneofSeen.set(field.oneof, jsonKey);\n }\n readField(message, jsonValue, field, options, type);\n }\n else {\n let found = false;\n if ((registry === null || registry === void 0 ? void 0 : registry.findExtension) &&\n jsonKey.startsWith(\"[\") &&\n jsonKey.endsWith(\"]\")) {\n const ext = registry.findExtension(jsonKey.substring(1, jsonKey.length - 1));\n if (ext && ext.extendee.typeName == type.typeName) {\n found = true;\n const [container, get] = createExtensionContainer(ext);\n readField(container, jsonValue, ext.field, options, ext);\n // We pass on the options as BinaryReadOptions/BinaryWriteOptions,\n // so that users can bring their own binary reader and writer factories\n // if necessary.\n setExtension(message, ext, get(), options);\n }\n }\n if (!found && !options.ignoreUnknownFields) {\n throw new Error(`cannot decode message ${type.typeName} from JSON: key \"${jsonKey}\" is unknown`);\n }\n }\n }\n return message;\n },\n writeMessage(message, options) {\n const type = message.getType();\n const json = {};\n let field;\n try {\n for (field of type.fields.byNumber()) {\n if (!isFieldSet(field, message)) {\n // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions\n if (field.req) {\n throw `required field not set`;\n }\n if (!options.emitDefaultValues) {\n continue;\n }\n if (!canEmitFieldDefaultValue(field)) {\n continue;\n }\n }\n const value = field.oneof\n ? message[field.oneof.localName].value\n : message[field.localName];\n const jsonValue = writeField(field, value, options);\n if (jsonValue !== undefined) {\n json[options.useProtoFieldName ? field.name : field.jsonName] =\n jsonValue;\n }\n }\n const registry = options.typeRegistry;\n if (registry === null || registry === void 0 ? void 0 : registry.findExtensionFor) {\n for (const uf of type.runtime.bin.listUnknownFields(message)) {\n const ext = registry.findExtensionFor(type.typeName, uf.no);\n if (ext && hasExtension(message, ext)) {\n // We pass on the options as BinaryReadOptions, so that users can bring their own\n // binary reader factory if necessary.\n const value = getExtension(message, ext, options);\n const jsonValue = writeField(ext.field, value, options);\n if (jsonValue !== undefined) {\n json[ext.field.jsonName] = jsonValue;\n }\n }\n }\n }\n }\n catch (e) {\n const m = field\n ? `cannot encode field ${type.typeName}.${field.name} to JSON`\n : `cannot encode message ${type.typeName} to JSON`;\n const r = e instanceof Error ? e.message : String(e);\n throw new Error(m + (r.length > 0 ? `: ${r}` : \"\"));\n }\n return json;\n },\n readScalar(type, json, longType) {\n // The signature of our internal function has changed. For backwards-\n // compatibility, we support the old form that is part of the public API\n // through the interface JsonFormat.\n return readScalar(type, json, longType !== null && longType !== void 0 ? longType : LongType.BIGINT, true);\n },\n writeScalar(type, value, emitDefaultValues) {\n // The signature of our internal function has changed. For backwards-\n // compatibility, we support the old form that is part of the public API\n // through the interface JsonFormat.\n if (value === undefined) {\n return undefined;\n }\n if (emitDefaultValues || isScalarZeroValue(type, value)) {\n return writeScalar(type, value);\n }\n return undefined;\n },\n debug: debugJsonValue,\n };\n}\nfunction debugJsonValue(json) {\n if (json === null) {\n return \"null\";\n }\n switch (typeof json) {\n case \"object\":\n return Array.isArray(json) ? \"array\" : \"object\";\n case \"string\":\n return json.length > 100 ? \"string\" : `\"${json.split('\"').join('\\\\\"')}\"`;\n default:\n return String(json);\n }\n}\n// Read a JSON value for a field.\n// The \"parentType\" argument is only used to provide context in errors.\nfunction readField(target, jsonValue, field, options, parentType) {\n let localName = field.localName;\n if (field.repeated) {\n assert(field.kind != \"map\");\n if (jsonValue === null) {\n return;\n }\n if (!Array.isArray(jsonValue)) {\n throw new Error(`cannot decode field ${parentType.typeName}.${field.name} from JSON: ${debugJsonValue(jsonValue)}`);\n }\n const targetArray = target[localName];\n for (const jsonItem of jsonValue) {\n if (jsonItem === null) {\n throw new Error(`cannot decode field ${parentType.typeName}.${field.name} from JSON: ${debugJsonValue(jsonItem)}`);\n }\n switch (field.kind) {\n case \"message\":\n targetArray.push(field.T.fromJson(jsonItem, options));\n break;\n case \"enum\":\n const enumValue = readEnum(field.T, jsonItem, options.ignoreUnknownFields, true);\n if (enumValue !== tokenIgnoredUnknownEnum) {\n targetArray.push(enumValue);\n }\n break;\n case \"scalar\":\n try {\n targetArray.push(readScalar(field.T, jsonItem, field.L, true));\n }\n catch (e) {\n let m = `cannot decode field ${parentType.typeName}.${field.name} from JSON: ${debugJsonValue(jsonItem)}`;\n if (e instanceof Error && e.message.length > 0) {\n m += `: ${e.message}`;\n }\n throw new Error(m);\n }\n break;\n }\n }\n }\n else if (field.kind == \"map\") {\n if (jsonValue === null) {\n return;\n }\n if (typeof jsonValue != \"object\" || Array.isArray(jsonValue)) {\n throw new Error(`cannot decode field ${parentType.typeName}.${field.name} from JSON: ${debugJsonValue(jsonValue)}`);\n }\n const targetMap = target[localName];\n for (const [jsonMapKey, jsonMapValue] of Object.entries(jsonValue)) {\n if (jsonMapValue === null) {\n throw new Error(`cannot decode field ${parentType.typeName}.${field.name} from JSON: map value null`);\n }\n let key;\n try {\n key = readMapKey(field.K, jsonMapKey);\n }\n catch (e) {\n let m = `cannot decode map key for field ${parentType.typeName}.${field.name} from JSON: ${debugJsonValue(jsonValue)}`;\n if (e instanceof Error && e.message.length > 0) {\n m += `: ${e.message}`;\n }\n throw new Error(m);\n }\n switch (field.V.kind) {\n case \"message\":\n targetMap[key] = field.V.T.fromJson(jsonMapValue, options);\n break;\n case \"enum\":\n const enumValue = readEnum(field.V.T, jsonMapValue, options.ignoreUnknownFields, true);\n if (enumValue !== tokenIgnoredUnknownEnum) {\n targetMap[key] = enumValue;\n }\n break;\n case \"scalar\":\n try {\n targetMap[key] = readScalar(field.V.T, jsonMapValue, LongType.BIGINT, true);\n }\n catch (e) {\n let m = `cannot decode map value for field ${parentType.typeName}.${field.name} from JSON: ${debugJsonValue(jsonValue)}`;\n if (e instanceof Error && e.message.length > 0) {\n m += `: ${e.message}`;\n }\n throw new Error(m);\n }\n break;\n }\n }\n }\n else {\n if (field.oneof) {\n target = target[field.oneof.localName] = { case: localName };\n localName = \"value\";\n }\n switch (field.kind) {\n case \"message\":\n const messageType = field.T;\n if (jsonValue === null &&\n messageType.typeName != \"google.protobuf.Value\") {\n return;\n }\n let currentValue = target[localName];\n if (isMessage(currentValue)) {\n currentValue.fromJson(jsonValue, options);\n }\n else {\n target[localName] = currentValue = messageType.fromJson(jsonValue, options);\n if (messageType.fieldWrapper && !field.oneof) {\n target[localName] =\n messageType.fieldWrapper.unwrapField(currentValue);\n }\n }\n break;\n case \"enum\":\n const enumValue = readEnum(field.T, jsonValue, options.ignoreUnknownFields, false);\n switch (enumValue) {\n case tokenNull:\n clearField(field, target);\n break;\n case tokenIgnoredUnknownEnum:\n break;\n default:\n target[localName] = enumValue;\n break;\n }\n break;\n case \"scalar\":\n try {\n const scalarValue = readScalar(field.T, jsonValue, field.L, false);\n switch (scalarValue) {\n case tokenNull:\n clearField(field, target);\n break;\n default:\n target[localName] = scalarValue;\n break;\n }\n }\n catch (e) {\n let m = `cannot decode field ${parentType.typeName}.${field.name} from JSON: ${debugJsonValue(jsonValue)}`;\n if (e instanceof Error && e.message.length > 0) {\n m += `: ${e.message}`;\n }\n throw new Error(m);\n }\n break;\n }\n }\n}\nfunction readMapKey(type, json) {\n if (type === ScalarType.BOOL) {\n // eslint-disable-next-line @typescript-eslint/switch-exhaustiveness-check\n switch (json) {\n case \"true\":\n json = true;\n break;\n case \"false\":\n json = false;\n break;\n }\n }\n return readScalar(type, json, LongType.BIGINT, true).toString();\n}\nfunction readScalar(type, json, longType, nullAsZeroValue) {\n if (json === null) {\n if (nullAsZeroValue) {\n return scalarZeroValue(type, longType);\n }\n return tokenNull;\n }\n // every valid case in the switch below returns, and every fall\n // through is regarded as a failure.\n switch (type) {\n // float, double: JSON value will be a number or one of the special string values \"NaN\", \"Infinity\", and \"-Infinity\".\n // Either numbers or strings are accepted. Exponent notation is also accepted.\n case ScalarType.DOUBLE:\n case ScalarType.FLOAT:\n if (json === \"NaN\")\n return Number.NaN;\n if (json === \"Infinity\")\n return Number.POSITIVE_INFINITY;\n if (json === \"-Infinity\")\n return Number.NEGATIVE_INFINITY;\n if (json === \"\") {\n // empty string is not a number\n break;\n }\n if (typeof json == \"string\" && json.trim().length !== json.length) {\n // extra whitespace\n break;\n }\n if (typeof json != \"string\" && typeof json != \"number\") {\n break;\n }\n const float = Number(json);\n if (Number.isNaN(float)) {\n // not a number\n break;\n }\n if (!Number.isFinite(float)) {\n // infinity and -infinity are handled by string representation above, so this is an error\n break;\n }\n if (type == ScalarType.FLOAT)\n assertFloat32(float);\n return float;\n // int32, fixed32, uint32: JSON value will be a decimal number. Either numbers or strings are accepted.\n case ScalarType.INT32:\n case ScalarType.FIXED32:\n case ScalarType.SFIXED32:\n case ScalarType.SINT32:\n case ScalarType.UINT32:\n let int32;\n if (typeof json == \"number\")\n int32 = json;\n else if (typeof json == \"string\" && json.length > 0) {\n if (json.trim().length === json.length)\n int32 = Number(json);\n }\n if (int32 === undefined)\n break;\n if (type == ScalarType.UINT32 || type == ScalarType.FIXED32)\n assertUInt32(int32);\n else\n assertInt32(int32);\n return int32;\n // int64, fixed64, uint64: JSON value will be a decimal string. Either numbers or strings are accepted.\n case ScalarType.INT64:\n case ScalarType.SFIXED64:\n case ScalarType.SINT64:\n if (typeof json != \"number\" && typeof json != \"string\")\n break;\n const long = protoInt64.parse(json);\n // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions\n return longType ? long.toString() : long;\n case ScalarType.FIXED64:\n case ScalarType.UINT64:\n if (typeof json != \"number\" && typeof json != \"string\")\n break;\n const uLong = protoInt64.uParse(json);\n // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions\n return longType ? uLong.toString() : uLong;\n // bool:\n case ScalarType.BOOL:\n if (typeof json !== \"boolean\")\n break;\n return json;\n // string:\n case ScalarType.STRING:\n if (typeof json !== \"string\") {\n break;\n }\n // A string must always contain UTF-8 encoded or 7-bit ASCII.\n // We validate with encodeURIComponent, which appears to be the fastest widely available option.\n try {\n encodeURIComponent(json);\n }\n catch (e) {\n throw new Error(\"invalid UTF8\");\n }\n return json;\n // bytes: JSON value will be the data encoded as a string using standard base64 encoding with paddings.\n // Either standard or URL-safe base64 encoding with/without paddings are accepted.\n case ScalarType.BYTES:\n if (json === \"\")\n return new Uint8Array(0);\n if (typeof json !== \"string\")\n break;\n return protoBase64.dec(json);\n }\n throw new Error();\n}\nfunction readEnum(type, json, ignoreUnknownFields, nullAsZeroValue) {\n if (json === null) {\n if (type.typeName == \"google.protobuf.NullValue\") {\n return 0; // google.protobuf.NullValue.NULL_VALUE = 0\n }\n return nullAsZeroValue ? type.values[0].no : tokenNull;\n }\n // eslint-disable-next-line @typescript-eslint/switch-exhaustiveness-check\n switch (typeof json) {\n case \"number\":\n if (Number.isInteger(json)) {\n return json;\n }\n break;\n case \"string\":\n const value = type.findName(json);\n if (value !== undefined) {\n return value.no;\n }\n if (ignoreUnknownFields) {\n return tokenIgnoredUnknownEnum;\n }\n break;\n }\n throw new Error(`cannot decode enum ${type.typeName} from JSON: ${debugJsonValue(json)}`);\n}\n// Decide whether an unset field should be emitted with JSON write option `emitDefaultValues`\nfunction canEmitFieldDefaultValue(field) {\n if (field.repeated || field.kind == \"map\") {\n // maps are {}, repeated fields are []\n return true;\n }\n if (field.oneof) {\n // oneof fields are never emitted\n return false;\n }\n if (field.kind == \"message\") {\n // singular message field are allowed to emit JSON null, but we do not\n return false;\n }\n // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions\n if (field.opt || field.req) {\n // the field uses explicit presence, so we cannot emit a zero value\n return false;\n }\n return true;\n}\nfunction writeField(field, value, options) {\n if (field.kind == \"map\") {\n assert(typeof value == \"object\" && value != null);\n const jsonObj = {};\n const entries = Object.entries(value);\n switch (field.V.kind) {\n case \"scalar\":\n for (const [entryKey, entryValue] of entries) {\n jsonObj[entryKey.toString()] = writeScalar(field.V.T, entryValue); // JSON standard allows only (double quoted) string as property key\n }\n break;\n case \"message\":\n for (const [entryKey, entryValue] of entries) {\n // JSON standard allows only (double quoted) string as property key\n jsonObj[entryKey.toString()] = entryValue.toJson(options);\n }\n break;\n case \"enum\":\n const enumType = field.V.T;\n for (const [entryKey, entryValue] of entries) {\n // JSON standard allows only (double quoted) string as property key\n jsonObj[entryKey.toString()] = writeEnum(enumType, entryValue, options.enumAsInteger);\n }\n break;\n }\n return options.emitDefaultValues || entries.length > 0\n ? jsonObj\n : undefined;\n }\n if (field.repeated) {\n assert(Array.isArray(value));\n const jsonArr = [];\n switch (field.kind) {\n case \"scalar\":\n for (let i = 0; i < value.length; i++) {\n jsonArr.push(writeScalar(field.T, value[i]));\n }\n break;\n case \"enum\":\n for (let i = 0; i < value.length; i++) {\n jsonArr.push(writeEnum(field.T, value[i], options.enumAsInteger));\n }\n break;\n case \"message\":\n for (let i = 0; i < value.length; i++) {\n jsonArr.push(value[i].toJson(options));\n }\n break;\n }\n return options.emitDefaultValues || jsonArr.length > 0\n ? jsonArr\n : undefined;\n }\n switch (field.kind) {\n case \"scalar\":\n return writeScalar(field.T, value);\n case \"enum\":\n return writeEnum(field.T, value, options.enumAsInteger);\n case \"message\":\n return wrapField(field.T, value).toJson(options);\n }\n}\nfunction writeEnum(type, value, enumAsInteger) {\n var _a;\n assert(typeof value == \"number\");\n if (type.typeName == \"google.protobuf.NullValue\") {\n return null;\n }\n if (enumAsInteger) {\n return value;\n }\n const val = type.findNumber(value);\n return (_a = val === null || val === void 0 ? void 0 : val.name) !== null && _a !== void 0 ? _a : value; // if we don't know the enum value, just return the number\n}\nfunction writeScalar(type, value) {\n switch (type) {\n // int32, fixed32, uint32: JSON value will be a decimal number. Either numbers or strings are accepted.\n case ScalarType.INT32:\n case ScalarType.SFIXED32:\n case ScalarType.SINT32:\n case ScalarType.FIXED32:\n case ScalarType.UINT32:\n assert(typeof value == \"number\");\n return value;\n // float, double: JSON value will be a number or one of the special string values \"NaN\", \"Infinity\", and \"-Infinity\".\n // Either numbers or strings are accepted. Exponent notation is also accepted.\n case ScalarType.FLOAT:\n // assertFloat32(value);\n case ScalarType.DOUBLE: // eslint-disable-line no-fallthrough\n assert(typeof value == \"number\");\n if (Number.isNaN(value))\n return \"NaN\";\n if (value === Number.POSITIVE_INFINITY)\n return \"Infinity\";\n if (value === Number.NEGATIVE_INFINITY)\n return \"-Infinity\";\n return value;\n // string:\n case ScalarType.STRING:\n assert(typeof value == \"string\");\n return value;\n // bool:\n case ScalarType.BOOL:\n assert(typeof value == \"boolean\");\n return value;\n // JSON value will be a decimal string. Either numbers or strings are accepted.\n case ScalarType.UINT64:\n case ScalarType.FIXED64:\n case ScalarType.INT64:\n case ScalarType.SFIXED64:\n case ScalarType.SINT64:\n assert(typeof value == \"bigint\" ||\n typeof value == \"string\" ||\n typeof value == \"number\");\n return value.toString();\n // bytes: JSON value will be the data encoded as a string using standard base64 encoding with paddings.\n // Either standard or URL-safe base64 encoding with/without paddings are accepted.\n case ScalarType.BYTES:\n assert(value instanceof Uint8Array);\n return protoBase64.enc(value);\n }\n}\n","// Copyright 2021-2024 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { varint32read, varint32write, varint64read, varint64write, } from \"./google/varint.js\";\nimport { assertFloat32, assertInt32, assertUInt32 } from \"./private/assert.js\";\nimport { protoInt64 } from \"./proto-int64.js\";\n/* eslint-disable prefer-const,no-case-declarations,@typescript-eslint/restrict-plus-operands */\n/**\n * Protobuf binary format wire types.\n *\n * A wire type provides just enough information to find the length of the\n * following value.\n *\n * See https://developers.google.com/protocol-buffers/docs/encoding#structure\n */\nexport var WireType;\n(function (WireType) {\n /**\n * Used for int32, int64, uint32, uint64, sint32, sint64, bool, enum\n */\n WireType[WireType[\"Varint\"] = 0] = \"Varint\";\n /**\n * Used for fixed64, sfixed64, double.\n * Always 8 bytes with little-endian byte order.\n */\n WireType[WireType[\"Bit64\"] = 1] = \"Bit64\";\n /**\n * Used for string, bytes, embedded messages, packed repeated fields\n *\n * Only repeated numeric types (types which use the varint, 32-bit,\n * or 64-bit wire types) can be packed. In proto3, such fields are\n * packed by default.\n */\n WireType[WireType[\"LengthDelimited\"] = 2] = \"LengthDelimited\";\n /**\n * Start of a tag-delimited aggregate, such as a proto2 group, or a message\n * in editions with message_encoding = DELIMITED.\n */\n WireType[WireType[\"StartGroup\"] = 3] = \"StartGroup\";\n /**\n * End of a tag-delimited aggregate.\n */\n WireType[WireType[\"EndGroup\"] = 4] = \"EndGroup\";\n /**\n * Used for fixed32, sfixed32, float.\n * Always 4 bytes with little-endian byte order.\n */\n WireType[WireType[\"Bit32\"] = 5] = \"Bit32\";\n})(WireType || (WireType = {}));\nexport class BinaryWriter {\n constructor(textEncoder) {\n /**\n * Previous fork states.\n */\n this.stack = [];\n this.textEncoder = textEncoder !== null && textEncoder !== void 0 ? textEncoder : new TextEncoder();\n this.chunks = [];\n this.buf = [];\n }\n /**\n * Return all bytes written and reset this writer.\n */\n finish() {\n this.chunks.push(new Uint8Array(this.buf)); // flush the buffer\n let len = 0;\n for (let i = 0; i < this.chunks.length; i++)\n len += this.chunks[i].length;\n let bytes = new Uint8Array(len);\n let offset = 0;\n for (let i = 0; i < this.chunks.length; i++) {\n bytes.set(this.chunks[i], offset);\n offset += this.chunks[i].length;\n }\n this.chunks = [];\n return bytes;\n }\n /**\n * Start a new fork for length-delimited data like a message\n * or a packed repeated field.\n *\n * Must be joined later with `join()`.\n */\n fork() {\n this.stack.push({ chunks: this.chunks, buf: this.buf });\n this.chunks = [];\n this.buf = [];\n return this;\n }\n /**\n * Join the last fork. Write its length and bytes, then\n * return to the previous state.\n */\n join() {\n // get chunk of fork\n let chunk = this.finish();\n // restore previous state\n let prev = this.stack.pop();\n if (!prev)\n throw new Error(\"invalid state, fork stack empty\");\n this.chunks = prev.chunks;\n this.buf = prev.buf;\n // write length of chunk as varint\n this.uint32(chunk.byteLength);\n return this.raw(chunk);\n }\n /**\n * Writes a tag (field number and wire type).\n *\n * Equivalent to `uint32( (fieldNo << 3 | type) >>> 0 )`.\n *\n * Generated code should compute the tag ahead of time and call `uint32()`.\n */\n tag(fieldNo, type) {\n return this.uint32(((fieldNo << 3) | type) >>> 0);\n }\n /**\n * Write a chunk of raw bytes.\n */\n raw(chunk) {\n if (this.buf.length) {\n this.chunks.push(new Uint8Array(this.buf));\n this.buf = [];\n }\n this.chunks.push(chunk);\n return this;\n }\n /**\n * Write a `uint32` value, an unsigned 32 bit varint.\n */\n uint32(value) {\n assertUInt32(value);\n // write value as varint 32, inlined for speed\n while (value > 0x7f) {\n this.buf.push((value & 0x7f) | 0x80);\n value = value >>> 7;\n }\n this.buf.push(value);\n return this;\n }\n /**\n * Write a `int32` value, a signed 32 bit varint.\n */\n int32(value) {\n assertInt32(value);\n varint32write(value, this.buf);\n return this;\n }\n /**\n * Write a `bool` value, a variant.\n */\n bool(value) {\n this.buf.push(value ? 1 : 0);\n return this;\n }\n /**\n * Write a `bytes` value, length-delimited arbitrary data.\n */\n bytes(value) {\n this.uint32(value.byteLength); // write length of chunk as varint\n return this.raw(value);\n }\n /**\n * Write a `string` value, length-delimited data converted to UTF-8 text.\n */\n string(value) {\n let chunk = this.textEncoder.encode(value);\n this.uint32(chunk.byteLength); // write length of chunk as varint\n return this.raw(chunk);\n }\n /**\n * Write a `float` value, 32-bit floating point number.\n */\n float(value) {\n assertFloat32(value);\n let chunk = new Uint8Array(4);\n new DataView(chunk.buffer).setFloat32(0, value, true);\n return this.raw(chunk);\n }\n /**\n * Write a `double` value, a 64-bit floating point number.\n */\n double(value) {\n let chunk = new Uint8Array(8);\n new DataView(chunk.buffer).setFloat64(0, value, true);\n return this.raw(chunk);\n }\n /**\n * Write a `fixed32` value, an unsigned, fixed-length 32-bit integer.\n */\n fixed32(value) {\n assertUInt32(value);\n let chunk = new Uint8Array(4);\n new DataView(chunk.buffer).setUint32(0, value, true);\n return this.raw(chunk);\n }\n /**\n * Write a `sfixed32` value, a signed, fixed-length 32-bit integer.\n */\n sfixed32(value) {\n assertInt32(value);\n let chunk = new Uint8Array(4);\n new DataView(chunk.buffer).setInt32(0, value, true);\n return this.raw(chunk);\n }\n /**\n * Write a `sint32` value, a signed, zigzag-encoded 32-bit varint.\n */\n sint32(value) {\n assertInt32(value);\n // zigzag encode\n value = ((value << 1) ^ (value >> 31)) >>> 0;\n varint32write(value, this.buf);\n return this;\n }\n /**\n * Write a `fixed64` value, a signed, fixed-length 64-bit integer.\n */\n sfixed64(value) {\n let chunk = new Uint8Array(8), view = new DataView(chunk.buffer), tc = protoInt64.enc(value);\n view.setInt32(0, tc.lo, true);\n view.setInt32(4, tc.hi, true);\n return this.raw(chunk);\n }\n /**\n * Write a `fixed64` value, an unsigned, fixed-length 64 bit integer.\n */\n fixed64(value) {\n let chunk = new Uint8Array(8), view = new DataView(chunk.buffer), tc = protoInt64.uEnc(value);\n view.setInt32(0, tc.lo, true);\n view.setInt32(4, tc.hi, true);\n return this.raw(chunk);\n }\n /**\n * Write a `int64` value, a signed 64-bit varint.\n */\n int64(value) {\n let tc = protoInt64.enc(value);\n varint64write(tc.lo, tc.hi, this.buf);\n return this;\n }\n /**\n * Write a `sint64` value, a signed, zig-zag-encoded 64-bit varint.\n */\n sint64(value) {\n let tc = protoInt64.enc(value), \n // zigzag encode\n sign = tc.hi >> 31, lo = (tc.lo << 1) ^ sign, hi = ((tc.hi << 1) | (tc.lo >>> 31)) ^ sign;\n varint64write(lo, hi, this.buf);\n return this;\n }\n /**\n * Write a `uint64` value, an unsigned 64-bit varint.\n */\n uint64(value) {\n let tc = protoInt64.uEnc(value);\n varint64write(tc.lo, tc.hi, this.buf);\n return this;\n }\n}\nexport class BinaryReader {\n constructor(buf, textDecoder) {\n this.varint64 = varint64read; // dirty cast for `this`\n /**\n * Read a `uint32` field, an unsigned 32 bit varint.\n */\n this.uint32 = varint32read; // dirty cast for `this` and access to protected `buf`\n this.buf = buf;\n this.len = buf.length;\n this.pos = 0;\n this.view = new DataView(buf.buffer, buf.byteOffset, buf.byteLength);\n this.textDecoder = textDecoder !== null && textDecoder !== void 0 ? textDecoder : new TextDecoder();\n }\n /**\n * Reads a tag - field number and wire type.\n */\n tag() {\n let tag = this.uint32(), fieldNo = tag >>> 3, wireType = tag & 7;\n if (fieldNo <= 0 || wireType < 0 || wireType > 5)\n throw new Error(\"illegal tag: field no \" + fieldNo + \" wire type \" + wireType);\n return [fieldNo, wireType];\n }\n /**\n * Skip one element and return the skipped data.\n *\n * When skipping StartGroup, provide the tags field number to check for\n * matching field number in the EndGroup tag.\n */\n skip(wireType, fieldNo) {\n let start = this.pos;\n switch (wireType) {\n case WireType.Varint:\n while (this.buf[this.pos++] & 0x80) {\n // ignore\n }\n break;\n // eslint-disable-next-line\n // @ts-ignore TS7029: Fallthrough case in switch\n case WireType.Bit64:\n this.pos += 4;\n // eslint-disable-next-line\n // @ts-ignore TS7029: Fallthrough case in switch\n case WireType.Bit32:\n this.pos += 4;\n break;\n case WireType.LengthDelimited:\n let len = this.uint32();\n this.pos += len;\n break;\n case WireType.StartGroup:\n for (;;) {\n const [fn, wt] = this.tag();\n if (wt === WireType.EndGroup) {\n if (fieldNo !== undefined && fn !== fieldNo) {\n throw new Error(\"invalid end group tag\");\n }\n break;\n }\n this.skip(wt, fn);\n }\n break;\n default:\n throw new Error(\"cant skip wire type \" + wireType);\n }\n this.assertBounds();\n return this.buf.subarray(start, this.pos);\n }\n /**\n * Throws error if position in byte array is out of range.\n */\n assertBounds() {\n if (this.pos > this.len)\n throw new RangeError(\"premature EOF\");\n }\n /**\n * Read a `int32` field, a signed 32 bit varint.\n */\n int32() {\n return this.uint32() | 0;\n }\n /**\n * Read a `sint32` field, a signed, zigzag-encoded 32-bit varint.\n */\n sint32() {\n let zze = this.uint32();\n // decode zigzag\n return (zze >>> 1) ^ -(zze & 1);\n }\n /**\n * Read a `int64` field, a signed 64-bit varint.\n */\n int64() {\n return protoInt64.dec(...this.varint64());\n }\n /**\n * Read a `uint64` field, an unsigned 64-bit varint.\n */\n uint64() {\n return protoInt64.uDec(...this.varint64());\n }\n /**\n * Read a `sint64` field, a signed, zig-zag-encoded 64-bit varint.\n */\n sint64() {\n let [lo, hi] = this.varint64();\n // decode zig zag\n let s = -(lo & 1);\n lo = ((lo >>> 1) | ((hi & 1) << 31)) ^ s;\n hi = (hi >>> 1) ^ s;\n return protoInt64.dec(lo, hi);\n }\n /**\n * Read a `bool` field, a variant.\n */\n bool() {\n let [lo, hi] = this.varint64();\n return lo !== 0 || hi !== 0;\n }\n /**\n * Read a `fixed32` field, an unsigned, fixed-length 32-bit integer.\n */\n fixed32() {\n return this.view.getUint32((this.pos += 4) - 4, true);\n }\n /**\n * Read a `sfixed32` field, a signed, fixed-length 32-bit integer.\n */\n sfixed32() {\n return this.view.getInt32((this.pos += 4) - 4, true);\n }\n /**\n * Read a `fixed64` field, an unsigned, fixed-length 64 bit integer.\n */\n fixed64() {\n return protoInt64.uDec(this.sfixed32(), this.sfixed32());\n }\n /**\n * Read a `fixed64` field, a signed, fixed-length 64-bit integer.\n */\n sfixed64() {\n return protoInt64.dec(this.sfixed32(), this.sfixed32());\n }\n /**\n * Read a `float` field, 32-bit floating point number.\n */\n float() {\n return this.view.getFloat32((this.pos += 4) - 4, true);\n }\n /**\n * Read a `double` field, a 64-bit floating point number.\n */\n double() {\n return this.view.getFloat64((this.pos += 8) - 8, true);\n }\n /**\n * Read a `bytes` field, length-delimited arbitrary data.\n */\n bytes() {\n let len = this.uint32(), start = this.pos;\n this.pos += len;\n this.assertBounds();\n return this.buf.subarray(start, start + len);\n }\n /**\n * Read a `string` field, length-delimited data converted to UTF-8 text.\n */\n string() {\n return this.textDecoder.decode(this.bytes());\n }\n}\n","// Copyright 2021-2024 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { BinaryReader, BinaryWriter, WireType } from \"../binary-encoding.js\";\nimport { Message } from \"../message.js\";\nimport { wrapField } from \"./field-wrapper.js\";\nimport { scalarZeroValue } from \"./scalars.js\";\nimport { assert } from \"./assert.js\";\nimport { isFieldSet } from \"./reflect.js\";\nimport { LongType, ScalarType } from \"../scalar.js\";\nimport { isMessage } from \"../is-message.js\";\n/* eslint-disable prefer-const,no-case-declarations,@typescript-eslint/no-explicit-any,@typescript-eslint/no-unsafe-argument,@typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-unsafe-member-access,@typescript-eslint/no-unsafe-call,@typescript-eslint/no-unsafe-return */\nconst unknownFieldsSymbol = Symbol(\"@bufbuild/protobuf/unknown-fields\");\n// Default options for parsing binary data.\nconst readDefaults = {\n readUnknownFields: true,\n readerFactory: (bytes) => new BinaryReader(bytes),\n};\n// Default options for serializing binary data.\nconst writeDefaults = {\n writeUnknownFields: true,\n writerFactory: () => new BinaryWriter(),\n};\nfunction makeReadOptions(options) {\n return options ? Object.assign(Object.assign({}, readDefaults), options) : readDefaults;\n}\nfunction makeWriteOptions(options) {\n return options ? Object.assign(Object.assign({}, writeDefaults), options) : writeDefaults;\n}\nexport function makeBinaryFormat() {\n return {\n makeReadOptions,\n makeWriteOptions,\n listUnknownFields(message) {\n var _a;\n return (_a = message[unknownFieldsSymbol]) !== null && _a !== void 0 ? _a : [];\n },\n discardUnknownFields(message) {\n delete message[unknownFieldsSymbol];\n },\n writeUnknownFields(message, writer) {\n const m = message;\n const c = m[unknownFieldsSymbol];\n if (c) {\n for (const f of c) {\n writer.tag(f.no, f.wireType).raw(f.data);\n }\n }\n },\n onUnknownField(message, no, wireType, data) {\n const m = message;\n if (!Array.isArray(m[unknownFieldsSymbol])) {\n m[unknownFieldsSymbol] = [];\n }\n m[unknownFieldsSymbol].push({ no, wireType, data });\n },\n readMessage(message, reader, lengthOrEndTagFieldNo, options, delimitedMessageEncoding) {\n const type = message.getType();\n // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions\n const end = delimitedMessageEncoding\n ? reader.len\n : reader.pos + lengthOrEndTagFieldNo;\n let fieldNo, wireType;\n while (reader.pos < end) {\n [fieldNo, wireType] = reader.tag();\n if (delimitedMessageEncoding === true &&\n wireType == WireType.EndGroup) {\n break;\n }\n const field = type.fields.find(fieldNo);\n if (!field) {\n const data = reader.skip(wireType, fieldNo);\n if (options.readUnknownFields) {\n this.onUnknownField(message, fieldNo, wireType, data);\n }\n continue;\n }\n readField(message, reader, field, wireType, options);\n }\n if (delimitedMessageEncoding && // eslint-disable-line @typescript-eslint/strict-boolean-expressions\n (wireType != WireType.EndGroup || fieldNo !== lengthOrEndTagFieldNo)) {\n throw new Error(`invalid end group tag`);\n }\n },\n readField,\n writeMessage(message, writer, options) {\n const type = message.getType();\n for (const field of type.fields.byNumber()) {\n if (!isFieldSet(field, message)) {\n if (field.req) {\n throw new Error(`cannot encode field ${type.typeName}.${field.name} to binary: required field not set`);\n }\n continue;\n }\n const value = field.oneof\n ? message[field.oneof.localName].value\n : message[field.localName];\n writeField(field, value, writer, options);\n }\n if (options.writeUnknownFields) {\n this.writeUnknownFields(message, writer);\n }\n return writer;\n },\n writeField(field, value, writer, options) {\n // The behavior of our internal function has changed, it does no longer\n // accept `undefined` values for singular scalar and map.\n // For backwards-compatibility, we support the old form that is part of\n // the public API through the interface BinaryFormat.\n if (value === undefined) {\n return undefined;\n }\n writeField(field, value, writer, options);\n },\n };\n}\nfunction readField(target, // eslint-disable-line @typescript-eslint/no-explicit-any -- `any` is the best choice for dynamic access\nreader, field, wireType, options) {\n let { repeated, localName } = field;\n if (field.oneof) {\n target = target[field.oneof.localName];\n if (target.case != localName) {\n delete target.value;\n }\n target.case = localName;\n localName = \"value\";\n }\n switch (field.kind) {\n case \"scalar\":\n case \"enum\":\n const scalarType = field.kind == \"enum\" ? ScalarType.INT32 : field.T;\n let read = readScalar;\n // eslint-disable-next-line @typescript-eslint/no-unsafe-enum-comparison -- acceptable since it's covered by tests\n if (field.kind == \"scalar\" && field.L > 0) {\n read = readScalarLTString;\n }\n if (repeated) {\n let arr = target[localName]; // safe to assume presence of array, oneof cannot contain repeated values\n const isPacked = wireType == WireType.LengthDelimited &&\n scalarType != ScalarType.STRING &&\n scalarType != ScalarType.BYTES;\n if (isPacked) {\n let e = reader.uint32() + reader.pos;\n while (reader.pos < e) {\n arr.push(read(reader, scalarType));\n }\n }\n else {\n arr.push(read(reader, scalarType));\n }\n }\n else {\n target[localName] = read(reader, scalarType);\n }\n break;\n case \"message\":\n const messageType = field.T;\n if (repeated) {\n // safe to assume presence of array, oneof cannot contain repeated values\n target[localName].push(readMessageField(reader, new messageType(), options, field));\n }\n else {\n if (isMessage(target[localName])) {\n readMessageField(reader, target[localName], options, field);\n }\n else {\n target[localName] = readMessageField(reader, new messageType(), options, field);\n if (messageType.fieldWrapper && !field.oneof && !field.repeated) {\n target[localName] = messageType.fieldWrapper.unwrapField(target[localName]);\n }\n }\n }\n break;\n case \"map\":\n let [mapKey, mapVal] = readMapEntry(field, reader, options);\n // safe to assume presence of map object, oneof cannot contain repeated values\n target[localName][mapKey] = mapVal;\n break;\n }\n}\n// Read a message, avoiding MessageType.fromBinary() to re-use the\n// BinaryReadOptions and the IBinaryReader.\nfunction readMessageField(reader, message, options, field) {\n const format = message.getType().runtime.bin;\n const delimited = field === null || field === void 0 ? void 0 : field.delimited;\n format.readMessage(message, reader, delimited ? field.no : reader.uint32(), // eslint-disable-line @typescript-eslint/strict-boolean-expressions\n options, delimited);\n return message;\n}\n// Read a map field, expecting key field = 1, value field = 2\nfunction readMapEntry(field, reader, options) {\n const length = reader.uint32(), end = reader.pos + length;\n let key, val;\n while (reader.pos < end) {\n const [fieldNo] = reader.tag();\n switch (fieldNo) {\n case 1:\n key = readScalar(reader, field.K);\n break;\n case 2:\n switch (field.V.kind) {\n case \"scalar\":\n val = readScalar(reader, field.V.T);\n break;\n case \"enum\":\n val = reader.int32();\n break;\n case \"message\":\n val = readMessageField(reader, new field.V.T(), options, undefined);\n break;\n }\n break;\n }\n }\n if (key === undefined) {\n key = scalarZeroValue(field.K, LongType.BIGINT);\n }\n if (typeof key != \"string\" && typeof key != \"number\") {\n key = key.toString();\n }\n if (val === undefined) {\n switch (field.V.kind) {\n case \"scalar\":\n val = scalarZeroValue(field.V.T, LongType.BIGINT);\n break;\n case \"enum\":\n val = field.V.T.values[0].no;\n break;\n case \"message\":\n val = new field.V.T();\n break;\n }\n }\n return [key, val];\n}\n// Read a scalar value, but return 64 bit integral types (int64, uint64,\n// sint64, fixed64, sfixed64) as string instead of bigint.\nfunction readScalarLTString(reader, type) {\n const v = readScalar(reader, type);\n return typeof v == \"bigint\" ? v.toString() : v;\n}\n// Does not use scalarTypeInfo() for better performance.\nfunction readScalar(reader, type) {\n switch (type) {\n case ScalarType.STRING:\n return reader.string();\n case ScalarType.BOOL:\n return reader.bool();\n case ScalarType.DOUBLE:\n return reader.double();\n case ScalarType.FLOAT:\n return reader.float();\n case ScalarType.INT32:\n return reader.int32();\n case ScalarType.INT64:\n return reader.int64();\n case ScalarType.UINT64:\n return reader.uint64();\n case ScalarType.FIXED64:\n return reader.fixed64();\n case ScalarType.BYTES:\n return reader.bytes();\n case ScalarType.FIXED32:\n return reader.fixed32();\n case ScalarType.SFIXED32:\n return reader.sfixed32();\n case ScalarType.SFIXED64:\n return reader.sfixed64();\n case ScalarType.SINT64:\n return reader.sint64();\n case ScalarType.UINT32:\n return reader.uint32();\n case ScalarType.SINT32:\n return reader.sint32();\n }\n}\nfunction writeField(field, value, writer, options) {\n assert(value !== undefined);\n const repeated = field.repeated;\n switch (field.kind) {\n case \"scalar\":\n case \"enum\":\n let scalarType = field.kind == \"enum\" ? ScalarType.INT32 : field.T;\n if (repeated) {\n assert(Array.isArray(value));\n if (field.packed) {\n writePacked(writer, scalarType, field.no, value);\n }\n else {\n for (const item of value) {\n writeScalar(writer, scalarType, field.no, item);\n }\n }\n }\n else {\n writeScalar(writer, scalarType, field.no, value);\n }\n break;\n case \"message\":\n if (repeated) {\n assert(Array.isArray(value));\n for (const item of value) {\n writeMessageField(writer, options, field, item);\n }\n }\n else {\n writeMessageField(writer, options, field, value);\n }\n break;\n case \"map\":\n assert(typeof value == \"object\" && value != null);\n for (const [key, val] of Object.entries(value)) {\n writeMapEntry(writer, options, field, key, val);\n }\n break;\n }\n}\nexport function writeMapEntry(writer, options, field, key, value) {\n writer.tag(field.no, WireType.LengthDelimited);\n writer.fork();\n // javascript only allows number or string for object properties\n // we convert from our representation to the protobuf type\n let keyValue = key;\n // eslint-disable-next-line @typescript-eslint/switch-exhaustiveness-check -- we deliberately handle just the special cases for map keys\n switch (field.K) {\n case ScalarType.INT32:\n case ScalarType.FIXED32:\n case ScalarType.UINT32:\n case ScalarType.SFIXED32:\n case ScalarType.SINT32:\n keyValue = Number.parseInt(key);\n break;\n case ScalarType.BOOL:\n assert(key == \"true\" || key == \"false\");\n keyValue = key == \"true\";\n break;\n }\n // write key, expecting key field number = 1\n writeScalar(writer, field.K, 1, keyValue);\n // write value, expecting value field number = 2\n switch (field.V.kind) {\n case \"scalar\":\n writeScalar(writer, field.V.T, 2, value);\n break;\n case \"enum\":\n writeScalar(writer, ScalarType.INT32, 2, value);\n break;\n case \"message\":\n assert(value !== undefined);\n writer.tag(2, WireType.LengthDelimited).bytes(value.toBinary(options));\n break;\n }\n writer.join();\n}\n// Value must not be undefined\nfunction writeMessageField(writer, options, field, value) {\n const message = wrapField(field.T, value);\n // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions\n if (field.delimited)\n writer\n .tag(field.no, WireType.StartGroup)\n .raw(message.toBinary(options))\n .tag(field.no, WireType.EndGroup);\n else\n writer\n .tag(field.no, WireType.LengthDelimited)\n .bytes(message.toBinary(options));\n}\nfunction writeScalar(writer, type, fieldNo, value) {\n assert(value !== undefined);\n let [wireType, method] = scalarTypeInfo(type);\n writer.tag(fieldNo, wireType)[method](value);\n}\nfunction writePacked(writer, type, fieldNo, value) {\n if (!value.length) {\n return;\n }\n writer.tag(fieldNo, WireType.LengthDelimited).fork();\n let [, method] = scalarTypeInfo(type);\n for (let i = 0; i < value.length; i++) {\n writer[method](value[i]);\n }\n writer.join();\n}\n/**\n * Get information for writing a scalar value.\n *\n * Returns tuple:\n * [0]: appropriate WireType\n * [1]: name of the appropriate method of IBinaryWriter\n * [2]: whether the given value is a default value for proto3 semantics\n *\n * If argument `value` is omitted, [2] is always false.\n */\n// TODO replace call-sites writeScalar() and writePacked(), then remove\nfunction scalarTypeInfo(type) {\n let wireType = WireType.Varint;\n // eslint-disable-next-line @typescript-eslint/switch-exhaustiveness-check -- INT32, UINT32, SINT32 are covered by the defaults\n switch (type) {\n case ScalarType.BYTES:\n case ScalarType.STRING:\n wireType = WireType.LengthDelimited;\n break;\n case ScalarType.DOUBLE:\n case ScalarType.FIXED64:\n case ScalarType.SFIXED64:\n wireType = WireType.Bit64;\n break;\n case ScalarType.FIXED32:\n case ScalarType.SFIXED32:\n case ScalarType.FLOAT:\n wireType = WireType.Bit32;\n break;\n }\n const method = ScalarType[type].toLowerCase();\n return [wireType, method];\n}\n","// Copyright 2021-2024 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { setEnumType } from \"./enum.js\";\nimport { Message } from \"../message.js\";\nimport { scalarEquals } from \"./scalars.js\";\nimport { ScalarType } from \"../scalar.js\";\nimport { isMessage } from \"../is-message.js\";\n/* eslint-disable @typescript-eslint/no-explicit-any,@typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-unsafe-member-access,@typescript-eslint/no-unsafe-return,@typescript-eslint/no-unsafe-argument,no-case-declarations */\nexport function makeUtilCommon() {\n return {\n setEnumType,\n initPartial(source, target) {\n if (source === undefined) {\n return;\n }\n const type = target.getType();\n for (const member of type.fields.byMember()) {\n const localName = member.localName, t = target, s = source;\n if (s[localName] == null) {\n // TODO if source is a Message instance, we should use isFieldSet() here to support future field presence\n continue;\n }\n switch (member.kind) {\n case \"oneof\":\n const sk = s[localName].case;\n if (sk === undefined) {\n continue;\n }\n const sourceField = member.findField(sk);\n let val = s[localName].value;\n if (sourceField &&\n sourceField.kind == \"message\" &&\n !isMessage(val, sourceField.T)) {\n val = new sourceField.T(val);\n }\n else if (sourceField &&\n sourceField.kind === \"scalar\" &&\n sourceField.T === ScalarType.BYTES) {\n val = toU8Arr(val);\n }\n t[localName] = { case: sk, value: val };\n break;\n case \"scalar\":\n case \"enum\":\n let copy = s[localName];\n if (member.T === ScalarType.BYTES) {\n copy = member.repeated\n ? copy.map(toU8Arr)\n : toU8Arr(copy);\n }\n t[localName] = copy;\n break;\n case \"map\":\n switch (member.V.kind) {\n case \"scalar\":\n case \"enum\":\n if (member.V.T === ScalarType.BYTES) {\n for (const [k, v] of Object.entries(s[localName])) {\n t[localName][k] = toU8Arr(v);\n }\n }\n else {\n Object.assign(t[localName], s[localName]);\n }\n break;\n case \"message\":\n const messageType = member.V.T;\n for (const k of Object.keys(s[localName])) {\n let val = s[localName][k];\n if (!messageType.fieldWrapper) {\n // We only take partial input for messages that are not a wrapper type.\n // For those messages, we recursively normalize the partial input.\n val = new messageType(val);\n }\n t[localName][k] = val;\n }\n break;\n }\n break;\n case \"message\":\n const mt = member.T;\n if (member.repeated) {\n t[localName] = s[localName].map((val) => isMessage(val, mt) ? val : new mt(val));\n }\n else {\n const val = s[localName];\n if (mt.fieldWrapper) {\n if (\n // We can't use BytesValue.typeName as that will create a circular import\n mt.typeName === \"google.protobuf.BytesValue\") {\n t[localName] = toU8Arr(val);\n }\n else {\n t[localName] = val;\n }\n }\n else {\n t[localName] = isMessage(val, mt) ? val : new mt(val);\n }\n }\n break;\n }\n }\n },\n // TODO use isFieldSet() here to support future field presence\n equals(type, a, b) {\n if (a === b) {\n return true;\n }\n if (!a || !b) {\n return false;\n }\n return type.fields.byMember().every((m) => {\n const va = a[m.localName];\n const vb = b[m.localName];\n if (m.repeated) {\n if (va.length !== vb.length) {\n return false;\n }\n // eslint-disable-next-line @typescript-eslint/switch-exhaustiveness-check -- repeated fields are never \"map\"\n switch (m.kind) {\n case \"message\":\n return va.every((a, i) => m.T.equals(a, vb[i]));\n case \"scalar\":\n return va.every((a, i) => scalarEquals(m.T, a, vb[i]));\n case \"enum\":\n return va.every((a, i) => scalarEquals(ScalarType.INT32, a, vb[i]));\n }\n throw new Error(`repeated cannot contain ${m.kind}`);\n }\n switch (m.kind) {\n case \"message\":\n return m.T.equals(va, vb);\n case \"enum\":\n return scalarEquals(ScalarType.INT32, va, vb);\n case \"scalar\":\n return scalarEquals(m.T, va, vb);\n case \"oneof\":\n if (va.case !== vb.case) {\n return false;\n }\n const s = m.findField(va.case);\n if (s === undefined) {\n return true;\n }\n // eslint-disable-next-line @typescript-eslint/switch-exhaustiveness-check -- oneof fields are never \"map\"\n switch (s.kind) {\n case \"message\":\n return s.T.equals(va.value, vb.value);\n case \"enum\":\n return scalarEquals(ScalarType.INT32, va.value, vb.value);\n case \"scalar\":\n return scalarEquals(s.T, va.value, vb.value);\n }\n throw new Error(`oneof cannot contain ${s.kind}`);\n case \"map\":\n const keys = Object.keys(va).concat(Object.keys(vb));\n switch (m.V.kind) {\n case \"message\":\n const messageType = m.V.T;\n return keys.every((k) => messageType.equals(va[k], vb[k]));\n case \"enum\":\n return keys.every((k) => scalarEquals(ScalarType.INT32, va[k], vb[k]));\n case \"scalar\":\n const scalarType = m.V.T;\n return keys.every((k) => scalarEquals(scalarType, va[k], vb[k]));\n }\n break;\n }\n });\n },\n // TODO use isFieldSet() here to support future field presence\n clone(message) {\n const type = message.getType(), target = new type(), any = target;\n for (const member of type.fields.byMember()) {\n const source = message[member.localName];\n let copy;\n if (member.repeated) {\n copy = source.map(cloneSingularField);\n }\n else if (member.kind == \"map\") {\n copy = any[member.localName];\n for (const [key, v] of Object.entries(source)) {\n copy[key] = cloneSingularField(v);\n }\n }\n else if (member.kind == \"oneof\") {\n const f = member.findField(source.case);\n copy = f\n ? { case: source.case, value: cloneSingularField(source.value) }\n : { case: undefined };\n }\n else {\n copy = cloneSingularField(source);\n }\n any[member.localName] = copy;\n }\n for (const uf of type.runtime.bin.listUnknownFields(message)) {\n type.runtime.bin.onUnknownField(any, uf.no, uf.wireType, uf.data);\n }\n return target;\n },\n };\n}\n// clone a single field value - i.e. the element type of repeated fields, the value type of maps\nfunction cloneSingularField(value) {\n if (value === undefined) {\n return value;\n }\n if (isMessage(value)) {\n return value.clone();\n }\n if (value instanceof Uint8Array) {\n const c = new Uint8Array(value.byteLength);\n c.set(value);\n return c;\n }\n return value;\n}\n// converts any ArrayLike to Uint8Array if necessary.\nfunction toU8Arr(input) {\n return input instanceof Uint8Array ? input : new Uint8Array(input);\n}\n","// Copyright 2021-2024 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { getEnumType, makeEnum, makeEnumType } from \"./enum.js\";\nimport { makeMessageType } from \"./message-type.js\";\nimport { makeExtension } from \"./extensions.js\";\nimport { makeJsonFormat } from \"./json-format.js\";\nimport { makeBinaryFormat } from \"./binary-format.js\";\nimport { makeUtilCommon } from \"./util-common.js\";\nexport function makeProtoRuntime(syntax, newFieldList, initFields) {\n return {\n syntax,\n json: makeJsonFormat(),\n bin: makeBinaryFormat(),\n util: Object.assign(Object.assign({}, makeUtilCommon()), { newFieldList,\n initFields }),\n makeMessageType(typeName, fields, opt) {\n return makeMessageType(this, typeName, fields, opt);\n },\n makeEnum,\n makeEnumType,\n getEnumType,\n makeExtension(typeName, extendee, field) {\n return makeExtension(this, typeName, extendee, field);\n },\n };\n}\n","// Copyright 2021-2024 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nexport class InternalFieldList {\n constructor(fields, normalizer) {\n this._fields = fields;\n this._normalizer = normalizer;\n }\n findJsonName(jsonName) {\n if (!this.jsonNames) {\n const t = {};\n for (const f of this.list()) {\n t[f.jsonName] = t[f.name] = f;\n }\n this.jsonNames = t;\n }\n return this.jsonNames[jsonName];\n }\n find(fieldNo) {\n if (!this.numbers) {\n const t = {};\n for (const f of this.list()) {\n t[f.no] = f;\n }\n this.numbers = t;\n }\n return this.numbers[fieldNo];\n }\n list() {\n if (!this.all) {\n this.all = this._normalizer(this._fields);\n }\n return this.all;\n }\n byNumber() {\n if (!this.numbersAsc) {\n this.numbersAsc = this.list()\n .concat()\n .sort((a, b) => a.no - b.no);\n }\n return this.numbersAsc;\n }\n byMember() {\n if (!this.members) {\n this.members = [];\n const a = this.members;\n let o;\n for (const f of this.list()) {\n if (f.oneof) {\n if (f.oneof !== o) {\n o = f.oneof;\n a.push(o);\n }\n }\n else {\n a.push(f);\n }\n }\n }\n return this.members;\n }\n}\n","// Copyright 2021-2024 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n/**\n * Returns the name of a protobuf element in generated code.\n *\n * Field names - including oneofs - are converted to lowerCamelCase. For\n * messages, enumerations and services, the package name is stripped from\n * the type name. For nested messages and enumerations, the names are joined\n * with an underscore. For methods, the first character is made lowercase.\n */\nexport function localName(desc) {\n switch (desc.kind) {\n case \"field\":\n return localFieldName(desc.name, desc.oneof !== undefined);\n case \"oneof\":\n return localOneofName(desc.name);\n case \"enum\":\n case \"message\":\n case \"service\":\n case \"extension\": {\n const pkg = desc.file.proto.package;\n const offset = pkg === undefined ? 0 : pkg.length + 1;\n const name = desc.typeName.substring(offset).replace(/\\./g, \"_\");\n // For services, we only care about safe identifiers, not safe object properties,\n // but we have shipped v1 with a bug that respected object properties, and we\n // do not want to introduce a breaking change, so we continue to escape for\n // safe object properties.\n // See https://github.com/bufbuild/protobuf-es/pull/391\n return safeObjectProperty(safeIdentifier(name));\n }\n case \"enum_value\": {\n let name = desc.name;\n const sharedPrefix = desc.parent.sharedPrefix;\n if (sharedPrefix !== undefined) {\n name = name.substring(sharedPrefix.length);\n }\n return safeObjectProperty(name);\n }\n case \"rpc\": {\n let name = desc.name;\n if (name.length == 0) {\n return name;\n }\n name = name[0].toLowerCase() + name.substring(1);\n return safeObjectProperty(name);\n }\n }\n}\n/**\n * Returns the name of a field in generated code.\n */\nexport function localFieldName(protoName, inOneof) {\n const name = protoCamelCase(protoName);\n if (inOneof) {\n // oneof member names are not properties, but values of the `case` property.\n return name;\n }\n return safeObjectProperty(safeMessageProperty(name));\n}\n/**\n * Returns the name of a oneof group in generated code.\n */\nexport function localOneofName(protoName) {\n return localFieldName(protoName, false);\n}\n/**\n * Returns the JSON name for a protobuf field, exactly like protoc does.\n */\nexport const fieldJsonName = protoCamelCase;\n/**\n * Finds a prefix shared by enum values, for example `MY_ENUM_` for\n * `enum MyEnum {MY_ENUM_A=0; MY_ENUM_B=1;}`.\n */\nexport function findEnumSharedPrefix(enumName, valueNames) {\n const prefix = camelToSnakeCase(enumName) + \"_\";\n for (const name of valueNames) {\n if (!name.toLowerCase().startsWith(prefix)) {\n return undefined;\n }\n const shortName = name.substring(prefix.length);\n if (shortName.length == 0) {\n return undefined;\n }\n if (/^\\d/.test(shortName)) {\n // identifiers must not start with numbers\n return undefined;\n }\n }\n return prefix;\n}\n/**\n * Converts lowerCamelCase or UpperCamelCase into lower_snake_case.\n * This is used to find shared prefixes in an enum.\n */\nfunction camelToSnakeCase(camel) {\n return (camel.substring(0, 1) + camel.substring(1).replace(/[A-Z]/g, (c) => \"_\" + c)).toLowerCase();\n}\n/**\n * Converts snake_case to protoCamelCase according to the convention\n * used by protoc to convert a field name to a JSON name.\n */\nfunction protoCamelCase(snakeCase) {\n let capNext = false;\n const b = [];\n for (let i = 0; i < snakeCase.length; i++) {\n let c = snakeCase.charAt(i);\n switch (c) {\n case \"_\":\n capNext = true;\n break;\n case \"0\":\n case \"1\":\n case \"2\":\n case \"3\":\n case \"4\":\n case \"5\":\n case \"6\":\n case \"7\":\n case \"8\":\n case \"9\":\n b.push(c);\n capNext = false;\n break;\n default:\n if (capNext) {\n capNext = false;\n c = c.toUpperCase();\n }\n b.push(c);\n break;\n }\n }\n return b.join(\"\");\n}\n/**\n * Names that cannot be used for identifiers, such as class names,\n * but _can_ be used for object properties.\n */\nconst reservedIdentifiers = new Set([\n // ECMAScript 2015 keywords\n \"break\",\n \"case\",\n \"catch\",\n \"class\",\n \"const\",\n \"continue\",\n \"debugger\",\n \"default\",\n \"delete\",\n \"do\",\n \"else\",\n \"export\",\n \"extends\",\n \"false\",\n \"finally\",\n \"for\",\n \"function\",\n \"if\",\n \"import\",\n \"in\",\n \"instanceof\",\n \"new\",\n \"null\",\n \"return\",\n \"super\",\n \"switch\",\n \"this\",\n \"throw\",\n \"true\",\n \"try\",\n \"typeof\",\n \"var\",\n \"void\",\n \"while\",\n \"with\",\n \"yield\",\n // ECMAScript 2015 future reserved keywords\n \"enum\",\n \"implements\",\n \"interface\",\n \"let\",\n \"package\",\n \"private\",\n \"protected\",\n \"public\",\n \"static\",\n // Class name cannot be 'Object' when targeting ES5 with module CommonJS\n \"Object\",\n // TypeScript keywords that cannot be used for types (as opposed to variables)\n \"bigint\",\n \"number\",\n \"boolean\",\n \"string\",\n \"object\",\n // Identifiers reserved for the runtime, so we can generate legible code\n \"globalThis\",\n \"Uint8Array\",\n \"Partial\",\n]);\n/**\n * Names that cannot be used for object properties because they are reserved\n * by built-in JavaScript properties.\n */\nconst reservedObjectProperties = new Set([\n // names reserved by JavaScript\n \"constructor\",\n \"toString\",\n \"toJSON\",\n \"valueOf\",\n]);\n/**\n * Names that cannot be used for object properties because they are reserved\n * by the runtime.\n */\nconst reservedMessageProperties = new Set([\n // names reserved by the runtime\n \"getType\",\n \"clone\",\n \"equals\",\n \"fromBinary\",\n \"fromJson\",\n \"fromJsonString\",\n \"toBinary\",\n \"toJson\",\n \"toJsonString\",\n // names reserved by the runtime for the future\n \"toObject\",\n]);\nconst fallback = (name) => `${name}$`;\n/**\n * Will wrap names that are Object prototype properties or names reserved\n * for `Message`s.\n */\nconst safeMessageProperty = (name) => {\n if (reservedMessageProperties.has(name)) {\n return fallback(name);\n }\n return name;\n};\n/**\n * Names that cannot be used for object properties because they are reserved\n * by built-in JavaScript properties.\n */\nexport const safeObjectProperty = (name) => {\n if (reservedObjectProperties.has(name)) {\n return fallback(name);\n }\n return name;\n};\n/**\n * Names that can be used for identifiers or class properties\n */\nexport const safeIdentifier = (name) => {\n if (reservedIdentifiers.has(name)) {\n return fallback(name);\n }\n return name;\n};\n","// Copyright 2021-2024 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { localOneofName } from \"./names.js\";\nimport { assert } from \"./assert.js\";\nexport class InternalOneofInfo {\n constructor(name) {\n this.kind = \"oneof\";\n this.repeated = false;\n this.packed = false;\n this.opt = false;\n this.req = false;\n this.default = undefined;\n this.fields = [];\n this.name = name;\n this.localName = localOneofName(name);\n }\n addField(field) {\n assert(field.oneof === this, `field ${field.name} not one of ${this.name}`);\n this.fields.push(field);\n }\n findField(localName) {\n if (!this._lookup) {\n this._lookup = Object.create(null);\n for (let i = 0; i < this.fields.length; i++) {\n this._lookup[this.fields[i].localName] = this.fields[i];\n }\n }\n return this._lookup[localName];\n }\n}\n","// Copyright 2021-2024 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { InternalOneofInfo } from \"./field.js\";\nimport { fieldJsonName, localFieldName } from \"./names.js\";\nimport { LongType, ScalarType } from \"../scalar.js\";\n/**\n * Convert a collection of field info to an array of normalized FieldInfo.\n *\n * The argument `packedByDefault` specifies whether fields that do not specify\n * `packed` should be packed (proto3) or unpacked (proto2).\n */\nexport function normalizeFieldInfos(fieldInfos, packedByDefault) {\n var _a, _b, _c, _d, _e, _f;\n const r = [];\n let o;\n for (const field of typeof fieldInfos == \"function\"\n ? fieldInfos()\n : fieldInfos) {\n const f = field;\n f.localName = localFieldName(field.name, field.oneof !== undefined);\n f.jsonName = (_a = field.jsonName) !== null && _a !== void 0 ? _a : fieldJsonName(field.name);\n f.repeated = (_b = field.repeated) !== null && _b !== void 0 ? _b : false;\n if (field.kind == \"scalar\") {\n f.L = (_c = field.L) !== null && _c !== void 0 ? _c : LongType.BIGINT;\n }\n f.delimited = (_d = field.delimited) !== null && _d !== void 0 ? _d : false;\n f.req = (_e = field.req) !== null && _e !== void 0 ? _e : false;\n f.opt = (_f = field.opt) !== null && _f !== void 0 ? _f : false;\n if (field.packed === undefined) {\n if (packedByDefault) {\n f.packed =\n field.kind == \"enum\" ||\n (field.kind == \"scalar\" &&\n field.T != ScalarType.BYTES &&\n field.T != ScalarType.STRING);\n }\n else {\n f.packed = false;\n }\n }\n // We do not surface options at this time\n // f.options = field.options ?? emptyReadonlyObject;\n if (field.oneof !== undefined) {\n const ooname = typeof field.oneof == \"string\" ? field.oneof : field.oneof.name;\n if (!o || o.name != ooname) {\n o = new InternalOneofInfo(ooname);\n }\n f.oneof = o;\n o.addField(f);\n }\n r.push(f);\n }\n return r;\n}\n","// Copyright 2021-2024 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { makeProtoRuntime } from \"./private/proto-runtime.js\";\nimport { InternalFieldList } from \"./private/field-list.js\";\nimport { scalarZeroValue } from \"./private/scalars.js\";\nimport { normalizeFieldInfos } from \"./private/field-normalize.js\";\n/**\n * Provides functionality for messages defined with the proto3 syntax.\n */\nexport const proto3 = makeProtoRuntime(\"proto3\", (fields) => {\n return new InternalFieldList(fields, (source) => normalizeFieldInfos(source, true));\n}, \n// TODO merge with proto2 and initExtensionField, also see initPartial, equals, clone\n(target) => {\n for (const member of target.getType().fields.byMember()) {\n if (member.opt) {\n continue;\n }\n const name = member.localName, t = target;\n if (member.repeated) {\n t[name] = [];\n continue;\n }\n switch (member.kind) {\n case \"oneof\":\n t[name] = { case: undefined };\n break;\n case \"enum\":\n t[name] = 0;\n break;\n case \"map\":\n t[name] = {};\n break;\n case \"scalar\":\n t[name] = scalarZeroValue(member.T, member.L);\n break;\n case \"message\":\n // message fields are always optional in proto3\n break;\n }\n }\n});\n","// Copyright 2021-2024 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n/**\n * MethodKind represents the four method types that can be declared in\n * protobuf with the `stream` keyword:\n *\n * 1. Unary: rpc (Input) returns (Output)\n * 2. ServerStreaming: rpc (Input) returns (stream Output)\n * 3. ClientStreaming: rpc (stream Input) returns (Output)\n * 4. BiDiStreaming: rpc (stream Input) returns (stream Output)\n */\nexport var MethodKind;\n(function (MethodKind) {\n MethodKind[MethodKind[\"Unary\"] = 0] = \"Unary\";\n MethodKind[MethodKind[\"ServerStreaming\"] = 1] = \"ServerStreaming\";\n MethodKind[MethodKind[\"ClientStreaming\"] = 2] = \"ClientStreaming\";\n MethodKind[MethodKind[\"BiDiStreaming\"] = 3] = \"BiDiStreaming\";\n})(MethodKind || (MethodKind = {}));\n/**\n * Is this method side-effect-free (or safe in HTTP parlance), or just\n * idempotent, or neither? HTTP based RPC implementation may choose GET verb\n * for safe methods, and PUT verb for idempotent methods instead of the\n * default POST.\n *\n * This enum matches the protobuf enum google.protobuf.MethodOptions.IdempotencyLevel,\n * defined in the well-known type google/protobuf/descriptor.proto, but\n * drops UNKNOWN.\n */\nexport var MethodIdempotency;\n(function (MethodIdempotency) {\n /**\n * Idempotent, no side effects.\n */\n MethodIdempotency[MethodIdempotency[\"NoSideEffects\"] = 1] = \"NoSideEffects\";\n /**\n * Idempotent, but may have side effects.\n */\n MethodIdempotency[MethodIdempotency[\"Idempotent\"] = 2] = \"Idempotent\";\n})(MethodIdempotency || (MethodIdempotency = {}));\n","// Copyright 2021-2024 The Connect Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n/**\n * createContextValues creates a new ContextValues.\n */\nexport function createContextValues() {\n return {\n get(key) {\n return key.id in this ? this[key.id] : key.defaultValue;\n },\n set(key, value) {\n this[key.id] = value;\n return this;\n },\n delete(key) {\n delete this[key.id];\n return this;\n },\n };\n}\n/**\n * createContextKey creates a new ContextKey.\n */\nexport function createContextKey(defaultValue, options) {\n return { id: Symbol(options === null || options === void 0 ? void 0 : options.description), defaultValue };\n}\n","// Copyright 2021-2024 The Connect Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { protoBase64 } from \"@bufbuild/protobuf\";\nimport { ConnectError } from \"./connect-error.js\";\nimport { Code } from \"./code.js\";\n/**\n * Encode a single binary header value according to the Connect\n * and gRPC specifications.\n *\n * This function accepts raw binary data from a buffer, a string\n * with UTF-8 text, or a protobuf message. It encodes the input\n * with unpadded base64 and returns a string that can be used for\n * a header whose name ends with `-bin`.\n */\nexport function encodeBinaryHeader(value) {\n let bytes;\n if (typeof value == \"object\" && \"getType\" in value) {\n bytes = value.toBinary();\n }\n else if (typeof value == \"string\") {\n bytes = new TextEncoder().encode(value);\n }\n else {\n bytes = value instanceof Uint8Array ? value : new Uint8Array(value);\n }\n return protoBase64.enc(bytes).replace(/=+$/, \"\");\n}\nexport function decodeBinaryHeader(value, type, options) {\n try {\n const bytes = protoBase64.dec(value);\n if (type) {\n return type.fromBinary(bytes, options);\n }\n return bytes;\n }\n catch (e) {\n throw ConnectError.from(e, Code.DataLoss);\n }\n}\n/**\n * Merge two or more Headers objects by appending all fields from\n * all inputs to a new Headers object.\n */\nexport function appendHeaders(...headers) {\n const h = new Headers();\n for (const e of headers) {\n e.forEach((value, key) => {\n h.append(key, value);\n });\n }\n return h;\n}\n","// Copyright 2021-2024 The Connect Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { ConnectError } from \"../connect-error.js\";\nimport { Code } from \"../code.js\";\nimport { assertReadMaxBytes, assertWriteMaxBytes } from \"./limit-io.js\";\n/**\n * Sets default JSON serialization options for connect-es.\n *\n * With standard protobuf JSON serialization, unknown JSON fields are\n * rejected by default. In connect-es, unknown JSON fields are ignored\n * by default.\n */\nexport function getJsonOptions(options) {\n var _a;\n const o = Object.assign({}, options);\n (_a = o.ignoreUnknownFields) !== null && _a !== void 0 ? _a : (o.ignoreUnknownFields = true);\n return o;\n}\n/**\n * Create an object that provides convenient access to request and response\n * message serialization for a given method.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function createMethodSerializationLookup(method, binaryOptions, jsonOptions, limitOptions) {\n const inputBinary = limitSerialization(createBinarySerialization(method.I, binaryOptions), limitOptions);\n const inputJson = limitSerialization(createJsonSerialization(method.I, jsonOptions), limitOptions);\n const outputBinary = limitSerialization(createBinarySerialization(method.O, binaryOptions), limitOptions);\n const outputJson = limitSerialization(createJsonSerialization(method.O, jsonOptions), limitOptions);\n return {\n getI(useBinaryFormat) {\n return useBinaryFormat ? inputBinary : inputJson;\n },\n getO(useBinaryFormat) {\n return useBinaryFormat ? outputBinary : outputJson;\n },\n };\n}\n/**\n * Returns functions to normalize and serialize the input message\n * of an RPC, and to parse the output message of an RPC.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function createClientMethodSerializers(method, useBinaryFormat, jsonOptions, binaryOptions) {\n const input = useBinaryFormat\n ? createBinarySerialization(method.I, binaryOptions)\n : createJsonSerialization(method.I, jsonOptions);\n const output = useBinaryFormat\n ? createBinarySerialization(method.O, binaryOptions)\n : createJsonSerialization(method.O, jsonOptions);\n return { parse: output.parse, serialize: input.serialize };\n}\n/**\n * Apply I/O limits to a Serialization object, returning a new object.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function limitSerialization(serialization, limitOptions) {\n return {\n serialize(data) {\n const bytes = serialization.serialize(data);\n assertWriteMaxBytes(limitOptions.writeMaxBytes, bytes.byteLength);\n return bytes;\n },\n parse(data) {\n assertReadMaxBytes(limitOptions.readMaxBytes, data.byteLength, true);\n return serialization.parse(data);\n },\n };\n}\n/**\n * Creates a Serialization object for serializing the given protobuf message\n * with the protobuf binary format.\n */\nexport function createBinarySerialization(messageType, options) {\n return {\n parse(data) {\n try {\n return messageType.fromBinary(data, options);\n }\n catch (e) {\n const m = e instanceof Error ? e.message : String(e);\n throw new ConnectError(`parse binary: ${m}`, Code.Internal);\n }\n },\n serialize(data) {\n try {\n return data.toBinary(options);\n }\n catch (e) {\n const m = e instanceof Error ? e.message : String(e);\n throw new ConnectError(`serialize binary: ${m}`, Code.Internal);\n }\n },\n };\n}\n/**\n * Creates a Serialization object for serializing the given protobuf message\n * with the protobuf canonical JSON encoding.\n *\n * By default, unknown fields are ignored.\n */\nexport function createJsonSerialization(messageType, options) {\n var _a, _b;\n const textEncoder = (_a = options === null || options === void 0 ? void 0 : options.textEncoder) !== null && _a !== void 0 ? _a : new TextEncoder();\n const textDecoder = (_b = options === null || options === void 0 ? void 0 : options.textDecoder) !== null && _b !== void 0 ? _b : new TextDecoder();\n const o = getJsonOptions(options);\n return {\n parse(data) {\n try {\n const json = textDecoder.decode(data);\n return messageType.fromJsonString(json, o);\n }\n catch (e) {\n throw ConnectError.from(e, Code.InvalidArgument);\n }\n },\n serialize(data) {\n try {\n const json = data.toJsonString(o);\n return textEncoder.encode(json);\n }\n catch (e) {\n throw ConnectError.from(e, Code.Internal);\n }\n },\n };\n}\n","// Copyright 2021-2024 The Connect Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n/**\n * applyInterceptors takes the given UnaryFn or ServerStreamingFn, and wraps\n * it with each of the given interceptors, returning a new UnaryFn or\n * ServerStreamingFn.\n */\nexport function applyInterceptors(next, interceptors) {\n var _a;\n return ((_a = interceptors === null || interceptors === void 0 ? void 0 : interceptors.concat().reverse().reduce(\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n (n, i) => i(n), next)) !== null && _a !== void 0 ? _a : next);\n}\n","// Copyright 2021-2024 The Connect Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { ConnectError } from \"../connect-error.js\";\nimport { Code } from \"../code.js\";\n/**\n * Create an AbortController that is automatically aborted if one of the given\n * signals is aborted.\n *\n * For convenience, the linked AbortSignals can be undefined.\n *\n * If the controller or any of the signals is aborted, all event listeners are\n * removed.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function createLinkedAbortController(...signals) {\n const controller = new AbortController();\n const sa = signals.filter((s) => s !== undefined).concat(controller.signal);\n for (const signal of sa) {\n if (signal.aborted) {\n onAbort.apply(signal);\n break;\n }\n signal.addEventListener(\"abort\", onAbort);\n }\n function onAbort() {\n if (!controller.signal.aborted) {\n controller.abort(getAbortSignalReason(this));\n }\n for (const signal of sa) {\n signal.removeEventListener(\"abort\", onAbort);\n }\n }\n return controller;\n}\n/**\n * Create a deadline signal. The returned object contains an AbortSignal, but\n * also a cleanup function to stop the timer, which must be called once the\n * calling code is no longer interested in the signal.\n *\n * Ideally, we would simply use AbortSignal.timeout(), but it is not widely\n * available yet.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function createDeadlineSignal(timeoutMs) {\n const controller = new AbortController();\n const listener = () => {\n controller.abort(new ConnectError(\"the operation timed out\", Code.DeadlineExceeded));\n };\n let timeoutId;\n if (timeoutMs !== undefined) {\n if (timeoutMs <= 0)\n listener();\n else\n timeoutId = setTimeout(listener, timeoutMs);\n }\n return {\n signal: controller.signal,\n cleanup: () => clearTimeout(timeoutId),\n };\n}\n/**\n * Returns the reason why an AbortSignal was aborted. Returns undefined if the\n * signal has not been aborted.\n *\n * The property AbortSignal.reason is not widely available. This function\n * returns an AbortError if the signal is aborted, but reason is undefined.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function getAbortSignalReason(signal) {\n if (!signal.aborted) {\n return undefined;\n }\n if (signal.reason !== undefined) {\n return signal.reason;\n }\n // AbortSignal.reason is available in Node.js v16, v18, and later,\n // and in all browsers since early 2022.\n const e = new Error(\"This operation was aborted\");\n e.name = \"AbortError\";\n return e;\n}\n","// Copyright 2021-2024 The Connect Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { Message } from \"@bufbuild/protobuf\";\n/**\n * Takes a partial protobuf messages of the\n * specified message type as input, and returns full instances.\n */\nexport function normalize(type, message) {\n return message instanceof type\n ? message\n : new type(message);\n}\n/**\n * Takes an AsyncIterable of partial protobuf messages of the\n * specified message type as input, and yields full instances.\n */\nexport function normalizeIterable(messageType, input) {\n function transform(result) {\n if (result.done === true) {\n return result;\n }\n return {\n done: result.done,\n value: normalize(messageType, result.value),\n };\n }\n return {\n [Symbol.asyncIterator]() {\n const it = input[Symbol.asyncIterator]();\n const res = {\n next: () => it.next().then(transform),\n };\n if (it.throw !== undefined) {\n res.throw = (e) => it.throw(e).then(transform); // eslint-disable-line @typescript-eslint/no-non-null-assertion\n }\n if (it.return !== undefined) {\n res.return = (v) => it.return(v).then(transform); // eslint-disable-line @typescript-eslint/no-non-null-assertion\n }\n return res;\n },\n };\n}\n","// Copyright 2021-2024 The Connect Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { applyInterceptors } from \"../interceptor.js\";\nimport { ConnectError } from \"../connect-error.js\";\nimport { createDeadlineSignal, createLinkedAbortController, getAbortSignalReason, } from \"./signals.js\";\nimport { normalize, normalizeIterable } from \"./normalize.js\";\n/**\n * Runs a unary method with the given interceptors. Note that this function\n * is only used when implementing a Transport.\n */\nexport function runUnaryCall(opt) {\n const next = applyInterceptors(opt.next, opt.interceptors);\n const [signal, abort, done] = setupSignal(opt);\n const req = Object.assign(Object.assign({}, opt.req), { message: normalize(opt.req.method.I, opt.req.message), signal });\n return next(req).then((res) => {\n done();\n return res;\n }, abort);\n}\n/**\n * Runs a server-streaming method with the given interceptors. Note that this\n * function is only used when implementing a Transport.\n */\nexport function runStreamingCall(opt) {\n const next = applyInterceptors(opt.next, opt.interceptors);\n const [signal, abort, done] = setupSignal(opt);\n const req = Object.assign(Object.assign({}, opt.req), { message: normalizeIterable(opt.req.method.I, opt.req.message), signal });\n let doneCalled = false;\n // Call return on the request iterable to indicate\n // that we will no longer consume it and it should\n // cleanup any allocated resources.\n signal.addEventListener(\"abort\", function () {\n var _a, _b;\n const it = opt.req.message[Symbol.asyncIterator]();\n // If the signal is aborted due to an error, we want to throw\n // the error to the request iterator.\n if (!doneCalled) {\n (_a = it.throw) === null || _a === void 0 ? void 0 : _a.call(it, this.reason).catch(() => {\n // throw returns a promise, which we don't care about.\n //\n // Uncaught promises are thrown at sometime/somewhere by the event loop,\n // this is to ensure error is caught and ignored.\n });\n }\n (_b = it.return) === null || _b === void 0 ? void 0 : _b.call(it).catch(() => {\n // return returns a promise, which we don't care about.\n //\n // Uncaught promises are thrown at sometime/somewhere by the event loop,\n // this is to ensure error is caught and ignored.\n });\n });\n return next(req).then((res) => {\n return Object.assign(Object.assign({}, res), { message: {\n [Symbol.asyncIterator]() {\n const it = res.message[Symbol.asyncIterator]();\n return {\n next() {\n return it.next().then((r) => {\n if (r.done == true) {\n doneCalled = true;\n done();\n }\n return r;\n }, abort);\n },\n // We deliberately omit throw/return.\n };\n },\n } });\n }, abort);\n}\n/**\n * Create an AbortSignal for Transport implementations. The signal is available\n * in UnaryRequest and StreamingRequest, and is triggered when the call is\n * aborted (via a timeout or explicit cancellation), errored (e.g. when reading\n * an error from the server from the wire), or finished successfully.\n *\n * Transport implementations can pass the signal to HTTP clients to ensure that\n * there are no unused connections leak.\n *\n * Returns a tuple:\n * [0]: The signal, which is also aborted if the optional deadline is reached.\n * [1]: Function to call if the Transport encountered an error.\n * [2]: Function to call if the Transport finished without an error.\n */\nfunction setupSignal(opt) {\n const { signal, cleanup } = createDeadlineSignal(opt.timeoutMs);\n const controller = createLinkedAbortController(opt.signal, signal);\n return [\n controller.signal,\n function abort(reason) {\n // We peek at the deadline signal because fetch() will throw an error on\n // abort that discards the signal reason.\n const e = ConnectError.from(signal.aborted ? getAbortSignalReason(signal) : reason);\n controller.abort(e);\n cleanup();\n return Promise.reject(e);\n },\n function done() {\n cleanup();\n controller.abort();\n },\n ];\n}\n","// Copyright 2021-2024 The Connect Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n/**\n * Create a URL for the given RPC. This simply adds the qualified\n * service name, a slash, and the method name to the path of the given\n * baseUrl.\n *\n * For example, the baseUri https://example.com and method \"Say\" from\n * the service example.ElizaService results in:\n * https://example.com/example.ElizaService/Say\n *\n * This format is used by the protocols Connect, gRPC and Twirp.\n *\n * Note that this function also accepts a protocol-relative baseUrl.\n * If given an empty string or \"/\" as a baseUrl, it returns just the\n * path.\n */\nexport function createMethodUrl(baseUrl, service, method) {\n const s = typeof service == \"string\" ? service : service.typeName;\n const m = typeof method == \"string\" ? method : method.name;\n return baseUrl.toString().replace(/\\/?$/, `/${s}/${m}`);\n}\n","// Copyright 2021-2024 The Connect Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { ConnectError } from \"../connect-error.js\";\nimport { Code } from \"../code.js\";\nimport { compressedFlag } from \"./compression.js\";\n/**\n * Create a WHATWG ReadableStream of enveloped messages from a ReadableStream\n * of bytes.\n *\n * Ideally, this would simply be a TransformStream, but ReadableStream.pipeThrough\n * does not have the necessary availability at this time.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function createEnvelopeReadableStream(stream) {\n let reader;\n let buffer = new Uint8Array(0);\n function append(chunk) {\n const n = new Uint8Array(buffer.length + chunk.length);\n n.set(buffer);\n n.set(chunk, buffer.length);\n buffer = n;\n }\n return new ReadableStream({\n start() {\n reader = stream.getReader();\n },\n async pull(controller) {\n let header = undefined;\n for (;;) {\n if (header === undefined && buffer.byteLength >= 5) {\n let length = 0;\n for (let i = 1; i < 5; i++) {\n length = (length << 8) + buffer[i];\n }\n header = { flags: buffer[0], length };\n }\n if (header !== undefined && buffer.byteLength >= header.length + 5) {\n break;\n }\n const result = await reader.read();\n if (result.done) {\n break;\n }\n append(result.value);\n }\n if (header === undefined) {\n if (buffer.byteLength == 0) {\n controller.close();\n return;\n }\n controller.error(new ConnectError(\"premature end of stream\", Code.DataLoss));\n return;\n }\n const data = buffer.subarray(5, 5 + header.length);\n buffer = buffer.subarray(5 + header.length);\n controller.enqueue({\n flags: header.flags,\n data,\n });\n },\n });\n}\n/**\n * Compress an EnvelopedMessage.\n *\n * Raises Internal if an enveloped message is already compressed.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport async function envelopeCompress(envelope, compression, compressMinBytes) {\n let { flags, data } = envelope;\n if ((flags & compressedFlag) === compressedFlag) {\n throw new ConnectError(\"invalid envelope, already compressed\", Code.Internal);\n }\n if (compression && data.byteLength >= compressMinBytes) {\n data = await compression.compress(data);\n flags = flags | compressedFlag;\n }\n return { data, flags };\n}\n/**\n * Decompress an EnvelopedMessage.\n *\n * Raises InvalidArgument if an envelope is compressed, but compression is null.\n *\n * Relies on the provided Compression to raise ResourceExhausted if the\n * *decompressed* message size is larger than readMaxBytes. If the envelope is\n * not compressed, readMaxBytes is not honored.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport async function envelopeDecompress(envelope, compression, readMaxBytes) {\n let { flags, data } = envelope;\n if ((flags & compressedFlag) === compressedFlag) {\n if (!compression) {\n throw new ConnectError(\"received compressed envelope, but do not know how to decompress\", Code.Internal);\n }\n data = await compression.decompress(data, readMaxBytes);\n flags = flags ^ compressedFlag;\n }\n return { data, flags };\n}\n/**\n * Encode a single enveloped message.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function encodeEnvelope(flags, data) {\n const bytes = new Uint8Array(data.length + 5);\n bytes.set(data, 5);\n const v = new DataView(bytes.buffer, bytes.byteOffset, bytes.byteLength);\n v.setUint8(0, flags); // first byte is flags\n v.setUint32(1, data.length); // 4 bytes message length\n return bytes;\n}\n/**\n * Encode a set of enveloped messages.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function encodeEnvelopes(...envelopes) {\n const len = envelopes.reduce((previousValue, currentValue) => previousValue + currentValue.data.length + 5, 0);\n const bytes = new Uint8Array(len);\n const v = new DataView(bytes.buffer);\n let offset = 0;\n for (const e of envelopes) {\n v.setUint8(offset, e.flags); // first byte is flags\n v.setUint32(offset + 1, e.data.length); // 4 bytes message length\n bytes.set(e.data, offset + 5);\n offset += e.data.length + 5;\n }\n return bytes;\n}\n","// Copyright 2021-2024 The Connect Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { ConnectError } from \"../connect-error.js\";\nimport { Code } from \"../code.js\";\n/**\n * compressedFlag indicates that the data in a EnvelopedMessage is\n * compressed. It has the same meaning in the gRPC-Web, gRPC-HTTP2,\n * and Connect protocols.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport const compressedFlag = 0b00000001;\n/**\n * Validates the request encoding and determines the accepted response encoding.\n *\n * Returns the request and response compression to use. If the client requested\n * an encoding that is not available, the returned object contains an error that\n * must be used for the response.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function compressionNegotiate(available, requested, // e.g. the value of the Grpc-Encoding header\naccepted, // e.g. the value of the Grpc-Accept-Encoding header\nheaderNameAcceptEncoding) {\n let request = null;\n let response = null;\n let error = undefined;\n if (requested !== null && requested !== \"identity\") {\n const found = available.find((c) => c.name === requested);\n if (found) {\n request = found;\n }\n else {\n // To comply with https://github.com/grpc/grpc/blob/master/doc/compression.md\n // and the Connect protocol, we return code \"unimplemented\" and specify\n // acceptable compression(s).\n const acceptable = available.map((c) => c.name).join(\",\");\n error = new ConnectError(`unknown compression \"${requested}\": supported encodings are ${acceptable}`, Code.Unimplemented, {\n [headerNameAcceptEncoding]: acceptable,\n });\n }\n }\n if (accepted === null || accepted === \"\") {\n // Support asymmetric compression. This logic follows\n // https://github.com/grpc/grpc/blob/master/doc/compression.md and common\n // sense.\n response = request;\n }\n else {\n const acceptNames = accepted.split(\",\").map((n) => n.trim());\n for (const name of acceptNames) {\n const found = available.find((c) => c.name === name);\n if (found) {\n response = found;\n break;\n }\n }\n }\n return { request, response, error };\n}\n","// Copyright 2021-2024 The Connect Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n/**\n * @private Internal code, does not follow semantic versioning.\n */\nexport const headerContentType = \"Content-Type\";\nexport const headerUnaryContentLength = \"Content-Length\";\nexport const headerUnaryEncoding = \"Content-Encoding\";\nexport const headerStreamEncoding = \"Connect-Content-Encoding\";\nexport const headerUnaryAcceptEncoding = \"Accept-Encoding\";\nexport const headerStreamAcceptEncoding = \"Connect-Accept-Encoding\";\nexport const headerTimeout = \"Connect-Timeout-Ms\";\nexport const headerProtocolVersion = \"Connect-Protocol-Version\";\nexport const headerUserAgent = \"User-Agent\";\n","// Copyright 2021-2024 The Connect Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { headerProtocolVersion } from \"./headers.js\";\nimport { paramConnectVersion } from \"./query-params.js\";\nimport { ConnectError } from \"../connect-error.js\";\nimport { Code } from \"../code.js\";\n/**\n * The only know value for the header Connect-Protocol-Version.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport const protocolVersion = \"1\";\n/**\n * Requires the Connect-Protocol-Version header to be present with the expected\n * value. Raises a ConnectError with Code.InvalidArgument otherwise.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function requireProtocolVersionHeader(requestHeader) {\n const v = requestHeader.get(headerProtocolVersion);\n if (v === null) {\n throw new ConnectError(`missing required header: set ${headerProtocolVersion} to \"${protocolVersion}\"`, Code.InvalidArgument);\n }\n else if (v !== protocolVersion) {\n throw new ConnectError(`${headerProtocolVersion} must be \"${protocolVersion}\": got \"${v}\"`, Code.InvalidArgument);\n }\n}\n/**\n * Requires the connect query parameter to be present with the expected value.\n * Raises a ConnectError with Code.InvalidArgument otherwise.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function requireProtocolVersionParam(queryParams) {\n const v = queryParams.get(paramConnectVersion);\n if (v === null) {\n throw new ConnectError(`missing required parameter: set ${paramConnectVersion} to \"v${protocolVersion}\"`, Code.InvalidArgument);\n }\n else if (v !== `v${protocolVersion}`) {\n throw new ConnectError(`${paramConnectVersion} must be \"v${protocolVersion}\": got \"${v}\"`, Code.InvalidArgument);\n }\n}\n","// Copyright 2021-2024 The Connect Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n/**\n * Regular Expression that matches any valid Connect Content-Type header value.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport const contentTypeRegExp = /^application\\/(connect\\+)?(?:(json)(?:; ?charset=utf-?8)?|(proto))$/i;\n/**\n * Regular Expression that matches a Connect unary Content-Type header value.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport const contentTypeUnaryRegExp = /^application\\/(?:json(?:; ?charset=utf-?8)?|proto)$/i;\n/**\n * Regular Expression that matches a Connect streaming Content-Type header value.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport const contentTypeStreamRegExp = /^application\\/connect\\+?(?:json(?:; ?charset=utf-?8)?|proto)$/i;\nexport const contentTypeUnaryProto = \"application/proto\";\nexport const contentTypeUnaryJson = \"application/json\";\nexport const contentTypeStreamProto = \"application/connect+proto\";\nexport const contentTypeStreamJson = \"application/connect+json\";\nconst encodingProto = \"proto\";\nconst encodingJson = \"json\";\n/**\n * Parse a Connect Content-Type header.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function parseContentType(contentType) {\n const match = contentType === null || contentType === void 0 ? void 0 : contentType.match(contentTypeRegExp);\n if (!match) {\n return undefined;\n }\n const stream = !!match[1];\n const binary = !!match[3];\n return { stream, binary };\n}\n/**\n * Parse a Connect Get encoding query parameter.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function parseEncodingQuery(encoding) {\n switch (encoding) {\n case encodingProto:\n return { stream: false, binary: true };\n case encodingJson:\n return { stream: false, binary: false };\n default:\n return undefined;\n }\n}\n","// Copyright 2021-2024 The Connect Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { MethodKind } from \"@bufbuild/protobuf\";\nimport { headerContentType, headerStreamAcceptEncoding, headerStreamEncoding, headerUnaryAcceptEncoding, headerUnaryEncoding, headerTimeout, headerProtocolVersion, headerUserAgent, } from \"./headers.js\";\nimport { protocolVersion } from \"./version.js\";\nimport { contentTypeStreamJson, contentTypeStreamProto, contentTypeUnaryJson, contentTypeUnaryProto, } from \"./content-type.js\";\n/**\n * Creates headers for a Connect request.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function requestHeader(methodKind, useBinaryFormat, timeoutMs, userProvidedHeaders, setUserAgent) {\n const result = new Headers(userProvidedHeaders !== null && userProvidedHeaders !== void 0 ? userProvidedHeaders : {});\n if (timeoutMs !== undefined) {\n result.set(headerTimeout, `${timeoutMs}`);\n }\n result.set(headerContentType, methodKind == MethodKind.Unary\n ? useBinaryFormat\n ? contentTypeUnaryProto\n : contentTypeUnaryJson\n : useBinaryFormat\n ? contentTypeStreamProto\n : contentTypeStreamJson);\n result.set(headerProtocolVersion, protocolVersion);\n if (setUserAgent) {\n result.set(headerUserAgent, \"connect-es/1.5.0\");\n }\n return result;\n}\n/**\n * Creates headers for a Connect request with compression.\n *\n * Note that we always set the Content-Encoding header for unary methods.\n * It is up to the caller to decide whether to apply compression - and remove\n * the header if compression is not used, for example because the payload is\n * too small to make compression effective.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function requestHeaderWithCompression(methodKind, useBinaryFormat, timeoutMs, userProvidedHeaders, acceptCompression, sendCompression, setUserAgent) {\n const result = requestHeader(methodKind, useBinaryFormat, timeoutMs, userProvidedHeaders, setUserAgent);\n if (sendCompression != null) {\n const name = methodKind == MethodKind.Unary\n ? headerUnaryEncoding\n : headerStreamEncoding;\n result.set(name, sendCompression.name);\n }\n if (acceptCompression.length > 0) {\n const name = methodKind == MethodKind.Unary\n ? headerUnaryAcceptEncoding\n : headerStreamAcceptEncoding;\n result.set(name, acceptCompression.map((c) => c.name).join(\",\"));\n }\n return result;\n}\n","// Copyright 2021-2024 The Connect Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { Message, protoBase64 } from \"@bufbuild/protobuf\";\nimport { headerContentType, headerProtocolVersion, headerUnaryAcceptEncoding, headerUnaryContentLength, headerUnaryEncoding, } from \"./headers.js\";\nimport { protocolVersion } from \"./version.js\";\nconst contentTypePrefix = \"application/\";\nfunction encodeMessageForUrl(message, useBase64) {\n if (useBase64) {\n // TODO(jchadwick-buf): Three regex replaces seems excessive.\n // Can we make protoBase64.enc more flexible?\n return protoBase64\n .enc(message)\n .replace(/\\+/g, \"-\")\n .replace(/\\//g, \"_\")\n .replace(/=+$/, \"\");\n }\n else {\n return encodeURIComponent(new TextDecoder().decode(message));\n }\n}\n/**\n * @private Internal code, does not follow semantic versioning.\n */\nexport function transformConnectPostToGetRequest(request, message, useBase64) {\n let query = `?connect=v${protocolVersion}`;\n const contentType = request.header.get(headerContentType);\n if ((contentType === null || contentType === void 0 ? void 0 : contentType.indexOf(contentTypePrefix)) === 0) {\n query +=\n \"&encoding=\" +\n encodeURIComponent(contentType.slice(contentTypePrefix.length));\n }\n const compression = request.header.get(headerUnaryEncoding);\n if (compression !== null && compression !== \"identity\") {\n query += \"&compression=\" + encodeURIComponent(compression);\n // Force base64 for compressed payloads.\n useBase64 = true;\n }\n if (useBase64) {\n query += \"&base64=1\";\n }\n query += \"&message=\" + encodeMessageForUrl(message, useBase64);\n const url = request.url + query;\n // Omit headers that are not used for unary GET requests.\n const header = new Headers(request.header);\n [\n headerProtocolVersion,\n headerContentType,\n headerUnaryContentLength,\n headerUnaryEncoding,\n headerUnaryAcceptEncoding,\n ].forEach((h) => header.delete(h));\n return Object.assign(Object.assign({}, request), { init: Object.assign(Object.assign({}, request.init), { method: \"GET\" }), url,\n header });\n}\n","// Copyright 2021-2024 The Connect Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { Code } from \"../code.js\";\n/**\n * Determine the Connect error code for the given HTTP status code.\n * See https://connectrpc.com/docs/protocol/#http-to-error-code\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function codeFromHttpStatus(httpStatus) {\n switch (httpStatus) {\n case 400: // Bad Request\n return Code.Internal;\n case 401: // Unauthorized\n return Code.Unauthenticated;\n case 403: // Forbidden\n return Code.PermissionDenied;\n case 404: // Not Found\n return Code.Unimplemented;\n case 429: // Too Many Requests\n return Code.Unavailable;\n case 502: // Bad Gateway\n return Code.Unavailable;\n case 503: // Service Unavailable\n return Code.Unavailable;\n case 504: // Gateway Timeout\n return Code.Unavailable;\n default:\n return Code.Unknown;\n }\n}\n/**\n * Returns a HTTP status code for the given Connect code.\n * See https://connectrpc.com/docs/protocol#error-codes\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function codeToHttpStatus(code) {\n switch (code) {\n case Code.Canceled:\n return 499; // Client Closed Request\n case Code.Unknown:\n return 500; // Internal Server Error\n case Code.InvalidArgument:\n return 400; // Bad Request\n case Code.DeadlineExceeded:\n return 504; // Gateway Timeout\n case Code.NotFound:\n return 404; // Not Found\n case Code.AlreadyExists:\n return 409; // Conflict\n case Code.PermissionDenied:\n return 403; // Forbidden\n case Code.ResourceExhausted:\n return 429; // Too Many Requests\n case Code.FailedPrecondition:\n return 400; // Bad Request\n case Code.Aborted:\n return 409; // Conflict\n case Code.OutOfRange:\n return 400; // Bad Request\n case Code.Unimplemented:\n return 501; // Not Implemented\n case Code.Internal:\n return 500; // Internal Server Error\n case Code.Unavailable:\n return 503; // Service Unavailable\n case Code.DataLoss:\n return 500; // Internal Server Error\n case Code.Unauthenticated:\n return 401; // Unauthorized\n default:\n return 500; // same as CodeUnknown\n }\n}\n","// Copyright 2021-2024 The Connect Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { MethodKind } from \"@bufbuild/protobuf\";\nimport { Code } from \"../code.js\";\nimport { codeFromHttpStatus } from \"./http-status.js\";\nimport { ConnectError } from \"../connect-error.js\";\nimport { parseContentType } from \"./content-type.js\";\nimport { headerContentType, headerStreamEncoding, headerUnaryEncoding, } from \"./headers.js\";\n/**\n * Validates response status and header for the Connect protocol.\n * Throws a ConnectError if the header indicates an error, or if\n * the content type is unexpected, with the following exception:\n * For unary RPCs with an HTTP error status, this returns an error\n * derived from the HTTP status instead of throwing it, giving an\n * implementation a chance to parse a Connect error from the wire.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function validateResponse(methodKind, useBinaryFormat, status, headers) {\n const mimeType = headers.get(headerContentType);\n const parsedType = parseContentType(mimeType);\n if (status !== 200) {\n const errorFromStatus = new ConnectError(`HTTP ${status}`, codeFromHttpStatus(status), headers);\n // If parsedType is defined and it is not binary, then this is a unary JSON response\n if (methodKind == MethodKind.Unary && parsedType && !parsedType.binary) {\n return { isUnaryError: true, unaryError: errorFromStatus };\n }\n throw errorFromStatus;\n }\n const allowedContentType = {\n binary: useBinaryFormat,\n stream: methodKind !== MethodKind.Unary,\n };\n if ((parsedType === null || parsedType === void 0 ? void 0 : parsedType.binary) !== allowedContentType.binary ||\n parsedType.stream !== allowedContentType.stream) {\n throw new ConnectError(`unsupported content type ${mimeType}`, parsedType === undefined ? Code.Unknown : Code.Internal, headers);\n }\n return { isUnaryError: false };\n}\n/**\n * Validates response status and header for the Connect protocol.\n * This function is identical to validateResponse(), but also verifies\n * that a given encoding header is acceptable.\n *\n * @private\n */\nexport function validateResponseWithCompression(methodKind, acceptCompression, useBinaryFormat, status, headers) {\n let compression;\n const encoding = headers.get(methodKind == MethodKind.Unary ? headerUnaryEncoding : headerStreamEncoding);\n if (encoding != null && encoding.toLowerCase() !== \"identity\") {\n compression = acceptCompression.find((c) => c.name === encoding);\n if (!compression) {\n throw new ConnectError(`unsupported response encoding \"${encoding}\"`, Code.Internal, headers);\n }\n }\n return Object.assign({ compression }, validateResponse(methodKind, useBinaryFormat, status, headers));\n}\n","// Copyright 2021-2024 The Connect Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport { protoBase64 } from \"@bufbuild/protobuf\";\nimport { Code } from \"../code.js\";\nimport { ConnectError } from \"../connect-error.js\";\nimport { codeFromString, codeToString } from \"./code-string.js\";\n/**\n * Parse a Connect error from a JSON value.\n * Will return a ConnectError, and throw the provided fallback if parsing failed.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function errorFromJson(jsonValue, metadata, fallback) {\n var _a;\n if (metadata) {\n new Headers(metadata).forEach((value, key) => fallback.metadata.append(key, value));\n }\n if (typeof jsonValue !== \"object\" ||\n jsonValue == null ||\n Array.isArray(jsonValue)) {\n throw fallback;\n }\n let code = fallback.code;\n if (\"code\" in jsonValue && typeof jsonValue.code === \"string\") {\n code = (_a = codeFromString(jsonValue.code)) !== null && _a !== void 0 ? _a : code;\n }\n const message = jsonValue.message;\n if (message != null && typeof message !== \"string\") {\n throw fallback;\n }\n const error = new ConnectError(message !== null && message !== void 0 ? message : \"\", code, metadata);\n if (\"details\" in jsonValue && Array.isArray(jsonValue.details)) {\n for (const detail of jsonValue.details) {\n if (detail === null ||\n typeof detail != \"object\" ||\n Array.isArray(detail) ||\n typeof detail.type != \"string\" ||\n typeof detail.value != \"string\") {\n throw fallback;\n }\n try {\n error.details.push({\n type: detail.type,\n value: protoBase64.dec(detail.value),\n debug: detail.debug,\n });\n }\n catch (e) {\n throw fallback;\n }\n }\n }\n return error;\n}\n/**\n * Parse a Connect error from a serialized JSON value.\n * Will return a ConnectError, and throw the provided fallback if parsing failed.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function errorFromJsonBytes(bytes, metadata, fallback) {\n let jsonValue;\n try {\n jsonValue = JSON.parse(new TextDecoder().decode(bytes));\n }\n catch (e) {\n throw fallback;\n }\n return errorFromJson(jsonValue, metadata, fallback);\n}\n/**\n * Serialize the given error to JSON.\n *\n * The JSON serialization options are required to produce the optional\n * human-readable representation in the \"debug\" key if the detail uses\n * google.protobuf.Any. If serialization of the \"debug\" value fails, it\n * is silently disregarded.\n *\n * See https://connectrpc.com/docs/protocol#error-end-stream\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function errorToJson(error, jsonWriteOptions) {\n const o = {\n code: codeToString(error.code),\n };\n if (error.rawMessage.length > 0) {\n o.message = error.rawMessage;\n }\n if (error.details.length > 0) {\n o.details = error.details\n .map((value) => {\n if (\"getType\" in value) {\n const i = {\n type: value.getType().typeName,\n value: value.toBinary(),\n };\n try {\n i.debug = value.toJson(jsonWriteOptions);\n }\n catch (e) {\n // We deliberately ignore errors that may occur when serializing\n // a message to JSON (the message contains an Any).\n // The rationale is that we are only trying to provide optional\n // debug information.\n }\n return i;\n }\n return value;\n })\n .map((_a) => {\n var { value } = _a, rest = __rest(_a, [\"value\"]);\n return (Object.assign(Object.assign({}, rest), { value: protoBase64.enc(value).replace(/=+$/, \"\") }));\n });\n }\n return o;\n}\n/**\n * Serialize the given error to JSON. This calls errorToJson(), but stringifies\n * the result, and converts it into a UInt8Array.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function errorToJsonBytes(error, jsonWriteOptions) {\n const textEncoder = new TextEncoder();\n try {\n const jsonObject = errorToJson(error, jsonWriteOptions);\n const jsonString = JSON.stringify(jsonObject);\n return textEncoder.encode(jsonString);\n }\n catch (e) {\n const m = e instanceof Error ? e.message : String(e);\n throw new ConnectError(`failed to serialize Connect Error: ${m}`, Code.Internal);\n }\n}\n","// Copyright 2021-2024 The Connect Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n/**\n * In unary RPCs, Connect transports trailing metadata as response header\n * fields, prefixed with \"trailer-\".\n *\n * This function demuxes headers and trailers into two separate Headers\n * objects.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function trailerDemux(header) {\n const h = new Headers(), t = new Headers();\n header.forEach((value, key) => {\n if (key.toLowerCase().startsWith(\"trailer-\")) {\n t.append(key.substring(8), value);\n }\n else {\n h.append(key, value);\n }\n });\n return [h, t];\n}\n/**\n * In unary RPCs, Connect transports trailing metadata as response header\n * fields, prefixed with \"trailer-\".\n *\n * This function muxes a header and a trailer into a single Headers object.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function trailerMux(header, trailer) {\n const h = new Headers(header);\n trailer.forEach((value, key) => {\n h.append(`trailer-${key}`, value);\n });\n return h;\n}\n","// Copyright 2021-2024 The Connect Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { errorFromJson, errorToJson } from \"./error-json.js\";\nimport { appendHeaders } from \"../http-headers.js\";\nimport { ConnectError } from \"../connect-error.js\";\nimport { Code } from \"../code.js\";\n/**\n * endStreamFlag indicates that the data in a EnvelopedMessage\n * is a EndStreamResponse of the Connect protocol.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport const endStreamFlag = 0b00000010;\n/**\n * Parse an EndStreamResponse of the Connect protocol.\n * Throws a ConnectError on malformed input.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function endStreamFromJson(data) {\n const parseErr = new ConnectError(\"invalid end stream\", Code.Unknown);\n let jsonValue;\n try {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n jsonValue = JSON.parse(typeof data == \"string\" ? data : new TextDecoder().decode(data));\n }\n catch (e) {\n throw parseErr;\n }\n if (typeof jsonValue != \"object\" ||\n jsonValue == null ||\n Array.isArray(jsonValue)) {\n throw parseErr;\n }\n const metadata = new Headers();\n if (\"metadata\" in jsonValue) {\n if (typeof jsonValue.metadata != \"object\" ||\n jsonValue.metadata == null ||\n Array.isArray(jsonValue.metadata)) {\n throw parseErr;\n }\n for (const [key, values] of Object.entries(jsonValue.metadata)) {\n if (!Array.isArray(values) ||\n values.some((value) => typeof value != \"string\")) {\n throw parseErr;\n }\n for (const value of values) {\n metadata.append(key, value);\n }\n }\n }\n const error = \"error\" in jsonValue && jsonValue.error != null\n ? errorFromJson(jsonValue.error, metadata, parseErr)\n : undefined;\n return { metadata, error };\n}\n/**\n * Serialize the given EndStreamResponse to JSON.\n *\n * The JSON serialization options are required to produce the optional\n * human-readable representation of error details if the detail uses\n * google.protobuf.Any.\n *\n * See https://connectrpc.com/docs/protocol#error-end-stream\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function endStreamToJson(metadata, error, jsonWriteOptions) {\n const es = {};\n if (error !== undefined) {\n es.error = errorToJson(error, jsonWriteOptions);\n metadata = appendHeaders(metadata, error.metadata);\n }\n let hasMetadata = false;\n const md = {};\n metadata.forEach((value, key) => {\n hasMetadata = true;\n md[key] = [value];\n });\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n if (hasMetadata) {\n es.metadata = md;\n }\n return es;\n}\n/**\n * Create a Serialization object that serializes a Connect EndStreamResponse.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function createEndStreamSerialization(options) {\n const textEncoder = new TextEncoder();\n return {\n serialize(data) {\n try {\n const jsonObject = endStreamToJson(data.metadata, data.error, options);\n const jsonString = JSON.stringify(jsonObject);\n return textEncoder.encode(jsonString);\n }\n catch (e) {\n const m = e instanceof Error ? e.message : String(e);\n throw new ConnectError(`failed to serialize EndStreamResponse: ${m}`, Code.Internal);\n }\n },\n parse(data) {\n try {\n return endStreamFromJson(data);\n }\n catch (e) {\n const m = e instanceof Error ? e.message : String(e);\n throw new ConnectError(`failed to parse EndStreamResponse: ${m}`, Code.InvalidArgument);\n }\n },\n };\n}\n","// Copyright 2021-2024 The Connect Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n/**\n * Asserts that the fetch API is available.\n */\nexport function assertFetchApi() {\n try {\n new Headers();\n }\n catch (_) {\n throw new Error(\"connect-web requires the fetch API. Are you running on an old version of Node.js? Node.js is not supported in Connect for Web - please stay tuned for Connect for Node.\");\n }\n}\n","// Copyright 2021-2024 The Connect Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nvar __await = (this && this.__await) || function (v) { return this instanceof __await ? (this.v = v, this) : new __await(v); }\nvar __asyncGenerator = (this && this.__asyncGenerator) || function (thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n};\nimport { Message, MethodIdempotency, MethodKind } from \"@bufbuild/protobuf\";\nimport { Code, ConnectError, appendHeaders, createContextValues, } from \"@connectrpc/connect\";\nimport { createClientMethodSerializers, createEnvelopeReadableStream, createMethodUrl, getJsonOptions, encodeEnvelope, runStreamingCall, runUnaryCall, compressedFlag, } from \"@connectrpc/connect/protocol\";\nimport { endStreamFlag, endStreamFromJson, errorFromJson, requestHeader, trailerDemux, transformConnectPostToGetRequest, validateResponse, } from \"@connectrpc/connect/protocol-connect\";\nimport { assertFetchApi } from \"./assert-fetch-api.js\";\n/**\n * Create a Transport for the Connect protocol, which makes unary and\n * server-streaming methods available to web browsers. It uses the fetch\n * API to make HTTP requests.\n */\nexport function createConnectTransport(options) {\n var _a;\n assertFetchApi();\n const useBinaryFormat = (_a = options.useBinaryFormat) !== null && _a !== void 0 ? _a : false;\n return {\n async unary(service, method, signal, timeoutMs, header, message, contextValues) {\n var _a;\n const { serialize, parse } = createClientMethodSerializers(method, useBinaryFormat, options.jsonOptions, options.binaryOptions);\n timeoutMs =\n timeoutMs === undefined\n ? options.defaultTimeoutMs\n : timeoutMs <= 0\n ? undefined\n : timeoutMs;\n return await runUnaryCall({\n interceptors: options.interceptors,\n signal,\n timeoutMs,\n req: {\n stream: false,\n service,\n method,\n url: createMethodUrl(options.baseUrl, service, method),\n init: {\n method: \"POST\",\n credentials: (_a = options.credentials) !== null && _a !== void 0 ? _a : \"same-origin\",\n redirect: \"error\",\n mode: \"cors\",\n },\n header: requestHeader(method.kind, useBinaryFormat, timeoutMs, header, false),\n contextValues: contextValues !== null && contextValues !== void 0 ? contextValues : createContextValues(),\n message,\n },\n next: async (req) => {\n var _a;\n const useGet = options.useHttpGet === true &&\n method.idempotency === MethodIdempotency.NoSideEffects;\n let body = null;\n if (useGet) {\n req = transformConnectPostToGetRequest(req, serialize(req.message), useBinaryFormat);\n }\n else {\n body = serialize(req.message);\n }\n const fetch = (_a = options.fetch) !== null && _a !== void 0 ? _a : globalThis.fetch;\n const response = await fetch(req.url, Object.assign(Object.assign({}, req.init), { headers: req.header, signal: req.signal, body }));\n const { isUnaryError, unaryError } = validateResponse(method.kind, useBinaryFormat, response.status, response.headers);\n if (isUnaryError) {\n throw errorFromJson((await response.json()), appendHeaders(...trailerDemux(response.headers)), unaryError);\n }\n const [demuxedHeader, demuxedTrailer] = trailerDemux(response.headers);\n return {\n stream: false,\n service,\n method,\n header: demuxedHeader,\n message: useBinaryFormat\n ? parse(new Uint8Array(await response.arrayBuffer()))\n : method.O.fromJson((await response.json()), getJsonOptions(options.jsonOptions)),\n trailer: demuxedTrailer,\n };\n },\n });\n },\n async stream(service, method, signal, timeoutMs, header, input, contextValues) {\n var _a;\n const { serialize, parse } = createClientMethodSerializers(method, useBinaryFormat, options.jsonOptions, options.binaryOptions);\n function parseResponseBody(body, trailerTarget, header, signal) {\n return __asyncGenerator(this, arguments, function* parseResponseBody_1() {\n const reader = createEnvelopeReadableStream(body).getReader();\n let endStreamReceived = false;\n for (;;) {\n const result = yield __await(reader.read());\n if (result.done) {\n break;\n }\n const { flags, data } = result.value;\n if ((flags & compressedFlag) === compressedFlag) {\n throw new ConnectError(`protocol error: received unsupported compressed output`, Code.Internal);\n }\n if ((flags & endStreamFlag) === endStreamFlag) {\n endStreamReceived = true;\n const endStream = endStreamFromJson(data);\n if (endStream.error) {\n const error = endStream.error;\n header.forEach((value, key) => {\n error.metadata.append(key, value);\n });\n throw error;\n }\n endStream.metadata.forEach((value, key) => trailerTarget.set(key, value));\n continue;\n }\n yield yield __await(parse(data));\n }\n // Node wil not throw an AbortError on `read` if the\n // signal is aborted before `getReader` is called.\n // As a work around we check at the end and throw.\n //\n // Ref: https://github.com/nodejs/undici/issues/1940\n if (\"throwIfAborted\" in signal) {\n // We assume that implementations without `throwIfAborted` (old\n // browsers) do honor aborted signals on `read`.\n signal.throwIfAborted();\n }\n if (!endStreamReceived) {\n throw \"missing EndStreamResponse\";\n }\n });\n }\n async function createRequestBody(input) {\n if (method.kind != MethodKind.ServerStreaming) {\n throw \"The fetch API does not support streaming request bodies\";\n }\n const r = await input[Symbol.asyncIterator]().next();\n if (r.done == true) {\n throw \"missing request message\";\n }\n return encodeEnvelope(0, serialize(r.value));\n }\n timeoutMs =\n timeoutMs === undefined\n ? options.defaultTimeoutMs\n : timeoutMs <= 0\n ? undefined\n : timeoutMs;\n return await runStreamingCall({\n interceptors: options.interceptors,\n timeoutMs,\n signal,\n req: {\n stream: true,\n service,\n method,\n url: createMethodUrl(options.baseUrl, service, method),\n init: {\n method: \"POST\",\n credentials: (_a = options.credentials) !== null && _a !== void 0 ? _a : \"same-origin\",\n redirect: \"error\",\n mode: \"cors\",\n },\n header: requestHeader(method.kind, useBinaryFormat, timeoutMs, header, false),\n contextValues: contextValues !== null && contextValues !== void 0 ? contextValues : createContextValues(),\n message: input,\n },\n next: async (req) => {\n var _a;\n const fetch = (_a = options.fetch) !== null && _a !== void 0 ? _a : globalThis.fetch;\n const fRes = await fetch(req.url, Object.assign(Object.assign({}, req.init), { headers: req.header, signal: req.signal, body: await createRequestBody(req.message) }));\n validateResponse(method.kind, useBinaryFormat, fRes.status, fRes.headers);\n if (fRes.body === null) {\n throw \"missing response body\";\n }\n const trailer = new Headers();\n const res = Object.assign(Object.assign({}, req), { header: fRes.headers, trailer, message: parseResponseBody(fRes.body, trailer, fRes.headers, req.signal) });\n return res;\n },\n });\n },\n };\n}\n","// Copyright 2021-2024 The Connect Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n/**\n * Connect represents categories of errors as codes, and each code maps to a\n * specific HTTP status code. The codes and their semantics were chosen to\n * match gRPC. Only the codes below are valid — there are no user-defined\n * codes.\n *\n * See the specification at https://connectrpc.com/docs/protocol#error-codes\n * for details.\n */\nexport var Code;\n(function (Code) {\n /**\n * Canceled, usually be the user\n */\n Code[Code[\"Canceled\"] = 1] = \"Canceled\";\n /**\n * Unknown error\n */\n Code[Code[\"Unknown\"] = 2] = \"Unknown\";\n /**\n * Argument invalid regardless of system state\n */\n Code[Code[\"InvalidArgument\"] = 3] = \"InvalidArgument\";\n /**\n * Operation expired, may or may not have completed.\n */\n Code[Code[\"DeadlineExceeded\"] = 4] = \"DeadlineExceeded\";\n /**\n * Entity not found.\n */\n Code[Code[\"NotFound\"] = 5] = \"NotFound\";\n /**\n * Entity already exists.\n */\n Code[Code[\"AlreadyExists\"] = 6] = \"AlreadyExists\";\n /**\n * Operation not authorized.\n */\n Code[Code[\"PermissionDenied\"] = 7] = \"PermissionDenied\";\n /**\n * Quota exhausted.\n */\n Code[Code[\"ResourceExhausted\"] = 8] = \"ResourceExhausted\";\n /**\n * Argument invalid in current system state.\n */\n Code[Code[\"FailedPrecondition\"] = 9] = \"FailedPrecondition\";\n /**\n * Operation aborted.\n */\n Code[Code[\"Aborted\"] = 10] = \"Aborted\";\n /**\n * Out of bounds, use instead of FailedPrecondition.\n */\n Code[Code[\"OutOfRange\"] = 11] = \"OutOfRange\";\n /**\n * Operation not implemented or disabled.\n */\n Code[Code[\"Unimplemented\"] = 12] = \"Unimplemented\";\n /**\n * Internal error, reserved for \"serious errors\".\n */\n Code[Code[\"Internal\"] = 13] = \"Internal\";\n /**\n * Unavailable, client should back off and retry.\n */\n Code[Code[\"Unavailable\"] = 14] = \"Unavailable\";\n /**\n * Unrecoverable data loss or corruption.\n */\n Code[Code[\"DataLoss\"] = 15] = \"DataLoss\";\n /**\n * Request isn't authenticated.\n */\n Code[Code[\"Unauthenticated\"] = 16] = \"Unauthenticated\";\n})(Code || (Code = {}));\n","// Copyright 2021-2024 The Connect Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { Code } from \"./code.js\";\nimport { codeToString } from \"./protocol-connect/code-string.js\";\n/**\n * ConnectError captures four pieces of information: a Code, an error\n * message, an optional cause of the error, and an optional collection of\n * arbitrary Protobuf messages called \"details\".\n *\n * Because developer tools typically show just the error message, we prefix\n * it with the status code, so that the most important information is always\n * visible immediately.\n *\n * Error details are wrapped with google.protobuf.Any on the wire, so that\n * a server or middleware can attach arbitrary data to an error. Use the\n * method findDetails() to retrieve the details.\n */\nexport class ConnectError extends Error {\n /**\n * Create a new ConnectError.\n * If no code is provided, code \"unknown\" is used.\n * Outgoing details are only relevant for the server side - a service may\n * raise an error with details, and it is up to the protocol implementation\n * to encode and send the details along with error.\n */\n constructor(message, code = Code.Unknown, metadata, outgoingDetails, cause) {\n super(createMessage(message, code));\n this.name = \"ConnectError\";\n // see https://www.typescriptlang.org/docs/handbook/release-notes/typescript-2-2.html#example\n Object.setPrototypeOf(this, new.target.prototype);\n this.rawMessage = message;\n this.code = code;\n this.metadata = new Headers(metadata !== null && metadata !== void 0 ? metadata : {});\n this.details = outgoingDetails !== null && outgoingDetails !== void 0 ? outgoingDetails : [];\n this.cause = cause;\n }\n /**\n * Convert any value - typically a caught error into a ConnectError,\n * following these rules:\n * - If the value is already a ConnectError, return it as is.\n * - If the value is an AbortError from the fetch API, return the message\n * of the AbortError with code Canceled.\n * - For other Errors, return the error message with code Unknown by default.\n * - For other values, return the values String representation as a message,\n * with the code Unknown by default.\n * The original value will be used for the \"cause\" property for the new\n * ConnectError.\n */\n static from(reason, code = Code.Unknown) {\n if (reason instanceof ConnectError) {\n return reason;\n }\n if (reason instanceof Error) {\n if (reason.name == \"AbortError\") {\n // Fetch requests can only be canceled with an AbortController.\n // We detect that condition by looking at the name of the raised\n // error object, and translate to the appropriate status code.\n return new ConnectError(reason.message, Code.Canceled);\n }\n return new ConnectError(reason.message, code, undefined, undefined, reason);\n }\n return new ConnectError(String(reason), code, undefined, undefined, reason);\n }\n static [Symbol.hasInstance](v) {\n if (!(v instanceof Error)) {\n return false;\n }\n if (Object.getPrototypeOf(v) === ConnectError.prototype) {\n return true;\n }\n return (v.name === \"ConnectError\" &&\n \"code\" in v &&\n typeof v.code === \"number\" &&\n \"metadata\" in v &&\n \"details\" in v &&\n Array.isArray(v.details) &&\n \"rawMessage\" in v &&\n typeof v.rawMessage == \"string\" &&\n \"cause\" in v);\n }\n findDetails(typeOrRegistry) {\n const registry = \"typeName\" in typeOrRegistry\n ? {\n findMessage: (typeName) => typeName === typeOrRegistry.typeName ? typeOrRegistry : undefined,\n }\n : typeOrRegistry;\n const details = [];\n for (const data of this.details) {\n if (\"getType\" in data) {\n if (registry.findMessage(data.getType().typeName)) {\n details.push(data);\n }\n continue;\n }\n const type = registry.findMessage(data.type);\n if (type) {\n try {\n details.push(type.fromBinary(data.value));\n }\n catch (_) {\n // We silently give up if we are unable to parse the detail, because\n // that appears to be the least worst behavior.\n // It is very unlikely that a user surrounds a catch body handling the\n // error with another try-catch statement, and we do not want to\n // recommend doing so.\n }\n }\n }\n return details;\n }\n}\n/**\n * Create an error message, prefixing the given code.\n */\nfunction createMessage(message, code) {\n return message.length\n ? `[${codeToString(code)}] ${message}`\n : `[${codeToString(code)}]`;\n}\n","// Copyright 2021-2024 The Connect Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n/**\n * Create any client for the given service.\n *\n * The given createMethod function is called for each method definition\n * of the service. The function it returns is added to the client object\n * as a method.\n */\nexport function makeAnyClient(service, createMethod) {\n const client = {};\n for (const [localName, methodInfo] of Object.entries(service.methods)) {\n const method = createMethod(Object.assign(Object.assign({}, methodInfo), { localName,\n service }));\n if (method != null) {\n client[localName] = method;\n }\n }\n return client;\n}\n","// Copyright 2021-2024 The Connect Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nvar __asyncValues = (this && this.__asyncValues) || function (o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n};\nvar __await = (this && this.__await) || function (v) { return this instanceof __await ? (this.v = v, this) : new __await(v); }\nvar __asyncGenerator = (this && this.__asyncGenerator) || function (thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n};\nvar __asyncDelegator = (this && this.__asyncDelegator) || function (o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n};\nimport { Code } from \"../code.js\";\nimport { ConnectError } from \"../connect-error.js\";\nimport { encodeEnvelope, envelopeCompress, envelopeDecompress, } from \"./envelope.js\";\nimport { assertReadMaxBytes } from \"./limit-io.js\";\nexport function pipeTo(source, ...rest) {\n const [transforms, sink, opt] = pickTransformsAndSink(rest);\n let iterable = source;\n let abortable;\n if ((opt === null || opt === void 0 ? void 0 : opt.propagateDownStreamError) === true) {\n iterable = abortable = makeIterableAbortable(iterable);\n }\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n iterable = pipe(iterable, ...transforms, { propagateDownStreamError: false });\n return sink(iterable).catch((reason) => {\n if (abortable) {\n return abortable.abort(reason).then(() => Promise.reject(reason));\n }\n return Promise.reject(reason);\n });\n}\n// pick transforms, the sink, and options from the pipeTo() rest parameter\nfunction pickTransformsAndSink(rest) {\n let opt;\n if (typeof rest[rest.length - 1] != \"function\") {\n opt = rest.pop();\n }\n const sink = rest.pop();\n return [rest, sink, opt];\n}\n/**\n * Creates an AsyncIterableSink that concatenates all elements from the input.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function sinkAll() {\n return async function (iterable) {\n var _a, e_1, _b, _c;\n const all = [];\n try {\n for (var _d = true, iterable_1 = __asyncValues(iterable), iterable_1_1; iterable_1_1 = await iterable_1.next(), _a = iterable_1_1.done, !_a; _d = true) {\n _c = iterable_1_1.value;\n _d = false;\n const chunk = _c;\n all.push(chunk);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (!_d && !_a && (_b = iterable_1.return)) await _b.call(iterable_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return all;\n };\n}\n/**\n * Creates an AsyncIterableSink that concatenates all chunks from the input into\n * a single Uint8Array.\n *\n * The iterable raises an error if the more than readMaxBytes are read.\n *\n * An optional length hint can be provided to optimize allocation and validation.\n * If more or less bytes are present in the source that the length hint indicates,\n * and error is raised.\n * If the length hint is larger than readMaxBytes, an error is raised.\n * If the length hint is not a positive integer, it is ignored.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function sinkAllBytes(readMaxBytes, lengthHint) {\n return async function (iterable) {\n return await readAllBytes(iterable, readMaxBytes, lengthHint);\n };\n}\nexport function pipe(source, ...rest) {\n return __asyncGenerator(this, arguments, function* pipe_1() {\n var _a;\n const [transforms, opt] = pickTransforms(rest);\n let abortable;\n const sourceIt = source[Symbol.asyncIterator]();\n const cachedSource = {\n [Symbol.asyncIterator]() {\n return sourceIt;\n },\n };\n let iterable = cachedSource;\n if ((opt === null || opt === void 0 ? void 0 : opt.propagateDownStreamError) === true) {\n iterable = abortable = makeIterableAbortable(iterable);\n }\n for (const t of transforms) {\n iterable = t(iterable);\n }\n const it = iterable[Symbol.asyncIterator]();\n try {\n for (;;) {\n const r = yield __await(it.next());\n if (r.done === true) {\n break;\n }\n if (!abortable) {\n yield yield __await(r.value);\n continue;\n }\n try {\n yield yield __await(r.value);\n }\n catch (e) {\n yield __await(abortable.abort(e)); // propagate downstream error to the source\n throw e;\n }\n }\n }\n finally {\n if ((opt === null || opt === void 0 ? void 0 : opt.propagateDownStreamError) === true) {\n // Call return on the source iterable to indicate\n // that we will no longer consume it and it should\n // cleanup any allocated resources.\n (_a = sourceIt.return) === null || _a === void 0 ? void 0 : _a.call(sourceIt).catch(() => {\n // return returns a promise, which we don't care about.\n //\n // Uncaught promises are thrown at sometime/somewhere by the event loop,\n // this is to ensure error is caught and ignored.\n });\n }\n }\n });\n}\nfunction pickTransforms(rest) {\n let opt;\n if (typeof rest[rest.length - 1] != \"function\") {\n opt = rest.pop();\n }\n return [rest, opt];\n}\n/**\n * Creates an AsyncIterableTransform that catches any error from the input, and\n * passes it to the given catchError function.\n *\n * The catchError function may return a final value.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function transformCatch(catchError) {\n return function (iterable) {\n return __asyncGenerator(this, arguments, function* () {\n // we deliberate avoid a for-await loop because we only want to catch upstream\n // errors, not downstream errors (yield).\n const it = iterable[Symbol.asyncIterator]();\n for (;;) {\n let r;\n try {\n r = yield __await(it.next());\n }\n catch (e) {\n const caught = yield __await(catchError(e));\n if (caught !== undefined) {\n yield yield __await(caught);\n }\n break;\n }\n if (r.done === true) {\n break;\n }\n yield yield __await(r.value);\n }\n });\n };\n}\n/**\n * Creates an AsyncIterableTransform that catches any error from the input, and\n * passes it to the given function. Unlike transformCatch(), the given function\n * is also called when no error is raised.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function transformCatchFinally(catchFinally) {\n return function (iterable) {\n return __asyncGenerator(this, arguments, function* () {\n // we deliberate avoid a for-await loop because we only want to catch upstream\n // errors, not downstream errors (yield).\n let err;\n const it = iterable[Symbol.asyncIterator]();\n for (;;) {\n let r;\n try {\n r = yield __await(it.next());\n }\n catch (e) {\n err = e;\n break;\n }\n if (r.done === true) {\n break;\n }\n yield yield __await(r.value);\n }\n const caught = yield __await(catchFinally(err));\n if (caught !== undefined) {\n yield yield __await(caught);\n }\n });\n };\n}\n/**\n * Creates an AsyncIterableTransform that appends a value.\n *\n * The element to append is provided by a function. If the function returns\n * undefined, no element is appended.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function transformAppend(provide) {\n return function (iterable) {\n return __asyncGenerator(this, arguments, function* () {\n var _a, e_2, _b, _c;\n try {\n for (var _d = true, iterable_2 = __asyncValues(iterable), iterable_2_1; iterable_2_1 = yield __await(iterable_2.next()), _a = iterable_2_1.done, !_a; _d = true) {\n _c = iterable_2_1.value;\n _d = false;\n const chunk = _c;\n yield yield __await(chunk);\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (!_d && !_a && (_b = iterable_2.return)) yield __await(_b.call(iterable_2));\n }\n finally { if (e_2) throw e_2.error; }\n }\n const append = yield __await(provide());\n if (append !== undefined) {\n yield yield __await(append);\n }\n });\n };\n}\n/**\n * Creates an AsyncIterableTransform that prepends an element.\n *\n * The element to prepend is provided by a function. If the function returns\n * undefined, no element is appended.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function transformPrepend(provide) {\n return function (iterable) {\n return __asyncGenerator(this, arguments, function* () {\n var _a, e_3, _b, _c;\n const prepend = yield __await(provide());\n if (prepend !== undefined) {\n yield yield __await(prepend);\n }\n try {\n for (var _d = true, iterable_3 = __asyncValues(iterable), iterable_3_1; iterable_3_1 = yield __await(iterable_3.next()), _a = iterable_3_1.done, !_a; _d = true) {\n _c = iterable_3_1.value;\n _d = false;\n const chunk = _c;\n yield yield __await(chunk);\n }\n }\n catch (e_3_1) { e_3 = { error: e_3_1 }; }\n finally {\n try {\n if (!_d && !_a && (_b = iterable_3.return)) yield __await(_b.call(iterable_3));\n }\n finally { if (e_3) throw e_3.error; }\n }\n });\n };\n}\n/**\n * Creates an AsyncIterableTransform that reads all bytes from the input, and\n * concatenates them to a single Uint8Array.\n *\n * The iterable raises an error if the more than readMaxBytes are read.\n *\n * An optional length hint can be provided to optimize allocation and validation.\n * If more or less bytes are present in the source that the length hint indicates,\n * and error is raised.\n * If the length hint is larger than readMaxBytes, an error is raised.\n * If the length hint is not a positive integer, it is ignored.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function transformReadAllBytes(readMaxBytes, lengthHint) {\n return function (iterable) {\n return __asyncGenerator(this, arguments, function* () {\n yield yield __await(yield __await(readAllBytes(iterable, readMaxBytes, lengthHint)));\n });\n };\n}\nexport function transformSerializeEnvelope(serialization, endStreamFlag, endSerialization) {\n if (endStreamFlag === undefined || endSerialization === undefined) {\n return function (iterable) {\n return __asyncGenerator(this, arguments, function* () {\n var _a, e_4, _b, _c;\n try {\n for (var _d = true, iterable_4 = __asyncValues(iterable), iterable_4_1; iterable_4_1 = yield __await(iterable_4.next()), _a = iterable_4_1.done, !_a; _d = true) {\n _c = iterable_4_1.value;\n _d = false;\n const chunk = _c;\n const data = serialization.serialize(chunk);\n yield yield __await({ flags: 0, data });\n }\n }\n catch (e_4_1) { e_4 = { error: e_4_1 }; }\n finally {\n try {\n if (!_d && !_a && (_b = iterable_4.return)) yield __await(_b.call(iterable_4));\n }\n finally { if (e_4) throw e_4.error; }\n }\n });\n };\n }\n return function (iterable) {\n return __asyncGenerator(this, arguments, function* () {\n var _a, e_5, _b, _c;\n try {\n for (var _d = true, iterable_5 = __asyncValues(iterable), iterable_5_1; iterable_5_1 = yield __await(iterable_5.next()), _a = iterable_5_1.done, !_a; _d = true) {\n _c = iterable_5_1.value;\n _d = false;\n const chunk = _c;\n let data;\n let flags = 0;\n if (chunk.end) {\n flags = flags | endStreamFlag;\n data = endSerialization.serialize(chunk.value);\n }\n else {\n data = serialization.serialize(chunk.value);\n }\n yield yield __await({ flags, data });\n }\n }\n catch (e_5_1) { e_5 = { error: e_5_1 }; }\n finally {\n try {\n if (!_d && !_a && (_b = iterable_5.return)) yield __await(_b.call(iterable_5));\n }\n finally { if (e_5) throw e_5.error; }\n }\n });\n };\n}\nexport function transformParseEnvelope(serialization, endStreamFlag, endSerialization) {\n // code path always yields ParsedEnvelopedMessage\n if (endSerialization && endStreamFlag !== undefined) {\n return function (iterable) {\n return __asyncGenerator(this, arguments, function* () {\n var _a, e_6, _b, _c;\n try {\n for (var _d = true, iterable_6 = __asyncValues(iterable), iterable_6_1; iterable_6_1 = yield __await(iterable_6.next()), _a = iterable_6_1.done, !_a; _d = true) {\n _c = iterable_6_1.value;\n _d = false;\n const { flags, data } = _c;\n if ((flags & endStreamFlag) === endStreamFlag) {\n yield yield __await({ value: endSerialization.parse(data), end: true });\n }\n else {\n yield yield __await({ value: serialization.parse(data), end: false });\n }\n }\n }\n catch (e_6_1) { e_6 = { error: e_6_1 }; }\n finally {\n try {\n if (!_d && !_a && (_b = iterable_6.return)) yield __await(_b.call(iterable_6));\n }\n finally { if (e_6) throw e_6.error; }\n }\n });\n };\n }\n // code path always yields T\n return function (iterable) {\n return __asyncGenerator(this, arguments, function* () {\n var _a, e_7, _b, _c;\n try {\n for (var _d = true, iterable_7 = __asyncValues(iterable), iterable_7_1; iterable_7_1 = yield __await(iterable_7.next()), _a = iterable_7_1.done, !_a; _d = true) {\n _c = iterable_7_1.value;\n _d = false;\n const { flags, data } = _c;\n if (endStreamFlag !== undefined &&\n (flags & endStreamFlag) === endStreamFlag) {\n if (endSerialization === null) {\n throw new ConnectError(\"unexpected end flag\", Code.InvalidArgument);\n }\n // skips end-of-stream envelope\n continue;\n }\n yield yield __await(serialization.parse(data));\n }\n }\n catch (e_7_1) { e_7 = { error: e_7_1 }; }\n finally {\n try {\n if (!_d && !_a && (_b = iterable_7.return)) yield __await(_b.call(iterable_7));\n }\n finally { if (e_7) throw e_7.error; }\n }\n });\n };\n}\n/**\n * Creates an AsyncIterableTransform that takes enveloped messages as a source,\n * and compresses them if they are larger than compressMinBytes.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function transformCompressEnvelope(compression, compressMinBytes) {\n return function (iterable) {\n return __asyncGenerator(this, arguments, function* () {\n var _a, e_8, _b, _c;\n try {\n for (var _d = true, iterable_8 = __asyncValues(iterable), iterable_8_1; iterable_8_1 = yield __await(iterable_8.next()), _a = iterable_8_1.done, !_a; _d = true) {\n _c = iterable_8_1.value;\n _d = false;\n const env = _c;\n yield yield __await(yield __await(envelopeCompress(env, compression, compressMinBytes)));\n }\n }\n catch (e_8_1) { e_8 = { error: e_8_1 }; }\n finally {\n try {\n if (!_d && !_a && (_b = iterable_8.return)) yield __await(_b.call(iterable_8));\n }\n finally { if (e_8) throw e_8.error; }\n }\n });\n };\n}\n/**\n * Creates an AsyncIterableTransform that takes enveloped messages as a source,\n * and decompresses them using the given compression.\n *\n * The iterable raises an error if the decompressed payload of an enveloped\n * message is larger than readMaxBytes, or if no compression is provided.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function transformDecompressEnvelope(compression, readMaxBytes) {\n return function (iterable) {\n return __asyncGenerator(this, arguments, function* () {\n var _a, e_9, _b, _c;\n try {\n for (var _d = true, iterable_9 = __asyncValues(iterable), iterable_9_1; iterable_9_1 = yield __await(iterable_9.next()), _a = iterable_9_1.done, !_a; _d = true) {\n _c = iterable_9_1.value;\n _d = false;\n const env = _c;\n yield yield __await(yield __await(envelopeDecompress(env, compression, readMaxBytes)));\n }\n }\n catch (e_9_1) { e_9 = { error: e_9_1 }; }\n finally {\n try {\n if (!_d && !_a && (_b = iterable_9.return)) yield __await(_b.call(iterable_9));\n }\n finally { if (e_9) throw e_9.error; }\n }\n });\n };\n}\n/**\n * Create an AsyncIterableTransform that takes enveloped messages as a source,\n * and joins them into a stream of raw bytes.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function transformJoinEnvelopes() {\n return function (iterable) {\n return __asyncGenerator(this, arguments, function* () {\n var _a, e_10, _b, _c;\n try {\n for (var _d = true, iterable_10 = __asyncValues(iterable), iterable_10_1; iterable_10_1 = yield __await(iterable_10.next()), _a = iterable_10_1.done, !_a; _d = true) {\n _c = iterable_10_1.value;\n _d = false;\n const { flags, data } = _c;\n yield yield __await(encodeEnvelope(flags, data));\n }\n }\n catch (e_10_1) { e_10 = { error: e_10_1 }; }\n finally {\n try {\n if (!_d && !_a && (_b = iterable_10.return)) yield __await(_b.call(iterable_10));\n }\n finally { if (e_10) throw e_10.error; }\n }\n });\n };\n}\n/**\n * Create an AsyncIterableTransform that takes raw bytes as a source, and splits\n * them into enveloped messages.\n *\n * The iterable raises an error\n * - if the payload of an enveloped message is larger than readMaxBytes,\n * - if the stream ended before an enveloped message fully arrived,\n * - or if the stream ended with extraneous data.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function transformSplitEnvelope(readMaxBytes) {\n // append chunk to buffer, returning updated buffer\n function append(buffer, chunk) {\n const n = new Uint8Array(buffer.byteLength + chunk.byteLength);\n n.set(buffer);\n n.set(chunk, buffer.length);\n return n;\n }\n // tuple 0: envelope, or undefined if incomplete\n // tuple 1: remainder of the buffer\n function shiftEnvelope(buffer, header) {\n if (buffer.byteLength < 5 + header.length) {\n return [undefined, buffer];\n }\n return [\n { flags: header.flags, data: buffer.subarray(5, 5 + header.length) },\n buffer.subarray(5 + header.length),\n ];\n }\n // undefined: header is incomplete\n function peekHeader(buffer) {\n if (buffer.byteLength < 5) {\n return undefined;\n }\n const view = new DataView(buffer.buffer, buffer.byteOffset, buffer.byteLength);\n const length = view.getUint32(1); // 4 bytes message length\n const flags = view.getUint8(0); // first byte is flags\n return { length, flags };\n }\n return function (iterable) {\n return __asyncGenerator(this, arguments, function* () {\n var _a, e_11, _b, _c;\n let buffer = new Uint8Array(0);\n try {\n for (var _d = true, iterable_11 = __asyncValues(iterable), iterable_11_1; iterable_11_1 = yield __await(iterable_11.next()), _a = iterable_11_1.done, !_a; _d = true) {\n _c = iterable_11_1.value;\n _d = false;\n const chunk = _c;\n buffer = append(buffer, chunk);\n for (;;) {\n const header = peekHeader(buffer);\n if (!header) {\n break;\n }\n assertReadMaxBytes(readMaxBytes, header.length, true);\n let env;\n [env, buffer] = shiftEnvelope(buffer, header);\n if (!env) {\n break;\n }\n yield yield __await(env);\n }\n }\n }\n catch (e_11_1) { e_11 = { error: e_11_1 }; }\n finally {\n try {\n if (!_d && !_a && (_b = iterable_11.return)) yield __await(_b.call(iterable_11));\n }\n finally { if (e_11) throw e_11.error; }\n }\n if (buffer.byteLength > 0) {\n const header = peekHeader(buffer);\n let message = \"protocol error: incomplete envelope\";\n if (header) {\n message = `protocol error: promised ${header.length} bytes in enveloped message, got ${buffer.byteLength - 5} bytes`;\n }\n throw new ConnectError(message, Code.InvalidArgument);\n }\n });\n };\n}\n/**\n * Reads all bytes from the source, and concatenates them to a single Uint8Array.\n *\n * Raises an error if:\n * - more than readMaxBytes are read\n * - lengthHint is a positive integer, but larger than readMaxBytes\n * - lengthHint is a positive integer, and the source contains more or less bytes\n * than promised\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport async function readAllBytes(iterable, readMaxBytes, lengthHint) {\n var _a, e_12, _b, _c, _d, e_13, _e, _f;\n const [ok, hint] = parseLengthHint(lengthHint);\n if (ok) {\n if (hint > readMaxBytes) {\n assertReadMaxBytes(readMaxBytes, hint, true);\n }\n const buffer = new Uint8Array(hint);\n let offset = 0;\n try {\n for (var _g = true, iterable_12 = __asyncValues(iterable), iterable_12_1; iterable_12_1 = await iterable_12.next(), _a = iterable_12_1.done, !_a; _g = true) {\n _c = iterable_12_1.value;\n _g = false;\n const chunk = _c;\n if (offset + chunk.byteLength > hint) {\n throw new ConnectError(`protocol error: promised ${hint} bytes, received ${offset + chunk.byteLength}`, Code.InvalidArgument);\n }\n buffer.set(chunk, offset);\n offset += chunk.byteLength;\n }\n }\n catch (e_12_1) { e_12 = { error: e_12_1 }; }\n finally {\n try {\n if (!_g && !_a && (_b = iterable_12.return)) await _b.call(iterable_12);\n }\n finally { if (e_12) throw e_12.error; }\n }\n if (offset < hint) {\n throw new ConnectError(`protocol error: promised ${hint} bytes, received ${offset}`, Code.InvalidArgument);\n }\n return buffer;\n }\n const chunks = [];\n let count = 0;\n try {\n for (var _h = true, iterable_13 = __asyncValues(iterable), iterable_13_1; iterable_13_1 = await iterable_13.next(), _d = iterable_13_1.done, !_d; _h = true) {\n _f = iterable_13_1.value;\n _h = false;\n const chunk = _f;\n count += chunk.byteLength;\n assertReadMaxBytes(readMaxBytes, count);\n chunks.push(chunk);\n }\n }\n catch (e_13_1) { e_13 = { error: e_13_1 }; }\n finally {\n try {\n if (!_h && !_d && (_e = iterable_13.return)) await _e.call(iterable_13);\n }\n finally { if (e_13) throw e_13.error; }\n }\n const all = new Uint8Array(count);\n let offset = 0;\n for (let chunk = chunks.shift(); chunk; chunk = chunks.shift()) {\n all.set(chunk, offset);\n offset += chunk.byteLength;\n }\n return all;\n}\n// parse the lengthHint argument of readAllBytes()\nfunction parseLengthHint(lengthHint) {\n if (lengthHint === undefined || lengthHint === null) {\n return [false, 0];\n }\n const n = typeof lengthHint == \"string\" ? parseInt(lengthHint, 10) : lengthHint;\n if (!Number.isSafeInteger(n) || n < 0) {\n return [false, n];\n }\n return [true, n];\n}\n/**\n * Wait for the first element of an iterable without modifying the iterable.\n * This consumes the first element, but pushes it back on the stack.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport async function untilFirst(iterable) {\n const it = iterable[Symbol.asyncIterator]();\n let first = await it.next();\n return {\n [Symbol.asyncIterator]() {\n const w = {\n async next() {\n if (first !== null) {\n const n = first;\n first = null;\n return n;\n }\n return await it.next();\n },\n };\n if (it.throw !== undefined) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion -- can't handle mutated object sensibly\n w.throw = (e) => it.throw(e);\n }\n if (it.return !== undefined) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion,@typescript-eslint/no-explicit-any -- can't handle mutated object sensibly\n w.return = (value) => it.return(value);\n }\n return w;\n },\n };\n}\n/**\n * Wrap the given iterable and return an iterable with an abort() method.\n *\n * This function exists purely for convenience. Where one would typically have\n * to access the iterator directly, advance through all elements, and call\n * AsyncIterator.throw() to notify the upstream iterable, this function allows\n * to use convenient for-await loops and still notify the upstream iterable:\n *\n * ```ts\n * const abortable = makeIterableAbortable(iterable);\n * for await (const ele of abortable) {\n * await abortable.abort(\"ERR\");\n * }\n * ```\n * There are a couple of limitations of this function:\n * - the given async iterable must implement throw\n * - the async iterable cannot be re-use\n * - if source catches errors and yields values for them, they are ignored, and\n * the source may still dangle\n *\n * There are four possible ways an async function* can handle yield errors:\n * 1. don't catch errors at all - Abortable.abort() will resolve \"rethrown\"\n * 2. catch errors and rethrow - Abortable.abort() will resolve \"rethrown\"\n * 3. catch errors and return - Abortable.abort() will resolve \"completed\"\n * 4. catch errors and yield a value - Abortable.abort() will resolve \"caught\"\n *\n * Note that catching errors and yielding a value is problematic, and it should\n * be documented that this may leave the source in a dangling state.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function makeIterableAbortable(iterable) {\n const innerCandidate = iterable[Symbol.asyncIterator]();\n if (innerCandidate.throw === undefined) {\n throw new Error(\"AsyncIterable does not implement throw\");\n }\n const inner = innerCandidate;\n let aborted;\n let resultPromise;\n let it = {\n next() {\n resultPromise = inner.next().finally(() => {\n resultPromise = undefined;\n });\n return resultPromise;\n },\n throw(e) {\n return inner.throw(e);\n },\n };\n if (innerCandidate.return !== undefined) {\n it = Object.assign(Object.assign({}, it), { return(value) {\n return inner.return(value);\n } });\n }\n let used = false;\n return {\n abort(reason) {\n if (aborted) {\n return aborted.state;\n }\n const f = () => {\n return inner.throw(reason).then((r) => (r.done === true ? \"completed\" : \"caught\"), () => \"rethrown\");\n };\n if (resultPromise) {\n aborted = { reason, state: resultPromise.then(f, f) };\n return aborted.state;\n }\n aborted = { reason, state: f() };\n return aborted.state;\n },\n [Symbol.asyncIterator]() {\n if (used) {\n throw new Error(\"AsyncIterable cannot be re-used\");\n }\n used = true;\n return it;\n },\n };\n}\n/**\n * Create a new WritableIterable.\n */\nexport function createWritableIterable() {\n // We start with two queues to capture the read and write attempts.\n //\n // The writes and reads each check of their counterpart is\n // already available and either interact/add themselves to the queue.\n const readQueue = [];\n const writeQueue = [];\n let err = undefined;\n let nextResolve;\n let nextReject;\n let nextPromise = new Promise((resolve, reject) => {\n nextResolve = resolve;\n nextReject = reject;\n });\n let closed = false;\n // drain the readQueue in case of error/writer is closed by sending a\n // done result.\n function drain() {\n for (const next of readQueue.splice(0, readQueue.length)) {\n next({ done: true, value: undefined });\n }\n }\n return {\n close() {\n closed = true;\n drain();\n },\n async write(payload) {\n if (closed) {\n throw err !== null && err !== void 0 ? err : new Error(\"cannot write, WritableIterable already closed\");\n }\n const read = readQueue.shift();\n if (read === undefined) {\n // We didn't find a pending read so we add the payload to the write queue.\n writeQueue.push(payload);\n }\n else {\n // We found a pending read so we respond with the payload.\n read({ done: false, value: payload });\n if (readQueue.length > 0) {\n // If there are more in the read queue we can mark the write as complete.\n // as the error reporting is not guaranteed to be sequential and therefore cannot\n // to linked to a specific write.\n return;\n }\n }\n // We await the next call for as many times as there are items in the queue + 1\n //\n // If there are no items in the write queue that means write happened and we just have\n // to wait for one more call likewise if we are the nth write in the queue we\n // have to wait for n writes to complete and one more.\n const limit = writeQueue.length + 1;\n for (let i = 0; i < limit; i++) {\n await nextPromise;\n }\n },\n [Symbol.asyncIterator]() {\n return {\n next() {\n // Resolve the nextPromise to indicate\n // pending writes that a read attempt has been made\n // after their write.\n //\n // We also need to reset the promise for future writes.\n nextResolve();\n nextPromise = new Promise((resolve, reject) => {\n nextResolve = resolve;\n nextReject = reject;\n });\n const write = writeQueue.shift();\n if (write !== undefined) {\n // We found a pending write so response with the payload.\n return Promise.resolve({ done: false, value: write });\n }\n if (closed) {\n return Promise.resolve({ done: true, value: undefined });\n }\n // We return a promise immediately that is either resolved/rejected\n // as writes happen.\n let readResolve;\n const readPromise = new Promise((resolve) => (readResolve = resolve));\n readQueue.push(readResolve); // eslint-disable-line @typescript-eslint/no-non-null-assertion\n return readPromise;\n },\n throw(throwErr) {\n err = throwErr;\n closed = true;\n writeQueue.splice(0, writeQueue.length);\n nextPromise.catch(() => {\n // To make sure that the nextPromise is always resolved.\n });\n // This will reject all pending writes.\n nextReject(err);\n drain();\n return Promise.resolve({ done: true, value: undefined });\n },\n return() {\n closed = true;\n writeQueue.splice(0, writeQueue.length);\n // Resolve once for the write awaiting confirmation.\n nextResolve();\n // Reject all future writes.\n nextPromise = Promise.reject(new Error(\"cannot write, consumer called return\"));\n nextPromise.catch(() => {\n // To make sure that the nextPromise is always resolved.\n });\n drain();\n return Promise.resolve({ done: true, value: undefined });\n },\n };\n },\n };\n}\n/**\n * Create an asynchronous iterable from an array.\n *\n * @private Internal code, does not follow semantic versioning.\n */\n// eslint-disable-next-line @typescript-eslint/require-await\nexport function createAsyncIterable(items) {\n return __asyncGenerator(this, arguments, function* createAsyncIterable_1() {\n yield __await(yield* __asyncDelegator(__asyncValues(items)));\n });\n}\n","// Copyright 2021-2024 The Connect Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nvar __asyncValues = (this && this.__asyncValues) || function (o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n};\nvar __await = (this && this.__await) || function (v) { return this instanceof __await ? (this.v = v, this) : new __await(v); }\nvar __asyncDelegator = (this && this.__asyncDelegator) || function (o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n};\nvar __asyncGenerator = (this && this.__asyncGenerator) || function (thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n};\nimport { Message, MethodKind } from \"@bufbuild/protobuf\";\nimport { makeAnyClient } from \"./any-client.js\";\nimport { ConnectError } from \"./connect-error.js\";\nimport { Code } from \"./code.js\";\nimport { createAsyncIterable } from \"./protocol/async-iterable.js\";\n/**\n * Create a PromiseClient for the given service, invoking RPCs through the\n * given transport.\n */\nexport function createPromiseClient(service, transport) {\n return makeAnyClient(service, (method) => {\n switch (method.kind) {\n case MethodKind.Unary:\n return createUnaryFn(transport, service, method);\n case MethodKind.ServerStreaming:\n return createServerStreamingFn(transport, service, method);\n case MethodKind.ClientStreaming:\n return createClientStreamingFn(transport, service, method);\n case MethodKind.BiDiStreaming:\n return createBiDiStreamingFn(transport, service, method);\n default:\n return null;\n }\n });\n}\nexport function createUnaryFn(transport, service, method) {\n return async function (input, options) {\n var _a, _b;\n const response = await transport.unary(service, method, options === null || options === void 0 ? void 0 : options.signal, options === null || options === void 0 ? void 0 : options.timeoutMs, options === null || options === void 0 ? void 0 : options.headers, input, options === null || options === void 0 ? void 0 : options.contextValues);\n (_a = options === null || options === void 0 ? void 0 : options.onHeader) === null || _a === void 0 ? void 0 : _a.call(options, response.header);\n (_b = options === null || options === void 0 ? void 0 : options.onTrailer) === null || _b === void 0 ? void 0 : _b.call(options, response.trailer);\n return response.message;\n };\n}\nexport function createServerStreamingFn(transport, service, method) {\n return function (input, options) {\n return handleStreamResponse(transport.stream(service, method, options === null || options === void 0 ? void 0 : options.signal, options === null || options === void 0 ? void 0 : options.timeoutMs, options === null || options === void 0 ? void 0 : options.headers, createAsyncIterable([input]), options === null || options === void 0 ? void 0 : options.contextValues), options);\n };\n}\nexport function createClientStreamingFn(transport, service, method) {\n return async function (request, options) {\n var _a, e_1, _b, _c;\n var _d, _e;\n const response = await transport.stream(service, method, options === null || options === void 0 ? void 0 : options.signal, options === null || options === void 0 ? void 0 : options.timeoutMs, options === null || options === void 0 ? void 0 : options.headers, request, options === null || options === void 0 ? void 0 : options.contextValues);\n (_d = options === null || options === void 0 ? void 0 : options.onHeader) === null || _d === void 0 ? void 0 : _d.call(options, response.header);\n let singleMessage;\n let count = 0;\n try {\n for (var _f = true, _g = __asyncValues(response.message), _h; _h = await _g.next(), _a = _h.done, !_a; _f = true) {\n _c = _h.value;\n _f = false;\n const message = _c;\n singleMessage = message;\n count++;\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (!_f && !_a && (_b = _g.return)) await _b.call(_g);\n }\n finally { if (e_1) throw e_1.error; }\n }\n if (!singleMessage) {\n throw new ConnectError(\"protocol error: missing response message\", Code.Unimplemented);\n }\n if (count > 1) {\n throw new ConnectError(\"protocol error: received extra messages for client streaming method\", Code.Unimplemented);\n }\n (_e = options === null || options === void 0 ? void 0 : options.onTrailer) === null || _e === void 0 ? void 0 : _e.call(options, response.trailer);\n return singleMessage;\n };\n}\nexport function createBiDiStreamingFn(transport, service, method) {\n return function (request, options) {\n return handleStreamResponse(transport.stream(service, method, options === null || options === void 0 ? void 0 : options.signal, options === null || options === void 0 ? void 0 : options.timeoutMs, options === null || options === void 0 ? void 0 : options.headers, request, options === null || options === void 0 ? void 0 : options.contextValues), options);\n };\n}\nfunction handleStreamResponse(stream, options) {\n const it = (function () {\n return __asyncGenerator(this, arguments, function* () {\n var _a, _b;\n const response = yield __await(stream);\n (_a = options === null || options === void 0 ? void 0 : options.onHeader) === null || _a === void 0 ? void 0 : _a.call(options, response.header);\n yield __await(yield* __asyncDelegator(__asyncValues(response.message)));\n (_b = options === null || options === void 0 ? void 0 : options.onTrailer) === null || _b === void 0 ? void 0 : _b.call(options, response.trailer);\n });\n })()[Symbol.asyncIterator]();\n // Create a new iterable to omit throw/return.\n return {\n [Symbol.asyncIterator]: () => ({\n next: () => it.next(),\n }),\n };\n}\n","// Copyright 2021-2024 The Connect Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { Code } from \"../code.js\";\n/**\n * codeToString returns the string representation of a Code.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function codeToString(value) {\n const name = Code[value];\n if (typeof name != \"string\") {\n return value.toString();\n }\n return (name[0].toLowerCase() +\n name.substring(1).replace(/[A-Z]/g, (c) => \"_\" + c.toLowerCase()));\n}\nlet stringToCode;\n/**\n * codeFromString parses the string representation of a Code in snake_case.\n * For example, the string \"permission_denied\" parses into Code.PermissionDenied.\n *\n * If the given string cannot be parsed, the function returns undefined.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function codeFromString(value) {\n if (!stringToCode) {\n stringToCode = {};\n for (const value of Object.values(Code)) {\n if (typeof value == \"string\") {\n continue;\n }\n stringToCode[codeToString(value)] = value;\n }\n }\n return stringToCode[value];\n}\n","export function deprecate(fn) {\n return fn\n}\n\nexport function equal() {}\n\nexport function ok() {}\n\nexport function unreachable() {}\n","/**\n * @typedef {import('mdast').Nodes} Nodes\n *\n * @typedef Options\n * Configuration (optional).\n * @property {boolean | null | undefined} [includeImageAlt=true]\n * Whether to use `alt` for `image`s (default: `true`).\n * @property {boolean | null | undefined} [includeHtml=true]\n * Whether to use `value` of HTML (default: `true`).\n */\n\n/** @type {Options} */\nconst emptyOptions = {}\n\n/**\n * Get the text content of a node or list of nodes.\n *\n * Prefers the node’s plain-text fields, otherwise serializes its children,\n * and if the given value is an array, serialize the nodes in it.\n *\n * @param {unknown} [value]\n * Thing to serialize, typically `Node`.\n * @param {Options | null | undefined} [options]\n * Configuration (optional).\n * @returns {string}\n * Serialized `value`.\n */\nexport function toString(value, options) {\n const settings = options || emptyOptions\n const includeImageAlt =\n typeof settings.includeImageAlt === 'boolean'\n ? settings.includeImageAlt\n : true\n const includeHtml =\n typeof settings.includeHtml === 'boolean' ? settings.includeHtml : true\n\n return one(value, includeImageAlt, includeHtml)\n}\n\n/**\n * One node or several nodes.\n *\n * @param {unknown} value\n * Thing to serialize.\n * @param {boolean} includeImageAlt\n * Include image `alt`s.\n * @param {boolean} includeHtml\n * Include HTML.\n * @returns {string}\n * Serialized node.\n */\nfunction one(value, includeImageAlt, includeHtml) {\n if (node(value)) {\n if ('value' in value) {\n return value.type === 'html' && !includeHtml ? '' : value.value\n }\n\n if (includeImageAlt && 'alt' in value && value.alt) {\n return value.alt\n }\n\n if ('children' in value) {\n return all(value.children, includeImageAlt, includeHtml)\n }\n }\n\n if (Array.isArray(value)) {\n return all(value, includeImageAlt, includeHtml)\n }\n\n return ''\n}\n\n/**\n * Serialize a list of nodes.\n *\n * @param {Array} values\n * Thing to serialize.\n * @param {boolean} includeImageAlt\n * Include image `alt`s.\n * @param {boolean} includeHtml\n * Include HTML.\n * @returns {string}\n * Serialized nodes.\n */\nfunction all(values, includeImageAlt, includeHtml) {\n /** @type {Array} */\n const result = []\n let index = -1\n\n while (++index < values.length) {\n result[index] = one(values[index], includeImageAlt, includeHtml)\n }\n\n return result.join('')\n}\n\n/**\n * Check if `value` looks like a node.\n *\n * @param {unknown} value\n * Thing.\n * @returns {value is Nodes}\n * Whether `value` is a node.\n */\nfunction node(value) {\n return Boolean(value && typeof value === 'object')\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { markdownLineEnding, markdownSpace } from 'micromark-util-character';\n/** @type {Construct} */\nexport const blankLine = {\n tokenize: tokenizeBlankLine,\n partial: true\n};\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeBlankLine(effects, ok, nok) {\n return start;\n\n /**\n * Start of blank line.\n *\n * > 👉 **Note**: `␠` represents a space character.\n *\n * ```markdown\n * > | ␠␠␊\n * ^\n * > | ␊\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n return markdownSpace(code) ? factorySpace(effects, after, \"linePrefix\")(code) : after(code);\n }\n\n /**\n * At eof/eol, after optional whitespace.\n *\n * > 👉 **Note**: `␠` represents a space character.\n *\n * ```markdown\n * > | ␠␠␊\n * ^\n * > | ␊\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n return code === null || markdownLineEnding(code) ? ok(code) : nok(code);\n }\n}","/**\n * @typedef {import('micromark-util-types').Effects} Effects\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenType} TokenType\n */\n\nimport {markdownSpace} from 'micromark-util-character'\n\n// To do: implement `spaceOrTab`, `spaceOrTabMinMax`, `spaceOrTabWithOptions`.\n\n/**\n * Parse spaces and tabs.\n *\n * There is no `nok` parameter:\n *\n * * spaces in markdown are often optional, in which case this factory can be\n * used and `ok` will be switched to whether spaces were found or not\n * * one line ending or space can be detected with `markdownSpace(code)` right\n * before using `factorySpace`\n *\n * ###### Examples\n *\n * Where `␉` represents a tab (plus how much it expands) and `␠` represents a\n * single space.\n *\n * ```markdown\n * ␉\n * ␠␠␠␠\n * ␉␠\n * ```\n *\n * @param {Effects} effects\n * Context.\n * @param {State} ok\n * State switched to when successful.\n * @param {TokenType} type\n * Type (`' \\t'`).\n * @param {number | undefined} [max=Infinity]\n * Max (exclusive).\n * @returns {State}\n * Start state.\n */\nexport function factorySpace(effects, ok, type, max) {\n const limit = max ? max - 1 : Number.POSITIVE_INFINITY\n let size = 0\n return start\n\n /** @type {State} */\n function start(code) {\n if (markdownSpace(code)) {\n effects.enter(type)\n return prefix(code)\n }\n return ok(code)\n }\n\n /** @type {State} */\n function prefix(code) {\n if (markdownSpace(code) && size++ < limit) {\n effects.consume(code)\n return prefix\n }\n effects.exit(type)\n return ok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n */\n\n/**\n * Check whether the character code represents an ASCII alpha (`a` through `z`,\n * case insensitive).\n *\n * An **ASCII alpha** is an ASCII upper alpha or ASCII lower alpha.\n *\n * An **ASCII upper alpha** is a character in the inclusive range U+0041 (`A`)\n * to U+005A (`Z`).\n *\n * An **ASCII lower alpha** is a character in the inclusive range U+0061 (`a`)\n * to U+007A (`z`).\n *\n * @param code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport const asciiAlpha = regexCheck(/[A-Za-z]/);\n\n/**\n * Check whether the character code represents an ASCII alphanumeric (`a`\n * through `z`, case insensitive, or `0` through `9`).\n *\n * An **ASCII alphanumeric** is an ASCII digit (see `asciiDigit`) or ASCII alpha\n * (see `asciiAlpha`).\n *\n * @param code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport const asciiAlphanumeric = regexCheck(/[\\dA-Za-z]/);\n\n/**\n * Check whether the character code represents an ASCII atext.\n *\n * atext is an ASCII alphanumeric (see `asciiAlphanumeric`), or a character in\n * the inclusive ranges U+0023 NUMBER SIGN (`#`) to U+0027 APOSTROPHE (`'`),\n * U+002A ASTERISK (`*`), U+002B PLUS SIGN (`+`), U+002D DASH (`-`), U+002F\n * SLASH (`/`), U+003D EQUALS TO (`=`), U+003F QUESTION MARK (`?`), U+005E\n * CARET (`^`) to U+0060 GRAVE ACCENT (`` ` ``), or U+007B LEFT CURLY BRACE\n * (`{`) to U+007E TILDE (`~`).\n *\n * See:\n * **\\[RFC5322]**:\n * [Internet Message Format](https://tools.ietf.org/html/rfc5322).\n * P. Resnick.\n * IETF.\n *\n * @param code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport const asciiAtext = regexCheck(/[#-'*+\\--9=?A-Z^-~]/);\n\n/**\n * Check whether a character code is an ASCII control character.\n *\n * An **ASCII control** is a character in the inclusive range U+0000 NULL (NUL)\n * to U+001F (US), or U+007F (DEL).\n *\n * @param {Code} code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport function asciiControl(code) {\n return (\n // Special whitespace codes (which have negative values), C0 and Control\n // character DEL\n code !== null && (code < 32 || code === 127)\n );\n}\n\n/**\n * Check whether the character code represents an ASCII digit (`0` through `9`).\n *\n * An **ASCII digit** is a character in the inclusive range U+0030 (`0`) to\n * U+0039 (`9`).\n *\n * @param code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport const asciiDigit = regexCheck(/\\d/);\n\n/**\n * Check whether the character code represents an ASCII hex digit (`a` through\n * `f`, case insensitive, or `0` through `9`).\n *\n * An **ASCII hex digit** is an ASCII digit (see `asciiDigit`), ASCII upper hex\n * digit, or an ASCII lower hex digit.\n *\n * An **ASCII upper hex digit** is a character in the inclusive range U+0041\n * (`A`) to U+0046 (`F`).\n *\n * An **ASCII lower hex digit** is a character in the inclusive range U+0061\n * (`a`) to U+0066 (`f`).\n *\n * @param code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport const asciiHexDigit = regexCheck(/[\\dA-Fa-f]/);\n\n/**\n * Check whether the character code represents ASCII punctuation.\n *\n * An **ASCII punctuation** is a character in the inclusive ranges U+0021\n * EXCLAMATION MARK (`!`) to U+002F SLASH (`/`), U+003A COLON (`:`) to U+0040 AT\n * SIGN (`@`), U+005B LEFT SQUARE BRACKET (`[`) to U+0060 GRAVE ACCENT\n * (`` ` ``), or U+007B LEFT CURLY BRACE (`{`) to U+007E TILDE (`~`).\n *\n * @param code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport const asciiPunctuation = regexCheck(/[!-/:-@[-`{-~]/);\n\n/**\n * Check whether a character code is a markdown line ending.\n *\n * A **markdown line ending** is the virtual characters M-0003 CARRIAGE RETURN\n * LINE FEED (CRLF), M-0004 LINE FEED (LF) and M-0005 CARRIAGE RETURN (CR).\n *\n * In micromark, the actual character U+000A LINE FEED (LF) and U+000D CARRIAGE\n * RETURN (CR) are replaced by these virtual characters depending on whether\n * they occurred together.\n *\n * @param {Code} code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport function markdownLineEnding(code) {\n return code !== null && code < -2;\n}\n\n/**\n * Check whether a character code is a markdown line ending (see\n * `markdownLineEnding`) or markdown space (see `markdownSpace`).\n *\n * @param {Code} code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport function markdownLineEndingOrSpace(code) {\n return code !== null && (code < 0 || code === 32);\n}\n\n/**\n * Check whether a character code is a markdown space.\n *\n * A **markdown space** is the concrete character U+0020 SPACE (SP) and the\n * virtual characters M-0001 VIRTUAL SPACE (VS) and M-0002 HORIZONTAL TAB (HT).\n *\n * In micromark, the actual character U+0009 CHARACTER TABULATION (HT) is\n * replaced by one M-0002 HORIZONTAL TAB (HT) and between 0 and 3 M-0001 VIRTUAL\n * SPACE (VS) characters, depending on the column at which the tab occurred.\n *\n * @param {Code} code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport function markdownSpace(code) {\n return code === -2 || code === -1 || code === 32;\n}\n\n// Size note: removing ASCII from the regex and using `asciiPunctuation` here\n// In fact adds to the bundle size.\n/**\n * Check whether the character code represents Unicode punctuation.\n *\n * A **Unicode punctuation** is a character in the Unicode `Pc` (Punctuation,\n * Connector), `Pd` (Punctuation, Dash), `Pe` (Punctuation, Close), `Pf`\n * (Punctuation, Final quote), `Pi` (Punctuation, Initial quote), `Po`\n * (Punctuation, Other), or `Ps` (Punctuation, Open) categories, or an ASCII\n * punctuation (see `asciiPunctuation`).\n *\n * See:\n * **\\[UNICODE]**:\n * [The Unicode Standard](https://www.unicode.org/versions/).\n * Unicode Consortium.\n *\n * @param code\n * Code.\n * @returns\n * Whether it matches.\n */\nexport const unicodePunctuation = regexCheck(/\\p{P}|\\p{S}/u);\n\n/**\n * Check whether the character code represents Unicode whitespace.\n *\n * Note that this does handle micromark specific markdown whitespace characters.\n * See `markdownLineEndingOrSpace` to check that.\n *\n * A **Unicode whitespace** is a character in the Unicode `Zs` (Separator,\n * Space) category, or U+0009 CHARACTER TABULATION (HT), U+000A LINE FEED (LF),\n * U+000C (FF), or U+000D CARRIAGE RETURN (CR) (**\\[UNICODE]**).\n *\n * See:\n * **\\[UNICODE]**:\n * [The Unicode Standard](https://www.unicode.org/versions/).\n * Unicode Consortium.\n *\n * @param code\n * Code.\n * @returns\n * Whether it matches.\n */\nexport const unicodeWhitespace = regexCheck(/\\s/);\n\n/**\n * Create a code check from a regex.\n *\n * @param {RegExp} regex\n * @returns {(code: Code) => boolean}\n */\nfunction regexCheck(regex) {\n return check;\n\n /**\n * Check whether a code matches the bound regex.\n *\n * @param {Code} code\n * Character code.\n * @returns {boolean}\n * Whether the character code matches the bound regex.\n */\n function check(code) {\n return code !== null && code > -1 && regex.test(String.fromCharCode(code));\n }\n}","/**\n * Like `Array#splice`, but smarter for giant arrays.\n *\n * `Array#splice` takes all items to be inserted as individual argument which\n * causes a stack overflow in V8 when trying to insert 100k items for instance.\n *\n * Otherwise, this does not return the removed items, and takes `items` as an\n * array instead of rest parameters.\n *\n * @template {unknown} T\n * Item type.\n * @param {Array} list\n * List to operate on.\n * @param {number} start\n * Index to remove/insert at (can be negative).\n * @param {number} remove\n * Number of items to remove.\n * @param {Array} items\n * Items to inject into `list`.\n * @returns {undefined}\n * Nothing.\n */\nexport function splice(list, start, remove, items) {\n const end = list.length\n let chunkStart = 0\n /** @type {Array} */\n let parameters\n\n // Make start between zero and `end` (included).\n if (start < 0) {\n start = -start > end ? 0 : end + start\n } else {\n start = start > end ? end : start\n }\n remove = remove > 0 ? remove : 0\n\n // No need to chunk the items if there’s only a couple (10k) items.\n if (items.length < 10000) {\n parameters = Array.from(items)\n parameters.unshift(start, remove)\n // @ts-expect-error Hush, it’s fine.\n list.splice(...parameters)\n } else {\n // Delete `remove` items starting from `start`\n if (remove) list.splice(start, remove)\n\n // Insert the items in chunks to not cause stack overflows.\n while (chunkStart < items.length) {\n parameters = items.slice(chunkStart, chunkStart + 10000)\n parameters.unshift(start, 0)\n // @ts-expect-error Hush, it’s fine.\n list.splice(...parameters)\n chunkStart += 10000\n start += 10000\n }\n }\n}\n\n/**\n * Append `items` (an array) at the end of `list` (another array).\n * When `list` was empty, returns `items` instead.\n *\n * This prevents a potentially expensive operation when `list` is empty,\n * and adds items in batches to prevent V8 from hanging.\n *\n * @template {unknown} T\n * Item type.\n * @param {Array} list\n * List to operate on.\n * @param {Array} items\n * Items to add to `list`.\n * @returns {Array}\n * Either `list` or `items`.\n */\nexport function push(list, items) {\n if (list.length > 0) {\n splice(list, list.length, 0, items)\n return list\n }\n return items\n}\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n */\n\nimport {\n markdownLineEndingOrSpace,\n unicodePunctuation,\n unicodeWhitespace\n} from 'micromark-util-character'\n/**\n * Classify whether a code represents whitespace, punctuation, or something\n * else.\n *\n * Used for attention (emphasis, strong), whose sequences can open or close\n * based on the class of surrounding characters.\n *\n * > 👉 **Note**: eof (`null`) is seen as whitespace.\n *\n * @param {Code} code\n * Code.\n * @returns {typeof constants.characterGroupWhitespace | typeof constants.characterGroupPunctuation | undefined}\n * Group.\n */\nexport function classifyCharacter(code) {\n if (\n code === null ||\n markdownLineEndingOrSpace(code) ||\n unicodeWhitespace(code)\n ) {\n return 1\n }\n if (unicodePunctuation(code)) {\n return 2\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Extension} Extension\n * @typedef {import('micromark-util-types').Handles} Handles\n * @typedef {import('micromark-util-types').HtmlExtension} HtmlExtension\n * @typedef {import('micromark-util-types').NormalizedExtension} NormalizedExtension\n */\n\nimport {splice} from 'micromark-util-chunked'\n\nconst hasOwnProperty = {}.hasOwnProperty\n\n/**\n * Combine multiple syntax extensions into one.\n *\n * @param {Array} extensions\n * List of syntax extensions.\n * @returns {NormalizedExtension}\n * A single combined extension.\n */\nexport function combineExtensions(extensions) {\n /** @type {NormalizedExtension} */\n const all = {}\n let index = -1\n\n while (++index < extensions.length) {\n syntaxExtension(all, extensions[index])\n }\n\n return all\n}\n\n/**\n * Merge `extension` into `all`.\n *\n * @param {NormalizedExtension} all\n * Extension to merge into.\n * @param {Extension} extension\n * Extension to merge.\n * @returns {undefined}\n */\nfunction syntaxExtension(all, extension) {\n /** @type {keyof Extension} */\n let hook\n\n for (hook in extension) {\n const maybe = hasOwnProperty.call(all, hook) ? all[hook] : undefined\n /** @type {Record} */\n const left = maybe || (all[hook] = {})\n /** @type {Record | undefined} */\n const right = extension[hook]\n /** @type {string} */\n let code\n\n if (right) {\n for (code in right) {\n if (!hasOwnProperty.call(left, code)) left[code] = []\n const value = right[code]\n constructs(\n // @ts-expect-error Looks like a list.\n left[code],\n Array.isArray(value) ? value : value ? [value] : []\n )\n }\n }\n }\n}\n\n/**\n * Merge `list` into `existing` (both lists of constructs).\n * Mutates `existing`.\n *\n * @param {Array} existing\n * @param {Array} list\n * @returns {undefined}\n */\nfunction constructs(existing, list) {\n let index = -1\n /** @type {Array} */\n const before = []\n\n while (++index < list.length) {\n // @ts-expect-error Looks like an object.\n ;(list[index].add === 'after' ? existing : before).push(list[index])\n }\n\n splice(existing, 0, 0, before)\n}\n\n/**\n * Combine multiple HTML extensions into one.\n *\n * @param {Array} htmlExtensions\n * List of HTML extensions.\n * @returns {HtmlExtension}\n * A single combined HTML extension.\n */\nexport function combineHtmlExtensions(htmlExtensions) {\n /** @type {HtmlExtension} */\n const handlers = {}\n let index = -1\n\n while (++index < htmlExtensions.length) {\n htmlExtension(handlers, htmlExtensions[index])\n }\n\n return handlers\n}\n\n/**\n * Merge `extension` into `all`.\n *\n * @param {HtmlExtension} all\n * Extension to merge into.\n * @param {HtmlExtension} extension\n * Extension to merge.\n * @returns {undefined}\n */\nfunction htmlExtension(all, extension) {\n /** @type {keyof HtmlExtension} */\n let hook\n\n for (hook in extension) {\n const maybe = hasOwnProperty.call(all, hook) ? all[hook] : undefined\n const left = maybe || (all[hook] = {})\n const right = extension[hook]\n /** @type {keyof Handles} */\n let type\n\n if (right) {\n for (type in right) {\n // @ts-expect-error assume document vs regular handler are managed correctly.\n left[type] = right[type]\n }\n }\n }\n}\n","/**\n * Normalize an identifier (as found in references, definitions).\n *\n * Collapses markdown whitespace, trim, and then lower- and uppercase.\n *\n * Some characters are considered “uppercase”, such as U+03F4 (`ϴ`), but if their\n * lowercase counterpart (U+03B8 (`θ`)) is uppercased will result in a different\n * uppercase character (U+0398 (`Θ`)).\n * So, to get a canonical form, we perform both lower- and uppercase.\n *\n * Using uppercase last makes sure keys will never interact with default\n * prototypal values (such as `constructor`): nothing in the prototype of\n * `Object` is uppercase.\n *\n * @param {string} value\n * Identifier to normalize.\n * @returns {string}\n * Normalized identifier.\n */\nexport function normalizeIdentifier(value) {\n return (\n value\n // Collapse markdown whitespace.\n .replace(/[\\t\\n\\r ]+/g, ' ')\n // Trim.\n .replace(/^ | $/g, '')\n // Some characters are considered “uppercase”, but if their lowercase\n // counterpart is uppercased will result in a different uppercase\n // character.\n // Hence, to get that form, we perform both lower- and uppercase.\n // Upper case makes sure keys will not interact with default prototypal\n // methods: no method is uppercase.\n .toLowerCase()\n .toUpperCase()\n )\n}\n","/**\n * @typedef {import('micromark-util-types').Event} Event\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n */\n\n/**\n * Call all `resolveAll`s.\n *\n * @param {Array<{resolveAll?: Resolver | undefined}>} constructs\n * List of constructs, optionally with `resolveAll`s.\n * @param {Array} events\n * List of events.\n * @param {TokenizeContext} context\n * Context used by `tokenize`.\n * @returns {Array}\n * Changed events.\n */\nexport function resolveAll(constructs, events, context) {\n /** @type {Array} */\n const called = []\n let index = -1\n\n while (++index < constructs.length) {\n const resolve = constructs[index].resolveAll\n\n if (resolve && !called.includes(resolve)) {\n events = resolve(events, context)\n called.push(resolve)\n }\n }\n\n return events\n}\n","/*!\n * cookie\n * Copyright(c) 2012-2014 Roman Shtylman\n * Copyright(c) 2015 Douglas Christopher Wilson\n * MIT Licensed\n */\n\n/**\n * Module exports.\n * @public\n */\n\nvar parse_1 = parse;\nvar serialize_1 = serialize;\n\n/**\n * Module variables.\n * @private\n */\n\nvar __toString = Object.prototype.toString;\n\n/**\n * RegExp to match field-content in RFC 7230 sec 3.2\n *\n * field-content = field-vchar [ 1*( SP / HTAB ) field-vchar ]\n * field-vchar = VCHAR / obs-text\n * obs-text = %x80-FF\n */\n\nvar fieldContentRegExp = /^[\\u0009\\u0020-\\u007e\\u0080-\\u00ff]+$/;\n\n/**\n * Parse a cookie header.\n *\n * Parse the given cookie header string into an object\n * The object has the various cookies as keys(names) => values\n *\n * @param {string} str\n * @param {object} [options]\n * @return {object}\n * @public\n */\n\nfunction parse(str, options) {\n if (typeof str !== 'string') {\n throw new TypeError('argument str must be a string');\n }\n\n var obj = {};\n var opt = options || {};\n var dec = opt.decode || decode;\n\n var index = 0;\n while (index < str.length) {\n var eqIdx = str.indexOf('=', index);\n\n // no more cookie pairs\n if (eqIdx === -1) {\n break\n }\n\n var endIdx = str.indexOf(';', index);\n\n if (endIdx === -1) {\n endIdx = str.length;\n } else if (endIdx < eqIdx) {\n // backtrack on prior semicolon\n index = str.lastIndexOf(';', eqIdx - 1) + 1;\n continue\n }\n\n var key = str.slice(index, eqIdx).trim();\n\n // only assign once\n if (undefined === obj[key]) {\n var val = str.slice(eqIdx + 1, endIdx).trim();\n\n // quoted values\n if (val.charCodeAt(0) === 0x22) {\n val = val.slice(1, -1);\n }\n\n obj[key] = tryDecode(val, dec);\n }\n\n index = endIdx + 1;\n }\n\n return obj;\n}\n\n/**\n * Serialize data into a cookie header.\n *\n * Serialize the a name value pair into a cookie string suitable for\n * http headers. An optional options object specified cookie parameters.\n *\n * serialize('foo', 'bar', { httpOnly: true })\n * => \"foo=bar; httpOnly\"\n *\n * @param {string} name\n * @param {string} val\n * @param {object} [options]\n * @return {string}\n * @public\n */\n\nfunction serialize(name, val, options) {\n var opt = options || {};\n var enc = opt.encode || encode;\n\n if (typeof enc !== 'function') {\n throw new TypeError('option encode is invalid');\n }\n\n if (!fieldContentRegExp.test(name)) {\n throw new TypeError('argument name is invalid');\n }\n\n var value = enc(val);\n\n if (value && !fieldContentRegExp.test(value)) {\n throw new TypeError('argument val is invalid');\n }\n\n var str = name + '=' + value;\n\n if (null != opt.maxAge) {\n var maxAge = opt.maxAge - 0;\n\n if (isNaN(maxAge) || !isFinite(maxAge)) {\n throw new TypeError('option maxAge is invalid')\n }\n\n str += '; Max-Age=' + Math.floor(maxAge);\n }\n\n if (opt.domain) {\n if (!fieldContentRegExp.test(opt.domain)) {\n throw new TypeError('option domain is invalid');\n }\n\n str += '; Domain=' + opt.domain;\n }\n\n if (opt.path) {\n if (!fieldContentRegExp.test(opt.path)) {\n throw new TypeError('option path is invalid');\n }\n\n str += '; Path=' + opt.path;\n }\n\n if (opt.expires) {\n var expires = opt.expires;\n\n if (!isDate(expires) || isNaN(expires.valueOf())) {\n throw new TypeError('option expires is invalid');\n }\n\n str += '; Expires=' + expires.toUTCString();\n }\n\n if (opt.httpOnly) {\n str += '; HttpOnly';\n }\n\n if (opt.secure) {\n str += '; Secure';\n }\n\n if (opt.partitioned) {\n str += '; Partitioned';\n }\n\n if (opt.priority) {\n var priority = typeof opt.priority === 'string'\n ? opt.priority.toLowerCase()\n : opt.priority;\n\n switch (priority) {\n case 'low':\n str += '; Priority=Low';\n break\n case 'medium':\n str += '; Priority=Medium';\n break\n case 'high':\n str += '; Priority=High';\n break\n default:\n throw new TypeError('option priority is invalid')\n }\n }\n\n if (opt.sameSite) {\n var sameSite = typeof opt.sameSite === 'string'\n ? opt.sameSite.toLowerCase() : opt.sameSite;\n\n switch (sameSite) {\n case true:\n str += '; SameSite=Strict';\n break;\n case 'lax':\n str += '; SameSite=Lax';\n break;\n case 'strict':\n str += '; SameSite=Strict';\n break;\n case 'none':\n str += '; SameSite=None';\n break;\n default:\n throw new TypeError('option sameSite is invalid');\n }\n }\n\n return str;\n}\n\n/**\n * URL-decode string value. Optimized to skip native call when no %.\n *\n * @param {string} str\n * @returns {string}\n */\n\nfunction decode (str) {\n return str.indexOf('%') !== -1\n ? decodeURIComponent(str)\n : str\n}\n\n/**\n * URL-encode value.\n *\n * @param {string} val\n * @returns {string}\n */\n\nfunction encode (val) {\n return encodeURIComponent(val)\n}\n\n/**\n * Determine if value is a Date.\n *\n * @param {*} val\n * @private\n */\n\nfunction isDate (val) {\n return __toString.call(val) === '[object Date]' ||\n val instanceof Date\n}\n\n/**\n * Try decoding a string using a decoding function.\n *\n * @param {string} str\n * @param {function} decode\n * @private\n */\n\nfunction tryDecode(str, decode) {\n try {\n return decode(str);\n } catch (e) {\n return str;\n }\n}\n\nfunction hasDocumentCookie() {\n const testingValue = typeof global === 'undefined'\n ? undefined\n : global.TEST_HAS_DOCUMENT_COOKIE;\n if (typeof testingValue === 'boolean') {\n return testingValue;\n }\n // Can we get/set cookies on document.cookie?\n return typeof document === 'object' && typeof document.cookie === 'string';\n}\nfunction parseCookies(cookies) {\n if (typeof cookies === 'string') {\n return parse_1(cookies);\n }\n else if (typeof cookies === 'object' && cookies !== null) {\n return cookies;\n }\n else {\n return {};\n }\n}\nfunction readCookie(value, options = {}) {\n const cleanValue = cleanupCookieValue(value);\n if (!options.doNotParse) {\n try {\n return JSON.parse(cleanValue);\n }\n catch (e) {\n // At least we tried\n }\n }\n // Ignore clean value if we failed the deserialization\n // It is not relevant anymore to trim those values\n return value;\n}\nfunction cleanupCookieValue(value) {\n // express prepend j: before serializing a cookie\n if (value && value[0] === 'j' && value[1] === ':') {\n return value.substr(2);\n }\n return value;\n}\n\nclass Cookies {\n constructor(cookies, defaultSetOptions = {}) {\n this.changeListeners = [];\n this.HAS_DOCUMENT_COOKIE = false;\n this.update = () => {\n if (!this.HAS_DOCUMENT_COOKIE) {\n return;\n }\n const previousCookies = this.cookies;\n this.cookies = parse_1(document.cookie);\n this._checkChanges(previousCookies);\n };\n const domCookies = typeof document === 'undefined' ? '' : document.cookie;\n this.cookies = parseCookies(cookies || domCookies);\n this.defaultSetOptions = defaultSetOptions;\n this.HAS_DOCUMENT_COOKIE = hasDocumentCookie();\n }\n _emitChange(params) {\n for (let i = 0; i < this.changeListeners.length; ++i) {\n this.changeListeners[i](params);\n }\n }\n _checkChanges(previousCookies) {\n const names = new Set(Object.keys(previousCookies).concat(Object.keys(this.cookies)));\n names.forEach((name) => {\n if (previousCookies[name] !== this.cookies[name]) {\n this._emitChange({\n name,\n value: readCookie(this.cookies[name]),\n });\n }\n });\n }\n _startPolling() {\n this.pollingInterval = setInterval(this.update, 300);\n }\n _stopPolling() {\n if (this.pollingInterval) {\n clearInterval(this.pollingInterval);\n }\n }\n get(name, options = {}) {\n if (!options.doNotUpdate) {\n this.update();\n }\n return readCookie(this.cookies[name], options);\n }\n getAll(options = {}) {\n if (!options.doNotUpdate) {\n this.update();\n }\n const result = {};\n for (let name in this.cookies) {\n result[name] = readCookie(this.cookies[name], options);\n }\n return result;\n }\n set(name, value, options) {\n if (options) {\n options = Object.assign(Object.assign({}, this.defaultSetOptions), options);\n }\n else {\n options = this.defaultSetOptions;\n }\n const stringValue = typeof value === 'string' ? value : JSON.stringify(value);\n this.cookies = Object.assign(Object.assign({}, this.cookies), { [name]: stringValue });\n if (this.HAS_DOCUMENT_COOKIE) {\n document.cookie = serialize_1(name, stringValue, options);\n }\n this._emitChange({ name, value, options });\n }\n remove(name, options) {\n const finalOptions = (options = Object.assign(Object.assign(Object.assign({}, this.defaultSetOptions), options), { expires: new Date(1970, 1, 1, 0, 0, 1), maxAge: 0 }));\n this.cookies = Object.assign({}, this.cookies);\n delete this.cookies[name];\n if (this.HAS_DOCUMENT_COOKIE) {\n document.cookie = serialize_1(name, '', finalOptions);\n }\n this._emitChange({ name, value: undefined, options });\n }\n addChangeListener(callback) {\n this.changeListeners.push(callback);\n if (this.HAS_DOCUMENT_COOKIE && this.changeListeners.length === 1) {\n if (typeof window === 'object' && 'cookieStore' in window) {\n window.cookieStore.addEventListener('change', this.update);\n }\n else {\n this._startPolling();\n }\n }\n }\n removeChangeListener(callback) {\n const idx = this.changeListeners.indexOf(callback);\n if (idx >= 0) {\n this.changeListeners.splice(idx, 1);\n }\n if (this.HAS_DOCUMENT_COOKIE && this.changeListeners.length === 0) {\n if (typeof window === 'object' && 'cookieStore' in window) {\n window.cookieStore.removeEventListener('change', this.update);\n }\n else {\n this._stopPolling();\n }\n }\n }\n}\n\nexport { Cookies as default };\n","import Cookies from 'universal-cookie';\nexport { default as Cookies } from 'universal-cookie';\nimport * as React from 'react';\nimport { useContext, useState, useLayoutEffect, useMemo } from 'react';\n\nconst CookiesContext = React.createContext(new Cookies());\nconst { Provider, Consumer } = CookiesContext;\n\nclass CookiesProvider extends React.Component {\n constructor(props) {\n super(props);\n if (props.cookies) {\n this.cookies = props.cookies;\n }\n else {\n this.cookies = new Cookies(undefined, props.defaultSetOptions);\n }\n }\n render() {\n return React.createElement(Provider, { value: this.cookies }, this.props.children);\n }\n}\n\n/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise, SuppressedError, Symbol */\r\n\r\n\r\nfunction __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\ntypeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n var e = new Error(message);\r\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\n\nfunction getDefaultExportFromCjs (x) {\n\treturn x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;\n}\n\nvar reactIs$1 = {exports: {}};\n\nvar reactIs_production_min = {};\n\n/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar hasRequiredReactIs_production_min;\n\nfunction requireReactIs_production_min () {\n\tif (hasRequiredReactIs_production_min) return reactIs_production_min;\n\thasRequiredReactIs_production_min = 1;\nvar b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\n\tSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\n\tfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}reactIs_production_min.AsyncMode=l;reactIs_production_min.ConcurrentMode=m;reactIs_production_min.ContextConsumer=k;reactIs_production_min.ContextProvider=h;reactIs_production_min.Element=c;reactIs_production_min.ForwardRef=n;reactIs_production_min.Fragment=e;reactIs_production_min.Lazy=t;reactIs_production_min.Memo=r;reactIs_production_min.Portal=d;\n\treactIs_production_min.Profiler=g;reactIs_production_min.StrictMode=f;reactIs_production_min.Suspense=p;reactIs_production_min.isAsyncMode=function(a){return A(a)||z(a)===l};reactIs_production_min.isConcurrentMode=A;reactIs_production_min.isContextConsumer=function(a){return z(a)===k};reactIs_production_min.isContextProvider=function(a){return z(a)===h};reactIs_production_min.isElement=function(a){return \"object\"===typeof a&&null!==a&&a.$$typeof===c};reactIs_production_min.isForwardRef=function(a){return z(a)===n};reactIs_production_min.isFragment=function(a){return z(a)===e};reactIs_production_min.isLazy=function(a){return z(a)===t};\n\treactIs_production_min.isMemo=function(a){return z(a)===r};reactIs_production_min.isPortal=function(a){return z(a)===d};reactIs_production_min.isProfiler=function(a){return z(a)===g};reactIs_production_min.isStrictMode=function(a){return z(a)===f};reactIs_production_min.isSuspense=function(a){return z(a)===p};\n\treactIs_production_min.isValidElementType=function(a){return \"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};reactIs_production_min.typeOf=z;\n\treturn reactIs_production_min;\n}\n\nvar reactIs_development = {};\n\n/** @license React v16.13.1\n * react-is.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar hasRequiredReactIs_development;\n\nfunction requireReactIs_development () {\n\tif (hasRequiredReactIs_development) return reactIs_development;\n\thasRequiredReactIs_development = 1;\n\n\n\n\tif (process.env.NODE_ENV !== \"production\") {\n\t (function() {\n\n\t// The Symbol used to tag the ReactElement-like types. If there is no native Symbol\n\t// nor polyfill, then a plain number is used for performance.\n\tvar hasSymbol = typeof Symbol === 'function' && Symbol.for;\n\tvar REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7;\n\tvar REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca;\n\tvar REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb;\n\tvar REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc;\n\tvar REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2;\n\tvar REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd;\n\tvar REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace; // TODO: We don't use AsyncMode or ConcurrentMode anymore. They were temporary\n\t// (unstable) APIs that have been removed. Can we remove the symbols?\n\n\tvar REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf;\n\tvar REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf;\n\tvar REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;\n\tvar REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1;\n\tvar REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for('react.suspense_list') : 0xead8;\n\tvar REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;\n\tvar REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4;\n\tvar REACT_BLOCK_TYPE = hasSymbol ? Symbol.for('react.block') : 0xead9;\n\tvar REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for('react.fundamental') : 0xead5;\n\tvar REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for('react.responder') : 0xead6;\n\tvar REACT_SCOPE_TYPE = hasSymbol ? Symbol.for('react.scope') : 0xead7;\n\n\tfunction isValidElementType(type) {\n\t return typeof type === 'string' || typeof type === 'function' || // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill.\n\t type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_RESPONDER_TYPE || type.$$typeof === REACT_SCOPE_TYPE || type.$$typeof === REACT_BLOCK_TYPE);\n\t}\n\n\tfunction typeOf(object) {\n\t if (typeof object === 'object' && object !== null) {\n\t var $$typeof = object.$$typeof;\n\n\t switch ($$typeof) {\n\t case REACT_ELEMENT_TYPE:\n\t var type = object.type;\n\n\t switch (type) {\n\t case REACT_ASYNC_MODE_TYPE:\n\t case REACT_CONCURRENT_MODE_TYPE:\n\t case REACT_FRAGMENT_TYPE:\n\t case REACT_PROFILER_TYPE:\n\t case REACT_STRICT_MODE_TYPE:\n\t case REACT_SUSPENSE_TYPE:\n\t return type;\n\n\t default:\n\t var $$typeofType = type && type.$$typeof;\n\n\t switch ($$typeofType) {\n\t case REACT_CONTEXT_TYPE:\n\t case REACT_FORWARD_REF_TYPE:\n\t case REACT_LAZY_TYPE:\n\t case REACT_MEMO_TYPE:\n\t case REACT_PROVIDER_TYPE:\n\t return $$typeofType;\n\n\t default:\n\t return $$typeof;\n\t }\n\n\t }\n\n\t case REACT_PORTAL_TYPE:\n\t return $$typeof;\n\t }\n\t }\n\n\t return undefined;\n\t} // AsyncMode is deprecated along with isAsyncMode\n\n\tvar AsyncMode = REACT_ASYNC_MODE_TYPE;\n\tvar ConcurrentMode = REACT_CONCURRENT_MODE_TYPE;\n\tvar ContextConsumer = REACT_CONTEXT_TYPE;\n\tvar ContextProvider = REACT_PROVIDER_TYPE;\n\tvar Element = REACT_ELEMENT_TYPE;\n\tvar ForwardRef = REACT_FORWARD_REF_TYPE;\n\tvar Fragment = REACT_FRAGMENT_TYPE;\n\tvar Lazy = REACT_LAZY_TYPE;\n\tvar Memo = REACT_MEMO_TYPE;\n\tvar Portal = REACT_PORTAL_TYPE;\n\tvar Profiler = REACT_PROFILER_TYPE;\n\tvar StrictMode = REACT_STRICT_MODE_TYPE;\n\tvar Suspense = REACT_SUSPENSE_TYPE;\n\tvar hasWarnedAboutDeprecatedIsAsyncMode = false; // AsyncMode should be deprecated\n\n\tfunction isAsyncMode(object) {\n\t {\n\t if (!hasWarnedAboutDeprecatedIsAsyncMode) {\n\t hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint\n\n\t console['warn']('The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactIs.isConcurrentMode() instead. It has the exact same API.');\n\t }\n\t }\n\n\t return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE;\n\t}\n\tfunction isConcurrentMode(object) {\n\t return typeOf(object) === REACT_CONCURRENT_MODE_TYPE;\n\t}\n\tfunction isContextConsumer(object) {\n\t return typeOf(object) === REACT_CONTEXT_TYPE;\n\t}\n\tfunction isContextProvider(object) {\n\t return typeOf(object) === REACT_PROVIDER_TYPE;\n\t}\n\tfunction isElement(object) {\n\t return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n\t}\n\tfunction isForwardRef(object) {\n\t return typeOf(object) === REACT_FORWARD_REF_TYPE;\n\t}\n\tfunction isFragment(object) {\n\t return typeOf(object) === REACT_FRAGMENT_TYPE;\n\t}\n\tfunction isLazy(object) {\n\t return typeOf(object) === REACT_LAZY_TYPE;\n\t}\n\tfunction isMemo(object) {\n\t return typeOf(object) === REACT_MEMO_TYPE;\n\t}\n\tfunction isPortal(object) {\n\t return typeOf(object) === REACT_PORTAL_TYPE;\n\t}\n\tfunction isProfiler(object) {\n\t return typeOf(object) === REACT_PROFILER_TYPE;\n\t}\n\tfunction isStrictMode(object) {\n\t return typeOf(object) === REACT_STRICT_MODE_TYPE;\n\t}\n\tfunction isSuspense(object) {\n\t return typeOf(object) === REACT_SUSPENSE_TYPE;\n\t}\n\n\treactIs_development.AsyncMode = AsyncMode;\n\treactIs_development.ConcurrentMode = ConcurrentMode;\n\treactIs_development.ContextConsumer = ContextConsumer;\n\treactIs_development.ContextProvider = ContextProvider;\n\treactIs_development.Element = Element;\n\treactIs_development.ForwardRef = ForwardRef;\n\treactIs_development.Fragment = Fragment;\n\treactIs_development.Lazy = Lazy;\n\treactIs_development.Memo = Memo;\n\treactIs_development.Portal = Portal;\n\treactIs_development.Profiler = Profiler;\n\treactIs_development.StrictMode = StrictMode;\n\treactIs_development.Suspense = Suspense;\n\treactIs_development.isAsyncMode = isAsyncMode;\n\treactIs_development.isConcurrentMode = isConcurrentMode;\n\treactIs_development.isContextConsumer = isContextConsumer;\n\treactIs_development.isContextProvider = isContextProvider;\n\treactIs_development.isElement = isElement;\n\treactIs_development.isForwardRef = isForwardRef;\n\treactIs_development.isFragment = isFragment;\n\treactIs_development.isLazy = isLazy;\n\treactIs_development.isMemo = isMemo;\n\treactIs_development.isPortal = isPortal;\n\treactIs_development.isProfiler = isProfiler;\n\treactIs_development.isStrictMode = isStrictMode;\n\treactIs_development.isSuspense = isSuspense;\n\treactIs_development.isValidElementType = isValidElementType;\n\treactIs_development.typeOf = typeOf;\n\t })();\n\t}\n\treturn reactIs_development;\n}\n\nif (process.env.NODE_ENV === 'production') {\n reactIs$1.exports = requireReactIs_production_min();\n} else {\n reactIs$1.exports = requireReactIs_development();\n}\n\nvar reactIsExports = reactIs$1.exports;\n\nvar reactIs = reactIsExports;\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\nvar FORWARD_REF_STATICS = {\n '$$typeof': true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true\n};\nvar MEMO_STATICS = {\n '$$typeof': true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true\n};\nvar TYPE_STATICS = {};\nTYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;\nTYPE_STATICS[reactIs.Memo] = MEMO_STATICS;\n\nfunction getStatics(component) {\n // React v16.11 and below\n if (reactIs.isMemo(component)) {\n return MEMO_STATICS;\n } // React v16.12 and above\n\n\n return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n var targetStatics = getStatics(targetComponent);\n var sourceStatics = getStatics(sourceComponent);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n\n if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n }\n\n return targetComponent;\n}\n\nvar hoistNonReactStatics_cjs = hoistNonReactStatics;\n\nvar hoistStatics = /*@__PURE__*/getDefaultExportFromCjs(hoistNonReactStatics_cjs);\n\nfunction withCookies(WrappedComponent) {\n // @ts-ignore\n const name = WrappedComponent.displayName || WrappedComponent.name;\n class CookieWrapper extends React.Component {\n constructor() {\n super(...arguments);\n this.onChange = () => {\n // Make sure to update children with new values\n this.forceUpdate();\n };\n }\n listen() {\n this.props.cookies.addChangeListener(this.onChange);\n }\n unlisten(cookies) {\n (cookies || this.props.cookies).removeChangeListener(this.onChange);\n }\n componentDidMount() {\n this.listen();\n }\n componentDidUpdate(prevProps) {\n if (prevProps.cookies !== this.props.cookies) {\n this.unlisten(prevProps.cookies);\n this.listen();\n }\n }\n componentWillUnmount() {\n this.unlisten();\n }\n render() {\n const _a = this.props, { forwardedRef, cookies } = _a, restProps = __rest(_a, [\"forwardedRef\", \"cookies\"]);\n const allCookies = cookies.getAll({ doNotUpdate: true });\n return (React.createElement(WrappedComponent, Object.assign({}, restProps, { ref: forwardedRef, cookies: cookies, allCookies: allCookies })));\n }\n }\n CookieWrapper.displayName = `withCookies(${name})`;\n CookieWrapper.WrappedComponent = WrappedComponent;\n const ForwardedComponent = React.forwardRef((props, ref) => {\n return (React.createElement(Consumer, null, (cookies) => (React.createElement(CookieWrapper, Object.assign({ cookies: cookies }, props, { forwardedRef: ref })))));\n });\n ForwardedComponent.displayName = CookieWrapper.displayName;\n ForwardedComponent.WrappedComponent = CookieWrapper.WrappedComponent;\n return hoistStatics(ForwardedComponent, WrappedComponent);\n}\n\nfunction isInBrowser() {\n return (typeof window !== 'undefined' &&\n typeof window.document !== 'undefined' &&\n typeof window.document.createElement !== 'undefined');\n}\n\nfunction useCookies(dependencies, options) {\n const cookies = useContext(CookiesContext);\n if (!cookies) {\n throw new Error('Missing ');\n }\n const defaultOptions = { doNotUpdate: true };\n const getOptions = Object.assign(Object.assign({}, defaultOptions), options);\n const [allCookies, setCookies] = useState(() => cookies.getAll(getOptions));\n if (isInBrowser()) {\n useLayoutEffect(() => {\n function onChange() {\n const newCookies = cookies.getAll(getOptions);\n if (shouldUpdate(dependencies || null, newCookies, allCookies)) {\n setCookies(newCookies);\n }\n }\n cookies.addChangeListener(onChange);\n return () => {\n cookies.removeChangeListener(onChange);\n };\n }, [cookies, allCookies]);\n }\n const setCookie = useMemo(() => cookies.set.bind(cookies), [cookies]);\n const removeCookie = useMemo(() => cookies.remove.bind(cookies), [cookies]);\n const updateCookies = useMemo(() => cookies.update.bind(cookies), [cookies]);\n return [allCookies, setCookie, removeCookie, updateCookies];\n}\nfunction shouldUpdate(dependencies, newCookies, oldCookies) {\n if (!dependencies) {\n return true;\n }\n for (let dependency of dependencies) {\n if (newCookies[dependency] !== oldCookies[dependency]) {\n return true;\n }\n }\n return false;\n}\n\nexport { CookiesProvider, useCookies, withCookies };\n","/**\n * @typedef Options\n * Configuration for `stringify`.\n * @property {boolean} [padLeft=true]\n * Whether to pad a space before a token.\n * @property {boolean} [padRight=false]\n * Whether to pad a space after a token.\n */\n\n/**\n * @typedef {Options} StringifyOptions\n * Please use `StringifyOptions` instead.\n */\n\n/**\n * Parse comma-separated tokens to an array.\n *\n * @param {string} value\n * Comma-separated tokens.\n * @returns {Array}\n * List of tokens.\n */\nexport function parse(value) {\n /** @type {Array} */\n const tokens = []\n const input = String(value || '')\n let index = input.indexOf(',')\n let start = 0\n /** @type {boolean} */\n let end = false\n\n while (!end) {\n if (index === -1) {\n index = input.length\n end = true\n }\n\n const token = input.slice(start, index).trim()\n\n if (token || !end) {\n tokens.push(token)\n }\n\n start = index + 1\n index = input.indexOf(',', start)\n }\n\n return tokens\n}\n\n/**\n * Serialize an array of strings or numbers to comma-separated tokens.\n *\n * @param {Array} values\n * List of tokens.\n * @param {Options} [options]\n * Configuration for `stringify` (optional).\n * @returns {string}\n * Comma-separated tokens.\n */\nexport function stringify(values, options) {\n const settings = options || {}\n\n // Ensure the last empty entry is seen.\n const input = values[values.length - 1] === '' ? [...values, ''] : values\n\n return input\n .join(\n (settings.padRight ? ' ' : '') +\n ',' +\n (settings.padLeft === false ? '' : ' ')\n )\n .trim()\n}\n","/**\n * @typedef Options\n * Configuration.\n * @property {boolean | null | undefined} [jsx=false]\n * Support JSX identifiers (default: `false`).\n */\n\nconst startRe = /[$_\\p{ID_Start}]/u\nconst contRe = /[$_\\u{200C}\\u{200D}\\p{ID_Continue}]/u\nconst contReJsx = /[-$_\\u{200C}\\u{200D}\\p{ID_Continue}]/u\nconst nameRe = /^[$_\\p{ID_Start}][$_\\u{200C}\\u{200D}\\p{ID_Continue}]*$/u\nconst nameReJsx = /^[$_\\p{ID_Start}][-$_\\u{200C}\\u{200D}\\p{ID_Continue}]*$/u\n\n/** @type {Options} */\nconst emptyOptions = {}\n\n/**\n * Checks if the given code point can start an identifier.\n *\n * @param {number | undefined} code\n * Code point to check.\n * @returns {boolean}\n * Whether `code` can start an identifier.\n */\n// Note: `undefined` is supported so you can pass the result from `''.codePointAt`.\nexport function start(code) {\n return code ? startRe.test(String.fromCodePoint(code)) : false\n}\n\n/**\n * Checks if the given code point can continue an identifier.\n *\n * @param {number | undefined} code\n * Code point to check.\n * @param {Options | null | undefined} [options]\n * Configuration (optional).\n * @returns {boolean}\n * Whether `code` can continue an identifier.\n */\n// Note: `undefined` is supported so you can pass the result from `''.codePointAt`.\nexport function cont(code, options) {\n const settings = options || emptyOptions\n const re = settings.jsx ? contReJsx : contRe\n return code ? re.test(String.fromCodePoint(code)) : false\n}\n\n/**\n * Checks if the given value is a valid identifier name.\n *\n * @param {string} name\n * Identifier to check.\n * @param {Options | null | undefined} [options]\n * Configuration (optional).\n * @returns {boolean}\n * Whether `name` can be an identifier.\n */\nexport function name(name, options) {\n const settings = options || emptyOptions\n const re = settings.jsx ? nameReJsx : nameRe\n return re.test(name)\n}\n","/**\n * @typedef {import('hast').Nodes} Nodes\n */\n\n// HTML whitespace expression.\n// See .\nconst re = /[ \\t\\n\\f\\r]/g\n\n/**\n * Check if the given value is *inter-element whitespace*.\n *\n * @param {Nodes | string} thing\n * Thing to check (`Node` or `string`).\n * @returns {boolean}\n * Whether the `value` is inter-element whitespace (`boolean`): consisting of\n * zero or more of space, tab (`\\t`), line feed (`\\n`), carriage return\n * (`\\r`), or form feed (`\\f`); if a node is passed it must be a `Text` node,\n * whose `value` field is checked.\n */\nexport function whitespace(thing) {\n return typeof thing === 'object'\n ? thing.type === 'text'\n ? empty(thing.value)\n : false\n : empty(thing)\n}\n\n/**\n * @param {string} value\n * @returns {boolean}\n */\nfunction empty(value) {\n return value.replace(re, '') === ''\n}\n","/**\n * @typedef {import('./info.js').Info} Info\n * @typedef {Record} Properties\n * @typedef {Record} Normal\n */\n\nexport class Schema {\n /**\n * @constructor\n * @param {Properties} property\n * @param {Normal} normal\n * @param {string} [space]\n */\n constructor(property, normal, space) {\n this.property = property\n this.normal = normal\n if (space) {\n this.space = space\n }\n }\n}\n\n/** @type {Properties} */\nSchema.prototype.property = {}\n/** @type {Normal} */\nSchema.prototype.normal = {}\n/** @type {string|null} */\nSchema.prototype.space = null\n","/**\n * @typedef {import('./schema.js').Properties} Properties\n * @typedef {import('./schema.js').Normal} Normal\n */\n\nimport {Schema} from './schema.js'\n\n/**\n * @param {Schema[]} definitions\n * @param {string} [space]\n * @returns {Schema}\n */\nexport function merge(definitions, space) {\n /** @type {Properties} */\n const property = {}\n /** @type {Normal} */\n const normal = {}\n let index = -1\n\n while (++index < definitions.length) {\n Object.assign(property, definitions[index].property)\n Object.assign(normal, definitions[index].normal)\n }\n\n return new Schema(property, normal, space)\n}\n","/**\n * @param {string} value\n * @returns {string}\n */\nexport function normalize(value) {\n return value.toLowerCase()\n}\n","export class Info {\n /**\n * @constructor\n * @param {string} property\n * @param {string} attribute\n */\n constructor(property, attribute) {\n /** @type {string} */\n this.property = property\n /** @type {string} */\n this.attribute = attribute\n }\n}\n\n/** @type {string|null} */\nInfo.prototype.space = null\nInfo.prototype.boolean = false\nInfo.prototype.booleanish = false\nInfo.prototype.overloadedBoolean = false\nInfo.prototype.number = false\nInfo.prototype.commaSeparated = false\nInfo.prototype.spaceSeparated = false\nInfo.prototype.commaOrSpaceSeparated = false\nInfo.prototype.mustUseProperty = false\nInfo.prototype.defined = false\n","let powers = 0\n\nexport const boolean = increment()\nexport const booleanish = increment()\nexport const overloadedBoolean = increment()\nexport const number = increment()\nexport const spaceSeparated = increment()\nexport const commaSeparated = increment()\nexport const commaOrSpaceSeparated = increment()\n\nfunction increment() {\n return 2 ** ++powers\n}\n","import {Info} from './info.js'\nimport * as types from './types.js'\n\n/** @type {Array} */\n// @ts-expect-error: hush.\nconst checks = Object.keys(types)\n\nexport class DefinedInfo extends Info {\n /**\n * @constructor\n * @param {string} property\n * @param {string} attribute\n * @param {number|null} [mask]\n * @param {string} [space]\n */\n constructor(property, attribute, mask, space) {\n let index = -1\n\n super(property, attribute)\n\n mark(this, 'space', space)\n\n if (typeof mask === 'number') {\n while (++index < checks.length) {\n const check = checks[index]\n mark(this, checks[index], (mask & types[check]) === types[check])\n }\n }\n }\n}\n\nDefinedInfo.prototype.defined = true\n\n/**\n * @param {DefinedInfo} values\n * @param {string} key\n * @param {unknown} value\n */\nfunction mark(values, key, value) {\n if (value) {\n // @ts-expect-error: assume `value` matches the expected value of `key`.\n values[key] = value\n }\n}\n","/**\n * @typedef {import('./schema.js').Properties} Properties\n * @typedef {import('./schema.js').Normal} Normal\n *\n * @typedef {Record} Attributes\n *\n * @typedef {Object} Definition\n * @property {Record} properties\n * @property {(attributes: Attributes, property: string) => string} transform\n * @property {string} [space]\n * @property {Attributes} [attributes]\n * @property {Array} [mustUseProperty]\n */\n\nimport {normalize} from '../normalize.js'\nimport {Schema} from './schema.js'\nimport {DefinedInfo} from './defined-info.js'\n\nconst own = {}.hasOwnProperty\n\n/**\n * @param {Definition} definition\n * @returns {Schema}\n */\nexport function create(definition) {\n /** @type {Properties} */\n const property = {}\n /** @type {Normal} */\n const normal = {}\n /** @type {string} */\n let prop\n\n for (prop in definition.properties) {\n if (own.call(definition.properties, prop)) {\n const value = definition.properties[prop]\n const info = new DefinedInfo(\n prop,\n definition.transform(definition.attributes || {}, prop),\n value,\n definition.space\n )\n\n if (\n definition.mustUseProperty &&\n definition.mustUseProperty.includes(prop)\n ) {\n info.mustUseProperty = true\n }\n\n property[prop] = info\n\n normal[normalize(prop)] = prop\n normal[normalize(info.attribute)] = prop\n }\n }\n\n return new Schema(property, normal, definition.space)\n}\n","import {create} from './util/create.js'\n\nexport const xlink = create({\n space: 'xlink',\n transform(_, prop) {\n return 'xlink:' + prop.slice(5).toLowerCase()\n },\n properties: {\n xLinkActuate: null,\n xLinkArcRole: null,\n xLinkHref: null,\n xLinkRole: null,\n xLinkShow: null,\n xLinkTitle: null,\n xLinkType: null\n }\n})\n","import {create} from './util/create.js'\n\nexport const xml = create({\n space: 'xml',\n transform(_, prop) {\n return 'xml:' + prop.slice(3).toLowerCase()\n },\n properties: {xmlLang: null, xmlBase: null, xmlSpace: null}\n})\n","/**\n * @param {Record} attributes\n * @param {string} attribute\n * @returns {string}\n */\nexport function caseSensitiveTransform(attributes, attribute) {\n return attribute in attributes ? attributes[attribute] : attribute\n}\n","import {caseSensitiveTransform} from './case-sensitive-transform.js'\n\n/**\n * @param {Record} attributes\n * @param {string} property\n * @returns {string}\n */\nexport function caseInsensitiveTransform(attributes, property) {\n return caseSensitiveTransform(attributes, property.toLowerCase())\n}\n","import {create} from './util/create.js'\nimport {caseInsensitiveTransform} from './util/case-insensitive-transform.js'\n\nexport const xmlns = create({\n space: 'xmlns',\n attributes: {xmlnsxlink: 'xmlns:xlink'},\n transform: caseInsensitiveTransform,\n properties: {xmlns: null, xmlnsXLink: null}\n})\n","import {booleanish, number, spaceSeparated} from './util/types.js'\nimport {create} from './util/create.js'\n\nexport const aria = create({\n transform(_, prop) {\n return prop === 'role' ? prop : 'aria-' + prop.slice(4).toLowerCase()\n },\n properties: {\n ariaActiveDescendant: null,\n ariaAtomic: booleanish,\n ariaAutoComplete: null,\n ariaBusy: booleanish,\n ariaChecked: booleanish,\n ariaColCount: number,\n ariaColIndex: number,\n ariaColSpan: number,\n ariaControls: spaceSeparated,\n ariaCurrent: null,\n ariaDescribedBy: spaceSeparated,\n ariaDetails: null,\n ariaDisabled: booleanish,\n ariaDropEffect: spaceSeparated,\n ariaErrorMessage: null,\n ariaExpanded: booleanish,\n ariaFlowTo: spaceSeparated,\n ariaGrabbed: booleanish,\n ariaHasPopup: null,\n ariaHidden: booleanish,\n ariaInvalid: null,\n ariaKeyShortcuts: null,\n ariaLabel: null,\n ariaLabelledBy: spaceSeparated,\n ariaLevel: number,\n ariaLive: null,\n ariaModal: booleanish,\n ariaMultiLine: booleanish,\n ariaMultiSelectable: booleanish,\n ariaOrientation: null,\n ariaOwns: spaceSeparated,\n ariaPlaceholder: null,\n ariaPosInSet: number,\n ariaPressed: booleanish,\n ariaReadOnly: booleanish,\n ariaRelevant: null,\n ariaRequired: booleanish,\n ariaRoleDescription: spaceSeparated,\n ariaRowCount: number,\n ariaRowIndex: number,\n ariaRowSpan: number,\n ariaSelected: booleanish,\n ariaSetSize: number,\n ariaSort: null,\n ariaValueMax: number,\n ariaValueMin: number,\n ariaValueNow: number,\n ariaValueText: null,\n role: null\n }\n})\n","import {\n boolean,\n overloadedBoolean,\n booleanish,\n number,\n spaceSeparated,\n commaSeparated\n} from './util/types.js'\nimport {create} from './util/create.js'\nimport {caseInsensitiveTransform} from './util/case-insensitive-transform.js'\n\nexport const html = create({\n space: 'html',\n attributes: {\n acceptcharset: 'accept-charset',\n classname: 'class',\n htmlfor: 'for',\n httpequiv: 'http-equiv'\n },\n transform: caseInsensitiveTransform,\n mustUseProperty: ['checked', 'multiple', 'muted', 'selected'],\n properties: {\n // Standard Properties.\n abbr: null,\n accept: commaSeparated,\n acceptCharset: spaceSeparated,\n accessKey: spaceSeparated,\n action: null,\n allow: null,\n allowFullScreen: boolean,\n allowPaymentRequest: boolean,\n allowUserMedia: boolean,\n alt: null,\n as: null,\n async: boolean,\n autoCapitalize: null,\n autoComplete: spaceSeparated,\n autoFocus: boolean,\n autoPlay: boolean,\n blocking: spaceSeparated,\n capture: null,\n charSet: null,\n checked: boolean,\n cite: null,\n className: spaceSeparated,\n cols: number,\n colSpan: null,\n content: null,\n contentEditable: booleanish,\n controls: boolean,\n controlsList: spaceSeparated,\n coords: number | commaSeparated,\n crossOrigin: null,\n data: null,\n dateTime: null,\n decoding: null,\n default: boolean,\n defer: boolean,\n dir: null,\n dirName: null,\n disabled: boolean,\n download: overloadedBoolean,\n draggable: booleanish,\n encType: null,\n enterKeyHint: null,\n fetchPriority: null,\n form: null,\n formAction: null,\n formEncType: null,\n formMethod: null,\n formNoValidate: boolean,\n formTarget: null,\n headers: spaceSeparated,\n height: number,\n hidden: boolean,\n high: number,\n href: null,\n hrefLang: null,\n htmlFor: spaceSeparated,\n httpEquiv: spaceSeparated,\n id: null,\n imageSizes: null,\n imageSrcSet: null,\n inert: boolean,\n inputMode: null,\n integrity: null,\n is: null,\n isMap: boolean,\n itemId: null,\n itemProp: spaceSeparated,\n itemRef: spaceSeparated,\n itemScope: boolean,\n itemType: spaceSeparated,\n kind: null,\n label: null,\n lang: null,\n language: null,\n list: null,\n loading: null,\n loop: boolean,\n low: number,\n manifest: null,\n max: null,\n maxLength: number,\n media: null,\n method: null,\n min: null,\n minLength: number,\n multiple: boolean,\n muted: boolean,\n name: null,\n nonce: null,\n noModule: boolean,\n noValidate: boolean,\n onAbort: null,\n onAfterPrint: null,\n onAuxClick: null,\n onBeforeMatch: null,\n onBeforePrint: null,\n onBeforeToggle: null,\n onBeforeUnload: null,\n onBlur: null,\n onCancel: null,\n onCanPlay: null,\n onCanPlayThrough: null,\n onChange: null,\n onClick: null,\n onClose: null,\n onContextLost: null,\n onContextMenu: null,\n onContextRestored: null,\n onCopy: null,\n onCueChange: null,\n onCut: null,\n onDblClick: null,\n onDrag: null,\n onDragEnd: null,\n onDragEnter: null,\n onDragExit: null,\n onDragLeave: null,\n onDragOver: null,\n onDragStart: null,\n onDrop: null,\n onDurationChange: null,\n onEmptied: null,\n onEnded: null,\n onError: null,\n onFocus: null,\n onFormData: null,\n onHashChange: null,\n onInput: null,\n onInvalid: null,\n onKeyDown: null,\n onKeyPress: null,\n onKeyUp: null,\n onLanguageChange: null,\n onLoad: null,\n onLoadedData: null,\n onLoadedMetadata: null,\n onLoadEnd: null,\n onLoadStart: null,\n onMessage: null,\n onMessageError: null,\n onMouseDown: null,\n onMouseEnter: null,\n onMouseLeave: null,\n onMouseMove: null,\n onMouseOut: null,\n onMouseOver: null,\n onMouseUp: null,\n onOffline: null,\n onOnline: null,\n onPageHide: null,\n onPageShow: null,\n onPaste: null,\n onPause: null,\n onPlay: null,\n onPlaying: null,\n onPopState: null,\n onProgress: null,\n onRateChange: null,\n onRejectionHandled: null,\n onReset: null,\n onResize: null,\n onScroll: null,\n onScrollEnd: null,\n onSecurityPolicyViolation: null,\n onSeeked: null,\n onSeeking: null,\n onSelect: null,\n onSlotChange: null,\n onStalled: null,\n onStorage: null,\n onSubmit: null,\n onSuspend: null,\n onTimeUpdate: null,\n onToggle: null,\n onUnhandledRejection: null,\n onUnload: null,\n onVolumeChange: null,\n onWaiting: null,\n onWheel: null,\n open: boolean,\n optimum: number,\n pattern: null,\n ping: spaceSeparated,\n placeholder: null,\n playsInline: boolean,\n popover: null,\n popoverTarget: null,\n popoverTargetAction: null,\n poster: null,\n preload: null,\n readOnly: boolean,\n referrerPolicy: null,\n rel: spaceSeparated,\n required: boolean,\n reversed: boolean,\n rows: number,\n rowSpan: number,\n sandbox: spaceSeparated,\n scope: null,\n scoped: boolean,\n seamless: boolean,\n selected: boolean,\n shadowRootClonable: boolean,\n shadowRootDelegatesFocus: boolean,\n shadowRootMode: null,\n shape: null,\n size: number,\n sizes: null,\n slot: null,\n span: number,\n spellCheck: booleanish,\n src: null,\n srcDoc: null,\n srcLang: null,\n srcSet: null,\n start: number,\n step: null,\n style: null,\n tabIndex: number,\n target: null,\n title: null,\n translate: null,\n type: null,\n typeMustMatch: boolean,\n useMap: null,\n value: booleanish,\n width: number,\n wrap: null,\n writingSuggestions: null,\n\n // Legacy.\n // See: https://html.spec.whatwg.org/#other-elements,-attributes-and-apis\n align: null, // Several. Use CSS `text-align` instead,\n aLink: null, // ``. Use CSS `a:active {color}` instead\n archive: spaceSeparated, // ``. List of URIs to archives\n axis: null, // `` and ``. Use `scope` on ``\n background: null, // ``. Use CSS `background-image` instead\n bgColor: null, // `` and table elements. Use CSS `background-color` instead\n border: number, // ``. Use CSS `border-width` instead,\n borderColor: null, // `
`. Use CSS `border-color` instead,\n bottomMargin: number, // ``\n cellPadding: null, // `
`\n cellSpacing: null, // `
`\n char: null, // Several table elements. When `align=char`, sets the character to align on\n charOff: null, // Several table elements. When `char`, offsets the alignment\n classId: null, // ``\n clear: null, // `
`. Use CSS `clear` instead\n code: null, // ``\n codeBase: null, // ``\n codeType: null, // ``\n color: null, // `` and `
`. Use CSS instead\n compact: boolean, // Lists. Use CSS to reduce space between items instead\n declare: boolean, // ``\n event: null, // `\n * ^\n * ```\n *\n * @type {State}\n */\n function continuationRawTagOpen(code) {\n if (code === 47) {\n effects.consume(code);\n buffer = '';\n return continuationRawEndTag;\n }\n return continuation(code);\n }\n\n /**\n * In raw continuation, after ` | \n * ^^^^^^\n * ```\n *\n * @type {State}\n */\n function continuationRawEndTag(code) {\n if (code === 62) {\n const name = buffer.toLowerCase();\n if (htmlRawNames.includes(name)) {\n effects.consume(code);\n return continuationClose;\n }\n return continuation(code);\n }\n if (asciiAlpha(code) && buffer.length < 8) {\n effects.consume(code);\n // @ts-expect-error: not null.\n buffer += String.fromCharCode(code);\n return continuationRawEndTag;\n }\n return continuation(code);\n }\n\n /**\n * In cdata continuation, after `]`, expecting `]>`.\n *\n * ```markdown\n * > | &<]]>\n * ^\n * ```\n *\n * @type {State}\n */\n function continuationCdataInside(code) {\n if (code === 93) {\n effects.consume(code);\n return continuationDeclarationInside;\n }\n return continuation(code);\n }\n\n /**\n * In declaration or instruction continuation, at `>`.\n *\n * ```markdown\n * > | \n * ^\n * > | \n * ^\n * > | \n * ^\n * > | \n * ^\n * > | &<]]>\n * ^\n * ```\n *\n * @type {State}\n */\n function continuationDeclarationInside(code) {\n if (code === 62) {\n effects.consume(code);\n return continuationClose;\n }\n\n // More dashes.\n if (code === 45 && marker === 2) {\n effects.consume(code);\n return continuationDeclarationInside;\n }\n return continuation(code);\n }\n\n /**\n * In closed continuation: everything we get until the eol/eof is part of it.\n *\n * ```markdown\n * > | \n * ^\n * ```\n *\n * @type {State}\n */\n function continuationClose(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit(\"htmlFlowData\");\n return continuationAfter(code);\n }\n effects.consume(code);\n return continuationClose;\n }\n\n /**\n * Done.\n *\n * ```markdown\n * > | \n * ^\n * ```\n *\n * @type {State}\n */\n function continuationAfter(code) {\n effects.exit(\"htmlFlow\");\n // // Feel free to interrupt.\n // tokenizer.interrupt = false\n // // No longer concrete.\n // tokenizer.concrete = false\n return ok(code);\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeNonLazyContinuationStart(effects, ok, nok) {\n const self = this;\n return start;\n\n /**\n * At eol, before continuation.\n *\n * ```markdown\n * > | * ```js\n * ^\n * | b\n * ```\n *\n * @type {State}\n */\n function start(code) {\n if (markdownLineEnding(code)) {\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n return after;\n }\n return nok(code);\n }\n\n /**\n * A continuation.\n *\n * ```markdown\n * | * ```js\n * > | b\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n return self.parser.lazy[self.now().line] ? nok(code) : ok(code);\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeBlankLineBefore(effects, ok, nok) {\n return start;\n\n /**\n * Before eol, expecting blank line.\n *\n * ```markdown\n * > |
\n * ^\n * |\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n return effects.attempt(blankLine, ok, nok);\n }\n}","/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { markdownLineEnding, markdownSpace } from 'micromark-util-character';\n/** @type {Construct} */\nconst nonLazyContinuation = {\n tokenize: tokenizeNonLazyContinuation,\n partial: true\n};\n\n/** @type {Construct} */\nexport const codeFenced = {\n name: 'codeFenced',\n tokenize: tokenizeCodeFenced,\n concrete: true\n};\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeCodeFenced(effects, ok, nok) {\n const self = this;\n /** @type {Construct} */\n const closeStart = {\n tokenize: tokenizeCloseStart,\n partial: true\n };\n let initialPrefix = 0;\n let sizeOpen = 0;\n /** @type {NonNullable} */\n let marker;\n return start;\n\n /**\n * Start of code.\n *\n * ```markdown\n * > | ~~~js\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function start(code) {\n // To do: parse whitespace like `markdown-rs`.\n return beforeSequenceOpen(code);\n }\n\n /**\n * In opening fence, after prefix, at sequence.\n *\n * ```markdown\n * > | ~~~js\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function beforeSequenceOpen(code) {\n const tail = self.events[self.events.length - 1];\n initialPrefix = tail && tail[1].type === \"linePrefix\" ? tail[2].sliceSerialize(tail[1], true).length : 0;\n marker = code;\n effects.enter(\"codeFenced\");\n effects.enter(\"codeFencedFence\");\n effects.enter(\"codeFencedFenceSequence\");\n return sequenceOpen(code);\n }\n\n /**\n * In opening fence sequence.\n *\n * ```markdown\n * > | ~~~js\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function sequenceOpen(code) {\n if (code === marker) {\n sizeOpen++;\n effects.consume(code);\n return sequenceOpen;\n }\n if (sizeOpen < 3) {\n return nok(code);\n }\n effects.exit(\"codeFencedFenceSequence\");\n return markdownSpace(code) ? factorySpace(effects, infoBefore, \"whitespace\")(code) : infoBefore(code);\n }\n\n /**\n * In opening fence, after the sequence (and optional whitespace), before info.\n *\n * ```markdown\n * > | ~~~js\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function infoBefore(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit(\"codeFencedFence\");\n return self.interrupt ? ok(code) : effects.check(nonLazyContinuation, atNonLazyBreak, after)(code);\n }\n effects.enter(\"codeFencedFenceInfo\");\n effects.enter(\"chunkString\", {\n contentType: \"string\"\n });\n return info(code);\n }\n\n /**\n * In info.\n *\n * ```markdown\n * > | ~~~js\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function info(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit(\"chunkString\");\n effects.exit(\"codeFencedFenceInfo\");\n return infoBefore(code);\n }\n if (markdownSpace(code)) {\n effects.exit(\"chunkString\");\n effects.exit(\"codeFencedFenceInfo\");\n return factorySpace(effects, metaBefore, \"whitespace\")(code);\n }\n if (code === 96 && code === marker) {\n return nok(code);\n }\n effects.consume(code);\n return info;\n }\n\n /**\n * In opening fence, after info and whitespace, before meta.\n *\n * ```markdown\n * > | ~~~js eval\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function metaBefore(code) {\n if (code === null || markdownLineEnding(code)) {\n return infoBefore(code);\n }\n effects.enter(\"codeFencedFenceMeta\");\n effects.enter(\"chunkString\", {\n contentType: \"string\"\n });\n return meta(code);\n }\n\n /**\n * In meta.\n *\n * ```markdown\n * > | ~~~js eval\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function meta(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit(\"chunkString\");\n effects.exit(\"codeFencedFenceMeta\");\n return infoBefore(code);\n }\n if (code === 96 && code === marker) {\n return nok(code);\n }\n effects.consume(code);\n return meta;\n }\n\n /**\n * At eol/eof in code, before a non-lazy closing fence or content.\n *\n * ```markdown\n * > | ~~~js\n * ^\n * > | alert(1)\n * ^\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function atNonLazyBreak(code) {\n return effects.attempt(closeStart, after, contentBefore)(code);\n }\n\n /**\n * Before code content, not a closing fence, at eol.\n *\n * ```markdown\n * | ~~~js\n * > | alert(1)\n * ^\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function contentBefore(code) {\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n return contentStart;\n }\n\n /**\n * Before code content, not a closing fence.\n *\n * ```markdown\n * | ~~~js\n * > | alert(1)\n * ^\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function contentStart(code) {\n return initialPrefix > 0 && markdownSpace(code) ? factorySpace(effects, beforeContentChunk, \"linePrefix\", initialPrefix + 1)(code) : beforeContentChunk(code);\n }\n\n /**\n * Before code content, after optional prefix.\n *\n * ```markdown\n * | ~~~js\n * > | alert(1)\n * ^\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function beforeContentChunk(code) {\n if (code === null || markdownLineEnding(code)) {\n return effects.check(nonLazyContinuation, atNonLazyBreak, after)(code);\n }\n effects.enter(\"codeFlowValue\");\n return contentChunk(code);\n }\n\n /**\n * In code content.\n *\n * ```markdown\n * | ~~~js\n * > | alert(1)\n * ^^^^^^^^\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function contentChunk(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit(\"codeFlowValue\");\n return beforeContentChunk(code);\n }\n effects.consume(code);\n return contentChunk;\n }\n\n /**\n * After code.\n *\n * ```markdown\n * | ~~~js\n * | alert(1)\n * > | ~~~\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n effects.exit(\"codeFenced\");\n return ok(code);\n }\n\n /**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\n function tokenizeCloseStart(effects, ok, nok) {\n let size = 0;\n return startBefore;\n\n /**\n *\n *\n * @type {State}\n */\n function startBefore(code) {\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n return start;\n }\n\n /**\n * Before closing fence, at optional whitespace.\n *\n * ```markdown\n * | ~~~js\n * | alert(1)\n * > | ~~~\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n // Always populated by defaults.\n\n // To do: `enter` here or in next state?\n effects.enter(\"codeFencedFence\");\n return markdownSpace(code) ? factorySpace(effects, beforeSequenceClose, \"linePrefix\", self.parser.constructs.disable.null.includes('codeIndented') ? undefined : 4)(code) : beforeSequenceClose(code);\n }\n\n /**\n * In closing fence, after optional whitespace, at sequence.\n *\n * ```markdown\n * | ~~~js\n * | alert(1)\n * > | ~~~\n * ^\n * ```\n *\n * @type {State}\n */\n function beforeSequenceClose(code) {\n if (code === marker) {\n effects.enter(\"codeFencedFenceSequence\");\n return sequenceClose(code);\n }\n return nok(code);\n }\n\n /**\n * In closing fence sequence.\n *\n * ```markdown\n * | ~~~js\n * | alert(1)\n * > | ~~~\n * ^\n * ```\n *\n * @type {State}\n */\n function sequenceClose(code) {\n if (code === marker) {\n size++;\n effects.consume(code);\n return sequenceClose;\n }\n if (size >= sizeOpen) {\n effects.exit(\"codeFencedFenceSequence\");\n return markdownSpace(code) ? factorySpace(effects, sequenceCloseAfter, \"whitespace\")(code) : sequenceCloseAfter(code);\n }\n return nok(code);\n }\n\n /**\n * After closing fence sequence, after optional whitespace.\n *\n * ```markdown\n * | ~~~js\n * | alert(1)\n * > | ~~~\n * ^\n * ```\n *\n * @type {State}\n */\n function sequenceCloseAfter(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit(\"codeFencedFence\");\n return ok(code);\n }\n return nok(code);\n }\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeNonLazyContinuation(effects, ok, nok) {\n const self = this;\n return start;\n\n /**\n *\n *\n * @type {State}\n */\n function start(code) {\n if (code === null) {\n return nok(code);\n }\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n return lineStart;\n }\n\n /**\n *\n *\n * @type {State}\n */\n function lineStart(code) {\n return self.parser.lazy[self.now().line] ? nok(code) : ok(code);\n }\n}","/// \n\n/* eslint-env browser */\n\nconst element = document.createElement('i')\n\n/**\n * @param {string} value\n * @returns {string|false}\n */\nexport function decodeNamedCharacterReference(value) {\n const characterReference = '&' + value + ';'\n element.innerHTML = characterReference\n const char = element.textContent\n\n // Some named character references do not require the closing semicolon\n // (`¬`, for instance), which leads to situations where parsing the assumed\n // named reference of `¬it;` will result in the string `¬it;`.\n // When we encounter a trailing semicolon after parsing, and the character\n // reference to decode was not a semicolon (`;`), we can assume that the\n // matching was not complete.\n // @ts-expect-error: TypeScript is wrong that `textContent` on elements can\n // yield `null`.\n if (char.charCodeAt(char.length - 1) === 59 /* `;` */ && value !== 'semi') {\n return false\n }\n\n // If the decoded string is equal to the input, the character reference was\n // not valid.\n // @ts-expect-error: TypeScript is wrong that `textContent` on elements can\n // yield `null`.\n return char === characterReference ? false : char\n}\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport { decodeNamedCharacterReference } from 'decode-named-character-reference';\nimport { asciiAlphanumeric, asciiDigit, asciiHexDigit } from 'micromark-util-character';\n/** @type {Construct} */\nexport const characterReference = {\n name: 'characterReference',\n tokenize: tokenizeCharacterReference\n};\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeCharacterReference(effects, ok, nok) {\n const self = this;\n let size = 0;\n /** @type {number} */\n let max;\n /** @type {(code: Code) => boolean} */\n let test;\n return start;\n\n /**\n * Start of character reference.\n *\n * ```markdown\n * > | a&b\n * ^\n * > | a{b\n * ^\n * > | a b\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter(\"characterReference\");\n effects.enter(\"characterReferenceMarker\");\n effects.consume(code);\n effects.exit(\"characterReferenceMarker\");\n return open;\n }\n\n /**\n * After `&`, at `#` for numeric references or alphanumeric for named\n * references.\n *\n * ```markdown\n * > | a&b\n * ^\n * > | a{b\n * ^\n * > | a b\n * ^\n * ```\n *\n * @type {State}\n */\n function open(code) {\n if (code === 35) {\n effects.enter(\"characterReferenceMarkerNumeric\");\n effects.consume(code);\n effects.exit(\"characterReferenceMarkerNumeric\");\n return numeric;\n }\n effects.enter(\"characterReferenceValue\");\n max = 31;\n test = asciiAlphanumeric;\n return value(code);\n }\n\n /**\n * After `#`, at `x` for hexadecimals or digit for decimals.\n *\n * ```markdown\n * > | a{b\n * ^\n * > | a b\n * ^\n * ```\n *\n * @type {State}\n */\n function numeric(code) {\n if (code === 88 || code === 120) {\n effects.enter(\"characterReferenceMarkerHexadecimal\");\n effects.consume(code);\n effects.exit(\"characterReferenceMarkerHexadecimal\");\n effects.enter(\"characterReferenceValue\");\n max = 6;\n test = asciiHexDigit;\n return value;\n }\n effects.enter(\"characterReferenceValue\");\n max = 7;\n test = asciiDigit;\n return value(code);\n }\n\n /**\n * After markers (`&#x`, `&#`, or `&`), in value, before `;`.\n *\n * The character reference kind defines what and how many characters are\n * allowed.\n *\n * ```markdown\n * > | a&b\n * ^^^\n * > | a{b\n * ^^^\n * > | a b\n * ^\n * ```\n *\n * @type {State}\n */\n function value(code) {\n if (code === 59 && size) {\n const token = effects.exit(\"characterReferenceValue\");\n if (test === asciiAlphanumeric && !decodeNamedCharacterReference(self.sliceSerialize(token))) {\n return nok(code);\n }\n\n // To do: `markdown-rs` uses a different name:\n // `CharacterReferenceMarkerSemi`.\n effects.enter(\"characterReferenceMarker\");\n effects.consume(code);\n effects.exit(\"characterReferenceMarker\");\n effects.exit(\"characterReference\");\n return ok;\n }\n if (test(code) && size++ < max) {\n effects.consume(code);\n return value;\n }\n return nok(code);\n }\n}","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport { asciiPunctuation } from 'micromark-util-character';\n/** @type {Construct} */\nexport const characterEscape = {\n name: 'characterEscape',\n tokenize: tokenizeCharacterEscape\n};\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeCharacterEscape(effects, ok, nok) {\n return start;\n\n /**\n * Start of character escape.\n *\n * ```markdown\n * > | a\\*b\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter(\"characterEscape\");\n effects.enter(\"escapeMarker\");\n effects.consume(code);\n effects.exit(\"escapeMarker\");\n return inside;\n }\n\n /**\n * After `\\`, at punctuation.\n *\n * ```markdown\n * > | a\\*b\n * ^\n * ```\n *\n * @type {State}\n */\n function inside(code) {\n // ASCII punctuation.\n if (asciiPunctuation(code)) {\n effects.enter(\"characterEscapeValue\");\n effects.consume(code);\n effects.exit(\"characterEscapeValue\");\n effects.exit(\"characterEscape\");\n return ok;\n }\n return nok(code);\n }\n}","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { markdownLineEnding } from 'micromark-util-character';\n/** @type {Construct} */\nexport const lineEnding = {\n name: 'lineEnding',\n tokenize: tokenizeLineEnding\n};\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeLineEnding(effects, ok) {\n return start;\n\n /** @type {State} */\n function start(code) {\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n return factorySpace(effects, ok, \"linePrefix\");\n }\n}","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Event} Event\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport { factoryDestination } from 'micromark-factory-destination';\nimport { factoryLabel } from 'micromark-factory-label';\nimport { factoryTitle } from 'micromark-factory-title';\nimport { factoryWhitespace } from 'micromark-factory-whitespace';\nimport { markdownLineEndingOrSpace } from 'micromark-util-character';\nimport { push, splice } from 'micromark-util-chunked';\nimport { normalizeIdentifier } from 'micromark-util-normalize-identifier';\nimport { resolveAll } from 'micromark-util-resolve-all';\n/** @type {Construct} */\nexport const labelEnd = {\n name: 'labelEnd',\n tokenize: tokenizeLabelEnd,\n resolveTo: resolveToLabelEnd,\n resolveAll: resolveAllLabelEnd\n};\n\n/** @type {Construct} */\nconst resourceConstruct = {\n tokenize: tokenizeResource\n};\n/** @type {Construct} */\nconst referenceFullConstruct = {\n tokenize: tokenizeReferenceFull\n};\n/** @type {Construct} */\nconst referenceCollapsedConstruct = {\n tokenize: tokenizeReferenceCollapsed\n};\n\n/** @type {Resolver} */\nfunction resolveAllLabelEnd(events) {\n let index = -1;\n while (++index < events.length) {\n const token = events[index][1];\n if (token.type === \"labelImage\" || token.type === \"labelLink\" || token.type === \"labelEnd\") {\n // Remove the marker.\n events.splice(index + 1, token.type === \"labelImage\" ? 4 : 2);\n token.type = \"data\";\n index++;\n }\n }\n return events;\n}\n\n/** @type {Resolver} */\nfunction resolveToLabelEnd(events, context) {\n let index = events.length;\n let offset = 0;\n /** @type {Token} */\n let token;\n /** @type {number | undefined} */\n let open;\n /** @type {number | undefined} */\n let close;\n /** @type {Array} */\n let media;\n\n // Find an opening.\n while (index--) {\n token = events[index][1];\n if (open) {\n // If we see another link, or inactive link label, we’ve been here before.\n if (token.type === \"link\" || token.type === \"labelLink\" && token._inactive) {\n break;\n }\n\n // Mark other link openings as inactive, as we can’t have links in\n // links.\n if (events[index][0] === 'enter' && token.type === \"labelLink\") {\n token._inactive = true;\n }\n } else if (close) {\n if (events[index][0] === 'enter' && (token.type === \"labelImage\" || token.type === \"labelLink\") && !token._balanced) {\n open = index;\n if (token.type !== \"labelLink\") {\n offset = 2;\n break;\n }\n }\n } else if (token.type === \"labelEnd\") {\n close = index;\n }\n }\n const group = {\n type: events[open][1].type === \"labelLink\" ? \"link\" : \"image\",\n start: Object.assign({}, events[open][1].start),\n end: Object.assign({}, events[events.length - 1][1].end)\n };\n const label = {\n type: \"label\",\n start: Object.assign({}, events[open][1].start),\n end: Object.assign({}, events[close][1].end)\n };\n const text = {\n type: \"labelText\",\n start: Object.assign({}, events[open + offset + 2][1].end),\n end: Object.assign({}, events[close - 2][1].start)\n };\n media = [['enter', group, context], ['enter', label, context]];\n\n // Opening marker.\n media = push(media, events.slice(open + 1, open + offset + 3));\n\n // Text open.\n media = push(media, [['enter', text, context]]);\n\n // Always populated by defaults.\n\n // Between.\n media = push(media, resolveAll(context.parser.constructs.insideSpan.null, events.slice(open + offset + 4, close - 3), context));\n\n // Text close, marker close, label close.\n media = push(media, [['exit', text, context], events[close - 2], events[close - 1], ['exit', label, context]]);\n\n // Reference, resource, or so.\n media = push(media, events.slice(close + 1));\n\n // Media close.\n media = push(media, [['exit', group, context]]);\n splice(events, open, events.length, media);\n return events;\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeLabelEnd(effects, ok, nok) {\n const self = this;\n let index = self.events.length;\n /** @type {Token} */\n let labelStart;\n /** @type {boolean} */\n let defined;\n\n // Find an opening.\n while (index--) {\n if ((self.events[index][1].type === \"labelImage\" || self.events[index][1].type === \"labelLink\") && !self.events[index][1]._balanced) {\n labelStart = self.events[index][1];\n break;\n }\n }\n return start;\n\n /**\n * Start of label end.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * > | [a][b] c\n * ^\n * > | [a][] b\n * ^\n * > | [a] b\n * ```\n *\n * @type {State}\n */\n function start(code) {\n // If there is not an okay opening.\n if (!labelStart) {\n return nok(code);\n }\n\n // If the corresponding label (link) start is marked as inactive,\n // it means we’d be wrapping a link, like this:\n //\n // ```markdown\n // > | a [b [c](d) e](f) g.\n // ^\n // ```\n //\n // We can’t have that, so it’s just balanced brackets.\n if (labelStart._inactive) {\n return labelEndNok(code);\n }\n defined = self.parser.defined.includes(normalizeIdentifier(self.sliceSerialize({\n start: labelStart.end,\n end: self.now()\n })));\n effects.enter(\"labelEnd\");\n effects.enter(\"labelMarker\");\n effects.consume(code);\n effects.exit(\"labelMarker\");\n effects.exit(\"labelEnd\");\n return after;\n }\n\n /**\n * After `]`.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * > | [a][b] c\n * ^\n * > | [a][] b\n * ^\n * > | [a] b\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n // Note: `markdown-rs` also parses GFM footnotes here, which for us is in\n // an extension.\n\n // Resource (`[asd](fgh)`)?\n if (code === 40) {\n return effects.attempt(resourceConstruct, labelEndOk, defined ? labelEndOk : labelEndNok)(code);\n }\n\n // Full (`[asd][fgh]`) or collapsed (`[asd][]`) reference?\n if (code === 91) {\n return effects.attempt(referenceFullConstruct, labelEndOk, defined ? referenceNotFull : labelEndNok)(code);\n }\n\n // Shortcut (`[asd]`) reference?\n return defined ? labelEndOk(code) : labelEndNok(code);\n }\n\n /**\n * After `]`, at `[`, but not at a full reference.\n *\n * > 👉 **Note**: we only get here if the label is defined.\n *\n * ```markdown\n * > | [a][] b\n * ^\n * > | [a] b\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceNotFull(code) {\n return effects.attempt(referenceCollapsedConstruct, labelEndOk, labelEndNok)(code);\n }\n\n /**\n * Done, we found something.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * > | [a][b] c\n * ^\n * > | [a][] b\n * ^\n * > | [a] b\n * ^\n * ```\n *\n * @type {State}\n */\n function labelEndOk(code) {\n // Note: `markdown-rs` does a bunch of stuff here.\n return ok(code);\n }\n\n /**\n * Done, it’s nothing.\n *\n * There was an okay opening, but we didn’t match anything.\n *\n * ```markdown\n * > | [a](b c\n * ^\n * > | [a][b c\n * ^\n * > | [a] b\n * ^\n * ```\n *\n * @type {State}\n */\n function labelEndNok(code) {\n labelStart._balanced = true;\n return nok(code);\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeResource(effects, ok, nok) {\n return resourceStart;\n\n /**\n * At a resource.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceStart(code) {\n effects.enter(\"resource\");\n effects.enter(\"resourceMarker\");\n effects.consume(code);\n effects.exit(\"resourceMarker\");\n return resourceBefore;\n }\n\n /**\n * In resource, after `(`, at optional whitespace.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceBefore(code) {\n return markdownLineEndingOrSpace(code) ? factoryWhitespace(effects, resourceOpen)(code) : resourceOpen(code);\n }\n\n /**\n * In resource, after optional whitespace, at `)` or a destination.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceOpen(code) {\n if (code === 41) {\n return resourceEnd(code);\n }\n return factoryDestination(effects, resourceDestinationAfter, resourceDestinationMissing, \"resourceDestination\", \"resourceDestinationLiteral\", \"resourceDestinationLiteralMarker\", \"resourceDestinationRaw\", \"resourceDestinationString\", 32)(code);\n }\n\n /**\n * In resource, after destination, at optional whitespace.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceDestinationAfter(code) {\n return markdownLineEndingOrSpace(code) ? factoryWhitespace(effects, resourceBetween)(code) : resourceEnd(code);\n }\n\n /**\n * At invalid destination.\n *\n * ```markdown\n * > | [a](<<) b\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceDestinationMissing(code) {\n return nok(code);\n }\n\n /**\n * In resource, after destination and whitespace, at `(` or title.\n *\n * ```markdown\n * > | [a](b ) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceBetween(code) {\n if (code === 34 || code === 39 || code === 40) {\n return factoryTitle(effects, resourceTitleAfter, nok, \"resourceTitle\", \"resourceTitleMarker\", \"resourceTitleString\")(code);\n }\n return resourceEnd(code);\n }\n\n /**\n * In resource, after title, at optional whitespace.\n *\n * ```markdown\n * > | [a](b \"c\") d\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceTitleAfter(code) {\n return markdownLineEndingOrSpace(code) ? factoryWhitespace(effects, resourceEnd)(code) : resourceEnd(code);\n }\n\n /**\n * In resource, at `)`.\n *\n * ```markdown\n * > | [a](b) d\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceEnd(code) {\n if (code === 41) {\n effects.enter(\"resourceMarker\");\n effects.consume(code);\n effects.exit(\"resourceMarker\");\n effects.exit(\"resource\");\n return ok;\n }\n return nok(code);\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeReferenceFull(effects, ok, nok) {\n const self = this;\n return referenceFull;\n\n /**\n * In a reference (full), at the `[`.\n *\n * ```markdown\n * > | [a][b] d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceFull(code) {\n return factoryLabel.call(self, effects, referenceFullAfter, referenceFullMissing, \"reference\", \"referenceMarker\", \"referenceString\")(code);\n }\n\n /**\n * In a reference (full), after `]`.\n *\n * ```markdown\n * > | [a][b] d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceFullAfter(code) {\n return self.parser.defined.includes(normalizeIdentifier(self.sliceSerialize(self.events[self.events.length - 1][1]).slice(1, -1))) ? ok(code) : nok(code);\n }\n\n /**\n * In reference (full) that was missing.\n *\n * ```markdown\n * > | [a][b d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceFullMissing(code) {\n return nok(code);\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeReferenceCollapsed(effects, ok, nok) {\n return referenceCollapsedStart;\n\n /**\n * In reference (collapsed), at `[`.\n *\n * > 👉 **Note**: we only get here if the label is defined.\n *\n * ```markdown\n * > | [a][] d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceCollapsedStart(code) {\n // We only attempt a collapsed label if there’s a `[`.\n\n effects.enter(\"reference\");\n effects.enter(\"referenceMarker\");\n effects.consume(code);\n effects.exit(\"referenceMarker\");\n return referenceCollapsedOpen;\n }\n\n /**\n * In reference (collapsed), at `]`.\n *\n * > 👉 **Note**: we only get here if the label is defined.\n *\n * ```markdown\n * > | [a][] d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceCollapsedOpen(code) {\n if (code === 93) {\n effects.enter(\"referenceMarker\");\n effects.consume(code);\n effects.exit(\"referenceMarker\");\n effects.exit(\"reference\");\n return ok;\n }\n return nok(code);\n }\n}","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport { labelEnd } from './label-end.js';\n\n/** @type {Construct} */\nexport const labelStartImage = {\n name: 'labelStartImage',\n tokenize: tokenizeLabelStartImage,\n resolveAll: labelEnd.resolveAll\n};\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeLabelStartImage(effects, ok, nok) {\n const self = this;\n return start;\n\n /**\n * Start of label (image) start.\n *\n * ```markdown\n * > | a ![b] c\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter(\"labelImage\");\n effects.enter(\"labelImageMarker\");\n effects.consume(code);\n effects.exit(\"labelImageMarker\");\n return open;\n }\n\n /**\n * After `!`, at `[`.\n *\n * ```markdown\n * > | a ![b] c\n * ^\n * ```\n *\n * @type {State}\n */\n function open(code) {\n if (code === 91) {\n effects.enter(\"labelMarker\");\n effects.consume(code);\n effects.exit(\"labelMarker\");\n effects.exit(\"labelImage\");\n return after;\n }\n return nok(code);\n }\n\n /**\n * After `![`.\n *\n * ```markdown\n * > | a ![b] c\n * ^\n * ```\n *\n * This is needed in because, when GFM footnotes are enabled, images never\n * form when started with a `^`.\n * Instead, links form:\n *\n * ```markdown\n * ![^a](b)\n *\n * ![^a][b]\n *\n * [b]: c\n * ```\n *\n * ```html\n *

!^a

\n *

!^a

\n * ```\n *\n * @type {State}\n */\n function after(code) {\n // To do: use a new field to do this, this is still needed for\n // `micromark-extension-gfm-footnote`, but the `label-start-link`\n // behavior isn’t.\n // Hidden footnotes hook.\n /* c8 ignore next 3 */\n return code === 94 && '_hiddenFootnoteSupport' in self.parser.constructs ? nok(code) : ok(code);\n }\n}","/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Event} Event\n * @typedef {import('micromark-util-types').Point} Point\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport { push, splice } from 'micromark-util-chunked';\nimport { classifyCharacter } from 'micromark-util-classify-character';\nimport { resolveAll } from 'micromark-util-resolve-all';\n/** @type {Construct} */\nexport const attention = {\n name: 'attention',\n tokenize: tokenizeAttention,\n resolveAll: resolveAllAttention\n};\n\n/**\n * Take all events and resolve attention to emphasis or strong.\n *\n * @type {Resolver}\n */\n// eslint-disable-next-line complexity\nfunction resolveAllAttention(events, context) {\n let index = -1;\n /** @type {number} */\n let open;\n /** @type {Token} */\n let group;\n /** @type {Token} */\n let text;\n /** @type {Token} */\n let openingSequence;\n /** @type {Token} */\n let closingSequence;\n /** @type {number} */\n let use;\n /** @type {Array} */\n let nextEvents;\n /** @type {number} */\n let offset;\n\n // Walk through all events.\n //\n // Note: performance of this is fine on an mb of normal markdown, but it’s\n // a bottleneck for malicious stuff.\n while (++index < events.length) {\n // Find a token that can close.\n if (events[index][0] === 'enter' && events[index][1].type === 'attentionSequence' && events[index][1]._close) {\n open = index;\n\n // Now walk back to find an opener.\n while (open--) {\n // Find a token that can open the closer.\n if (events[open][0] === 'exit' && events[open][1].type === 'attentionSequence' && events[open][1]._open &&\n // If the markers are the same:\n context.sliceSerialize(events[open][1]).charCodeAt(0) === context.sliceSerialize(events[index][1]).charCodeAt(0)) {\n // If the opening can close or the closing can open,\n // and the close size *is not* a multiple of three,\n // but the sum of the opening and closing size *is* multiple of three,\n // then don’t match.\n if ((events[open][1]._close || events[index][1]._open) && (events[index][1].end.offset - events[index][1].start.offset) % 3 && !((events[open][1].end.offset - events[open][1].start.offset + events[index][1].end.offset - events[index][1].start.offset) % 3)) {\n continue;\n }\n\n // Number of markers to use from the sequence.\n use = events[open][1].end.offset - events[open][1].start.offset > 1 && events[index][1].end.offset - events[index][1].start.offset > 1 ? 2 : 1;\n const start = Object.assign({}, events[open][1].end);\n const end = Object.assign({}, events[index][1].start);\n movePoint(start, -use);\n movePoint(end, use);\n openingSequence = {\n type: use > 1 ? \"strongSequence\" : \"emphasisSequence\",\n start,\n end: Object.assign({}, events[open][1].end)\n };\n closingSequence = {\n type: use > 1 ? \"strongSequence\" : \"emphasisSequence\",\n start: Object.assign({}, events[index][1].start),\n end\n };\n text = {\n type: use > 1 ? \"strongText\" : \"emphasisText\",\n start: Object.assign({}, events[open][1].end),\n end: Object.assign({}, events[index][1].start)\n };\n group = {\n type: use > 1 ? \"strong\" : \"emphasis\",\n start: Object.assign({}, openingSequence.start),\n end: Object.assign({}, closingSequence.end)\n };\n events[open][1].end = Object.assign({}, openingSequence.start);\n events[index][1].start = Object.assign({}, closingSequence.end);\n nextEvents = [];\n\n // If there are more markers in the opening, add them before.\n if (events[open][1].end.offset - events[open][1].start.offset) {\n nextEvents = push(nextEvents, [['enter', events[open][1], context], ['exit', events[open][1], context]]);\n }\n\n // Opening.\n nextEvents = push(nextEvents, [['enter', group, context], ['enter', openingSequence, context], ['exit', openingSequence, context], ['enter', text, context]]);\n\n // Always populated by defaults.\n\n // Between.\n nextEvents = push(nextEvents, resolveAll(context.parser.constructs.insideSpan.null, events.slice(open + 1, index), context));\n\n // Closing.\n nextEvents = push(nextEvents, [['exit', text, context], ['enter', closingSequence, context], ['exit', closingSequence, context], ['exit', group, context]]);\n\n // If there are more markers in the closing, add them after.\n if (events[index][1].end.offset - events[index][1].start.offset) {\n offset = 2;\n nextEvents = push(nextEvents, [['enter', events[index][1], context], ['exit', events[index][1], context]]);\n } else {\n offset = 0;\n }\n splice(events, open - 1, index - open + 3, nextEvents);\n index = open + nextEvents.length - offset - 2;\n break;\n }\n }\n }\n }\n\n // Remove remaining sequences.\n index = -1;\n while (++index < events.length) {\n if (events[index][1].type === 'attentionSequence') {\n events[index][1].type = 'data';\n }\n }\n return events;\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeAttention(effects, ok) {\n const attentionMarkers = this.parser.constructs.attentionMarkers.null;\n const previous = this.previous;\n const before = classifyCharacter(previous);\n\n /** @type {NonNullable} */\n let marker;\n return start;\n\n /**\n * Before a sequence.\n *\n * ```markdown\n * > | **\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n marker = code;\n effects.enter('attentionSequence');\n return inside(code);\n }\n\n /**\n * In a sequence.\n *\n * ```markdown\n * > | **\n * ^^\n * ```\n *\n * @type {State}\n */\n function inside(code) {\n if (code === marker) {\n effects.consume(code);\n return inside;\n }\n const token = effects.exit('attentionSequence');\n\n // To do: next major: move this to resolver, just like `markdown-rs`.\n const after = classifyCharacter(code);\n\n // Always populated by defaults.\n\n const open = !after || after === 2 && before || attentionMarkers.includes(code);\n const close = !before || before === 2 && after || attentionMarkers.includes(previous);\n token._open = Boolean(marker === 42 ? open : open && (before || !close));\n token._close = Boolean(marker === 42 ? close : close && (after || !open));\n return ok(code);\n }\n}\n\n/**\n * Move a point a bit.\n *\n * Note: `move` only works inside lines! It’s not possible to move past other\n * chunks (replacement characters, tabs, or line endings).\n *\n * @param {Point} point\n * @param {number} offset\n * @returns {undefined}\n */\nfunction movePoint(point, offset) {\n point.column += offset;\n point.offset += offset;\n point._bufferIndex += offset;\n}","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport { asciiAlpha, asciiAlphanumeric, asciiAtext, asciiControl } from 'micromark-util-character';\n/** @type {Construct} */\nexport const autolink = {\n name: 'autolink',\n tokenize: tokenizeAutolink\n};\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeAutolink(effects, ok, nok) {\n let size = 0;\n return start;\n\n /**\n * Start of an autolink.\n *\n * ```markdown\n * > | ab\n * ^\n * > | ab\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter(\"autolink\");\n effects.enter(\"autolinkMarker\");\n effects.consume(code);\n effects.exit(\"autolinkMarker\");\n effects.enter(\"autolinkProtocol\");\n return open;\n }\n\n /**\n * After `<`, at protocol or atext.\n *\n * ```markdown\n * > | ab\n * ^\n * > | ab\n * ^\n * ```\n *\n * @type {State}\n */\n function open(code) {\n if (asciiAlpha(code)) {\n effects.consume(code);\n return schemeOrEmailAtext;\n }\n if (code === 64) {\n return nok(code);\n }\n return emailAtext(code);\n }\n\n /**\n * At second byte of protocol or atext.\n *\n * ```markdown\n * > | ab\n * ^\n * > | ab\n * ^\n * ```\n *\n * @type {State}\n */\n function schemeOrEmailAtext(code) {\n // ASCII alphanumeric and `+`, `-`, and `.`.\n if (code === 43 || code === 45 || code === 46 || asciiAlphanumeric(code)) {\n // Count the previous alphabetical from `open` too.\n size = 1;\n return schemeInsideOrEmailAtext(code);\n }\n return emailAtext(code);\n }\n\n /**\n * In ambiguous protocol or atext.\n *\n * ```markdown\n * > | ab\n * ^\n * > | ab\n * ^\n * ```\n *\n * @type {State}\n */\n function schemeInsideOrEmailAtext(code) {\n if (code === 58) {\n effects.consume(code);\n size = 0;\n return urlInside;\n }\n\n // ASCII alphanumeric and `+`, `-`, and `.`.\n if ((code === 43 || code === 45 || code === 46 || asciiAlphanumeric(code)) && size++ < 32) {\n effects.consume(code);\n return schemeInsideOrEmailAtext;\n }\n size = 0;\n return emailAtext(code);\n }\n\n /**\n * After protocol, in URL.\n *\n * ```markdown\n * > | ab\n * ^\n * ```\n *\n * @type {State}\n */\n function urlInside(code) {\n if (code === 62) {\n effects.exit(\"autolinkProtocol\");\n effects.enter(\"autolinkMarker\");\n effects.consume(code);\n effects.exit(\"autolinkMarker\");\n effects.exit(\"autolink\");\n return ok;\n }\n\n // ASCII control, space, or `<`.\n if (code === null || code === 32 || code === 60 || asciiControl(code)) {\n return nok(code);\n }\n effects.consume(code);\n return urlInside;\n }\n\n /**\n * In email atext.\n *\n * ```markdown\n * > | ab\n * ^\n * ```\n *\n * @type {State}\n */\n function emailAtext(code) {\n if (code === 64) {\n effects.consume(code);\n return emailAtSignOrDot;\n }\n if (asciiAtext(code)) {\n effects.consume(code);\n return emailAtext;\n }\n return nok(code);\n }\n\n /**\n * In label, after at-sign or dot.\n *\n * ```markdown\n * > | ab\n * ^ ^\n * ```\n *\n * @type {State}\n */\n function emailAtSignOrDot(code) {\n return asciiAlphanumeric(code) ? emailLabel(code) : nok(code);\n }\n\n /**\n * In label, where `.` and `>` are allowed.\n *\n * ```markdown\n * > | ab\n * ^\n * ```\n *\n * @type {State}\n */\n function emailLabel(code) {\n if (code === 46) {\n effects.consume(code);\n size = 0;\n return emailAtSignOrDot;\n }\n if (code === 62) {\n // Exit, then change the token type.\n effects.exit(\"autolinkProtocol\").type = \"autolinkEmail\";\n effects.enter(\"autolinkMarker\");\n effects.consume(code);\n effects.exit(\"autolinkMarker\");\n effects.exit(\"autolink\");\n return ok;\n }\n return emailValue(code);\n }\n\n /**\n * In label, where `.` and `>` are *not* allowed.\n *\n * Though, this is also used in `emailLabel` to parse other values.\n *\n * ```markdown\n * > | ab\n * ^\n * ```\n *\n * @type {State}\n */\n function emailValue(code) {\n // ASCII alphanumeric or `-`.\n if ((code === 45 || asciiAlphanumeric(code)) && size++ < 63) {\n const next = code === 45 ? emailValue : emailLabel;\n effects.consume(code);\n return next;\n }\n return nok(code);\n }\n}","/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { asciiAlpha, asciiAlphanumeric, markdownLineEnding, markdownLineEndingOrSpace, markdownSpace } from 'micromark-util-character';\n/** @type {Construct} */\nexport const htmlText = {\n name: 'htmlText',\n tokenize: tokenizeHtmlText\n};\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeHtmlText(effects, ok, nok) {\n const self = this;\n /** @type {NonNullable | undefined} */\n let marker;\n /** @type {number} */\n let index;\n /** @type {State} */\n let returnState;\n return start;\n\n /**\n * Start of HTML (text).\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter(\"htmlText\");\n effects.enter(\"htmlTextData\");\n effects.consume(code);\n return open;\n }\n\n /**\n * After `<`, at tag name or other stuff.\n *\n * ```markdown\n * > | a c\n * ^\n * > | a c\n * ^\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function open(code) {\n if (code === 33) {\n effects.consume(code);\n return declarationOpen;\n }\n if (code === 47) {\n effects.consume(code);\n return tagCloseStart;\n }\n if (code === 63) {\n effects.consume(code);\n return instruction;\n }\n\n // ASCII alphabetical.\n if (asciiAlpha(code)) {\n effects.consume(code);\n return tagOpen;\n }\n return nok(code);\n }\n\n /**\n * After ` | a c\n * ^\n * > | a c\n * ^\n * > | a &<]]> c\n * ^\n * ```\n *\n * @type {State}\n */\n function declarationOpen(code) {\n if (code === 45) {\n effects.consume(code);\n return commentOpenInside;\n }\n if (code === 91) {\n effects.consume(code);\n index = 0;\n return cdataOpenInside;\n }\n if (asciiAlpha(code)) {\n effects.consume(code);\n return declaration;\n }\n return nok(code);\n }\n\n /**\n * In a comment, after ` | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function commentOpenInside(code) {\n if (code === 45) {\n effects.consume(code);\n return commentEnd;\n }\n return nok(code);\n }\n\n /**\n * In comment.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function comment(code) {\n if (code === null) {\n return nok(code);\n }\n if (code === 45) {\n effects.consume(code);\n return commentClose;\n }\n if (markdownLineEnding(code)) {\n returnState = comment;\n return lineEndingBefore(code);\n }\n effects.consume(code);\n return comment;\n }\n\n /**\n * In comment, after `-`.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function commentClose(code) {\n if (code === 45) {\n effects.consume(code);\n return commentEnd;\n }\n return comment(code);\n }\n\n /**\n * In comment, after `--`.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function commentEnd(code) {\n return code === 62 ? end(code) : code === 45 ? commentClose(code) : comment(code);\n }\n\n /**\n * After ` | a &<]]> b\n * ^^^^^^\n * ```\n *\n * @type {State}\n */\n function cdataOpenInside(code) {\n const value = \"CDATA[\";\n if (code === value.charCodeAt(index++)) {\n effects.consume(code);\n return index === value.length ? cdata : cdataOpenInside;\n }\n return nok(code);\n }\n\n /**\n * In CDATA.\n *\n * ```markdown\n * > | a &<]]> b\n * ^^^\n * ```\n *\n * @type {State}\n */\n function cdata(code) {\n if (code === null) {\n return nok(code);\n }\n if (code === 93) {\n effects.consume(code);\n return cdataClose;\n }\n if (markdownLineEnding(code)) {\n returnState = cdata;\n return lineEndingBefore(code);\n }\n effects.consume(code);\n return cdata;\n }\n\n /**\n * In CDATA, after `]`, at another `]`.\n *\n * ```markdown\n * > | a &<]]> b\n * ^\n * ```\n *\n * @type {State}\n */\n function cdataClose(code) {\n if (code === 93) {\n effects.consume(code);\n return cdataEnd;\n }\n return cdata(code);\n }\n\n /**\n * In CDATA, after `]]`, at `>`.\n *\n * ```markdown\n * > | a &<]]> b\n * ^\n * ```\n *\n * @type {State}\n */\n function cdataEnd(code) {\n if (code === 62) {\n return end(code);\n }\n if (code === 93) {\n effects.consume(code);\n return cdataEnd;\n }\n return cdata(code);\n }\n\n /**\n * In declaration.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function declaration(code) {\n if (code === null || code === 62) {\n return end(code);\n }\n if (markdownLineEnding(code)) {\n returnState = declaration;\n return lineEndingBefore(code);\n }\n effects.consume(code);\n return declaration;\n }\n\n /**\n * In instruction.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function instruction(code) {\n if (code === null) {\n return nok(code);\n }\n if (code === 63) {\n effects.consume(code);\n return instructionClose;\n }\n if (markdownLineEnding(code)) {\n returnState = instruction;\n return lineEndingBefore(code);\n }\n effects.consume(code);\n return instruction;\n }\n\n /**\n * In instruction, after `?`, at `>`.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function instructionClose(code) {\n return code === 62 ? end(code) : instruction(code);\n }\n\n /**\n * After ` | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagCloseStart(code) {\n // ASCII alphabetical.\n if (asciiAlpha(code)) {\n effects.consume(code);\n return tagClose;\n }\n return nok(code);\n }\n\n /**\n * After ` | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagClose(code) {\n // ASCII alphanumerical and `-`.\n if (code === 45 || asciiAlphanumeric(code)) {\n effects.consume(code);\n return tagClose;\n }\n return tagCloseBetween(code);\n }\n\n /**\n * In closing tag, after tag name.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagCloseBetween(code) {\n if (markdownLineEnding(code)) {\n returnState = tagCloseBetween;\n return lineEndingBefore(code);\n }\n if (markdownSpace(code)) {\n effects.consume(code);\n return tagCloseBetween;\n }\n return end(code);\n }\n\n /**\n * After ` | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpen(code) {\n // ASCII alphanumerical and `-`.\n if (code === 45 || asciiAlphanumeric(code)) {\n effects.consume(code);\n return tagOpen;\n }\n if (code === 47 || code === 62 || markdownLineEndingOrSpace(code)) {\n return tagOpenBetween(code);\n }\n return nok(code);\n }\n\n /**\n * In opening tag, after tag name.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenBetween(code) {\n if (code === 47) {\n effects.consume(code);\n return end;\n }\n\n // ASCII alphabetical and `:` and `_`.\n if (code === 58 || code === 95 || asciiAlpha(code)) {\n effects.consume(code);\n return tagOpenAttributeName;\n }\n if (markdownLineEnding(code)) {\n returnState = tagOpenBetween;\n return lineEndingBefore(code);\n }\n if (markdownSpace(code)) {\n effects.consume(code);\n return tagOpenBetween;\n }\n return end(code);\n }\n\n /**\n * In attribute name.\n *\n * ```markdown\n * > | a d\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeName(code) {\n // ASCII alphabetical and `-`, `.`, `:`, and `_`.\n if (code === 45 || code === 46 || code === 58 || code === 95 || asciiAlphanumeric(code)) {\n effects.consume(code);\n return tagOpenAttributeName;\n }\n return tagOpenAttributeNameAfter(code);\n }\n\n /**\n * After attribute name, before initializer, the end of the tag, or\n * whitespace.\n *\n * ```markdown\n * > | a d\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeNameAfter(code) {\n if (code === 61) {\n effects.consume(code);\n return tagOpenAttributeValueBefore;\n }\n if (markdownLineEnding(code)) {\n returnState = tagOpenAttributeNameAfter;\n return lineEndingBefore(code);\n }\n if (markdownSpace(code)) {\n effects.consume(code);\n return tagOpenAttributeNameAfter;\n }\n return tagOpenBetween(code);\n }\n\n /**\n * Before unquoted, double quoted, or single quoted attribute value, allowing\n * whitespace.\n *\n * ```markdown\n * > | a e\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeValueBefore(code) {\n if (code === null || code === 60 || code === 61 || code === 62 || code === 96) {\n return nok(code);\n }\n if (code === 34 || code === 39) {\n effects.consume(code);\n marker = code;\n return tagOpenAttributeValueQuoted;\n }\n if (markdownLineEnding(code)) {\n returnState = tagOpenAttributeValueBefore;\n return lineEndingBefore(code);\n }\n if (markdownSpace(code)) {\n effects.consume(code);\n return tagOpenAttributeValueBefore;\n }\n effects.consume(code);\n return tagOpenAttributeValueUnquoted;\n }\n\n /**\n * In double or single quoted attribute value.\n *\n * ```markdown\n * > | a e\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeValueQuoted(code) {\n if (code === marker) {\n effects.consume(code);\n marker = undefined;\n return tagOpenAttributeValueQuotedAfter;\n }\n if (code === null) {\n return nok(code);\n }\n if (markdownLineEnding(code)) {\n returnState = tagOpenAttributeValueQuoted;\n return lineEndingBefore(code);\n }\n effects.consume(code);\n return tagOpenAttributeValueQuoted;\n }\n\n /**\n * In unquoted attribute value.\n *\n * ```markdown\n * > | a e\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeValueUnquoted(code) {\n if (code === null || code === 34 || code === 39 || code === 60 || code === 61 || code === 96) {\n return nok(code);\n }\n if (code === 47 || code === 62 || markdownLineEndingOrSpace(code)) {\n return tagOpenBetween(code);\n }\n effects.consume(code);\n return tagOpenAttributeValueUnquoted;\n }\n\n /**\n * After double or single quoted attribute value, before whitespace or the end\n * of the tag.\n *\n * ```markdown\n * > | a e\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeValueQuotedAfter(code) {\n if (code === 47 || code === 62 || markdownLineEndingOrSpace(code)) {\n return tagOpenBetween(code);\n }\n return nok(code);\n }\n\n /**\n * In certain circumstances of a tag where only an `>` is allowed.\n *\n * ```markdown\n * > | a e\n * ^\n * ```\n *\n * @type {State}\n */\n function end(code) {\n if (code === 62) {\n effects.consume(code);\n effects.exit(\"htmlTextData\");\n effects.exit(\"htmlText\");\n return ok;\n }\n return nok(code);\n }\n\n /**\n * At eol.\n *\n * > 👉 **Note**: we can’t have blank lines in text, so no need to worry about\n * > empty tokens.\n *\n * ```markdown\n * > | a \n * ```\n *\n * @type {State}\n */\n function lineEndingBefore(code) {\n effects.exit(\"htmlTextData\");\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n return lineEndingAfter;\n }\n\n /**\n * After eol, at optional whitespace.\n *\n * > 👉 **Note**: we can’t have blank lines in text, so no need to worry about\n * > empty tokens.\n *\n * ```markdown\n * | a \n * ^\n * ```\n *\n * @type {State}\n */\n function lineEndingAfter(code) {\n // Always populated by defaults.\n\n return markdownSpace(code) ? factorySpace(effects, lineEndingAfterPrefix, \"linePrefix\", self.parser.constructs.disable.null.includes('codeIndented') ? undefined : 4)(code) : lineEndingAfterPrefix(code);\n }\n\n /**\n * After eol, after optional whitespace.\n *\n * > 👉 **Note**: we can’t have blank lines in text, so no need to worry about\n * > empty tokens.\n *\n * ```markdown\n * | a \n * ^\n * ```\n *\n * @type {State}\n */\n function lineEndingAfterPrefix(code) {\n effects.enter(\"htmlTextData\");\n return returnState(code);\n }\n}","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport { labelEnd } from './label-end.js';\n\n/** @type {Construct} */\nexport const labelStartLink = {\n name: 'labelStartLink',\n tokenize: tokenizeLabelStartLink,\n resolveAll: labelEnd.resolveAll\n};\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeLabelStartLink(effects, ok, nok) {\n const self = this;\n return start;\n\n /**\n * Start of label (link) start.\n *\n * ```markdown\n * > | a [b] c\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter(\"labelLink\");\n effects.enter(\"labelMarker\");\n effects.consume(code);\n effects.exit(\"labelMarker\");\n effects.exit(\"labelLink\");\n return after;\n }\n\n /** @type {State} */\n function after(code) {\n // To do: this isn’t needed in `micromark-extension-gfm-footnote`,\n // remove.\n // Hidden footnotes hook.\n /* c8 ignore next 3 */\n return code === 94 && '_hiddenFootnoteSupport' in self.parser.constructs ? nok(code) : ok(code);\n }\n}","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport { markdownLineEnding } from 'micromark-util-character';\n/** @type {Construct} */\nexport const hardBreakEscape = {\n name: 'hardBreakEscape',\n tokenize: tokenizeHardBreakEscape\n};\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeHardBreakEscape(effects, ok, nok) {\n return start;\n\n /**\n * Start of a hard break (escape).\n *\n * ```markdown\n * > | a\\\n * ^\n * | b\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter(\"hardBreakEscape\");\n effects.consume(code);\n return after;\n }\n\n /**\n * After `\\`, at eol.\n *\n * ```markdown\n * > | a\\\n * ^\n * | b\n * ```\n *\n * @type {State}\n */\n function after(code) {\n if (markdownLineEnding(code)) {\n effects.exit(\"hardBreakEscape\");\n return ok(code);\n }\n return nok(code);\n }\n}","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Previous} Previous\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport { markdownLineEnding } from 'micromark-util-character';\n/** @type {Construct} */\nexport const codeText = {\n name: 'codeText',\n tokenize: tokenizeCodeText,\n resolve: resolveCodeText,\n previous\n};\n\n// To do: next major: don’t resolve, like `markdown-rs`.\n/** @type {Resolver} */\nfunction resolveCodeText(events) {\n let tailExitIndex = events.length - 4;\n let headEnterIndex = 3;\n /** @type {number} */\n let index;\n /** @type {number | undefined} */\n let enter;\n\n // If we start and end with an EOL or a space.\n if ((events[headEnterIndex][1].type === \"lineEnding\" || events[headEnterIndex][1].type === 'space') && (events[tailExitIndex][1].type === \"lineEnding\" || events[tailExitIndex][1].type === 'space')) {\n index = headEnterIndex;\n\n // And we have data.\n while (++index < tailExitIndex) {\n if (events[index][1].type === \"codeTextData\") {\n // Then we have padding.\n events[headEnterIndex][1].type = \"codeTextPadding\";\n events[tailExitIndex][1].type = \"codeTextPadding\";\n headEnterIndex += 2;\n tailExitIndex -= 2;\n break;\n }\n }\n }\n\n // Merge adjacent spaces and data.\n index = headEnterIndex - 1;\n tailExitIndex++;\n while (++index <= tailExitIndex) {\n if (enter === undefined) {\n if (index !== tailExitIndex && events[index][1].type !== \"lineEnding\") {\n enter = index;\n }\n } else if (index === tailExitIndex || events[index][1].type === \"lineEnding\") {\n events[enter][1].type = \"codeTextData\";\n if (index !== enter + 2) {\n events[enter][1].end = events[index - 1][1].end;\n events.splice(enter + 2, index - enter - 2);\n tailExitIndex -= index - enter - 2;\n index = enter + 2;\n }\n enter = undefined;\n }\n }\n return events;\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Previous}\n */\nfunction previous(code) {\n // If there is a previous code, there will always be a tail.\n return code !== 96 || this.events[this.events.length - 1][1].type === \"characterEscape\";\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeCodeText(effects, ok, nok) {\n const self = this;\n let sizeOpen = 0;\n /** @type {number} */\n let size;\n /** @type {Token} */\n let token;\n return start;\n\n /**\n * Start of code (text).\n *\n * ```markdown\n * > | `a`\n * ^\n * > | \\`a`\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter(\"codeText\");\n effects.enter(\"codeTextSequence\");\n return sequenceOpen(code);\n }\n\n /**\n * In opening sequence.\n *\n * ```markdown\n * > | `a`\n * ^\n * ```\n *\n * @type {State}\n */\n function sequenceOpen(code) {\n if (code === 96) {\n effects.consume(code);\n sizeOpen++;\n return sequenceOpen;\n }\n effects.exit(\"codeTextSequence\");\n return between(code);\n }\n\n /**\n * Between something and something else.\n *\n * ```markdown\n * > | `a`\n * ^^\n * ```\n *\n * @type {State}\n */\n function between(code) {\n // EOF.\n if (code === null) {\n return nok(code);\n }\n\n // To do: next major: don’t do spaces in resolve, but when compiling,\n // like `markdown-rs`.\n // Tabs don’t work, and virtual spaces don’t make sense.\n if (code === 32) {\n effects.enter('space');\n effects.consume(code);\n effects.exit('space');\n return between;\n }\n\n // Closing fence? Could also be data.\n if (code === 96) {\n token = effects.enter(\"codeTextSequence\");\n size = 0;\n return sequenceClose(code);\n }\n if (markdownLineEnding(code)) {\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n return between;\n }\n\n // Data.\n effects.enter(\"codeTextData\");\n return data(code);\n }\n\n /**\n * In data.\n *\n * ```markdown\n * > | `a`\n * ^\n * ```\n *\n * @type {State}\n */\n function data(code) {\n if (code === null || code === 32 || code === 96 || markdownLineEnding(code)) {\n effects.exit(\"codeTextData\");\n return between(code);\n }\n effects.consume(code);\n return data;\n }\n\n /**\n * In closing sequence.\n *\n * ```markdown\n * > | `a`\n * ^\n * ```\n *\n * @type {State}\n */\n function sequenceClose(code) {\n // More.\n if (code === 96) {\n effects.consume(code);\n size++;\n return sequenceClose;\n }\n\n // Done!\n if (size === sizeOpen) {\n effects.exit(\"codeTextSequence\");\n effects.exit(\"codeText\");\n return ok(code);\n }\n\n // More or less accents: mark as data.\n token.type = \"codeTextData\";\n return data(code);\n }\n}","/**\n * @typedef {import('micromark-util-types').Extension} Extension\n */\n\nimport {\n attention,\n autolink,\n blockQuote,\n characterEscape,\n characterReference,\n codeFenced,\n codeIndented,\n codeText,\n definition,\n hardBreakEscape,\n headingAtx,\n htmlFlow,\n htmlText,\n labelEnd,\n labelStartImage,\n labelStartLink,\n lineEnding,\n list,\n setextUnderline,\n thematicBreak\n} from 'micromark-core-commonmark'\nimport {resolver as resolveText} from './initialize/text.js'\n\n/** @satisfies {Extension['document']} */\nexport const document = {\n [42]: list,\n [43]: list,\n [45]: list,\n [48]: list,\n [49]: list,\n [50]: list,\n [51]: list,\n [52]: list,\n [53]: list,\n [54]: list,\n [55]: list,\n [56]: list,\n [57]: list,\n [62]: blockQuote\n}\n\n/** @satisfies {Extension['contentInitial']} */\nexport const contentInitial = {\n [91]: definition\n}\n\n/** @satisfies {Extension['flowInitial']} */\nexport const flowInitial = {\n [-2]: codeIndented,\n [-1]: codeIndented,\n [32]: codeIndented\n}\n\n/** @satisfies {Extension['flow']} */\nexport const flow = {\n [35]: headingAtx,\n [42]: thematicBreak,\n [45]: [setextUnderline, thematicBreak],\n [60]: htmlFlow,\n [61]: setextUnderline,\n [95]: thematicBreak,\n [96]: codeFenced,\n [126]: codeFenced\n}\n\n/** @satisfies {Extension['string']} */\nexport const string = {\n [38]: characterReference,\n [92]: characterEscape\n}\n\n/** @satisfies {Extension['text']} */\nexport const text = {\n [-5]: lineEnding,\n [-4]: lineEnding,\n [-3]: lineEnding,\n [33]: labelStartImage,\n [38]: characterReference,\n [42]: attention,\n [60]: [autolink, htmlText],\n [91]: labelStartLink,\n [92]: [hardBreakEscape, characterEscape],\n [93]: labelEnd,\n [95]: attention,\n [96]: codeText\n}\n\n/** @satisfies {Extension['insideSpan']} */\nexport const insideSpan = {\n null: [attention, resolveText]\n}\n\n/** @satisfies {Extension['attentionMarkers']} */\nexport const attentionMarkers = {\n null: [42, 95]\n}\n\n/** @satisfies {Extension['disable']} */\nexport const disable = {\n null: []\n}\n","/**\n * @typedef {import('micromark-util-types').Create} Create\n * @typedef {import('micromark-util-types').FullNormalizedExtension} FullNormalizedExtension\n * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct\n * @typedef {import('micromark-util-types').ParseContext} ParseContext\n * @typedef {import('micromark-util-types').ParseOptions} ParseOptions\n */\n\nimport {combineExtensions} from 'micromark-util-combine-extensions'\nimport {content} from './initialize/content.js'\nimport {document} from './initialize/document.js'\nimport {flow} from './initialize/flow.js'\nimport {string, text} from './initialize/text.js'\nimport {createTokenizer} from './create-tokenizer.js'\nimport * as defaultConstructs from './constructs.js'\n\n/**\n * @param {ParseOptions | null | undefined} [options]\n * @returns {ParseContext}\n */\nexport function parse(options) {\n const settings = options || {}\n const constructs =\n /** @type {FullNormalizedExtension} */\n combineExtensions([defaultConstructs, ...(settings.extensions || [])])\n\n /** @type {ParseContext} */\n const parser = {\n defined: [],\n lazy: {},\n constructs,\n content: create(content),\n document: create(document),\n flow: create(flow),\n string: create(string),\n text: create(text)\n }\n return parser\n\n /**\n * @param {InitialConstruct} initial\n */\n function create(initial) {\n return creator\n /** @type {Create} */\n function creator(from) {\n return createTokenizer(parser, initial, from)\n }\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Chunk} Chunk\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Encoding} Encoding\n * @typedef {import('micromark-util-types').Value} Value\n */\n\n/**\n * @callback Preprocessor\n * @param {Value} value\n * @param {Encoding | null | undefined} [encoding]\n * @param {boolean | null | undefined} [end=false]\n * @returns {Array}\n */\n\nconst search = /[\\0\\t\\n\\r]/g\n\n/**\n * @returns {Preprocessor}\n */\nexport function preprocess() {\n let column = 1\n let buffer = ''\n /** @type {boolean | undefined} */\n let start = true\n /** @type {boolean | undefined} */\n let atCarriageReturn\n return preprocessor\n\n /** @type {Preprocessor} */\n // eslint-disable-next-line complexity\n function preprocessor(value, encoding, end) {\n /** @type {Array} */\n const chunks = []\n /** @type {RegExpMatchArray | null} */\n let match\n /** @type {number} */\n let next\n /** @type {number} */\n let startPosition\n /** @type {number} */\n let endPosition\n /** @type {Code} */\n let code\n value =\n buffer +\n (typeof value === 'string'\n ? value.toString()\n : new TextDecoder(encoding || undefined).decode(value))\n startPosition = 0\n buffer = ''\n if (start) {\n // To do: `markdown-rs` actually parses BOMs (byte order mark).\n if (value.charCodeAt(0) === 65279) {\n startPosition++\n }\n start = undefined\n }\n while (startPosition < value.length) {\n search.lastIndex = startPosition\n match = search.exec(value)\n endPosition =\n match && match.index !== undefined ? match.index : value.length\n code = value.charCodeAt(endPosition)\n if (!match) {\n buffer = value.slice(startPosition)\n break\n }\n if (code === 10 && startPosition === endPosition && atCarriageReturn) {\n chunks.push(-3)\n atCarriageReturn = undefined\n } else {\n if (atCarriageReturn) {\n chunks.push(-5)\n atCarriageReturn = undefined\n }\n if (startPosition < endPosition) {\n chunks.push(value.slice(startPosition, endPosition))\n column += endPosition - startPosition\n }\n switch (code) {\n case 0: {\n chunks.push(65533)\n column++\n break\n }\n case 9: {\n next = Math.ceil(column / 4) * 4\n chunks.push(-2)\n while (column++ < next) chunks.push(-1)\n break\n }\n case 10: {\n chunks.push(-4)\n column = 1\n break\n }\n default: {\n atCarriageReturn = true\n column = 1\n }\n }\n }\n startPosition = endPosition + 1\n }\n if (end) {\n if (atCarriageReturn) chunks.push(-5)\n if (buffer) chunks.push(buffer)\n chunks.push(null)\n }\n return chunks\n }\n}\n","/**\n * Turn the number (in string form as either hexa- or plain decimal) coming from\n * a numeric character reference into a character.\n *\n * Sort of like `String.fromCodePoint(Number.parseInt(value, base))`, but makes\n * non-characters and control characters safe.\n *\n * @param {string} value\n * Value to decode.\n * @param {number} base\n * Numeric base.\n * @returns {string}\n * Character.\n */\nexport function decodeNumericCharacterReference(value, base) {\n const code = Number.parseInt(value, base);\n if (\n // C0 except for HT, LF, FF, CR, space.\n code < 9 || code === 11 || code > 13 && code < 32 ||\n // Control character (DEL) of C0, and C1 controls.\n code > 126 && code < 160 ||\n // Lone high surrogates and low surrogates.\n code > 55_295 && code < 57_344 ||\n // Noncharacters.\n code > 64_975 && code < 65_008 || /* eslint-disable no-bitwise */\n (code & 65_535) === 65_535 || (code & 65_535) === 65_534 || /* eslint-enable no-bitwise */\n // Out of range\n code > 1_114_111) {\n return \"\\uFFFD\";\n }\n return String.fromCodePoint(code);\n}","import {decodeNamedCharacterReference} from 'decode-named-character-reference'\nimport {decodeNumericCharacterReference} from 'micromark-util-decode-numeric-character-reference'\nconst characterEscapeOrReference =\n /\\\\([!-/:-@[-`{-~])|&(#(?:\\d{1,7}|x[\\da-f]{1,6})|[\\da-z]{1,31});/gi\n\n/**\n * Decode markdown strings (which occur in places such as fenced code info\n * strings, destinations, labels, and titles).\n *\n * The “string” content type allows character escapes and -references.\n * This decodes those.\n *\n * @param {string} value\n * Value to decode.\n * @returns {string}\n * Decoded value.\n */\nexport function decodeString(value) {\n return value.replace(characterEscapeOrReference, decode)\n}\n\n/**\n * @param {string} $0\n * @param {string} $1\n * @param {string} $2\n * @returns {string}\n */\nfunction decode($0, $1, $2) {\n if ($1) {\n // Escape.\n return $1\n }\n\n // Reference.\n const head = $2.charCodeAt(0)\n if (head === 35) {\n const head = $2.charCodeAt(1)\n const hex = head === 120 || head === 88\n return decodeNumericCharacterReference($2.slice(hex ? 2 : 1), hex ? 16 : 10)\n }\n return decodeNamedCharacterReference($2) || $0\n}\n","/**\n * @typedef {import('mdast').Break} Break\n * @typedef {import('mdast').Blockquote} Blockquote\n * @typedef {import('mdast').Code} Code\n * @typedef {import('mdast').Definition} Definition\n * @typedef {import('mdast').Emphasis} Emphasis\n * @typedef {import('mdast').Heading} Heading\n * @typedef {import('mdast').Html} Html\n * @typedef {import('mdast').Image} Image\n * @typedef {import('mdast').InlineCode} InlineCode\n * @typedef {import('mdast').Link} Link\n * @typedef {import('mdast').List} List\n * @typedef {import('mdast').ListItem} ListItem\n * @typedef {import('mdast').Nodes} Nodes\n * @typedef {import('mdast').Paragraph} Paragraph\n * @typedef {import('mdast').Parent} Parent\n * @typedef {import('mdast').PhrasingContent} PhrasingContent\n * @typedef {import('mdast').ReferenceType} ReferenceType\n * @typedef {import('mdast').Root} Root\n * @typedef {import('mdast').Strong} Strong\n * @typedef {import('mdast').Text} Text\n * @typedef {import('mdast').ThematicBreak} ThematicBreak\n *\n * @typedef {import('micromark-util-types').Encoding} Encoding\n * @typedef {import('micromark-util-types').Event} Event\n * @typedef {import('micromark-util-types').ParseOptions} ParseOptions\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Value} Value\n *\n * @typedef {import('unist').Point} Point\n *\n * @typedef {import('../index.js').CompileData} CompileData\n */\n\n/**\n * @typedef {Omit & {type: 'fragment', children: Array}} Fragment\n */\n\n/**\n * @callback Transform\n * Extra transform, to change the AST afterwards.\n * @param {Root} tree\n * Tree to transform.\n * @returns {Root | null | undefined | void}\n * New tree or nothing (in which case the current tree is used).\n *\n * @callback Handle\n * Handle a token.\n * @param {CompileContext} this\n * Context.\n * @param {Token} token\n * Current token.\n * @returns {undefined | void}\n * Nothing.\n *\n * @typedef {Record} Handles\n * Token types mapping to handles\n *\n * @callback OnEnterError\n * Handle the case where the `right` token is open, but it is closed (by the\n * `left` token) or because we reached the end of the document.\n * @param {Omit} this\n * Context.\n * @param {Token | undefined} left\n * Left token.\n * @param {Token} right\n * Right token.\n * @returns {undefined}\n * Nothing.\n *\n * @callback OnExitError\n * Handle the case where the `right` token is open but it is closed by\n * exiting the `left` token.\n * @param {Omit} this\n * Context.\n * @param {Token} left\n * Left token.\n * @param {Token} right\n * Right token.\n * @returns {undefined}\n * Nothing.\n *\n * @typedef {[Token, OnEnterError | undefined]} TokenTuple\n * Open token on the stack, with an optional error handler for when\n * that token isn’t closed properly.\n */\n\n/**\n * @typedef Config\n * Configuration.\n *\n * We have our defaults, but extensions will add more.\n * @property {Array} canContainEols\n * Token types where line endings are used.\n * @property {Handles} enter\n * Opening handles.\n * @property {Handles} exit\n * Closing handles.\n * @property {Array} transforms\n * Tree transforms.\n *\n * @typedef {Partial} Extension\n * Change how markdown tokens from micromark are turned into mdast.\n *\n * @typedef CompileContext\n * mdast compiler context.\n * @property {Array} stack\n * Stack of nodes.\n * @property {Array} tokenStack\n * Stack of tokens.\n * @property {(this: CompileContext) => undefined} buffer\n * Capture some of the output data.\n * @property {(this: CompileContext) => string} resume\n * Stop capturing and access the output data.\n * @property {(this: CompileContext, node: Nodes, token: Token, onError?: OnEnterError) => undefined} enter\n * Enter a node.\n * @property {(this: CompileContext, token: Token, onError?: OnExitError) => undefined} exit\n * Exit a node.\n * @property {TokenizeContext['sliceSerialize']} sliceSerialize\n * Get the string value of a token.\n * @property {Config} config\n * Configuration.\n * @property {CompileData} data\n * Info passed around; key/value store.\n *\n * @typedef FromMarkdownOptions\n * Configuration for how to build mdast.\n * @property {Array> | null | undefined} [mdastExtensions]\n * Extensions for this utility to change how tokens are turned into a tree.\n *\n * @typedef {ParseOptions & FromMarkdownOptions} Options\n * Configuration.\n */\n\nimport { toString } from 'mdast-util-to-string';\nimport { parse, postprocess, preprocess } from 'micromark';\nimport { decodeNumericCharacterReference } from 'micromark-util-decode-numeric-character-reference';\nimport { decodeString } from 'micromark-util-decode-string';\nimport { normalizeIdentifier } from 'micromark-util-normalize-identifier';\nimport { decodeNamedCharacterReference } from 'decode-named-character-reference';\nimport { stringifyPosition } from 'unist-util-stringify-position';\nconst own = {}.hasOwnProperty;\n\n/**\n * Turn markdown into a syntax tree.\n *\n * @overload\n * @param {Value} value\n * @param {Encoding | null | undefined} [encoding]\n * @param {Options | null | undefined} [options]\n * @returns {Root}\n *\n * @overload\n * @param {Value} value\n * @param {Options | null | undefined} [options]\n * @returns {Root}\n *\n * @param {Value} value\n * Markdown to parse.\n * @param {Encoding | Options | null | undefined} [encoding]\n * Character encoding for when `value` is `Buffer`.\n * @param {Options | null | undefined} [options]\n * Configuration.\n * @returns {Root}\n * mdast tree.\n */\nexport function fromMarkdown(value, encoding, options) {\n if (typeof encoding !== 'string') {\n options = encoding;\n encoding = undefined;\n }\n return compiler(options)(postprocess(parse(options).document().write(preprocess()(value, encoding, true))));\n}\n\n/**\n * Note this compiler only understand complete buffering, not streaming.\n *\n * @param {Options | null | undefined} [options]\n */\nfunction compiler(options) {\n /** @type {Config} */\n const config = {\n transforms: [],\n canContainEols: ['emphasis', 'fragment', 'heading', 'paragraph', 'strong'],\n enter: {\n autolink: opener(link),\n autolinkProtocol: onenterdata,\n autolinkEmail: onenterdata,\n atxHeading: opener(heading),\n blockQuote: opener(blockQuote),\n characterEscape: onenterdata,\n characterReference: onenterdata,\n codeFenced: opener(codeFlow),\n codeFencedFenceInfo: buffer,\n codeFencedFenceMeta: buffer,\n codeIndented: opener(codeFlow, buffer),\n codeText: opener(codeText, buffer),\n codeTextData: onenterdata,\n data: onenterdata,\n codeFlowValue: onenterdata,\n definition: opener(definition),\n definitionDestinationString: buffer,\n definitionLabelString: buffer,\n definitionTitleString: buffer,\n emphasis: opener(emphasis),\n hardBreakEscape: opener(hardBreak),\n hardBreakTrailing: opener(hardBreak),\n htmlFlow: opener(html, buffer),\n htmlFlowData: onenterdata,\n htmlText: opener(html, buffer),\n htmlTextData: onenterdata,\n image: opener(image),\n label: buffer,\n link: opener(link),\n listItem: opener(listItem),\n listItemValue: onenterlistitemvalue,\n listOrdered: opener(list, onenterlistordered),\n listUnordered: opener(list),\n paragraph: opener(paragraph),\n reference: onenterreference,\n referenceString: buffer,\n resourceDestinationString: buffer,\n resourceTitleString: buffer,\n setextHeading: opener(heading),\n strong: opener(strong),\n thematicBreak: opener(thematicBreak)\n },\n exit: {\n atxHeading: closer(),\n atxHeadingSequence: onexitatxheadingsequence,\n autolink: closer(),\n autolinkEmail: onexitautolinkemail,\n autolinkProtocol: onexitautolinkprotocol,\n blockQuote: closer(),\n characterEscapeValue: onexitdata,\n characterReferenceMarkerHexadecimal: onexitcharacterreferencemarker,\n characterReferenceMarkerNumeric: onexitcharacterreferencemarker,\n characterReferenceValue: onexitcharacterreferencevalue,\n characterReference: onexitcharacterreference,\n codeFenced: closer(onexitcodefenced),\n codeFencedFence: onexitcodefencedfence,\n codeFencedFenceInfo: onexitcodefencedfenceinfo,\n codeFencedFenceMeta: onexitcodefencedfencemeta,\n codeFlowValue: onexitdata,\n codeIndented: closer(onexitcodeindented),\n codeText: closer(onexitcodetext),\n codeTextData: onexitdata,\n data: onexitdata,\n definition: closer(),\n definitionDestinationString: onexitdefinitiondestinationstring,\n definitionLabelString: onexitdefinitionlabelstring,\n definitionTitleString: onexitdefinitiontitlestring,\n emphasis: closer(),\n hardBreakEscape: closer(onexithardbreak),\n hardBreakTrailing: closer(onexithardbreak),\n htmlFlow: closer(onexithtmlflow),\n htmlFlowData: onexitdata,\n htmlText: closer(onexithtmltext),\n htmlTextData: onexitdata,\n image: closer(onexitimage),\n label: onexitlabel,\n labelText: onexitlabeltext,\n lineEnding: onexitlineending,\n link: closer(onexitlink),\n listItem: closer(),\n listOrdered: closer(),\n listUnordered: closer(),\n paragraph: closer(),\n referenceString: onexitreferencestring,\n resourceDestinationString: onexitresourcedestinationstring,\n resourceTitleString: onexitresourcetitlestring,\n resource: onexitresource,\n setextHeading: closer(onexitsetextheading),\n setextHeadingLineSequence: onexitsetextheadinglinesequence,\n setextHeadingText: onexitsetextheadingtext,\n strong: closer(),\n thematicBreak: closer()\n }\n };\n configure(config, (options || {}).mdastExtensions || []);\n\n /** @type {CompileData} */\n const data = {};\n return compile;\n\n /**\n * Turn micromark events into an mdast tree.\n *\n * @param {Array} events\n * Events.\n * @returns {Root}\n * mdast tree.\n */\n function compile(events) {\n /** @type {Root} */\n let tree = {\n type: 'root',\n children: []\n };\n /** @type {Omit} */\n const context = {\n stack: [tree],\n tokenStack: [],\n config,\n enter,\n exit,\n buffer,\n resume,\n data\n };\n /** @type {Array} */\n const listStack = [];\n let index = -1;\n while (++index < events.length) {\n // We preprocess lists to add `listItem` tokens, and to infer whether\n // items the list itself are spread out.\n if (events[index][1].type === \"listOrdered\" || events[index][1].type === \"listUnordered\") {\n if (events[index][0] === 'enter') {\n listStack.push(index);\n } else {\n const tail = listStack.pop();\n index = prepareList(events, tail, index);\n }\n }\n }\n index = -1;\n while (++index < events.length) {\n const handler = config[events[index][0]];\n if (own.call(handler, events[index][1].type)) {\n handler[events[index][1].type].call(Object.assign({\n sliceSerialize: events[index][2].sliceSerialize\n }, context), events[index][1]);\n }\n }\n\n // Handle tokens still being open.\n if (context.tokenStack.length > 0) {\n const tail = context.tokenStack[context.tokenStack.length - 1];\n const handler = tail[1] || defaultOnError;\n handler.call(context, undefined, tail[0]);\n }\n\n // Figure out `root` position.\n tree.position = {\n start: point(events.length > 0 ? events[0][1].start : {\n line: 1,\n column: 1,\n offset: 0\n }),\n end: point(events.length > 0 ? events[events.length - 2][1].end : {\n line: 1,\n column: 1,\n offset: 0\n })\n };\n\n // Call transforms.\n index = -1;\n while (++index < config.transforms.length) {\n tree = config.transforms[index](tree) || tree;\n }\n return tree;\n }\n\n /**\n * @param {Array} events\n * @param {number} start\n * @param {number} length\n * @returns {number}\n */\n function prepareList(events, start, length) {\n let index = start - 1;\n let containerBalance = -1;\n let listSpread = false;\n /** @type {Token | undefined} */\n let listItem;\n /** @type {number | undefined} */\n let lineIndex;\n /** @type {number | undefined} */\n let firstBlankLineIndex;\n /** @type {boolean | undefined} */\n let atMarker;\n while (++index <= length) {\n const event = events[index];\n switch (event[1].type) {\n case \"listUnordered\":\n case \"listOrdered\":\n case \"blockQuote\":\n {\n if (event[0] === 'enter') {\n containerBalance++;\n } else {\n containerBalance--;\n }\n atMarker = undefined;\n break;\n }\n case \"lineEndingBlank\":\n {\n if (event[0] === 'enter') {\n if (listItem && !atMarker && !containerBalance && !firstBlankLineIndex) {\n firstBlankLineIndex = index;\n }\n atMarker = undefined;\n }\n break;\n }\n case \"linePrefix\":\n case \"listItemValue\":\n case \"listItemMarker\":\n case \"listItemPrefix\":\n case \"listItemPrefixWhitespace\":\n {\n // Empty.\n\n break;\n }\n default:\n {\n atMarker = undefined;\n }\n }\n if (!containerBalance && event[0] === 'enter' && event[1].type === \"listItemPrefix\" || containerBalance === -1 && event[0] === 'exit' && (event[1].type === \"listUnordered\" || event[1].type === \"listOrdered\")) {\n if (listItem) {\n let tailIndex = index;\n lineIndex = undefined;\n while (tailIndex--) {\n const tailEvent = events[tailIndex];\n if (tailEvent[1].type === \"lineEnding\" || tailEvent[1].type === \"lineEndingBlank\") {\n if (tailEvent[0] === 'exit') continue;\n if (lineIndex) {\n events[lineIndex][1].type = \"lineEndingBlank\";\n listSpread = true;\n }\n tailEvent[1].type = \"lineEnding\";\n lineIndex = tailIndex;\n } else if (tailEvent[1].type === \"linePrefix\" || tailEvent[1].type === \"blockQuotePrefix\" || tailEvent[1].type === \"blockQuotePrefixWhitespace\" || tailEvent[1].type === \"blockQuoteMarker\" || tailEvent[1].type === \"listItemIndent\") {\n // Empty\n } else {\n break;\n }\n }\n if (firstBlankLineIndex && (!lineIndex || firstBlankLineIndex < lineIndex)) {\n listItem._spread = true;\n }\n\n // Fix position.\n listItem.end = Object.assign({}, lineIndex ? events[lineIndex][1].start : event[1].end);\n events.splice(lineIndex || index, 0, ['exit', listItem, event[2]]);\n index++;\n length++;\n }\n\n // Create a new list item.\n if (event[1].type === \"listItemPrefix\") {\n /** @type {Token} */\n const item = {\n type: 'listItem',\n _spread: false,\n start: Object.assign({}, event[1].start),\n // @ts-expect-error: we’ll add `end` in a second.\n end: undefined\n };\n listItem = item;\n events.splice(index, 0, ['enter', item, event[2]]);\n index++;\n length++;\n firstBlankLineIndex = undefined;\n atMarker = true;\n }\n }\n }\n events[start][1]._spread = listSpread;\n return length;\n }\n\n /**\n * Create an opener handle.\n *\n * @param {(token: Token) => Nodes} create\n * Create a node.\n * @param {Handle | undefined} [and]\n * Optional function to also run.\n * @returns {Handle}\n * Handle.\n */\n function opener(create, and) {\n return open;\n\n /**\n * @this {CompileContext}\n * @param {Token} token\n * @returns {undefined}\n */\n function open(token) {\n enter.call(this, create(token), token);\n if (and) and.call(this, token);\n }\n }\n\n /**\n * @this {CompileContext}\n * @returns {undefined}\n */\n function buffer() {\n this.stack.push({\n type: 'fragment',\n children: []\n });\n }\n\n /**\n * @this {CompileContext}\n * Context.\n * @param {Nodes} node\n * Node to enter.\n * @param {Token} token\n * Corresponding token.\n * @param {OnEnterError | undefined} [errorHandler]\n * Handle the case where this token is open, but it is closed by something else.\n * @returns {undefined}\n * Nothing.\n */\n function enter(node, token, errorHandler) {\n const parent = this.stack[this.stack.length - 1];\n /** @type {Array} */\n const siblings = parent.children;\n siblings.push(node);\n this.stack.push(node);\n this.tokenStack.push([token, errorHandler]);\n node.position = {\n start: point(token.start),\n // @ts-expect-error: `end` will be patched later.\n end: undefined\n };\n }\n\n /**\n * Create a closer handle.\n *\n * @param {Handle | undefined} [and]\n * Optional function to also run.\n * @returns {Handle}\n * Handle.\n */\n function closer(and) {\n return close;\n\n /**\n * @this {CompileContext}\n * @param {Token} token\n * @returns {undefined}\n */\n function close(token) {\n if (and) and.call(this, token);\n exit.call(this, token);\n }\n }\n\n /**\n * @this {CompileContext}\n * Context.\n * @param {Token} token\n * Corresponding token.\n * @param {OnExitError | undefined} [onExitError]\n * Handle the case where another token is open.\n * @returns {undefined}\n * Nothing.\n */\n function exit(token, onExitError) {\n const node = this.stack.pop();\n const open = this.tokenStack.pop();\n if (!open) {\n throw new Error('Cannot close `' + token.type + '` (' + stringifyPosition({\n start: token.start,\n end: token.end\n }) + '): it’s not open');\n } else if (open[0].type !== token.type) {\n if (onExitError) {\n onExitError.call(this, token, open[0]);\n } else {\n const handler = open[1] || defaultOnError;\n handler.call(this, token, open[0]);\n }\n }\n node.position.end = point(token.end);\n }\n\n /**\n * @this {CompileContext}\n * @returns {string}\n */\n function resume() {\n return toString(this.stack.pop());\n }\n\n //\n // Handlers.\n //\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onenterlistordered() {\n this.data.expectingFirstListItemValue = true;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onenterlistitemvalue(token) {\n if (this.data.expectingFirstListItemValue) {\n const ancestor = this.stack[this.stack.length - 2];\n ancestor.start = Number.parseInt(this.sliceSerialize(token), 10);\n this.data.expectingFirstListItemValue = undefined;\n }\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodefencedfenceinfo() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.lang = data;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodefencedfencemeta() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.meta = data;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodefencedfence() {\n // Exit if this is the closing fence.\n if (this.data.flowCodeInside) return;\n this.buffer();\n this.data.flowCodeInside = true;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodefenced() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.value = data.replace(/^(\\r?\\n|\\r)|(\\r?\\n|\\r)$/g, '');\n this.data.flowCodeInside = undefined;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodeindented() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.value = data.replace(/(\\r?\\n|\\r)$/g, '');\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitdefinitionlabelstring(token) {\n const label = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.label = label;\n node.identifier = normalizeIdentifier(this.sliceSerialize(token)).toLowerCase();\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitdefinitiontitlestring() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.title = data;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitdefinitiondestinationstring() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.url = data;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitatxheadingsequence(token) {\n const node = this.stack[this.stack.length - 1];\n if (!node.depth) {\n const depth = this.sliceSerialize(token).length;\n node.depth = depth;\n }\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitsetextheadingtext() {\n this.data.setextHeadingSlurpLineEnding = true;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitsetextheadinglinesequence(token) {\n const node = this.stack[this.stack.length - 1];\n node.depth = this.sliceSerialize(token).codePointAt(0) === 61 ? 1 : 2;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitsetextheading() {\n this.data.setextHeadingSlurpLineEnding = undefined;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onenterdata(token) {\n const node = this.stack[this.stack.length - 1];\n /** @type {Array} */\n const siblings = node.children;\n let tail = siblings[siblings.length - 1];\n if (!tail || tail.type !== 'text') {\n // Add a new text node.\n tail = text();\n tail.position = {\n start: point(token.start),\n // @ts-expect-error: we’ll add `end` later.\n end: undefined\n };\n siblings.push(tail);\n }\n this.stack.push(tail);\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitdata(token) {\n const tail = this.stack.pop();\n tail.value += this.sliceSerialize(token);\n tail.position.end = point(token.end);\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitlineending(token) {\n const context = this.stack[this.stack.length - 1];\n // If we’re at a hard break, include the line ending in there.\n if (this.data.atHardBreak) {\n const tail = context.children[context.children.length - 1];\n tail.position.end = point(token.end);\n this.data.atHardBreak = undefined;\n return;\n }\n if (!this.data.setextHeadingSlurpLineEnding && config.canContainEols.includes(context.type)) {\n onenterdata.call(this, token);\n onexitdata.call(this, token);\n }\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexithardbreak() {\n this.data.atHardBreak = true;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexithtmlflow() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.value = data;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexithtmltext() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.value = data;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitcodetext() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.value = data;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitlink() {\n const node = this.stack[this.stack.length - 1];\n // Note: there are also `identifier` and `label` fields on this link node!\n // These are used / cleaned here.\n\n // To do: clean.\n if (this.data.inReference) {\n /** @type {ReferenceType} */\n const referenceType = this.data.referenceType || 'shortcut';\n node.type += 'Reference';\n // @ts-expect-error: mutate.\n node.referenceType = referenceType;\n // @ts-expect-error: mutate.\n delete node.url;\n delete node.title;\n } else {\n // @ts-expect-error: mutate.\n delete node.identifier;\n // @ts-expect-error: mutate.\n delete node.label;\n }\n this.data.referenceType = undefined;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitimage() {\n const node = this.stack[this.stack.length - 1];\n // Note: there are also `identifier` and `label` fields on this link node!\n // These are used / cleaned here.\n\n // To do: clean.\n if (this.data.inReference) {\n /** @type {ReferenceType} */\n const referenceType = this.data.referenceType || 'shortcut';\n node.type += 'Reference';\n // @ts-expect-error: mutate.\n node.referenceType = referenceType;\n // @ts-expect-error: mutate.\n delete node.url;\n delete node.title;\n } else {\n // @ts-expect-error: mutate.\n delete node.identifier;\n // @ts-expect-error: mutate.\n delete node.label;\n }\n this.data.referenceType = undefined;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitlabeltext(token) {\n const string = this.sliceSerialize(token);\n const ancestor = this.stack[this.stack.length - 2];\n // @ts-expect-error: stash this on the node, as it might become a reference\n // later.\n ancestor.label = decodeString(string);\n // @ts-expect-error: same as above.\n ancestor.identifier = normalizeIdentifier(string).toLowerCase();\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitlabel() {\n const fragment = this.stack[this.stack.length - 1];\n const value = this.resume();\n const node = this.stack[this.stack.length - 1];\n // Assume a reference.\n this.data.inReference = true;\n if (node.type === 'link') {\n /** @type {Array} */\n const children = fragment.children;\n node.children = children;\n } else {\n node.alt = value;\n }\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitresourcedestinationstring() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.url = data;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitresourcetitlestring() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.title = data;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitresource() {\n this.data.inReference = undefined;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onenterreference() {\n this.data.referenceType = 'collapsed';\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitreferencestring(token) {\n const label = this.resume();\n const node = this.stack[this.stack.length - 1];\n // @ts-expect-error: stash this on the node, as it might become a reference\n // later.\n node.label = label;\n // @ts-expect-error: same as above.\n node.identifier = normalizeIdentifier(this.sliceSerialize(token)).toLowerCase();\n this.data.referenceType = 'full';\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitcharacterreferencemarker(token) {\n this.data.characterReferenceType = token.type;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcharacterreferencevalue(token) {\n const data = this.sliceSerialize(token);\n const type = this.data.characterReferenceType;\n /** @type {string} */\n let value;\n if (type) {\n value = decodeNumericCharacterReference(data, type === \"characterReferenceMarkerNumeric\" ? 10 : 16);\n this.data.characterReferenceType = undefined;\n } else {\n const result = decodeNamedCharacterReference(data);\n value = result;\n }\n const tail = this.stack[this.stack.length - 1];\n tail.value += value;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcharacterreference(token) {\n const tail = this.stack.pop();\n tail.position.end = point(token.end);\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitautolinkprotocol(token) {\n onexitdata.call(this, token);\n const node = this.stack[this.stack.length - 1];\n node.url = this.sliceSerialize(token);\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitautolinkemail(token) {\n onexitdata.call(this, token);\n const node = this.stack[this.stack.length - 1];\n node.url = 'mailto:' + this.sliceSerialize(token);\n }\n\n //\n // Creaters.\n //\n\n /** @returns {Blockquote} */\n function blockQuote() {\n return {\n type: 'blockquote',\n children: []\n };\n }\n\n /** @returns {Code} */\n function codeFlow() {\n return {\n type: 'code',\n lang: null,\n meta: null,\n value: ''\n };\n }\n\n /** @returns {InlineCode} */\n function codeText() {\n return {\n type: 'inlineCode',\n value: ''\n };\n }\n\n /** @returns {Definition} */\n function definition() {\n return {\n type: 'definition',\n identifier: '',\n label: null,\n title: null,\n url: ''\n };\n }\n\n /** @returns {Emphasis} */\n function emphasis() {\n return {\n type: 'emphasis',\n children: []\n };\n }\n\n /** @returns {Heading} */\n function heading() {\n return {\n type: 'heading',\n // @ts-expect-error `depth` will be set later.\n depth: 0,\n children: []\n };\n }\n\n /** @returns {Break} */\n function hardBreak() {\n return {\n type: 'break'\n };\n }\n\n /** @returns {Html} */\n function html() {\n return {\n type: 'html',\n value: ''\n };\n }\n\n /** @returns {Image} */\n function image() {\n return {\n type: 'image',\n title: null,\n url: '',\n alt: null\n };\n }\n\n /** @returns {Link} */\n function link() {\n return {\n type: 'link',\n title: null,\n url: '',\n children: []\n };\n }\n\n /**\n * @param {Token} token\n * @returns {List}\n */\n function list(token) {\n return {\n type: 'list',\n ordered: token.type === 'listOrdered',\n start: null,\n spread: token._spread,\n children: []\n };\n }\n\n /**\n * @param {Token} token\n * @returns {ListItem}\n */\n function listItem(token) {\n return {\n type: 'listItem',\n spread: token._spread,\n checked: null,\n children: []\n };\n }\n\n /** @returns {Paragraph} */\n function paragraph() {\n return {\n type: 'paragraph',\n children: []\n };\n }\n\n /** @returns {Strong} */\n function strong() {\n return {\n type: 'strong',\n children: []\n };\n }\n\n /** @returns {Text} */\n function text() {\n return {\n type: 'text',\n value: ''\n };\n }\n\n /** @returns {ThematicBreak} */\n function thematicBreak() {\n return {\n type: 'thematicBreak'\n };\n }\n}\n\n/**\n * Copy a point-like value.\n *\n * @param {Point} d\n * Point-like value.\n * @returns {Point}\n * unist point.\n */\nfunction point(d) {\n return {\n line: d.line,\n column: d.column,\n offset: d.offset\n };\n}\n\n/**\n * @param {Config} combined\n * @param {Array | Extension>} extensions\n * @returns {undefined}\n */\nfunction configure(combined, extensions) {\n let index = -1;\n while (++index < extensions.length) {\n const value = extensions[index];\n if (Array.isArray(value)) {\n configure(combined, value);\n } else {\n extension(combined, value);\n }\n }\n}\n\n/**\n * @param {Config} combined\n * @param {Extension} extension\n * @returns {undefined}\n */\nfunction extension(combined, extension) {\n /** @type {keyof Extension} */\n let key;\n for (key in extension) {\n if (own.call(extension, key)) {\n switch (key) {\n case 'canContainEols':\n {\n const right = extension[key];\n if (right) {\n combined[key].push(...right);\n }\n break;\n }\n case 'transforms':\n {\n const right = extension[key];\n if (right) {\n combined[key].push(...right);\n }\n break;\n }\n case 'enter':\n case 'exit':\n {\n const right = extension[key];\n if (right) {\n Object.assign(combined[key], right);\n }\n break;\n }\n // No default\n }\n }\n }\n}\n\n/** @type {OnEnterError} */\nfunction defaultOnError(left, right) {\n if (left) {\n throw new Error('Cannot close `' + left.type + '` (' + stringifyPosition({\n start: left.start,\n end: left.end\n }) + '): a different token (`' + right.type + '`, ' + stringifyPosition({\n start: right.start,\n end: right.end\n }) + ') is open');\n } else {\n throw new Error('Cannot close document, a token (`' + right.type + '`, ' + stringifyPosition({\n start: right.start,\n end: right.end\n }) + ') is still open');\n }\n}","/**\n * @typedef {import('mdast').Root} Root\n * @typedef {import('mdast-util-from-markdown').Options} FromMarkdownOptions\n * @typedef {import('unified').Parser} Parser\n * @typedef {import('unified').Processor} Processor\n */\n\n/**\n * @typedef {Omit} Options\n */\n\nimport {fromMarkdown} from 'mdast-util-from-markdown'\n\n/**\n * Aadd support for parsing from markdown.\n *\n * @param {Readonly | null | undefined} [options]\n * Configuration (optional).\n * @returns {undefined}\n * Nothing.\n */\nexport default function remarkParse(options) {\n /** @type {Processor} */\n // @ts-expect-error: TS in JSDoc generates wrong types if `this` is typed regularly.\n const self = this\n\n self.parser = parser\n\n /**\n * @type {Parser}\n */\n function parser(doc) {\n return fromMarkdown(doc, {\n ...self.data('settings'),\n ...options,\n // Note: these options are not in the readme.\n // The goal is for them to be set by plugins on `data` instead of being\n // passed by users.\n extensions: self.data('micromarkExtensions') || [],\n mdastExtensions: self.data('fromMarkdownExtensions') || []\n })\n }\n}\n","export const VOID = -1;\nexport const PRIMITIVE = 0;\nexport const ARRAY = 1;\nexport const OBJECT = 2;\nexport const DATE = 3;\nexport const REGEXP = 4;\nexport const MAP = 5;\nexport const SET = 6;\nexport const ERROR = 7;\nexport const BIGINT = 8;\n// export const SYMBOL = 9;\n","import {\n VOID, PRIMITIVE,\n ARRAY, OBJECT,\n DATE, REGEXP, MAP, SET,\n ERROR, BIGINT\n} from './types.js';\n\nconst env = typeof self === 'object' ? self : globalThis;\n\nconst deserializer = ($, _) => {\n const as = (out, index) => {\n $.set(index, out);\n return out;\n };\n\n const unpair = index => {\n if ($.has(index))\n return $.get(index);\n\n const [type, value] = _[index];\n switch (type) {\n case PRIMITIVE:\n case VOID:\n return as(value, index);\n case ARRAY: {\n const arr = as([], index);\n for (const index of value)\n arr.push(unpair(index));\n return arr;\n }\n case OBJECT: {\n const object = as({}, index);\n for (const [key, index] of value)\n object[unpair(key)] = unpair(index);\n return object;\n }\n case DATE:\n return as(new Date(value), index);\n case REGEXP: {\n const {source, flags} = value;\n return as(new RegExp(source, flags), index);\n }\n case MAP: {\n const map = as(new Map, index);\n for (const [key, index] of value)\n map.set(unpair(key), unpair(index));\n return map;\n }\n case SET: {\n const set = as(new Set, index);\n for (const index of value)\n set.add(unpair(index));\n return set;\n }\n case ERROR: {\n const {name, message} = value;\n return as(new env[name](message), index);\n }\n case BIGINT:\n return as(BigInt(value), index);\n case 'BigInt':\n return as(Object(BigInt(value)), index);\n }\n return as(new env[type](value), index);\n };\n\n return unpair;\n};\n\n/**\n * @typedef {Array} Record a type representation\n */\n\n/**\n * Returns a deserialized value from a serialized array of Records.\n * @param {Record[]} serialized a previously serialized value.\n * @returns {any}\n */\nexport const deserialize = serialized => deserializer(new Map, serialized)(0);\n","import {\n VOID, PRIMITIVE,\n ARRAY, OBJECT,\n DATE, REGEXP, MAP, SET,\n ERROR, BIGINT\n} from './types.js';\n\nconst EMPTY = '';\n\nconst {toString} = {};\nconst {keys} = Object;\n\nconst typeOf = value => {\n const type = typeof value;\n if (type !== 'object' || !value)\n return [PRIMITIVE, type];\n\n const asString = toString.call(value).slice(8, -1);\n switch (asString) {\n case 'Array':\n return [ARRAY, EMPTY];\n case 'Object':\n return [OBJECT, EMPTY];\n case 'Date':\n return [DATE, EMPTY];\n case 'RegExp':\n return [REGEXP, EMPTY];\n case 'Map':\n return [MAP, EMPTY];\n case 'Set':\n return [SET, EMPTY];\n }\n\n if (asString.includes('Array'))\n return [ARRAY, asString];\n\n if (asString.includes('Error'))\n return [ERROR, asString];\n\n return [OBJECT, asString];\n};\n\nconst shouldSkip = ([TYPE, type]) => (\n TYPE === PRIMITIVE &&\n (type === 'function' || type === 'symbol')\n);\n\nconst serializer = (strict, json, $, _) => {\n\n const as = (out, value) => {\n const index = _.push(out) - 1;\n $.set(value, index);\n return index;\n };\n\n const pair = value => {\n if ($.has(value))\n return $.get(value);\n\n let [TYPE, type] = typeOf(value);\n switch (TYPE) {\n case PRIMITIVE: {\n let entry = value;\n switch (type) {\n case 'bigint':\n TYPE = BIGINT;\n entry = value.toString();\n break;\n case 'function':\n case 'symbol':\n if (strict)\n throw new TypeError('unable to serialize ' + type);\n entry = null;\n break;\n case 'undefined':\n return as([VOID], value);\n }\n return as([TYPE, entry], value);\n }\n case ARRAY: {\n if (type)\n return as([type, [...value]], value);\n \n const arr = [];\n const index = as([TYPE, arr], value);\n for (const entry of value)\n arr.push(pair(entry));\n return index;\n }\n case OBJECT: {\n if (type) {\n switch (type) {\n case 'BigInt':\n return as([type, value.toString()], value);\n case 'Boolean':\n case 'Number':\n case 'String':\n return as([type, value.valueOf()], value);\n }\n }\n\n if (json && ('toJSON' in value))\n return pair(value.toJSON());\n\n const entries = [];\n const index = as([TYPE, entries], value);\n for (const key of keys(value)) {\n if (strict || !shouldSkip(typeOf(value[key])))\n entries.push([pair(key), pair(value[key])]);\n }\n return index;\n }\n case DATE:\n return as([TYPE, value.toISOString()], value);\n case REGEXP: {\n const {source, flags} = value;\n return as([TYPE, {source, flags}], value);\n }\n case MAP: {\n const entries = [];\n const index = as([TYPE, entries], value);\n for (const [key, entry] of value) {\n if (strict || !(shouldSkip(typeOf(key)) || shouldSkip(typeOf(entry))))\n entries.push([pair(key), pair(entry)]);\n }\n return index;\n }\n case SET: {\n const entries = [];\n const index = as([TYPE, entries], value);\n for (const entry of value) {\n if (strict || !shouldSkip(typeOf(entry)))\n entries.push(pair(entry));\n }\n return index;\n }\n }\n\n const {message} = value;\n return as([TYPE, {name: type, message}], value);\n };\n\n return pair;\n};\n\n/**\n * @typedef {Array} Record a type representation\n */\n\n/**\n * Returns an array of serialized Records.\n * @param {any} value a serializable value.\n * @param {{json?: boolean, lossy?: boolean}?} options an object with a `lossy` or `json` property that,\n * if `true`, will not throw errors on incompatible types, and behave more\n * like JSON stringify would behave. Symbol and Function will be discarded.\n * @returns {Record[]}\n */\n export const serialize = (value, {json, lossy} = {}) => {\n const _ = [];\n return serializer(!(json || lossy), !!json, new Map, _)(value), _;\n};\n","import {deserialize} from './deserialize.js';\nimport {serialize} from './serialize.js';\n\n/**\n * @typedef {Array} Record a type representation\n */\n\n/**\n * Returns an array of serialized Records.\n * @param {any} any a serializable value.\n * @param {{transfer?: any[], json?: boolean, lossy?: boolean}?} options an object with\n * a transfer option (ignored when polyfilled) and/or non standard fields that\n * fallback to the polyfill if present.\n * @returns {Record[]}\n */\nexport default typeof structuredClone === \"function\" ?\n /* c8 ignore start */\n (any, options) => (\n options && ('json' in options || 'lossy' in options) ?\n deserialize(serialize(any, options)) : structuredClone(any)\n ) :\n (any, options) => deserialize(serialize(any, options));\n /* c8 ignore stop */\n\nexport {deserialize, serialize};\n","import {asciiAlphanumeric} from 'micromark-util-character'\nimport {encode} from 'micromark-util-encode'\n/**\n * Make a value safe for injection as a URL.\n *\n * This encodes unsafe characters with percent-encoding and skips already\n * encoded sequences (see `normalizeUri`).\n * Further unsafe characters are encoded as character references (see\n * `micromark-util-encode`).\n *\n * A regex of allowed protocols can be given, in which case the URL is\n * sanitized.\n * For example, `/^(https?|ircs?|mailto|xmpp)$/i` can be used for `a[href]`, or\n * `/^https?$/i` for `img[src]` (this is what `github.com` allows).\n * If the URL includes an unknown protocol (one not matched by `protocol`, such\n * as a dangerous example, `javascript:`), the value is ignored.\n *\n * @param {string | null | undefined} url\n * URI to sanitize.\n * @param {RegExp | null | undefined} [protocol]\n * Allowed protocols.\n * @returns {string}\n * Sanitized URI.\n */\nexport function sanitizeUri(url, protocol) {\n const value = encode(normalizeUri(url || ''))\n if (!protocol) {\n return value\n }\n const colon = value.indexOf(':')\n const questionMark = value.indexOf('?')\n const numberSign = value.indexOf('#')\n const slash = value.indexOf('/')\n if (\n // If there is no protocol, it’s relative.\n colon < 0 ||\n // If the first colon is after a `?`, `#`, or `/`, it’s not a protocol.\n (slash > -1 && colon > slash) ||\n (questionMark > -1 && colon > questionMark) ||\n (numberSign > -1 && colon > numberSign) ||\n // It is a protocol, it should be allowed.\n protocol.test(value.slice(0, colon))\n ) {\n return value\n }\n return ''\n}\n\n/**\n * Normalize a URL.\n *\n * Encode unsafe characters with percent-encoding, skipping already encoded\n * sequences.\n *\n * @param {string} value\n * URI to normalize.\n * @returns {string}\n * Normalized URI.\n */\nexport function normalizeUri(value) {\n /** @type {Array} */\n const result = []\n let index = -1\n let start = 0\n let skip = 0\n while (++index < value.length) {\n const code = value.charCodeAt(index)\n /** @type {string} */\n let replace = ''\n\n // A correct percent encoded value.\n if (\n code === 37 &&\n asciiAlphanumeric(value.charCodeAt(index + 1)) &&\n asciiAlphanumeric(value.charCodeAt(index + 2))\n ) {\n skip = 2\n }\n // ASCII.\n else if (code < 128) {\n if (!/[!#$&-;=?-Z_a-z~]/.test(String.fromCharCode(code))) {\n replace = String.fromCharCode(code)\n }\n }\n // Astral.\n else if (code > 55_295 && code < 57_344) {\n const next = value.charCodeAt(index + 1)\n\n // A correct surrogate pair.\n if (code < 56_320 && next > 56_319 && next < 57_344) {\n replace = String.fromCharCode(code, next)\n skip = 1\n }\n // Lone surrogate.\n else {\n replace = '\\uFFFD'\n }\n }\n // Unicode.\n else {\n replace = String.fromCharCode(code)\n }\n if (replace) {\n result.push(value.slice(start, index), encodeURIComponent(replace))\n start = index + skip + 1\n replace = ''\n }\n if (skip) {\n index += skip\n skip = 0\n }\n }\n return result.join('') + value.slice(start)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').ElementContent} ElementContent\n *\n * @typedef {import('./state.js').State} State\n */\n\n/**\n * @callback FootnoteBackContentTemplate\n * Generate content for the backreference dynamically.\n *\n * For the following markdown:\n *\n * ```markdown\n * Alpha[^micromark], bravo[^micromark], and charlie[^remark].\n *\n * [^remark]: things about remark\n * [^micromark]: things about micromark\n * ```\n *\n * This function will be called with:\n *\n * * `0` and `0` for the backreference from `things about micromark` to\n * `alpha`, as it is the first used definition, and the first call to it\n * * `0` and `1` for the backreference from `things about micromark` to\n * `bravo`, as it is the first used definition, and the second call to it\n * * `1` and `0` for the backreference from `things about remark` to\n * `charlie`, as it is the second used definition\n * @param {number} referenceIndex\n * Index of the definition in the order that they are first referenced,\n * 0-indexed.\n * @param {number} rereferenceIndex\n * Index of calls to the same definition, 0-indexed.\n * @returns {Array | ElementContent | string}\n * Content for the backreference when linking back from definitions to their\n * reference.\n *\n * @callback FootnoteBackLabelTemplate\n * Generate a back label dynamically.\n *\n * For the following markdown:\n *\n * ```markdown\n * Alpha[^micromark], bravo[^micromark], and charlie[^remark].\n *\n * [^remark]: things about remark\n * [^micromark]: things about micromark\n * ```\n *\n * This function will be called with:\n *\n * * `0` and `0` for the backreference from `things about micromark` to\n * `alpha`, as it is the first used definition, and the first call to it\n * * `0` and `1` for the backreference from `things about micromark` to\n * `bravo`, as it is the first used definition, and the second call to it\n * * `1` and `0` for the backreference from `things about remark` to\n * `charlie`, as it is the second used definition\n * @param {number} referenceIndex\n * Index of the definition in the order that they are first referenced,\n * 0-indexed.\n * @param {number} rereferenceIndex\n * Index of calls to the same definition, 0-indexed.\n * @returns {string}\n * Back label to use when linking back from definitions to their reference.\n */\n\nimport structuredClone from '@ungap/structured-clone'\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\n\n/**\n * Generate the default content that GitHub uses on backreferences.\n *\n * @param {number} _\n * Index of the definition in the order that they are first referenced,\n * 0-indexed.\n * @param {number} rereferenceIndex\n * Index of calls to the same definition, 0-indexed.\n * @returns {Array}\n * Content.\n */\nexport function defaultFootnoteBackContent(_, rereferenceIndex) {\n /** @type {Array} */\n const result = [{type: 'text', value: '↩'}]\n\n if (rereferenceIndex > 1) {\n result.push({\n type: 'element',\n tagName: 'sup',\n properties: {},\n children: [{type: 'text', value: String(rereferenceIndex)}]\n })\n }\n\n return result\n}\n\n/**\n * Generate the default label that GitHub uses on backreferences.\n *\n * @param {number} referenceIndex\n * Index of the definition in the order that they are first referenced,\n * 0-indexed.\n * @param {number} rereferenceIndex\n * Index of calls to the same definition, 0-indexed.\n * @returns {string}\n * Label.\n */\nexport function defaultFootnoteBackLabel(referenceIndex, rereferenceIndex) {\n return (\n 'Back to reference ' +\n (referenceIndex + 1) +\n (rereferenceIndex > 1 ? '-' + rereferenceIndex : '')\n )\n}\n\n/**\n * Generate a hast footer for called footnote definitions.\n *\n * @param {State} state\n * Info passed around.\n * @returns {Element | undefined}\n * `section` element or `undefined`.\n */\n// eslint-disable-next-line complexity\nexport function footer(state) {\n const clobberPrefix =\n typeof state.options.clobberPrefix === 'string'\n ? state.options.clobberPrefix\n : 'user-content-'\n const footnoteBackContent =\n state.options.footnoteBackContent || defaultFootnoteBackContent\n const footnoteBackLabel =\n state.options.footnoteBackLabel || defaultFootnoteBackLabel\n const footnoteLabel = state.options.footnoteLabel || 'Footnotes'\n const footnoteLabelTagName = state.options.footnoteLabelTagName || 'h2'\n const footnoteLabelProperties = state.options.footnoteLabelProperties || {\n className: ['sr-only']\n }\n /** @type {Array} */\n const listItems = []\n let referenceIndex = -1\n\n while (++referenceIndex < state.footnoteOrder.length) {\n const definition = state.footnoteById.get(\n state.footnoteOrder[referenceIndex]\n )\n\n if (!definition) {\n continue\n }\n\n const content = state.all(definition)\n const id = String(definition.identifier).toUpperCase()\n const safeId = normalizeUri(id.toLowerCase())\n let rereferenceIndex = 0\n /** @type {Array} */\n const backReferences = []\n const counts = state.footnoteCounts.get(id)\n\n // eslint-disable-next-line no-unmodified-loop-condition\n while (counts !== undefined && ++rereferenceIndex <= counts) {\n if (backReferences.length > 0) {\n backReferences.push({type: 'text', value: ' '})\n }\n\n let children =\n typeof footnoteBackContent === 'string'\n ? footnoteBackContent\n : footnoteBackContent(referenceIndex, rereferenceIndex)\n\n if (typeof children === 'string') {\n children = {type: 'text', value: children}\n }\n\n backReferences.push({\n type: 'element',\n tagName: 'a',\n properties: {\n href:\n '#' +\n clobberPrefix +\n 'fnref-' +\n safeId +\n (rereferenceIndex > 1 ? '-' + rereferenceIndex : ''),\n dataFootnoteBackref: '',\n ariaLabel:\n typeof footnoteBackLabel === 'string'\n ? footnoteBackLabel\n : footnoteBackLabel(referenceIndex, rereferenceIndex),\n className: ['data-footnote-backref']\n },\n children: Array.isArray(children) ? children : [children]\n })\n }\n\n const tail = content[content.length - 1]\n\n if (tail && tail.type === 'element' && tail.tagName === 'p') {\n const tailTail = tail.children[tail.children.length - 1]\n if (tailTail && tailTail.type === 'text') {\n tailTail.value += ' '\n } else {\n tail.children.push({type: 'text', value: ' '})\n }\n\n tail.children.push(...backReferences)\n } else {\n content.push(...backReferences)\n }\n\n /** @type {Element} */\n const listItem = {\n type: 'element',\n tagName: 'li',\n properties: {id: clobberPrefix + 'fn-' + safeId},\n children: state.wrap(content, true)\n }\n\n state.patch(definition, listItem)\n\n listItems.push(listItem)\n }\n\n if (listItems.length === 0) {\n return\n }\n\n return {\n type: 'element',\n tagName: 'section',\n properties: {dataFootnotes: true, className: ['footnotes']},\n children: [\n {\n type: 'element',\n tagName: footnoteLabelTagName,\n properties: {\n ...structuredClone(footnoteLabelProperties),\n id: 'footnote-label'\n },\n children: [{type: 'text', value: footnoteLabel}]\n },\n {type: 'text', value: '\\n'},\n {\n type: 'element',\n tagName: 'ol',\n properties: {},\n children: state.wrap(listItems, true)\n },\n {type: 'text', value: '\\n'}\n ]\n }\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Blockquote} Blockquote\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `blockquote` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Blockquote} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function blockquote(state, node) {\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'blockquote',\n properties: {},\n children: state.wrap(state.all(node), true)\n }\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Text} Text\n * @typedef {import('mdast').Break} Break\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `break` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Break} node\n * mdast node.\n * @returns {Array}\n * hast element content.\n */\nexport function hardBreak(state, node) {\n /** @type {Element} */\n const result = {type: 'element', tagName: 'br', properties: {}, children: []}\n state.patch(node, result)\n return [state.applyData(node, result), {type: 'text', value: '\\n'}]\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').Code} Code\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `code` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Code} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function code(state, node) {\n const value = node.value ? node.value + '\\n' : ''\n /** @type {Properties} */\n const properties = {}\n\n if (node.lang) {\n properties.className = ['language-' + node.lang]\n }\n\n // Create ``.\n /** @type {Element} */\n let result = {\n type: 'element',\n tagName: 'code',\n properties,\n children: [{type: 'text', value}]\n }\n\n if (node.meta) {\n result.data = {meta: node.meta}\n }\n\n state.patch(node, result)\n result = state.applyData(node, result)\n\n // Create `
`.\n  result = {type: 'element', tagName: 'pre', properties: {}, children: [result]}\n  state.patch(node, result)\n  return result\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Delete} Delete\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `delete` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Delete} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function strikethrough(state, node) {\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'del',\n    properties: {},\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Emphasis} Emphasis\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `emphasis` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Emphasis} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function emphasis(state, node) {\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'em',\n    properties: {},\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').FootnoteReference} FootnoteReference\n * @typedef {import('../state.js').State} State\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\n\n/**\n * Turn an mdast `footnoteReference` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {FootnoteReference} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function footnoteReference(state, node) {\n  const clobberPrefix =\n    typeof state.options.clobberPrefix === 'string'\n      ? state.options.clobberPrefix\n      : 'user-content-'\n  const id = String(node.identifier).toUpperCase()\n  const safeId = normalizeUri(id.toLowerCase())\n  const index = state.footnoteOrder.indexOf(id)\n  /** @type {number} */\n  let counter\n\n  let reuseCounter = state.footnoteCounts.get(id)\n\n  if (reuseCounter === undefined) {\n    reuseCounter = 0\n    state.footnoteOrder.push(id)\n    counter = state.footnoteOrder.length\n  } else {\n    counter = index + 1\n  }\n\n  reuseCounter += 1\n  state.footnoteCounts.set(id, reuseCounter)\n\n  /** @type {Element} */\n  const link = {\n    type: 'element',\n    tagName: 'a',\n    properties: {\n      href: '#' + clobberPrefix + 'fn-' + safeId,\n      id:\n        clobberPrefix +\n        'fnref-' +\n        safeId +\n        (reuseCounter > 1 ? '-' + reuseCounter : ''),\n      dataFootnoteRef: true,\n      ariaDescribedBy: ['footnote-label']\n    },\n    children: [{type: 'text', value: String(counter)}]\n  }\n  state.patch(node, link)\n\n  /** @type {Element} */\n  const sup = {\n    type: 'element',\n    tagName: 'sup',\n    properties: {},\n    children: [link]\n  }\n  state.patch(node, sup)\n  return state.applyData(node, sup)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Heading} Heading\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `heading` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Heading} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function heading(state, node) {\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'h' + node.depth,\n    properties: {},\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Html} Html\n * @typedef {import('../state.js').State} State\n * @typedef {import('../../index.js').Raw} Raw\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `html` node into hast (`raw` node in dangerous mode, otherwise\n * nothing).\n *\n * @param {State} state\n *   Info passed around.\n * @param {Html} node\n *   mdast node.\n * @returns {Element | Raw | undefined}\n *   hast node.\n */\nexport function html(state, node) {\n  if (state.options.allowDangerousHtml) {\n    /** @type {Raw} */\n    const result = {type: 'raw', value: node.value}\n    state.patch(node, result)\n    return state.applyData(node, result)\n  }\n\n  return undefined\n}\n","/**\n * @typedef {import('hast').ElementContent} ElementContent\n *\n * @typedef {import('mdast').Nodes} Nodes\n * @typedef {import('mdast').Reference} Reference\n *\n * @typedef {import('./state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Return the content of a reference without definition as plain text.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Extract} node\n *   Reference node (image, link).\n * @returns {Array}\n *   hast content.\n */\nexport function revert(state, node) {\n  const subtype = node.referenceType\n  let suffix = ']'\n\n  if (subtype === 'collapsed') {\n    suffix += '[]'\n  } else if (subtype === 'full') {\n    suffix += '[' + (node.label || node.identifier) + ']'\n  }\n\n  if (node.type === 'imageReference') {\n    return [{type: 'text', value: '![' + node.alt + suffix}]\n  }\n\n  const contents = state.all(node)\n  const head = contents[0]\n\n  if (head && head.type === 'text') {\n    head.value = '[' + head.value\n  } else {\n    contents.unshift({type: 'text', value: '['})\n  }\n\n  const tail = contents[contents.length - 1]\n\n  if (tail && tail.type === 'text') {\n    tail.value += suffix\n  } else {\n    contents.push({type: 'text', value: suffix})\n  }\n\n  return contents\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').ElementContent} ElementContent\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').ImageReference} ImageReference\n * @typedef {import('../state.js').State} State\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\nimport {revert} from '../revert.js'\n\n/**\n * Turn an mdast `imageReference` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {ImageReference} node\n *   mdast node.\n * @returns {Array | ElementContent}\n *   hast node.\n */\nexport function imageReference(state, node) {\n  const id = String(node.identifier).toUpperCase()\n  const definition = state.definitionById.get(id)\n\n  if (!definition) {\n    return revert(state, node)\n  }\n\n  /** @type {Properties} */\n  const properties = {src: normalizeUri(definition.url || ''), alt: node.alt}\n\n  if (definition.title !== null && definition.title !== undefined) {\n    properties.title = definition.title\n  }\n\n  /** @type {Element} */\n  const result = {type: 'element', tagName: 'img', properties, children: []}\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').Image} Image\n * @typedef {import('../state.js').State} State\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\n\n/**\n * Turn an mdast `image` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Image} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function image(state, node) {\n  /** @type {Properties} */\n  const properties = {src: normalizeUri(node.url)}\n\n  if (node.alt !== null && node.alt !== undefined) {\n    properties.alt = node.alt\n  }\n\n  if (node.title !== null && node.title !== undefined) {\n    properties.title = node.title\n  }\n\n  /** @type {Element} */\n  const result = {type: 'element', tagName: 'img', properties, children: []}\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Text} Text\n * @typedef {import('mdast').InlineCode} InlineCode\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `inlineCode` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {InlineCode} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function inlineCode(state, node) {\n  /** @type {Text} */\n  const text = {type: 'text', value: node.value.replace(/\\r?\\n|\\r/g, ' ')}\n  state.patch(node, text)\n\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'code',\n    properties: {},\n    children: [text]\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').ElementContent} ElementContent\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').LinkReference} LinkReference\n * @typedef {import('../state.js').State} State\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\nimport {revert} from '../revert.js'\n\n/**\n * Turn an mdast `linkReference` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {LinkReference} node\n *   mdast node.\n * @returns {Array | ElementContent}\n *   hast node.\n */\nexport function linkReference(state, node) {\n  const id = String(node.identifier).toUpperCase()\n  const definition = state.definitionById.get(id)\n\n  if (!definition) {\n    return revert(state, node)\n  }\n\n  /** @type {Properties} */\n  const properties = {href: normalizeUri(definition.url || '')}\n\n  if (definition.title !== null && definition.title !== undefined) {\n    properties.title = definition.title\n  }\n\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'a',\n    properties,\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').Link} Link\n * @typedef {import('../state.js').State} State\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\n\n/**\n * Turn an mdast `link` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Link} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function link(state, node) {\n  /** @type {Properties} */\n  const properties = {href: normalizeUri(node.url)}\n\n  if (node.title !== null && node.title !== undefined) {\n    properties.title = node.title\n  }\n\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'a',\n    properties,\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').ElementContent} ElementContent\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').ListItem} ListItem\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `listItem` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {ListItem} node\n *   mdast node.\n * @param {Parents | undefined} parent\n *   Parent of `node`.\n * @returns {Element}\n *   hast node.\n */\nexport function listItem(state, node, parent) {\n  const results = state.all(node)\n  const loose = parent ? listLoose(parent) : listItemLoose(node)\n  /** @type {Properties} */\n  const properties = {}\n  /** @type {Array} */\n  const children = []\n\n  if (typeof node.checked === 'boolean') {\n    const head = results[0]\n    /** @type {Element} */\n    let paragraph\n\n    if (head && head.type === 'element' && head.tagName === 'p') {\n      paragraph = head\n    } else {\n      paragraph = {type: 'element', tagName: 'p', properties: {}, children: []}\n      results.unshift(paragraph)\n    }\n\n    if (paragraph.children.length > 0) {\n      paragraph.children.unshift({type: 'text', value: ' '})\n    }\n\n    paragraph.children.unshift({\n      type: 'element',\n      tagName: 'input',\n      properties: {type: 'checkbox', checked: node.checked, disabled: true},\n      children: []\n    })\n\n    // According to github-markdown-css, this class hides bullet.\n    // See: .\n    properties.className = ['task-list-item']\n  }\n\n  let index = -1\n\n  while (++index < results.length) {\n    const child = results[index]\n\n    // Add eols before nodes, except if this is a loose, first paragraph.\n    if (\n      loose ||\n      index !== 0 ||\n      child.type !== 'element' ||\n      child.tagName !== 'p'\n    ) {\n      children.push({type: 'text', value: '\\n'})\n    }\n\n    if (child.type === 'element' && child.tagName === 'p' && !loose) {\n      children.push(...child.children)\n    } else {\n      children.push(child)\n    }\n  }\n\n  const tail = results[results.length - 1]\n\n  // Add a final eol.\n  if (tail && (loose || tail.type !== 'element' || tail.tagName !== 'p')) {\n    children.push({type: 'text', value: '\\n'})\n  }\n\n  /** @type {Element} */\n  const result = {type: 'element', tagName: 'li', properties, children}\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n\n/**\n * @param {Parents} node\n * @return {Boolean}\n */\nfunction listLoose(node) {\n  let loose = false\n  if (node.type === 'list') {\n    loose = node.spread || false\n    const children = node.children\n    let index = -1\n\n    while (!loose && ++index < children.length) {\n      loose = listItemLoose(children[index])\n    }\n  }\n\n  return loose\n}\n\n/**\n * @param {ListItem} node\n * @return {Boolean}\n */\nfunction listItemLoose(node) {\n  const spread = node.spread\n\n  return spread === null || spread === undefined\n    ? node.children.length > 1\n    : spread\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').List} List\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `list` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {List} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function list(state, node) {\n  /** @type {Properties} */\n  const properties = {}\n  const results = state.all(node)\n  let index = -1\n\n  if (typeof node.start === 'number' && node.start !== 1) {\n    properties.start = node.start\n  }\n\n  // Like GitHub, add a class for custom styling.\n  while (++index < results.length) {\n    const child = results[index]\n\n    if (\n      child.type === 'element' &&\n      child.tagName === 'li' &&\n      child.properties &&\n      Array.isArray(child.properties.className) &&\n      child.properties.className.includes('task-list-item')\n    ) {\n      properties.className = ['contains-task-list']\n      break\n    }\n  }\n\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: node.ordered ? 'ol' : 'ul',\n    properties,\n    children: state.wrap(results, true)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Paragraph} Paragraph\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `paragraph` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Paragraph} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function paragraph(state, node) {\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'p',\n    properties: {},\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Parents} HastParents\n * @typedef {import('hast').Root} HastRoot\n * @typedef {import('mdast').Root} MdastRoot\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `root` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {MdastRoot} node\n *   mdast node.\n * @returns {HastParents}\n *   hast node.\n */\nexport function root(state, node) {\n  /** @type {HastRoot} */\n  const result = {type: 'root', children: state.wrap(state.all(node))}\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Strong} Strong\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `strong` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Strong} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function strong(state, node) {\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'strong',\n    properties: {},\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Table} Table\n * @typedef {import('../state.js').State} State\n */\n\nimport {pointEnd, pointStart} from 'unist-util-position'\n\n/**\n * Turn an mdast `table` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Table} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function table(state, node) {\n  const rows = state.all(node)\n  const firstRow = rows.shift()\n  /** @type {Array} */\n  const tableContent = []\n\n  if (firstRow) {\n    /** @type {Element} */\n    const head = {\n      type: 'element',\n      tagName: 'thead',\n      properties: {},\n      children: state.wrap([firstRow], true)\n    }\n    state.patch(node.children[0], head)\n    tableContent.push(head)\n  }\n\n  if (rows.length > 0) {\n    /** @type {Element} */\n    const body = {\n      type: 'element',\n      tagName: 'tbody',\n      properties: {},\n      children: state.wrap(rows, true)\n    }\n\n    const start = pointStart(node.children[1])\n    const end = pointEnd(node.children[node.children.length - 1])\n    if (start && end) body.position = {start, end}\n    tableContent.push(body)\n  }\n\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'table',\n    properties: {},\n    children: state.wrap(tableContent, true)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').ElementContent} ElementContent\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('mdast').TableRow} TableRow\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `tableRow` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {TableRow} node\n *   mdast node.\n * @param {Parents | undefined} parent\n *   Parent of `node`.\n * @returns {Element}\n *   hast node.\n */\nexport function tableRow(state, node, parent) {\n  const siblings = parent ? parent.children : undefined\n  // Generate a body row when without parent.\n  const rowIndex = siblings ? siblings.indexOf(node) : 1\n  const tagName = rowIndex === 0 ? 'th' : 'td'\n  // To do: option to use `style`?\n  const align = parent && parent.type === 'table' ? parent.align : undefined\n  const length = align ? align.length : node.children.length\n  let cellIndex = -1\n  /** @type {Array} */\n  const cells = []\n\n  while (++cellIndex < length) {\n    // Note: can also be undefined.\n    const cell = node.children[cellIndex]\n    /** @type {Properties} */\n    const properties = {}\n    const alignValue = align ? align[cellIndex] : undefined\n\n    if (alignValue) {\n      properties.align = alignValue\n    }\n\n    /** @type {Element} */\n    let result = {type: 'element', tagName, properties, children: []}\n\n    if (cell) {\n      result.children = state.all(cell)\n      state.patch(cell, result)\n      result = state.applyData(cell, result)\n    }\n\n    cells.push(result)\n  }\n\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'tr',\n    properties: {},\n    children: state.wrap(cells, true)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').TableCell} TableCell\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `tableCell` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {TableCell} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function tableCell(state, node) {\n  // Note: this function is normally not called: see `table-row` for how rows\n  // and their cells are compiled.\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'td', // Assume body cell.\n    properties: {},\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","const tab = 9 /* `\\t` */\nconst space = 32 /* ` ` */\n\n/**\n * Remove initial and final spaces and tabs at the line breaks in `value`.\n * Does not trim initial and final spaces and tabs of the value itself.\n *\n * @param {string} value\n *   Value to trim.\n * @returns {string}\n *   Trimmed value.\n */\nexport function trimLines(value) {\n  const source = String(value)\n  const search = /\\r?\\n|\\r/g\n  let match = search.exec(source)\n  let last = 0\n  /** @type {Array} */\n  const lines = []\n\n  while (match) {\n    lines.push(\n      trimLine(source.slice(last, match.index), last > 0, true),\n      match[0]\n    )\n\n    last = match.index + match[0].length\n    match = search.exec(source)\n  }\n\n  lines.push(trimLine(source.slice(last), last > 0, false))\n\n  return lines.join('')\n}\n\n/**\n * @param {string} value\n *   Line to trim.\n * @param {boolean} start\n *   Whether to trim the start of the line.\n * @param {boolean} end\n *   Whether to trim the end of the line.\n * @returns {string}\n *   Trimmed line.\n */\nfunction trimLine(value, start, end) {\n  let startIndex = 0\n  let endIndex = value.length\n\n  if (start) {\n    let code = value.codePointAt(startIndex)\n\n    while (code === tab || code === space) {\n      startIndex++\n      code = value.codePointAt(startIndex)\n    }\n  }\n\n  if (end) {\n    let code = value.codePointAt(endIndex - 1)\n\n    while (code === tab || code === space) {\n      endIndex--\n      code = value.codePointAt(endIndex - 1)\n    }\n  }\n\n  return endIndex > startIndex ? value.slice(startIndex, endIndex) : ''\n}\n","/**\n * @typedef {import('hast').Element} HastElement\n * @typedef {import('hast').Text} HastText\n * @typedef {import('mdast').Text} MdastText\n * @typedef {import('../state.js').State} State\n */\n\nimport {trimLines} from 'trim-lines'\n\n/**\n * Turn an mdast `text` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {MdastText} node\n *   mdast node.\n * @returns {HastElement | HastText}\n *   hast node.\n */\nexport function text(state, node) {\n  /** @type {HastText} */\n  const result = {type: 'text', value: trimLines(String(node.value))}\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').ThematicBreak} ThematicBreak\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `thematicBreak` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {ThematicBreak} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function thematicBreak(state, node) {\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'hr',\n    properties: {},\n    children: []\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","import {blockquote} from './blockquote.js'\nimport {hardBreak} from './break.js'\nimport {code} from './code.js'\nimport {strikethrough} from './delete.js'\nimport {emphasis} from './emphasis.js'\nimport {footnoteReference} from './footnote-reference.js'\nimport {heading} from './heading.js'\nimport {html} from './html.js'\nimport {imageReference} from './image-reference.js'\nimport {image} from './image.js'\nimport {inlineCode} from './inline-code.js'\nimport {linkReference} from './link-reference.js'\nimport {link} from './link.js'\nimport {listItem} from './list-item.js'\nimport {list} from './list.js'\nimport {paragraph} from './paragraph.js'\nimport {root} from './root.js'\nimport {strong} from './strong.js'\nimport {table} from './table.js'\nimport {tableRow} from './table-row.js'\nimport {tableCell} from './table-cell.js'\nimport {text} from './text.js'\nimport {thematicBreak} from './thematic-break.js'\n\n/**\n * Default handlers for nodes.\n *\n * @satisfies {import('../state.js').Handlers}\n */\nexport const handlers = {\n  blockquote,\n  break: hardBreak,\n  code,\n  delete: strikethrough,\n  emphasis,\n  footnoteReference,\n  heading,\n  html,\n  imageReference,\n  image,\n  inlineCode,\n  linkReference,\n  link,\n  listItem,\n  list,\n  paragraph,\n  // @ts-expect-error: root is different, but hard to type.\n  root,\n  strong,\n  table,\n  tableCell,\n  tableRow,\n  text,\n  thematicBreak,\n  toml: ignore,\n  yaml: ignore,\n  definition: ignore,\n  footnoteDefinition: ignore\n}\n\n// Return nothing for nodes that are ignored.\nfunction ignore() {\n  return undefined\n}\n","/**\n * @typedef {import('hast').Element} HastElement\n * @typedef {import('hast').ElementContent} HastElementContent\n * @typedef {import('hast').Nodes} HastNodes\n * @typedef {import('hast').Properties} HastProperties\n * @typedef {import('hast').RootContent} HastRootContent\n * @typedef {import('hast').Text} HastText\n *\n * @typedef {import('mdast').Definition} MdastDefinition\n * @typedef {import('mdast').FootnoteDefinition} MdastFootnoteDefinition\n * @typedef {import('mdast').Nodes} MdastNodes\n * @typedef {import('mdast').Parents} MdastParents\n *\n * @typedef {import('vfile').VFile} VFile\n *\n * @typedef {import('./footer.js').FootnoteBackContentTemplate} FootnoteBackContentTemplate\n * @typedef {import('./footer.js').FootnoteBackLabelTemplate} FootnoteBackLabelTemplate\n */\n\n/**\n * @callback Handler\n *   Handle a node.\n * @param {State} state\n *   Info passed around.\n * @param {any} node\n *   mdast node to handle.\n * @param {MdastParents | undefined} parent\n *   Parent of `node`.\n * @returns {Array | HastElementContent | undefined}\n *   hast node.\n *\n * @typedef {Partial>} Handlers\n *   Handle nodes.\n *\n * @typedef Options\n *   Configuration (optional).\n * @property {boolean | null | undefined} [allowDangerousHtml=false]\n *   Whether to persist raw HTML in markdown in the hast tree (default:\n *   `false`).\n * @property {string | null | undefined} [clobberPrefix='user-content-']\n *   Prefix to use before the `id` property on footnotes to prevent them from\n *   *clobbering* (default: `'user-content-'`).\n *\n *   Pass `''` for trusted markdown and when you are careful with\n *   polyfilling.\n *   You could pass a different prefix.\n *\n *   DOM clobbering is this:\n *\n *   ```html\n *   

\n * \n * ```\n *\n * The above example shows that elements are made available by browsers, by\n * their ID, on the `window` object.\n * This is a security risk because you might be expecting some other variable\n * at that place.\n * It can also break polyfills.\n * Using a prefix solves these problems.\n * @property {VFile | null | undefined} [file]\n * Corresponding virtual file representing the input document (optional).\n * @property {FootnoteBackContentTemplate | string | null | undefined} [footnoteBackContent]\n * Content of the backreference back to references (default: `defaultFootnoteBackContent`).\n *\n * The default value is:\n *\n * ```js\n * function defaultFootnoteBackContent(_, rereferenceIndex) {\n * const result = [{type: 'text', value: '↩'}]\n *\n * if (rereferenceIndex > 1) {\n * result.push({\n * type: 'element',\n * tagName: 'sup',\n * properties: {},\n * children: [{type: 'text', value: String(rereferenceIndex)}]\n * })\n * }\n *\n * return result\n * }\n * ```\n *\n * This content is used in the `a` element of each backreference (the `↩`\n * links).\n * @property {FootnoteBackLabelTemplate | string | null | undefined} [footnoteBackLabel]\n * Label to describe the backreference back to references (default:\n * `defaultFootnoteBackLabel`).\n *\n * The default value is:\n *\n * ```js\n * function defaultFootnoteBackLabel(referenceIndex, rereferenceIndex) {\n * return (\n * 'Back to reference ' +\n * (referenceIndex + 1) +\n * (rereferenceIndex > 1 ? '-' + rereferenceIndex : '')\n * )\n * }\n * ```\n *\n * Change it when the markdown is not in English.\n *\n * This label is used in the `ariaLabel` property on each backreference\n * (the `↩` links).\n * It affects users of assistive technology.\n * @property {string | null | undefined} [footnoteLabel='Footnotes']\n * Textual label to use for the footnotes section (default: `'Footnotes'`).\n *\n * Change it when the markdown is not in English.\n *\n * This label is typically hidden visually (assuming a `sr-only` CSS class\n * is defined that does that) and so affects screen readers only.\n * If you do have such a class, but want to show this section to everyone,\n * pass different properties with the `footnoteLabelProperties` option.\n * @property {HastProperties | null | undefined} [footnoteLabelProperties={className: ['sr-only']}]\n * Properties to use on the footnote label (default: `{className:\n * ['sr-only']}`).\n *\n * Change it to show the label and add other properties.\n *\n * This label is typically hidden visually (assuming an `sr-only` CSS class\n * is defined that does that) and so affects screen readers only.\n * If you do have such a class, but want to show this section to everyone,\n * pass an empty string.\n * You can also add different properties.\n *\n * > **Note**: `id: 'footnote-label'` is always added, because footnote\n * > calls use it with `aria-describedby` to provide an accessible label.\n * @property {string | null | undefined} [footnoteLabelTagName='h2']\n * HTML tag name to use for the footnote label element (default: `'h2'`).\n *\n * Change it to match your document structure.\n *\n * This label is typically hidden visually (assuming a `sr-only` CSS class\n * is defined that does that) and so affects screen readers only.\n * If you do have such a class, but want to show this section to everyone,\n * pass different properties with the `footnoteLabelProperties` option.\n * @property {Handlers | null | undefined} [handlers]\n * Extra handlers for nodes (optional).\n * @property {Array | null | undefined} [passThrough]\n * List of custom mdast node types to pass through (keep) in hast (note that\n * the node itself is passed, but eventual children are transformed)\n * (optional).\n * @property {Handler | null | undefined} [unknownHandler]\n * Handler for all unknown nodes (optional).\n *\n * @typedef State\n * Info passed around.\n * @property {(node: MdastNodes) => Array} all\n * Transform the children of an mdast parent to hast.\n * @property {(from: MdastNodes, to: Type) => HastElement | Type} applyData\n * Honor the `data` of `from`, and generate an element instead of `node`.\n * @property {Map} definitionById\n * Definitions by their identifier.\n * @property {Map} footnoteById\n * Footnote definitions by their identifier.\n * @property {Map} footnoteCounts\n * Counts for how often the same footnote was called.\n * @property {Array} footnoteOrder\n * Identifiers of order when footnote calls first appear in tree order.\n * @property {Handlers} handlers\n * Applied handlers.\n * @property {(node: MdastNodes, parent: MdastParents | undefined) => Array | HastElementContent | undefined} one\n * Transform an mdast node to hast.\n * @property {Options} options\n * Configuration.\n * @property {(from: MdastNodes, node: HastNodes) => undefined} patch\n * Copy a node’s positional info.\n * @property {(nodes: Array, loose?: boolean | undefined) => Array} wrap\n * Wrap `nodes` with line endings between each node, adds initial/final line endings when `loose`.\n */\n\nimport structuredClone from '@ungap/structured-clone'\nimport {visit} from 'unist-util-visit'\nimport {position} from 'unist-util-position'\nimport {handlers as defaultHandlers} from './handlers/index.js'\n\nconst own = {}.hasOwnProperty\n\n/** @type {Options} */\nconst emptyOptions = {}\n\n/**\n * Create `state` from an mdast tree.\n *\n * @param {MdastNodes} tree\n * mdast node to transform.\n * @param {Options | null | undefined} [options]\n * Configuration (optional).\n * @returns {State}\n * `state` function.\n */\nexport function createState(tree, options) {\n const settings = options || emptyOptions\n /** @type {Map} */\n const definitionById = new Map()\n /** @type {Map} */\n const footnoteById = new Map()\n /** @type {Map} */\n const footnoteCounts = new Map()\n /** @type {Handlers} */\n // @ts-expect-error: the root handler returns a root.\n // Hard to type.\n const handlers = {...defaultHandlers, ...settings.handlers}\n\n /** @type {State} */\n const state = {\n all,\n applyData,\n definitionById,\n footnoteById,\n footnoteCounts,\n footnoteOrder: [],\n handlers,\n one,\n options: settings,\n patch,\n wrap\n }\n\n visit(tree, function (node) {\n if (node.type === 'definition' || node.type === 'footnoteDefinition') {\n const map = node.type === 'definition' ? definitionById : footnoteById\n const id = String(node.identifier).toUpperCase()\n\n // Mimick CM behavior of link definitions.\n // See: .\n if (!map.has(id)) {\n // @ts-expect-error: node type matches map.\n map.set(id, node)\n }\n }\n })\n\n return state\n\n /**\n * Transform an mdast node into a hast node.\n *\n * @param {MdastNodes} node\n * mdast node.\n * @param {MdastParents | undefined} [parent]\n * Parent of `node`.\n * @returns {Array | HastElementContent | undefined}\n * Resulting hast node.\n */\n function one(node, parent) {\n const type = node.type\n const handle = state.handlers[type]\n\n if (own.call(state.handlers, type) && handle) {\n return handle(state, node, parent)\n }\n\n if (state.options.passThrough && state.options.passThrough.includes(type)) {\n if ('children' in node) {\n const {children, ...shallow} = node\n const result = structuredClone(shallow)\n // @ts-expect-error: TS doesn’t understand…\n result.children = state.all(node)\n // @ts-expect-error: TS doesn’t understand…\n return result\n }\n\n // @ts-expect-error: it’s custom.\n return structuredClone(node)\n }\n\n const unknown = state.options.unknownHandler || defaultUnknownHandler\n\n return unknown(state, node, parent)\n }\n\n /**\n * Transform the children of an mdast node into hast nodes.\n *\n * @param {MdastNodes} parent\n * mdast node to compile\n * @returns {Array}\n * Resulting hast nodes.\n */\n function all(parent) {\n /** @type {Array} */\n const values = []\n\n if ('children' in parent) {\n const nodes = parent.children\n let index = -1\n while (++index < nodes.length) {\n const result = state.one(nodes[index], parent)\n\n // To do: see if we van clean this? Can we merge texts?\n if (result) {\n if (index && nodes[index - 1].type === 'break') {\n if (!Array.isArray(result) && result.type === 'text') {\n result.value = trimMarkdownSpaceStart(result.value)\n }\n\n if (!Array.isArray(result) && result.type === 'element') {\n const head = result.children[0]\n\n if (head && head.type === 'text') {\n head.value = trimMarkdownSpaceStart(head.value)\n }\n }\n }\n\n if (Array.isArray(result)) {\n values.push(...result)\n } else {\n values.push(result)\n }\n }\n }\n }\n\n return values\n }\n}\n\n/**\n * Copy a node’s positional info.\n *\n * @param {MdastNodes} from\n * mdast node to copy from.\n * @param {HastNodes} to\n * hast node to copy into.\n * @returns {undefined}\n * Nothing.\n */\nfunction patch(from, to) {\n if (from.position) to.position = position(from)\n}\n\n/**\n * Honor the `data` of `from` and maybe generate an element instead of `to`.\n *\n * @template {HastNodes} Type\n * Node type.\n * @param {MdastNodes} from\n * mdast node to use data from.\n * @param {Type} to\n * hast node to change.\n * @returns {HastElement | Type}\n * Nothing.\n */\nfunction applyData(from, to) {\n /** @type {HastElement | Type} */\n let result = to\n\n // Handle `data.hName`, `data.hProperties, `data.hChildren`.\n if (from && from.data) {\n const hName = from.data.hName\n const hChildren = from.data.hChildren\n const hProperties = from.data.hProperties\n\n if (typeof hName === 'string') {\n // Transforming the node resulted in an element with a different name\n // than wanted:\n if (result.type === 'element') {\n result.tagName = hName\n }\n // Transforming the node resulted in a non-element, which happens for\n // raw, text, and root nodes (unless custom handlers are passed).\n // The intent of `hName` is to create an element, but likely also to keep\n // the content around (otherwise: pass `hChildren`).\n else {\n /** @type {Array} */\n // @ts-expect-error: assume no doctypes in `root`.\n const children = 'children' in result ? result.children : [result]\n result = {type: 'element', tagName: hName, properties: {}, children}\n }\n }\n\n if (result.type === 'element' && hProperties) {\n Object.assign(result.properties, structuredClone(hProperties))\n }\n\n if (\n 'children' in result &&\n result.children &&\n hChildren !== null &&\n hChildren !== undefined\n ) {\n result.children = hChildren\n }\n }\n\n return result\n}\n\n/**\n * Transform an unknown node.\n *\n * @param {State} state\n * Info passed around.\n * @param {MdastNodes} node\n * Unknown mdast node.\n * @returns {HastElement | HastText}\n * Resulting hast node.\n */\nfunction defaultUnknownHandler(state, node) {\n const data = node.data || {}\n /** @type {HastElement | HastText} */\n const result =\n 'value' in node &&\n !(own.call(data, 'hProperties') || own.call(data, 'hChildren'))\n ? {type: 'text', value: node.value}\n : {\n type: 'element',\n tagName: 'div',\n properties: {},\n children: state.all(node)\n }\n\n state.patch(node, result)\n return state.applyData(node, result)\n}\n\n/**\n * Wrap `nodes` with line endings between each node.\n *\n * @template {HastRootContent} Type\n * Node type.\n * @param {Array} nodes\n * List of nodes to wrap.\n * @param {boolean | undefined} [loose=false]\n * Whether to add line endings at start and end (default: `false`).\n * @returns {Array}\n * Wrapped nodes.\n */\nexport function wrap(nodes, loose) {\n /** @type {Array} */\n const result = []\n let index = -1\n\n if (loose) {\n result.push({type: 'text', value: '\\n'})\n }\n\n while (++index < nodes.length) {\n if (index) result.push({type: 'text', value: '\\n'})\n result.push(nodes[index])\n }\n\n if (loose && nodes.length > 0) {\n result.push({type: 'text', value: '\\n'})\n }\n\n return result\n}\n\n/**\n * Trim spaces and tabs at the start of `value`.\n *\n * @param {string} value\n * Value to trim.\n * @returns {string}\n * Result.\n */\nfunction trimMarkdownSpaceStart(value) {\n let index = 0\n let code = value.charCodeAt(index)\n\n while (code === 9 || code === 32) {\n index++\n code = value.charCodeAt(index)\n }\n\n return value.slice(index)\n}\n","/**\n * @typedef {import('hast').Nodes} HastNodes\n * @typedef {import('mdast').Nodes} MdastNodes\n * @typedef {import('./state.js').Options} Options\n */\n\nimport {ok as assert} from 'devlop'\nimport {footer} from './footer.js'\nimport {createState} from './state.js'\n\n/**\n * Transform mdast to hast.\n *\n * ##### Notes\n *\n * ###### HTML\n *\n * Raw HTML is available in mdast as `html` nodes and can be embedded in hast\n * as semistandard `raw` nodes.\n * Most utilities ignore `raw` nodes but two notable ones don’t:\n *\n * * `hast-util-to-html` also has an option `allowDangerousHtml` which will\n * output the raw HTML.\n * This is typically discouraged as noted by the option name but is useful\n * if you completely trust authors\n * * `hast-util-raw` can handle the raw embedded HTML strings by parsing them\n * into standard hast nodes (`element`, `text`, etc).\n * This is a heavy task as it needs a full HTML parser, but it is the only\n * way to support untrusted content\n *\n * ###### Footnotes\n *\n * Many options supported here relate to footnotes.\n * Footnotes are not specified by CommonMark, which we follow by default.\n * They are supported by GitHub, so footnotes can be enabled in markdown with\n * `mdast-util-gfm`.\n *\n * The options `footnoteBackLabel` and `footnoteLabel` define natural language\n * that explains footnotes, which is hidden for sighted users but shown to\n * assistive technology.\n * When your page is not in English, you must define translated values.\n *\n * Back references use ARIA attributes, but the section label itself uses a\n * heading that is hidden with an `sr-only` class.\n * To show it to sighted users, define different attributes in\n * `footnoteLabelProperties`.\n *\n * ###### Clobbering\n *\n * Footnotes introduces a problem, as it links footnote calls to footnote\n * definitions on the page through `id` attributes generated from user content,\n * which results in DOM clobbering.\n *\n * DOM clobbering is this:\n *\n * ```html\n *

\n * \n * ```\n *\n * Elements by their ID are made available by browsers on the `window` object,\n * which is a security risk.\n * Using a prefix solves this problem.\n *\n * More information on how to handle clobbering and the prefix is explained in\n * Example: headings (DOM clobbering) in `rehype-sanitize`.\n *\n * ###### Unknown nodes\n *\n * Unknown nodes are nodes with a type that isn’t in `handlers` or `passThrough`.\n * The default behavior for unknown nodes is:\n *\n * * when the node has a `value` (and doesn’t have `data.hName`,\n * `data.hProperties`, or `data.hChildren`, see later), create a hast `text`\n * node\n * * otherwise, create a `
` element (which could be changed with\n * `data.hName`), with its children mapped from mdast to hast as well\n *\n * This behavior can be changed by passing an `unknownHandler`.\n *\n * @param {MdastNodes} tree\n * mdast tree.\n * @param {Options | null | undefined} [options]\n * Configuration (optional).\n * @returns {HastNodes}\n * hast tree.\n */\nexport function toHast(tree, options) {\n const state = createState(tree, options)\n const node = state.one(tree, undefined)\n const foot = footer(state)\n /** @type {HastNodes} */\n const result = Array.isArray(node)\n ? {type: 'root', children: node}\n : node || {type: 'root', children: []}\n\n if (foot) {\n // If there’s a footer, there were definitions, meaning block\n // content.\n // So `result` is a parent node.\n assert('children' in result)\n result.children.push({type: 'text', value: '\\n'}, foot)\n }\n\n return result\n}\n","// Include `data` fields in mdast and `raw` nodes in hast.\n/// \n\n/**\n * @typedef {import('hast').Root} HastRoot\n * @typedef {import('mdast').Root} MdastRoot\n * @typedef {import('mdast-util-to-hast').Options} ToHastOptions\n * @typedef {import('unified').Processor} Processor\n * @typedef {import('vfile').VFile} VFile\n */\n\n/**\n * @typedef {Omit} Options\n *\n * @callback TransformBridge\n * Bridge-mode.\n *\n * Runs the destination with the new hast tree.\n * Discards result.\n * @param {MdastRoot} tree\n * Tree.\n * @param {VFile} file\n * File.\n * @returns {Promise}\n * Nothing.\n *\n * @callback TransformMutate\n * Mutate-mode.\n *\n * Further transformers run on the hast tree.\n * @param {MdastRoot} tree\n * Tree.\n * @param {VFile} file\n * File.\n * @returns {HastRoot}\n * Tree (hast).\n */\n\nimport {toHast} from 'mdast-util-to-hast'\n\n/**\n * Turn markdown into HTML.\n *\n * ##### Notes\n *\n * ###### Signature\n *\n * * if a processor is given, runs the (rehype) plugins used on it with a\n * hast tree, then discards the result (*bridge mode*)\n * * otherwise, returns a hast tree, the plugins used after `remarkRehype`\n * are rehype plugins (*mutate mode*)\n *\n * > 👉 **Note**: It’s highly unlikely that you want to pass a `processor`.\n *\n * ###### HTML\n *\n * Raw HTML is available in mdast as `html` nodes and can be embedded in hast\n * as semistandard `raw` nodes.\n * Most plugins ignore `raw` nodes but two notable ones don’t:\n *\n * * `rehype-stringify` also has an option `allowDangerousHtml` which will\n * output the raw HTML.\n * This is typically discouraged as noted by the option name but is useful if\n * you completely trust authors\n * * `rehype-raw` can handle the raw embedded HTML strings by parsing them\n * into standard hast nodes (`element`, `text`, etc).\n * This is a heavy task as it needs a full HTML parser, but it is the only way\n * to support untrusted content\n *\n * ###### Footnotes\n *\n * Many options supported here relate to footnotes.\n * Footnotes are not specified by CommonMark, which we follow by default.\n * They are supported by GitHub, so footnotes can be enabled in markdown with\n * `remark-gfm`.\n *\n * The options `footnoteBackLabel` and `footnoteLabel` define natural language\n * that explains footnotes, which is hidden for sighted users but shown to\n * assistive technology.\n * When your page is not in English, you must define translated values.\n *\n * Back references use ARIA attributes, but the section label itself uses a\n * heading that is hidden with an `sr-only` class.\n * To show it to sighted users, define different attributes in\n * `footnoteLabelProperties`.\n *\n * ###### Clobbering\n *\n * Footnotes introduces a problem, as it links footnote calls to footnote\n * definitions on the page through `id` attributes generated from user content,\n * which results in DOM clobbering.\n *\n * DOM clobbering is this:\n *\n * ```html\n *

\n * \n * ```\n *\n * Elements by their ID are made available by browsers on the `window` object,\n * which is a security risk.\n * Using a prefix solves this problem.\n *\n * More information on how to handle clobbering and the prefix is explained in\n * *Example: headings (DOM clobbering)* in `rehype-sanitize`.\n *\n * ###### Unknown nodes\n *\n * Unknown nodes are nodes with a type that isn’t in `handlers` or `passThrough`.\n * The default behavior for unknown nodes is:\n *\n * * when the node has a `value` (and doesn’t have `data.hName`,\n * `data.hProperties`, or `data.hChildren`, see later), create a hast `text`\n * node\n * * otherwise, create a `
` element (which could be changed with\n * `data.hName`), with its children mapped from mdast to hast as well\n *\n * This behavior can be changed by passing an `unknownHandler`.\n *\n * @overload\n * @param {Processor} processor\n * @param {Readonly | null | undefined} [options]\n * @returns {TransformBridge}\n *\n * @overload\n * @param {Readonly | null | undefined} [options]\n * @returns {TransformMutate}\n *\n * @param {Readonly | Processor | null | undefined} [destination]\n * Processor or configuration (optional).\n * @param {Readonly | null | undefined} [options]\n * When a processor was given, configuration (optional).\n * @returns {TransformBridge | TransformMutate}\n * Transform.\n */\nexport default function remarkRehype(destination, options) {\n if (destination && 'run' in destination) {\n /**\n * @type {TransformBridge}\n */\n return async function (tree, file) {\n // Cast because root in -> root out.\n const hastTree = /** @type {HastRoot} */ (\n toHast(tree, {file, ...options})\n )\n await destination.run(hastTree, file)\n }\n }\n\n /**\n * @type {TransformMutate}\n */\n return function (tree, file) {\n // Cast because root in -> root out.\n return /** @type {HastRoot} */ (\n toHast(tree, {file, ...(options || destination)})\n )\n }\n}\n","/**\n * Throw a given error.\n *\n * @param {Error|null|undefined} [error]\n * Maybe error.\n * @returns {asserts error is null|undefined}\n */\nexport function bail(error) {\n if (error) {\n throw error\n }\n}\n","export default function isPlainObject(value) {\n\tif (typeof value !== 'object' || value === null) {\n\t\treturn false;\n\t}\n\n\tconst prototype = Object.getPrototypeOf(value);\n\treturn (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in value) && !(Symbol.iterator in value);\n}\n","// To do: remove `void`s\n// To do: remove `null` from output of our APIs, allow it as user APIs.\n\n/**\n * @typedef {(error?: Error | null | undefined, ...output: Array) => void} Callback\n * Callback.\n *\n * @typedef {(...input: Array) => any} Middleware\n * Ware.\n *\n * @typedef Pipeline\n * Pipeline.\n * @property {Run} run\n * Run the pipeline.\n * @property {Use} use\n * Add middleware.\n *\n * @typedef {(...input: Array) => void} Run\n * Call all middleware.\n *\n * Calls `done` on completion with either an error or the output of the\n * last middleware.\n *\n * > 👉 **Note**: as the length of input defines whether async functions get a\n * > `next` function,\n * > it’s recommended to keep `input` at one value normally.\n\n *\n * @typedef {(fn: Middleware) => Pipeline} Use\n * Add middleware.\n */\n\n/**\n * Create new middleware.\n *\n * @returns {Pipeline}\n * Pipeline.\n */\nexport function trough() {\n /** @type {Array} */\n const fns = []\n /** @type {Pipeline} */\n const pipeline = {run, use}\n\n return pipeline\n\n /** @type {Run} */\n function run(...values) {\n let middlewareIndex = -1\n /** @type {Callback} */\n const callback = values.pop()\n\n if (typeof callback !== 'function') {\n throw new TypeError('Expected function as last argument, not ' + callback)\n }\n\n next(null, ...values)\n\n /**\n * Run the next `fn`, or we’re done.\n *\n * @param {Error | null | undefined} error\n * @param {Array} output\n */\n function next(error, ...output) {\n const fn = fns[++middlewareIndex]\n let index = -1\n\n if (error) {\n callback(error)\n return\n }\n\n // Copy non-nullish input into values.\n while (++index < values.length) {\n if (output[index] === null || output[index] === undefined) {\n output[index] = values[index]\n }\n }\n\n // Save the newly created `output` for the next call.\n values = output\n\n // Next or done.\n if (fn) {\n wrap(fn, next)(...output)\n } else {\n callback(null, ...output)\n }\n }\n }\n\n /** @type {Use} */\n function use(middelware) {\n if (typeof middelware !== 'function') {\n throw new TypeError(\n 'Expected `middelware` to be a function, not ' + middelware\n )\n }\n\n fns.push(middelware)\n return pipeline\n }\n}\n\n/**\n * Wrap `middleware` into a uniform interface.\n *\n * You can pass all input to the resulting function.\n * `callback` is then called with the output of `middleware`.\n *\n * If `middleware` accepts more arguments than the later given in input,\n * an extra `done` function is passed to it after that input,\n * which must be called by `middleware`.\n *\n * The first value in `input` is the main input value.\n * All other input values are the rest input values.\n * The values given to `callback` are the input values,\n * merged with every non-nullish output value.\n *\n * * if `middleware` throws an error,\n * returns a promise that is rejected,\n * or calls the given `done` function with an error,\n * `callback` is called with that error\n * * if `middleware` returns a value or returns a promise that is resolved,\n * that value is the main output value\n * * if `middleware` calls `done`,\n * all non-nullish values except for the first one (the error) overwrite the\n * output values\n *\n * @param {Middleware} middleware\n * Function to wrap.\n * @param {Callback} callback\n * Callback called with the output of `middleware`.\n * @returns {Run}\n * Wrapped middleware.\n */\nexport function wrap(middleware, callback) {\n /** @type {boolean} */\n let called\n\n return wrapped\n\n /**\n * Call `middleware`.\n * @this {any}\n * @param {Array} parameters\n * @returns {void}\n */\n function wrapped(...parameters) {\n const fnExpectsCallback = middleware.length > parameters.length\n /** @type {any} */\n let result\n\n if (fnExpectsCallback) {\n parameters.push(done)\n }\n\n try {\n result = middleware.apply(this, parameters)\n } catch (error) {\n const exception = /** @type {Error} */ (error)\n\n // Well, this is quite the pickle.\n // `middleware` received a callback and called it synchronously, but that\n // threw an error.\n // The only thing left to do is to throw the thing instead.\n if (fnExpectsCallback && called) {\n throw exception\n }\n\n return done(exception)\n }\n\n if (!fnExpectsCallback) {\n if (result && result.then && typeof result.then === 'function') {\n result.then(then, done)\n } else if (result instanceof Error) {\n done(result)\n } else {\n then(result)\n }\n }\n }\n\n /**\n * Call `callback`, only once.\n *\n * @type {Callback}\n */\n function done(error, ...output) {\n if (!called) {\n called = true\n callback(error, ...output)\n }\n }\n\n /**\n * Call `done` with one value.\n *\n * @param {any} [value]\n */\n function then(value) {\n done(null, value)\n }\n}\n","// A derivative work based on:\n// .\n// Which is licensed:\n//\n// MIT License\n//\n// Copyright (c) 2013 James Halliday\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy of\n// this software and associated documentation files (the \"Software\"), to deal in\n// the Software without restriction, including without limitation the rights to\n// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\n// the Software, and to permit persons to whom the Software is furnished to do so,\n// subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in all\n// copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\n// FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\n// COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\n// IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\n// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n// A derivative work based on:\n//\n// Parts of that are extracted from Node’s internal `path` module:\n// .\n// Which is licensed:\n//\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nexport const minpath = {basename, dirname, extname, join, sep: '/'}\n\n/* eslint-disable max-depth, complexity */\n\n/**\n * Get the basename from a path.\n *\n * @param {string} path\n * File path.\n * @param {string | null | undefined} [extname]\n * Extension to strip.\n * @returns {string}\n * Stem or basename.\n */\nfunction basename(path, extname) {\n if (extname !== undefined && typeof extname !== 'string') {\n throw new TypeError('\"ext\" argument must be a string')\n }\n\n assertPath(path)\n let start = 0\n let end = -1\n let index = path.length\n /** @type {boolean | undefined} */\n let seenNonSlash\n\n if (\n extname === undefined ||\n extname.length === 0 ||\n extname.length > path.length\n ) {\n while (index--) {\n if (path.codePointAt(index) === 47 /* `/` */) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now.\n if (seenNonSlash) {\n start = index + 1\n break\n }\n } else if (end < 0) {\n // We saw the first non-path separator, mark this as the end of our\n // path component.\n seenNonSlash = true\n end = index + 1\n }\n }\n\n return end < 0 ? '' : path.slice(start, end)\n }\n\n if (extname === path) {\n return ''\n }\n\n let firstNonSlashEnd = -1\n let extnameIndex = extname.length - 1\n\n while (index--) {\n if (path.codePointAt(index) === 47 /* `/` */) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now.\n if (seenNonSlash) {\n start = index + 1\n break\n }\n } else {\n if (firstNonSlashEnd < 0) {\n // We saw the first non-path separator, remember this index in case\n // we need it if the extension ends up not matching.\n seenNonSlash = true\n firstNonSlashEnd = index + 1\n }\n\n if (extnameIndex > -1) {\n // Try to match the explicit extension.\n if (path.codePointAt(index) === extname.codePointAt(extnameIndex--)) {\n if (extnameIndex < 0) {\n // We matched the extension, so mark this as the end of our path\n // component\n end = index\n }\n } else {\n // Extension does not match, so our result is the entire path\n // component\n extnameIndex = -1\n end = firstNonSlashEnd\n }\n }\n }\n }\n\n if (start === end) {\n end = firstNonSlashEnd\n } else if (end < 0) {\n end = path.length\n }\n\n return path.slice(start, end)\n}\n\n/**\n * Get the dirname from a path.\n *\n * @param {string} path\n * File path.\n * @returns {string}\n * File path.\n */\nfunction dirname(path) {\n assertPath(path)\n\n if (path.length === 0) {\n return '.'\n }\n\n let end = -1\n let index = path.length\n /** @type {boolean | undefined} */\n let unmatchedSlash\n\n // Prefix `--` is important to not run on `0`.\n while (--index) {\n if (path.codePointAt(index) === 47 /* `/` */) {\n if (unmatchedSlash) {\n end = index\n break\n }\n } else if (!unmatchedSlash) {\n // We saw the first non-path separator\n unmatchedSlash = true\n }\n }\n\n return end < 0\n ? path.codePointAt(0) === 47 /* `/` */\n ? '/'\n : '.'\n : end === 1 && path.codePointAt(0) === 47 /* `/` */\n ? '//'\n : path.slice(0, end)\n}\n\n/**\n * Get an extname from a path.\n *\n * @param {string} path\n * File path.\n * @returns {string}\n * Extname.\n */\nfunction extname(path) {\n assertPath(path)\n\n let index = path.length\n\n let end = -1\n let startPart = 0\n let startDot = -1\n // Track the state of characters (if any) we see before our first dot and\n // after any path separator we find.\n let preDotState = 0\n /** @type {boolean | undefined} */\n let unmatchedSlash\n\n while (index--) {\n const code = path.codePointAt(index)\n\n if (code === 47 /* `/` */) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now.\n if (unmatchedSlash) {\n startPart = index + 1\n break\n }\n\n continue\n }\n\n if (end < 0) {\n // We saw the first non-path separator, mark this as the end of our\n // extension.\n unmatchedSlash = true\n end = index + 1\n }\n\n if (code === 46 /* `.` */) {\n // If this is our first dot, mark it as the start of our extension.\n if (startDot < 0) {\n startDot = index\n } else if (preDotState !== 1) {\n preDotState = 1\n }\n } else if (startDot > -1) {\n // We saw a non-dot and non-path separator before our dot, so we should\n // have a good chance at having a non-empty extension.\n preDotState = -1\n }\n }\n\n if (\n startDot < 0 ||\n end < 0 ||\n // We saw a non-dot character immediately before the dot.\n preDotState === 0 ||\n // The (right-most) trimmed path component is exactly `..`.\n (preDotState === 1 && startDot === end - 1 && startDot === startPart + 1)\n ) {\n return ''\n }\n\n return path.slice(startDot, end)\n}\n\n/**\n * Join segments from a path.\n *\n * @param {Array} segments\n * Path segments.\n * @returns {string}\n * File path.\n */\nfunction join(...segments) {\n let index = -1\n /** @type {string | undefined} */\n let joined\n\n while (++index < segments.length) {\n assertPath(segments[index])\n\n if (segments[index]) {\n joined =\n joined === undefined ? segments[index] : joined + '/' + segments[index]\n }\n }\n\n return joined === undefined ? '.' : normalize(joined)\n}\n\n/**\n * Normalize a basic file path.\n *\n * @param {string} path\n * File path.\n * @returns {string}\n * File path.\n */\n// Note: `normalize` is not exposed as `path.normalize`, so some code is\n// manually removed from it.\nfunction normalize(path) {\n assertPath(path)\n\n const absolute = path.codePointAt(0) === 47 /* `/` */\n\n // Normalize the path according to POSIX rules.\n let value = normalizeString(path, !absolute)\n\n if (value.length === 0 && !absolute) {\n value = '.'\n }\n\n if (value.length > 0 && path.codePointAt(path.length - 1) === 47 /* / */) {\n value += '/'\n }\n\n return absolute ? '/' + value : value\n}\n\n/**\n * Resolve `.` and `..` elements in a path with directory names.\n *\n * @param {string} path\n * File path.\n * @param {boolean} allowAboveRoot\n * Whether `..` can move above root.\n * @returns {string}\n * File path.\n */\nfunction normalizeString(path, allowAboveRoot) {\n let result = ''\n let lastSegmentLength = 0\n let lastSlash = -1\n let dots = 0\n let index = -1\n /** @type {number | undefined} */\n let code\n /** @type {number} */\n let lastSlashIndex\n\n while (++index <= path.length) {\n if (index < path.length) {\n code = path.codePointAt(index)\n } else if (code === 47 /* `/` */) {\n break\n } else {\n code = 47 /* `/` */\n }\n\n if (code === 47 /* `/` */) {\n if (lastSlash === index - 1 || dots === 1) {\n // Empty.\n } else if (lastSlash !== index - 1 && dots === 2) {\n if (\n result.length < 2 ||\n lastSegmentLength !== 2 ||\n result.codePointAt(result.length - 1) !== 46 /* `.` */ ||\n result.codePointAt(result.length - 2) !== 46 /* `.` */\n ) {\n if (result.length > 2) {\n lastSlashIndex = result.lastIndexOf('/')\n\n if (lastSlashIndex !== result.length - 1) {\n if (lastSlashIndex < 0) {\n result = ''\n lastSegmentLength = 0\n } else {\n result = result.slice(0, lastSlashIndex)\n lastSegmentLength = result.length - 1 - result.lastIndexOf('/')\n }\n\n lastSlash = index\n dots = 0\n continue\n }\n } else if (result.length > 0) {\n result = ''\n lastSegmentLength = 0\n lastSlash = index\n dots = 0\n continue\n }\n }\n\n if (allowAboveRoot) {\n result = result.length > 0 ? result + '/..' : '..'\n lastSegmentLength = 2\n }\n } else {\n if (result.length > 0) {\n result += '/' + path.slice(lastSlash + 1, index)\n } else {\n result = path.slice(lastSlash + 1, index)\n }\n\n lastSegmentLength = index - lastSlash - 1\n }\n\n lastSlash = index\n dots = 0\n } else if (code === 46 /* `.` */ && dots > -1) {\n dots++\n } else {\n dots = -1\n }\n }\n\n return result\n}\n\n/**\n * Make sure `path` is a string.\n *\n * @param {string} path\n * File path.\n * @returns {asserts path is string}\n * Nothing.\n */\nfunction assertPath(path) {\n if (typeof path !== 'string') {\n throw new TypeError(\n 'Path must be a string. Received ' + JSON.stringify(path)\n )\n }\n}\n\n/* eslint-enable max-depth, complexity */\n","// Somewhat based on:\n// .\n// But I don’t think one tiny line of code can be copyrighted. 😅\nexport const minproc = {cwd}\n\nfunction cwd() {\n return '/'\n}\n","/**\n * Checks if a value has the shape of a WHATWG URL object.\n *\n * Using a symbol or instanceof would not be able to recognize URL objects\n * coming from other implementations (e.g. in Electron), so instead we are\n * checking some well known properties for a lack of a better test.\n *\n * We use `href` and `protocol` as they are the only properties that are\n * easy to retrieve and calculate due to the lazy nature of the getters.\n *\n * We check for auth attribute to distinguish legacy url instance with\n * WHATWG URL instance.\n *\n * @param {unknown} fileUrlOrPath\n * File path or URL.\n * @returns {fileUrlOrPath is URL}\n * Whether it’s a URL.\n */\n// From: \nexport function isUrl(fileUrlOrPath) {\n return Boolean(\n fileUrlOrPath !== null &&\n typeof fileUrlOrPath === 'object' &&\n 'href' in fileUrlOrPath &&\n fileUrlOrPath.href &&\n 'protocol' in fileUrlOrPath &&\n fileUrlOrPath.protocol &&\n // @ts-expect-error: indexing is fine.\n fileUrlOrPath.auth === undefined\n )\n}\n","import {isUrl} from './minurl.shared.js'\n\nexport {isUrl} from './minurl.shared.js'\n\n// See: \n\n/**\n * @param {URL | string} path\n * File URL.\n * @returns {string}\n * File URL.\n */\nexport function urlToPath(path) {\n if (typeof path === 'string') {\n path = new URL(path)\n } else if (!isUrl(path)) {\n /** @type {NodeJS.ErrnoException} */\n const error = new TypeError(\n 'The \"path\" argument must be of type string or an instance of URL. Received `' +\n path +\n '`'\n )\n error.code = 'ERR_INVALID_ARG_TYPE'\n throw error\n }\n\n if (path.protocol !== 'file:') {\n /** @type {NodeJS.ErrnoException} */\n const error = new TypeError('The URL must be of scheme file')\n error.code = 'ERR_INVALID_URL_SCHEME'\n throw error\n }\n\n return getPathFromURLPosix(path)\n}\n\n/**\n * Get a path from a POSIX URL.\n *\n * @param {URL} url\n * URL.\n * @returns {string}\n * File path.\n */\nfunction getPathFromURLPosix(url) {\n if (url.hostname !== '') {\n /** @type {NodeJS.ErrnoException} */\n const error = new TypeError(\n 'File URL host must be \"localhost\" or empty on darwin'\n )\n error.code = 'ERR_INVALID_FILE_URL_HOST'\n throw error\n }\n\n const pathname = url.pathname\n let index = -1\n\n while (++index < pathname.length) {\n if (\n pathname.codePointAt(index) === 37 /* `%` */ &&\n pathname.codePointAt(index + 1) === 50 /* `2` */\n ) {\n const third = pathname.codePointAt(index + 2)\n if (third === 70 /* `F` */ || third === 102 /* `f` */) {\n /** @type {NodeJS.ErrnoException} */\n const error = new TypeError(\n 'File URL path must not include encoded / characters'\n )\n error.code = 'ERR_INVALID_FILE_URL_PATH'\n throw error\n }\n }\n }\n\n return decodeURIComponent(pathname)\n}\n","/**\n * @import {Node, Point, Position} from 'unist'\n * @import {Options as MessageOptions} from 'vfile-message'\n * @import {Compatible, Data, Map, Options, Value} from 'vfile'\n */\n\n/**\n * @typedef {object & {type: string, position?: Position | undefined}} NodeLike\n */\n\nimport {VFileMessage} from 'vfile-message'\nimport {minpath} from '#minpath'\nimport {minproc} from '#minproc'\nimport {urlToPath, isUrl} from '#minurl'\n\n/**\n * Order of setting (least specific to most), we need this because otherwise\n * `{stem: 'a', path: '~/b.js'}` would throw, as a path is needed before a\n * stem can be set.\n */\nconst order = /** @type {const} */ ([\n 'history',\n 'path',\n 'basename',\n 'stem',\n 'extname',\n 'dirname'\n])\n\nexport class VFile {\n /**\n * Create a new virtual file.\n *\n * `options` is treated as:\n *\n * * `string` or `Uint8Array` — `{value: options}`\n * * `URL` — `{path: options}`\n * * `VFile` — shallow copies its data over to the new file\n * * `object` — all fields are shallow copied over to the new file\n *\n * Path related fields are set in the following order (least specific to\n * most specific): `history`, `path`, `basename`, `stem`, `extname`,\n * `dirname`.\n *\n * You cannot set `dirname` or `extname` without setting either `history`,\n * `path`, `basename`, or `stem` too.\n *\n * @param {Compatible | null | undefined} [value]\n * File value.\n * @returns\n * New instance.\n */\n constructor(value) {\n /** @type {Options | VFile} */\n let options\n\n if (!value) {\n options = {}\n } else if (isUrl(value)) {\n options = {path: value}\n } else if (typeof value === 'string' || isUint8Array(value)) {\n options = {value}\n } else {\n options = value\n }\n\n /* eslint-disable no-unused-expressions */\n\n /**\n * Base of `path` (default: `process.cwd()` or `'/'` in browsers).\n *\n * @type {string}\n */\n // Prevent calling `cwd` (which could be expensive) if it’s not needed;\n // the empty string will be overridden in the next block.\n this.cwd = 'cwd' in options ? '' : minproc.cwd()\n\n /**\n * Place to store custom info (default: `{}`).\n *\n * It’s OK to store custom data directly on the file but moving it to\n * `data` is recommended.\n *\n * @type {Data}\n */\n this.data = {}\n\n /**\n * List of file paths the file moved between.\n *\n * The first is the original path and the last is the current path.\n *\n * @type {Array}\n */\n this.history = []\n\n /**\n * List of messages associated with the file.\n *\n * @type {Array}\n */\n this.messages = []\n\n /**\n * Raw value.\n *\n * @type {Value}\n */\n this.value\n\n // The below are non-standard, they are “well-known”.\n // As in, used in several tools.\n /**\n * Source map.\n *\n * This type is equivalent to the `RawSourceMap` type from the `source-map`\n * module.\n *\n * @type {Map | null | undefined}\n */\n this.map\n\n /**\n * Custom, non-string, compiled, representation.\n *\n * This is used by unified to store non-string results.\n * One example is when turning markdown into React nodes.\n *\n * @type {unknown}\n */\n this.result\n\n /**\n * Whether a file was saved to disk.\n *\n * This is used by vfile reporters.\n *\n * @type {boolean}\n */\n this.stored\n /* eslint-enable no-unused-expressions */\n\n // Set path related properties in the correct order.\n let index = -1\n\n while (++index < order.length) {\n const field = order[index]\n\n // Note: we specifically use `in` instead of `hasOwnProperty` to accept\n // `vfile`s too.\n if (\n field in options &&\n options[field] !== undefined &&\n options[field] !== null\n ) {\n // @ts-expect-error: TS doesn’t understand basic reality.\n this[field] = field === 'history' ? [...options[field]] : options[field]\n }\n }\n\n /** @type {string} */\n let field\n\n // Set non-path related properties.\n for (field in options) {\n // @ts-expect-error: fine to set other things.\n if (!order.includes(field)) {\n // @ts-expect-error: fine to set other things.\n this[field] = options[field]\n }\n }\n }\n\n /**\n * Get the basename (including extname) (example: `'index.min.js'`).\n *\n * @returns {string | undefined}\n * Basename.\n */\n get basename() {\n return typeof this.path === 'string'\n ? minpath.basename(this.path)\n : undefined\n }\n\n /**\n * Set basename (including extname) (`'index.min.js'`).\n *\n * Cannot contain path separators (`'/'` on unix, macOS, and browsers, `'\\'`\n * on windows).\n * Cannot be nullified (use `file.path = file.dirname` instead).\n *\n * @param {string} basename\n * Basename.\n * @returns {undefined}\n * Nothing.\n */\n set basename(basename) {\n assertNonEmpty(basename, 'basename')\n assertPart(basename, 'basename')\n this.path = minpath.join(this.dirname || '', basename)\n }\n\n /**\n * Get the parent path (example: `'~'`).\n *\n * @returns {string | undefined}\n * Dirname.\n */\n get dirname() {\n return typeof this.path === 'string'\n ? minpath.dirname(this.path)\n : undefined\n }\n\n /**\n * Set the parent path (example: `'~'`).\n *\n * Cannot be set if there’s no `path` yet.\n *\n * @param {string | undefined} dirname\n * Dirname.\n * @returns {undefined}\n * Nothing.\n */\n set dirname(dirname) {\n assertPath(this.basename, 'dirname')\n this.path = minpath.join(dirname || '', this.basename)\n }\n\n /**\n * Get the extname (including dot) (example: `'.js'`).\n *\n * @returns {string | undefined}\n * Extname.\n */\n get extname() {\n return typeof this.path === 'string'\n ? minpath.extname(this.path)\n : undefined\n }\n\n /**\n * Set the extname (including dot) (example: `'.js'`).\n *\n * Cannot contain path separators (`'/'` on unix, macOS, and browsers, `'\\'`\n * on windows).\n * Cannot be set if there’s no `path` yet.\n *\n * @param {string | undefined} extname\n * Extname.\n * @returns {undefined}\n * Nothing.\n */\n set extname(extname) {\n assertPart(extname, 'extname')\n assertPath(this.dirname, 'extname')\n\n if (extname) {\n if (extname.codePointAt(0) !== 46 /* `.` */) {\n throw new Error('`extname` must start with `.`')\n }\n\n if (extname.includes('.', 1)) {\n throw new Error('`extname` cannot contain multiple dots')\n }\n }\n\n this.path = minpath.join(this.dirname, this.stem + (extname || ''))\n }\n\n /**\n * Get the full path (example: `'~/index.min.js'`).\n *\n * @returns {string}\n * Path.\n */\n get path() {\n return this.history[this.history.length - 1]\n }\n\n /**\n * Set the full path (example: `'~/index.min.js'`).\n *\n * Cannot be nullified.\n * You can set a file URL (a `URL` object with a `file:` protocol) which will\n * be turned into a path with `url.fileURLToPath`.\n *\n * @param {URL | string} path\n * Path.\n * @returns {undefined}\n * Nothing.\n */\n set path(path) {\n if (isUrl(path)) {\n path = urlToPath(path)\n }\n\n assertNonEmpty(path, 'path')\n\n if (this.path !== path) {\n this.history.push(path)\n }\n }\n\n /**\n * Get the stem (basename w/o extname) (example: `'index.min'`).\n *\n * @returns {string | undefined}\n * Stem.\n */\n get stem() {\n return typeof this.path === 'string'\n ? minpath.basename(this.path, this.extname)\n : undefined\n }\n\n /**\n * Set the stem (basename w/o extname) (example: `'index.min'`).\n *\n * Cannot contain path separators (`'/'` on unix, macOS, and browsers, `'\\'`\n * on windows).\n * Cannot be nullified (use `file.path = file.dirname` instead).\n *\n * @param {string} stem\n * Stem.\n * @returns {undefined}\n * Nothing.\n */\n set stem(stem) {\n assertNonEmpty(stem, 'stem')\n assertPart(stem, 'stem')\n this.path = minpath.join(this.dirname || '', stem + (this.extname || ''))\n }\n\n // Normal prototypal methods.\n /**\n * Create a fatal message for `reason` associated with the file.\n *\n * The `fatal` field of the message is set to `true` (error; file not usable)\n * and the `file` field is set to the current file path.\n * The message is added to the `messages` field on `file`.\n *\n * > 🪦 **Note**: also has obsolete signatures.\n *\n * @overload\n * @param {string} reason\n * @param {MessageOptions | null | undefined} [options]\n * @returns {never}\n *\n * @overload\n * @param {string} reason\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @overload\n * @param {string} reason\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @overload\n * @param {string} reason\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @param {Error | VFileMessage | string} causeOrReason\n * Reason for message, should use markdown.\n * @param {Node | NodeLike | MessageOptions | Point | Position | string | null | undefined} [optionsOrParentOrPlace]\n * Configuration (optional).\n * @param {string | null | undefined} [origin]\n * Place in code where the message originates (example:\n * `'my-package:my-rule'` or `'my-rule'`).\n * @returns {never}\n * Never.\n * @throws {VFileMessage}\n * Message.\n */\n fail(causeOrReason, optionsOrParentOrPlace, origin) {\n // @ts-expect-error: the overloads are fine.\n const message = this.message(causeOrReason, optionsOrParentOrPlace, origin)\n\n message.fatal = true\n\n throw message\n }\n\n /**\n * Create an info message for `reason` associated with the file.\n *\n * The `fatal` field of the message is set to `undefined` (info; change\n * likely not needed) and the `file` field is set to the current file path.\n * The message is added to the `messages` field on `file`.\n *\n * > 🪦 **Note**: also has obsolete signatures.\n *\n * @overload\n * @param {string} reason\n * @param {MessageOptions | null | undefined} [options]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @param {Error | VFileMessage | string} causeOrReason\n * Reason for message, should use markdown.\n * @param {Node | NodeLike | MessageOptions | Point | Position | string | null | undefined} [optionsOrParentOrPlace]\n * Configuration (optional).\n * @param {string | null | undefined} [origin]\n * Place in code where the message originates (example:\n * `'my-package:my-rule'` or `'my-rule'`).\n * @returns {VFileMessage}\n * Message.\n */\n info(causeOrReason, optionsOrParentOrPlace, origin) {\n // @ts-expect-error: the overloads are fine.\n const message = this.message(causeOrReason, optionsOrParentOrPlace, origin)\n\n message.fatal = undefined\n\n return message\n }\n\n /**\n * Create a message for `reason` associated with the file.\n *\n * The `fatal` field of the message is set to `false` (warning; change may be\n * needed) and the `file` field is set to the current file path.\n * The message is added to the `messages` field on `file`.\n *\n * > 🪦 **Note**: also has obsolete signatures.\n *\n * @overload\n * @param {string} reason\n * @param {MessageOptions | null | undefined} [options]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @param {Error | VFileMessage | string} causeOrReason\n * Reason for message, should use markdown.\n * @param {Node | NodeLike | MessageOptions | Point | Position | string | null | undefined} [optionsOrParentOrPlace]\n * Configuration (optional).\n * @param {string | null | undefined} [origin]\n * Place in code where the message originates (example:\n * `'my-package:my-rule'` or `'my-rule'`).\n * @returns {VFileMessage}\n * Message.\n */\n message(causeOrReason, optionsOrParentOrPlace, origin) {\n const message = new VFileMessage(\n // @ts-expect-error: the overloads are fine.\n causeOrReason,\n optionsOrParentOrPlace,\n origin\n )\n\n if (this.path) {\n message.name = this.path + ':' + message.name\n message.file = this.path\n }\n\n message.fatal = false\n\n this.messages.push(message)\n\n return message\n }\n\n /**\n * Serialize the file.\n *\n * > **Note**: which encodings are supported depends on the engine.\n * > For info on Node.js, see:\n * > .\n *\n * @param {string | null | undefined} [encoding='utf8']\n * Character encoding to understand `value` as when it’s a `Uint8Array`\n * (default: `'utf-8'`).\n * @returns {string}\n * Serialized file.\n */\n toString(encoding) {\n if (this.value === undefined) {\n return ''\n }\n\n if (typeof this.value === 'string') {\n return this.value\n }\n\n const decoder = new TextDecoder(encoding || undefined)\n return decoder.decode(this.value)\n }\n}\n\n/**\n * Assert that `part` is not a path (as in, does not contain `path.sep`).\n *\n * @param {string | null | undefined} part\n * File path part.\n * @param {string} name\n * Part name.\n * @returns {undefined}\n * Nothing.\n */\nfunction assertPart(part, name) {\n if (part && part.includes(minpath.sep)) {\n throw new Error(\n '`' + name + '` cannot be a path: did not expect `' + minpath.sep + '`'\n )\n }\n}\n\n/**\n * Assert that `part` is not empty.\n *\n * @param {string | undefined} part\n * Thing.\n * @param {string} name\n * Part name.\n * @returns {asserts part is string}\n * Nothing.\n */\nfunction assertNonEmpty(part, name) {\n if (!part) {\n throw new Error('`' + name + '` cannot be empty')\n }\n}\n\n/**\n * Assert `path` exists.\n *\n * @param {string | undefined} path\n * Path.\n * @param {string} name\n * Dependency name.\n * @returns {asserts path is string}\n * Nothing.\n */\nfunction assertPath(path, name) {\n if (!path) {\n throw new Error('Setting `' + name + '` requires `path` to be set too')\n }\n}\n\n/**\n * Assert `value` is an `Uint8Array`.\n *\n * @param {unknown} value\n * thing.\n * @returns {value is Uint8Array}\n * Whether `value` is an `Uint8Array`.\n */\nfunction isUint8Array(value) {\n return Boolean(\n value &&\n typeof value === 'object' &&\n 'byteLength' in value &&\n 'byteOffset' in value\n )\n}\n","export const CallableInstance =\n /**\n * @type {new , Result>(property: string | symbol) => (...parameters: Parameters) => Result}\n */\n (\n /** @type {unknown} */\n (\n /**\n * @this {Function}\n * @param {string | symbol} property\n * @returns {(...parameters: Array) => unknown}\n */\n function (property) {\n const self = this\n const constr = self.constructor\n const proto = /** @type {Record} */ (\n // Prototypes do exist.\n // type-coverage:ignore-next-line\n constr.prototype\n )\n const value = proto[property]\n /** @type {(...parameters: Array) => unknown} */\n const apply = function () {\n return value.apply(apply, arguments)\n }\n\n Object.setPrototypeOf(apply, proto)\n\n // Not needed for us in `unified`: we only call this on the `copy`\n // function,\n // and we don't need to add its fields (`length`, `name`)\n // over.\n // See also: GH-246.\n // const names = Object.getOwnPropertyNames(value)\n //\n // for (const p of names) {\n // const descriptor = Object.getOwnPropertyDescriptor(value, p)\n // if (descriptor) Object.defineProperty(apply, p, descriptor)\n // }\n\n return apply\n }\n )\n )\n","/**\n * @typedef {import('trough').Pipeline} Pipeline\n *\n * @typedef {import('unist').Node} Node\n *\n * @typedef {import('vfile').Compatible} Compatible\n * @typedef {import('vfile').Value} Value\n *\n * @typedef {import('../index.js').CompileResultMap} CompileResultMap\n * @typedef {import('../index.js').Data} Data\n * @typedef {import('../index.js').Settings} Settings\n */\n\n/**\n * @typedef {CompileResultMap[keyof CompileResultMap]} CompileResults\n * Acceptable results from compilers.\n *\n * To register custom results, add them to\n * {@linkcode CompileResultMap}.\n */\n\n/**\n * @template {Node} [Tree=Node]\n * The node that the compiler receives (default: `Node`).\n * @template {CompileResults} [Result=CompileResults]\n * The thing that the compiler yields (default: `CompileResults`).\n * @callback Compiler\n * A **compiler** handles the compiling of a syntax tree to something else\n * (in most cases, text) (TypeScript type).\n *\n * It is used in the stringify phase and called with a {@linkcode Node}\n * and {@linkcode VFile} representation of the document to compile.\n * It should return the textual representation of the given tree (typically\n * `string`).\n *\n * > **Note**: unified typically compiles by serializing: most compilers\n * > return `string` (or `Uint8Array`).\n * > Some compilers, such as the one configured with\n * > [`rehype-react`][rehype-react], return other values (in this case, a\n * > React tree).\n * > If you’re using a compiler that doesn’t serialize, expect different\n * > result values.\n * >\n * > To register custom results in TypeScript, add them to\n * > {@linkcode CompileResultMap}.\n *\n * [rehype-react]: https://github.com/rehypejs/rehype-react\n * @param {Tree} tree\n * Tree to compile.\n * @param {VFile} file\n * File associated with `tree`.\n * @returns {Result}\n * New content: compiled text (`string` or `Uint8Array`, for `file.value`) or\n * something else (for `file.result`).\n */\n\n/**\n * @template {Node} [Tree=Node]\n * The node that the parser yields (default: `Node`)\n * @callback Parser\n * A **parser** handles the parsing of text to a syntax tree.\n *\n * It is used in the parse phase and is called with a `string` and\n * {@linkcode VFile} of the document to parse.\n * It must return the syntax tree representation of the given file\n * ({@linkcode Node}).\n * @param {string} document\n * Document to parse.\n * @param {VFile} file\n * File associated with `document`.\n * @returns {Tree}\n * Node representing the given file.\n */\n\n/**\n * @typedef {(\n * Plugin, any, any> |\n * PluginTuple, any, any> |\n * Preset\n * )} Pluggable\n * Union of the different ways to add plugins and settings.\n */\n\n/**\n * @typedef {Array} PluggableList\n * List of plugins and presets.\n */\n\n// Note: we can’t use `callback` yet as it messes up `this`:\n// .\n/**\n * @template {Array} [PluginParameters=[]]\n * Arguments passed to the plugin (default: `[]`, the empty tuple).\n * @template {Node | string | undefined} [Input=Node]\n * Value that is expected as input (default: `Node`).\n *\n * * If the plugin returns a {@linkcode Transformer}, this\n * should be the node it expects.\n * * If the plugin sets a {@linkcode Parser}, this should be\n * `string`.\n * * If the plugin sets a {@linkcode Compiler}, this should be the\n * node it expects.\n * @template [Output=Input]\n * Value that is yielded as output (default: `Input`).\n *\n * * If the plugin returns a {@linkcode Transformer}, this\n * should be the node that that yields.\n * * If the plugin sets a {@linkcode Parser}, this should be the\n * node that it yields.\n * * If the plugin sets a {@linkcode Compiler}, this should be\n * result it yields.\n * @typedef {(\n * (this: Processor, ...parameters: PluginParameters) =>\n * Input extends string ? // Parser.\n * Output extends Node | undefined ? undefined | void : never :\n * Output extends CompileResults ? // Compiler.\n * Input extends Node | undefined ? undefined | void : never :\n * Transformer<\n * Input extends Node ? Input : Node,\n * Output extends Node ? Output : Node\n * > | undefined | void\n * )} Plugin\n * Single plugin.\n *\n * Plugins configure the processors they are applied on in the following\n * ways:\n *\n * * they change the processor, such as the parser, the compiler, or by\n * configuring data\n * * they specify how to handle trees and files\n *\n * In practice, they are functions that can receive options and configure the\n * processor (`this`).\n *\n * > **Note**: plugins are called when the processor is *frozen*, not when\n * > they are applied.\n */\n\n/**\n * Tuple of a plugin and its configuration.\n *\n * The first item is a plugin, the rest are its parameters.\n *\n * @template {Array} [TupleParameters=[]]\n * Arguments passed to the plugin (default: `[]`, the empty tuple).\n * @template {Node | string | undefined} [Input=undefined]\n * Value that is expected as input (optional).\n *\n * * If the plugin returns a {@linkcode Transformer}, this\n * should be the node it expects.\n * * If the plugin sets a {@linkcode Parser}, this should be\n * `string`.\n * * If the plugin sets a {@linkcode Compiler}, this should be the\n * node it expects.\n * @template [Output=undefined] (optional).\n * Value that is yielded as output.\n *\n * * If the plugin returns a {@linkcode Transformer}, this\n * should be the node that that yields.\n * * If the plugin sets a {@linkcode Parser}, this should be the\n * node that it yields.\n * * If the plugin sets a {@linkcode Compiler}, this should be\n * result it yields.\n * @typedef {(\n * [\n * plugin: Plugin,\n * ...parameters: TupleParameters\n * ]\n * )} PluginTuple\n */\n\n/**\n * @typedef Preset\n * Sharable configuration.\n *\n * They can contain plugins and settings.\n * @property {PluggableList | undefined} [plugins]\n * List of plugins and presets (optional).\n * @property {Settings | undefined} [settings]\n * Shared settings for parsers and compilers (optional).\n */\n\n/**\n * @template {VFile} [File=VFile]\n * The file that the callback receives (default: `VFile`).\n * @callback ProcessCallback\n * Callback called when the process is done.\n *\n * Called with either an error or a result.\n * @param {Error | undefined} [error]\n * Fatal error (optional).\n * @param {File | undefined} [file]\n * Processed file (optional).\n * @returns {undefined}\n * Nothing.\n */\n\n/**\n * @template {Node} [Tree=Node]\n * The tree that the callback receives (default: `Node`).\n * @callback RunCallback\n * Callback called when transformers are done.\n *\n * Called with either an error or results.\n * @param {Error | undefined} [error]\n * Fatal error (optional).\n * @param {Tree | undefined} [tree]\n * Transformed tree (optional).\n * @param {VFile | undefined} [file]\n * File (optional).\n * @returns {undefined}\n * Nothing.\n */\n\n/**\n * @template {Node} [Output=Node]\n * Node type that the transformer yields (default: `Node`).\n * @callback TransformCallback\n * Callback passed to transforms.\n *\n * If the signature of a `transformer` accepts a third argument, the\n * transformer may perform asynchronous operations, and must call it.\n * @param {Error | undefined} [error]\n * Fatal error to stop the process (optional).\n * @param {Output | undefined} [tree]\n * New, changed, tree (optional).\n * @param {VFile | undefined} [file]\n * New, changed, file (optional).\n * @returns {undefined}\n * Nothing.\n */\n\n/**\n * @template {Node} [Input=Node]\n * Node type that the transformer expects (default: `Node`).\n * @template {Node} [Output=Input]\n * Node type that the transformer yields (default: `Input`).\n * @callback Transformer\n * Transformers handle syntax trees and files.\n *\n * They are functions that are called each time a syntax tree and file are\n * passed through the run phase.\n * When an error occurs in them (either because it’s thrown, returned,\n * rejected, or passed to `next`), the process stops.\n *\n * The run phase is handled by [`trough`][trough], see its documentation for\n * the exact semantics of these functions.\n *\n * > **Note**: you should likely ignore `next`: don’t accept it.\n * > it supports callback-style async work.\n * > But promises are likely easier to reason about.\n *\n * [trough]: https://github.com/wooorm/trough#function-fninput-next\n * @param {Input} tree\n * Tree to handle.\n * @param {VFile} file\n * File to handle.\n * @param {TransformCallback} next\n * Callback.\n * @returns {(\n * Promise |\n * Promise | // For some reason this is needed separately.\n * Output |\n * Error |\n * undefined |\n * void\n * )}\n * If you accept `next`, nothing.\n * Otherwise:\n *\n * * `Error` — fatal error to stop the process\n * * `Promise` or `undefined` — the next transformer keeps using\n * same tree\n * * `Promise` or `Node` — new, changed, tree\n */\n\n/**\n * @template {Node | undefined} ParseTree\n * Output of `parse`.\n * @template {Node | undefined} HeadTree\n * Input for `run`.\n * @template {Node | undefined} TailTree\n * Output for `run`.\n * @template {Node | undefined} CompileTree\n * Input of `stringify`.\n * @template {CompileResults | undefined} CompileResult\n * Output of `stringify`.\n * @template {Node | string | undefined} Input\n * Input of plugin.\n * @template Output\n * Output of plugin (optional).\n * @typedef {(\n * Input extends string\n * ? Output extends Node | undefined\n * ? // Parser.\n * Processor<\n * Output extends undefined ? ParseTree : Output,\n * HeadTree,\n * TailTree,\n * CompileTree,\n * CompileResult\n * >\n * : // Unknown.\n * Processor\n * : Output extends CompileResults\n * ? Input extends Node | undefined\n * ? // Compiler.\n * Processor<\n * ParseTree,\n * HeadTree,\n * TailTree,\n * Input extends undefined ? CompileTree : Input,\n * Output extends undefined ? CompileResult : Output\n * >\n * : // Unknown.\n * Processor\n * : Input extends Node | undefined\n * ? Output extends Node | undefined\n * ? // Transform.\n * Processor<\n * ParseTree,\n * HeadTree extends undefined ? Input : HeadTree,\n * Output extends undefined ? TailTree : Output,\n * CompileTree,\n * CompileResult\n * >\n * : // Unknown.\n * Processor\n * : // Unknown.\n * Processor\n * )} UsePlugin\n * Create a processor based on the input/output of a {@link Plugin plugin}.\n */\n\n/**\n * @template {CompileResults | undefined} Result\n * Node type that the transformer yields.\n * @typedef {(\n * Result extends Value | undefined ?\n * VFile :\n * VFile & {result: Result}\n * )} VFileWithOutput\n * Type to generate a {@linkcode VFile} corresponding to a compiler result.\n *\n * If a result that is not acceptable on a `VFile` is used, that will\n * be stored on the `result` field of {@linkcode VFile}.\n */\n\nimport {bail} from 'bail'\nimport extend from 'extend'\nimport {ok as assert} from 'devlop'\nimport isPlainObj from 'is-plain-obj'\nimport {trough} from 'trough'\nimport {VFile} from 'vfile'\nimport {CallableInstance} from './callable-instance.js'\n\n// To do: next major: drop `Compiler`, `Parser`: prefer lowercase.\n\n// To do: we could start yielding `never` in TS when a parser is missing and\n// `parse` is called.\n// Currently, we allow directly setting `processor.parser`, which is untyped.\n\nconst own = {}.hasOwnProperty\n\n/**\n * @template {Node | undefined} [ParseTree=undefined]\n * Output of `parse` (optional).\n * @template {Node | undefined} [HeadTree=undefined]\n * Input for `run` (optional).\n * @template {Node | undefined} [TailTree=undefined]\n * Output for `run` (optional).\n * @template {Node | undefined} [CompileTree=undefined]\n * Input of `stringify` (optional).\n * @template {CompileResults | undefined} [CompileResult=undefined]\n * Output of `stringify` (optional).\n * @extends {CallableInstance<[], Processor>}\n */\nexport class Processor extends CallableInstance {\n /**\n * Create a processor.\n */\n constructor() {\n // If `Processor()` is called (w/o new), `copy` is called instead.\n super('copy')\n\n /**\n * Compiler to use (deprecated).\n *\n * @deprecated\n * Use `compiler` instead.\n * @type {(\n * Compiler<\n * CompileTree extends undefined ? Node : CompileTree,\n * CompileResult extends undefined ? CompileResults : CompileResult\n * > |\n * undefined\n * )}\n */\n this.Compiler = undefined\n\n /**\n * Parser to use (deprecated).\n *\n * @deprecated\n * Use `parser` instead.\n * @type {(\n * Parser |\n * undefined\n * )}\n */\n this.Parser = undefined\n\n // Note: the following fields are considered private.\n // However, they are needed for tests, and TSC generates an untyped\n // `private freezeIndex` field for, which trips `type-coverage` up.\n // Instead, we use `@deprecated` to visualize that they shouldn’t be used.\n /**\n * Internal list of configured plugins.\n *\n * @deprecated\n * This is a private internal property and should not be used.\n * @type {Array>>}\n */\n this.attachers = []\n\n /**\n * Compiler to use.\n *\n * @type {(\n * Compiler<\n * CompileTree extends undefined ? Node : CompileTree,\n * CompileResult extends undefined ? CompileResults : CompileResult\n * > |\n * undefined\n * )}\n */\n this.compiler = undefined\n\n /**\n * Internal state to track where we are while freezing.\n *\n * @deprecated\n * This is a private internal property and should not be used.\n * @type {number}\n */\n this.freezeIndex = -1\n\n /**\n * Internal state to track whether we’re frozen.\n *\n * @deprecated\n * This is a private internal property and should not be used.\n * @type {boolean | undefined}\n */\n this.frozen = undefined\n\n /**\n * Internal state.\n *\n * @deprecated\n * This is a private internal property and should not be used.\n * @type {Data}\n */\n this.namespace = {}\n\n /**\n * Parser to use.\n *\n * @type {(\n * Parser |\n * undefined\n * )}\n */\n this.parser = undefined\n\n /**\n * Internal list of configured transformers.\n *\n * @deprecated\n * This is a private internal property and should not be used.\n * @type {Pipeline}\n */\n this.transformers = trough()\n }\n\n /**\n * Copy a processor.\n *\n * @deprecated\n * This is a private internal method and should not be used.\n * @returns {Processor}\n * New *unfrozen* processor ({@linkcode Processor}) that is\n * configured to work the same as its ancestor.\n * When the descendant processor is configured in the future it does not\n * affect the ancestral processor.\n */\n copy() {\n // Cast as the type parameters will be the same after attaching.\n const destination =\n /** @type {Processor} */ (\n new Processor()\n )\n let index = -1\n\n while (++index < this.attachers.length) {\n const attacher = this.attachers[index]\n destination.use(...attacher)\n }\n\n destination.data(extend(true, {}, this.namespace))\n\n return destination\n }\n\n /**\n * Configure the processor with info available to all plugins.\n * Information is stored in an object.\n *\n * Typically, options can be given to a specific plugin, but sometimes it\n * makes sense to have information shared with several plugins.\n * For example, a list of HTML elements that are self-closing, which is\n * needed during all phases.\n *\n * > **Note**: setting information cannot occur on *frozen* processors.\n * > Call the processor first to create a new unfrozen processor.\n *\n * > **Note**: to register custom data in TypeScript, augment the\n * > {@linkcode Data} interface.\n *\n * @example\n * This example show how to get and set info:\n *\n * ```js\n * import {unified} from 'unified'\n *\n * const processor = unified().data('alpha', 'bravo')\n *\n * processor.data('alpha') // => 'bravo'\n *\n * processor.data() // => {alpha: 'bravo'}\n *\n * processor.data({charlie: 'delta'})\n *\n * processor.data() // => {charlie: 'delta'}\n * ```\n *\n * @template {keyof Data} Key\n *\n * @overload\n * @returns {Data}\n *\n * @overload\n * @param {Data} dataset\n * @returns {Processor}\n *\n * @overload\n * @param {Key} key\n * @returns {Data[Key]}\n *\n * @overload\n * @param {Key} key\n * @param {Data[Key]} value\n * @returns {Processor}\n *\n * @param {Data | Key} [key]\n * Key to get or set, or entire dataset to set, or nothing to get the\n * entire dataset (optional).\n * @param {Data[Key]} [value]\n * Value to set (optional).\n * @returns {unknown}\n * The current processor when setting, the value at `key` when getting, or\n * the entire dataset when getting without key.\n */\n data(key, value) {\n if (typeof key === 'string') {\n // Set `key`.\n if (arguments.length === 2) {\n assertUnfrozen('data', this.frozen)\n this.namespace[key] = value\n return this\n }\n\n // Get `key`.\n return (own.call(this.namespace, key) && this.namespace[key]) || undefined\n }\n\n // Set space.\n if (key) {\n assertUnfrozen('data', this.frozen)\n this.namespace = key\n return this\n }\n\n // Get space.\n return this.namespace\n }\n\n /**\n * Freeze a processor.\n *\n * Frozen processors are meant to be extended and not to be configured\n * directly.\n *\n * When a processor is frozen it cannot be unfrozen.\n * New processors working the same way can be created by calling the\n * processor.\n *\n * It’s possible to freeze processors explicitly by calling `.freeze()`.\n * Processors freeze automatically when `.parse()`, `.run()`, `.runSync()`,\n * `.stringify()`, `.process()`, or `.processSync()` are called.\n *\n * @returns {Processor}\n * The current processor.\n */\n freeze() {\n if (this.frozen) {\n return this\n }\n\n // Cast so that we can type plugins easier.\n // Plugins are supposed to be usable on different processors, not just on\n // this exact processor.\n const self = /** @type {Processor} */ (/** @type {unknown} */ (this))\n\n while (++this.freezeIndex < this.attachers.length) {\n const [attacher, ...options] = this.attachers[this.freezeIndex]\n\n if (options[0] === false) {\n continue\n }\n\n if (options[0] === true) {\n options[0] = undefined\n }\n\n const transformer = attacher.call(self, ...options)\n\n if (typeof transformer === 'function') {\n this.transformers.use(transformer)\n }\n }\n\n this.frozen = true\n this.freezeIndex = Number.POSITIVE_INFINITY\n\n return this\n }\n\n /**\n * Parse text to a syntax tree.\n *\n * > **Note**: `parse` freezes the processor if not already *frozen*.\n *\n * > **Note**: `parse` performs the parse phase, not the run phase or other\n * > phases.\n *\n * @param {Compatible | undefined} [file]\n * file to parse (optional); typically `string` or `VFile`; any value\n * accepted as `x` in `new VFile(x)`.\n * @returns {ParseTree extends undefined ? Node : ParseTree}\n * Syntax tree representing `file`.\n */\n parse(file) {\n this.freeze()\n const realFile = vfile(file)\n const parser = this.parser || this.Parser\n assertParser('parse', parser)\n return parser(String(realFile), realFile)\n }\n\n /**\n * Process the given file as configured on the processor.\n *\n * > **Note**: `process` freezes the processor if not already *frozen*.\n *\n * > **Note**: `process` performs the parse, run, and stringify phases.\n *\n * @overload\n * @param {Compatible | undefined} file\n * @param {ProcessCallback>} done\n * @returns {undefined}\n *\n * @overload\n * @param {Compatible | undefined} [file]\n * @returns {Promise>}\n *\n * @param {Compatible | undefined} [file]\n * File (optional); typically `string` or `VFile`]; any value accepted as\n * `x` in `new VFile(x)`.\n * @param {ProcessCallback> | undefined} [done]\n * Callback (optional).\n * @returns {Promise | undefined}\n * Nothing if `done` is given.\n * Otherwise a promise, rejected with a fatal error or resolved with the\n * processed file.\n *\n * The parsed, transformed, and compiled value is available at\n * `file.value` (see note).\n *\n * > **Note**: unified typically compiles by serializing: most\n * > compilers return `string` (or `Uint8Array`).\n * > Some compilers, such as the one configured with\n * > [`rehype-react`][rehype-react], return other values (in this case, a\n * > React tree).\n * > If you’re using a compiler that doesn’t serialize, expect different\n * > result values.\n * >\n * > To register custom results in TypeScript, add them to\n * > {@linkcode CompileResultMap}.\n *\n * [rehype-react]: https://github.com/rehypejs/rehype-react\n */\n process(file, done) {\n const self = this\n\n this.freeze()\n assertParser('process', this.parser || this.Parser)\n assertCompiler('process', this.compiler || this.Compiler)\n\n return done ? executor(undefined, done) : new Promise(executor)\n\n // Note: `void`s needed for TS.\n /**\n * @param {((file: VFileWithOutput) => undefined | void) | undefined} resolve\n * @param {(error: Error | undefined) => undefined | void} reject\n * @returns {undefined}\n */\n function executor(resolve, reject) {\n const realFile = vfile(file)\n // Assume `ParseTree` (the result of the parser) matches `HeadTree` (the\n // input of the first transform).\n const parseTree =\n /** @type {HeadTree extends undefined ? Node : HeadTree} */ (\n /** @type {unknown} */ (self.parse(realFile))\n )\n\n self.run(parseTree, realFile, function (error, tree, file) {\n if (error || !tree || !file) {\n return realDone(error)\n }\n\n // Assume `TailTree` (the output of the last transform) matches\n // `CompileTree` (the input of the compiler).\n const compileTree =\n /** @type {CompileTree extends undefined ? Node : CompileTree} */ (\n /** @type {unknown} */ (tree)\n )\n\n const compileResult = self.stringify(compileTree, file)\n\n if (looksLikeAValue(compileResult)) {\n file.value = compileResult\n } else {\n file.result = compileResult\n }\n\n realDone(error, /** @type {VFileWithOutput} */ (file))\n })\n\n /**\n * @param {Error | undefined} error\n * @param {VFileWithOutput | undefined} [file]\n * @returns {undefined}\n */\n function realDone(error, file) {\n if (error || !file) {\n reject(error)\n } else if (resolve) {\n resolve(file)\n } else {\n assert(done, '`done` is defined if `resolve` is not')\n done(undefined, file)\n }\n }\n }\n }\n\n /**\n * Process the given file as configured on the processor.\n *\n * An error is thrown if asynchronous transforms are configured.\n *\n * > **Note**: `processSync` freezes the processor if not already *frozen*.\n *\n * > **Note**: `processSync` performs the parse, run, and stringify phases.\n *\n * @param {Compatible | undefined} [file]\n * File (optional); typically `string` or `VFile`; any value accepted as\n * `x` in `new VFile(x)`.\n * @returns {VFileWithOutput}\n * The processed file.\n *\n * The parsed, transformed, and compiled value is available at\n * `file.value` (see note).\n *\n * > **Note**: unified typically compiles by serializing: most\n * > compilers return `string` (or `Uint8Array`).\n * > Some compilers, such as the one configured with\n * > [`rehype-react`][rehype-react], return other values (in this case, a\n * > React tree).\n * > If you’re using a compiler that doesn’t serialize, expect different\n * > result values.\n * >\n * > To register custom results in TypeScript, add them to\n * > {@linkcode CompileResultMap}.\n *\n * [rehype-react]: https://github.com/rehypejs/rehype-react\n */\n processSync(file) {\n /** @type {boolean} */\n let complete = false\n /** @type {VFileWithOutput | undefined} */\n let result\n\n this.freeze()\n assertParser('processSync', this.parser || this.Parser)\n assertCompiler('processSync', this.compiler || this.Compiler)\n\n this.process(file, realDone)\n assertDone('processSync', 'process', complete)\n assert(result, 'we either bailed on an error or have a tree')\n\n return result\n\n /**\n * @type {ProcessCallback>}\n */\n function realDone(error, file) {\n complete = true\n bail(error)\n result = file\n }\n }\n\n /**\n * Run *transformers* on a syntax tree.\n *\n * > **Note**: `run` freezes the processor if not already *frozen*.\n *\n * > **Note**: `run` performs the run phase, not other phases.\n *\n * @overload\n * @param {HeadTree extends undefined ? Node : HeadTree} tree\n * @param {RunCallback} done\n * @returns {undefined}\n *\n * @overload\n * @param {HeadTree extends undefined ? Node : HeadTree} tree\n * @param {Compatible | undefined} file\n * @param {RunCallback} done\n * @returns {undefined}\n *\n * @overload\n * @param {HeadTree extends undefined ? Node : HeadTree} tree\n * @param {Compatible | undefined} [file]\n * @returns {Promise}\n *\n * @param {HeadTree extends undefined ? Node : HeadTree} tree\n * Tree to transform and inspect.\n * @param {(\n * RunCallback |\n * Compatible\n * )} [file]\n * File associated with `node` (optional); any value accepted as `x` in\n * `new VFile(x)`.\n * @param {RunCallback} [done]\n * Callback (optional).\n * @returns {Promise | undefined}\n * Nothing if `done` is given.\n * Otherwise, a promise rejected with a fatal error or resolved with the\n * transformed tree.\n */\n run(tree, file, done) {\n assertNode(tree)\n this.freeze()\n\n const transformers = this.transformers\n\n if (!done && typeof file === 'function') {\n done = file\n file = undefined\n }\n\n return done ? executor(undefined, done) : new Promise(executor)\n\n // Note: `void`s needed for TS.\n /**\n * @param {(\n * ((tree: TailTree extends undefined ? Node : TailTree) => undefined | void) |\n * undefined\n * )} resolve\n * @param {(error: Error) => undefined | void} reject\n * @returns {undefined}\n */\n function executor(resolve, reject) {\n assert(\n typeof file !== 'function',\n '`file` can’t be a `done` anymore, we checked'\n )\n const realFile = vfile(file)\n transformers.run(tree, realFile, realDone)\n\n /**\n * @param {Error | undefined} error\n * @param {Node} outputTree\n * @param {VFile} file\n * @returns {undefined}\n */\n function realDone(error, outputTree, file) {\n const resultingTree =\n /** @type {TailTree extends undefined ? Node : TailTree} */ (\n outputTree || tree\n )\n\n if (error) {\n reject(error)\n } else if (resolve) {\n resolve(resultingTree)\n } else {\n assert(done, '`done` is defined if `resolve` is not')\n done(undefined, resultingTree, file)\n }\n }\n }\n }\n\n /**\n * Run *transformers* on a syntax tree.\n *\n * An error is thrown if asynchronous transforms are configured.\n *\n * > **Note**: `runSync` freezes the processor if not already *frozen*.\n *\n * > **Note**: `runSync` performs the run phase, not other phases.\n *\n * @param {HeadTree extends undefined ? Node : HeadTree} tree\n * Tree to transform and inspect.\n * @param {Compatible | undefined} [file]\n * File associated with `node` (optional); any value accepted as `x` in\n * `new VFile(x)`.\n * @returns {TailTree extends undefined ? Node : TailTree}\n * Transformed tree.\n */\n runSync(tree, file) {\n /** @type {boolean} */\n let complete = false\n /** @type {(TailTree extends undefined ? Node : TailTree) | undefined} */\n let result\n\n this.run(tree, file, realDone)\n\n assertDone('runSync', 'run', complete)\n assert(result, 'we either bailed on an error or have a tree')\n return result\n\n /**\n * @type {RunCallback}\n */\n function realDone(error, tree) {\n bail(error)\n result = tree\n complete = true\n }\n }\n\n /**\n * Compile a syntax tree.\n *\n * > **Note**: `stringify` freezes the processor if not already *frozen*.\n *\n * > **Note**: `stringify` performs the stringify phase, not the run phase\n * > or other phases.\n *\n * @param {CompileTree extends undefined ? Node : CompileTree} tree\n * Tree to compile.\n * @param {Compatible | undefined} [file]\n * File associated with `node` (optional); any value accepted as `x` in\n * `new VFile(x)`.\n * @returns {CompileResult extends undefined ? Value : CompileResult}\n * Textual representation of the tree (see note).\n *\n * > **Note**: unified typically compiles by serializing: most compilers\n * > return `string` (or `Uint8Array`).\n * > Some compilers, such as the one configured with\n * > [`rehype-react`][rehype-react], return other values (in this case, a\n * > React tree).\n * > If you’re using a compiler that doesn’t serialize, expect different\n * > result values.\n * >\n * > To register custom results in TypeScript, add them to\n * > {@linkcode CompileResultMap}.\n *\n * [rehype-react]: https://github.com/rehypejs/rehype-react\n */\n stringify(tree, file) {\n this.freeze()\n const realFile = vfile(file)\n const compiler = this.compiler || this.Compiler\n assertCompiler('stringify', compiler)\n assertNode(tree)\n\n return compiler(tree, realFile)\n }\n\n /**\n * Configure the processor to use a plugin, a list of usable values, or a\n * preset.\n *\n * If the processor is already using a plugin, the previous plugin\n * configuration is changed based on the options that are passed in.\n * In other words, the plugin is not added a second time.\n *\n * > **Note**: `use` cannot be called on *frozen* processors.\n * > Call the processor first to create a new unfrozen processor.\n *\n * @example\n * There are many ways to pass plugins to `.use()`.\n * This example gives an overview:\n *\n * ```js\n * import {unified} from 'unified'\n *\n * unified()\n * // Plugin with options:\n * .use(pluginA, {x: true, y: true})\n * // Passing the same plugin again merges configuration (to `{x: true, y: false, z: true}`):\n * .use(pluginA, {y: false, z: true})\n * // Plugins:\n * .use([pluginB, pluginC])\n * // Two plugins, the second with options:\n * .use([pluginD, [pluginE, {}]])\n * // Preset with plugins and settings:\n * .use({plugins: [pluginF, [pluginG, {}]], settings: {position: false}})\n * // Settings only:\n * .use({settings: {position: false}})\n * ```\n *\n * @template {Array} [Parameters=[]]\n * @template {Node | string | undefined} [Input=undefined]\n * @template [Output=Input]\n *\n * @overload\n * @param {Preset | null | undefined} [preset]\n * @returns {Processor}\n *\n * @overload\n * @param {PluggableList} list\n * @returns {Processor}\n *\n * @overload\n * @param {Plugin} plugin\n * @param {...(Parameters | [boolean])} parameters\n * @returns {UsePlugin}\n *\n * @param {PluggableList | Plugin | Preset | null | undefined} value\n * Usable value.\n * @param {...unknown} parameters\n * Parameters, when a plugin is given as a usable value.\n * @returns {Processor}\n * Current processor.\n */\n use(value, ...parameters) {\n const attachers = this.attachers\n const namespace = this.namespace\n\n assertUnfrozen('use', this.frozen)\n\n if (value === null || value === undefined) {\n // Empty.\n } else if (typeof value === 'function') {\n addPlugin(value, parameters)\n } else if (typeof value === 'object') {\n if (Array.isArray(value)) {\n addList(value)\n } else {\n addPreset(value)\n }\n } else {\n throw new TypeError('Expected usable value, not `' + value + '`')\n }\n\n return this\n\n /**\n * @param {Pluggable} value\n * @returns {undefined}\n */\n function add(value) {\n if (typeof value === 'function') {\n addPlugin(value, [])\n } else if (typeof value === 'object') {\n if (Array.isArray(value)) {\n const [plugin, ...parameters] =\n /** @type {PluginTuple>} */ (value)\n addPlugin(plugin, parameters)\n } else {\n addPreset(value)\n }\n } else {\n throw new TypeError('Expected usable value, not `' + value + '`')\n }\n }\n\n /**\n * @param {Preset} result\n * @returns {undefined}\n */\n function addPreset(result) {\n if (!('plugins' in result) && !('settings' in result)) {\n throw new Error(\n 'Expected usable value but received an empty preset, which is probably a mistake: presets typically come with `plugins` and sometimes with `settings`, but this has neither'\n )\n }\n\n addList(result.plugins)\n\n if (result.settings) {\n namespace.settings = extend(true, namespace.settings, result.settings)\n }\n }\n\n /**\n * @param {PluggableList | null | undefined} plugins\n * @returns {undefined}\n */\n function addList(plugins) {\n let index = -1\n\n if (plugins === null || plugins === undefined) {\n // Empty.\n } else if (Array.isArray(plugins)) {\n while (++index < plugins.length) {\n const thing = plugins[index]\n add(thing)\n }\n } else {\n throw new TypeError('Expected a list of plugins, not `' + plugins + '`')\n }\n }\n\n /**\n * @param {Plugin} plugin\n * @param {Array} parameters\n * @returns {undefined}\n */\n function addPlugin(plugin, parameters) {\n let index = -1\n let entryIndex = -1\n\n while (++index < attachers.length) {\n if (attachers[index][0] === plugin) {\n entryIndex = index\n break\n }\n }\n\n if (entryIndex === -1) {\n attachers.push([plugin, ...parameters])\n }\n // Only set if there was at least a `primary` value, otherwise we’d change\n // `arguments.length`.\n else if (parameters.length > 0) {\n let [primary, ...rest] = parameters\n const currentPrimary = attachers[entryIndex][1]\n if (isPlainObj(currentPrimary) && isPlainObj(primary)) {\n primary = extend(true, currentPrimary, primary)\n }\n\n attachers[entryIndex] = [plugin, primary, ...rest]\n }\n }\n }\n}\n\n// Note: this returns a *callable* instance.\n// That’s why it’s documented as a function.\n/**\n * Create a new processor.\n *\n * @example\n * This example shows how a new processor can be created (from `remark`) and linked\n * to **stdin**(4) and **stdout**(4).\n *\n * ```js\n * import process from 'node:process'\n * import concatStream from 'concat-stream'\n * import {remark} from 'remark'\n *\n * process.stdin.pipe(\n * concatStream(function (buf) {\n * process.stdout.write(String(remark().processSync(buf)))\n * })\n * )\n * ```\n *\n * @returns\n * New *unfrozen* processor (`processor`).\n *\n * This processor is configured to work the same as its ancestor.\n * When the descendant processor is configured in the future it does not\n * affect the ancestral processor.\n */\nexport const unified = new Processor().freeze()\n\n/**\n * Assert a parser is available.\n *\n * @param {string} name\n * @param {unknown} value\n * @returns {asserts value is Parser}\n */\nfunction assertParser(name, value) {\n if (typeof value !== 'function') {\n throw new TypeError('Cannot `' + name + '` without `parser`')\n }\n}\n\n/**\n * Assert a compiler is available.\n *\n * @param {string} name\n * @param {unknown} value\n * @returns {asserts value is Compiler}\n */\nfunction assertCompiler(name, value) {\n if (typeof value !== 'function') {\n throw new TypeError('Cannot `' + name + '` without `compiler`')\n }\n}\n\n/**\n * Assert the processor is not frozen.\n *\n * @param {string} name\n * @param {unknown} frozen\n * @returns {asserts frozen is false}\n */\nfunction assertUnfrozen(name, frozen) {\n if (frozen) {\n throw new Error(\n 'Cannot call `' +\n name +\n '` on a frozen processor.\\nCreate a new processor first, by calling it: use `processor()` instead of `processor`.'\n )\n }\n}\n\n/**\n * Assert `node` is a unist node.\n *\n * @param {unknown} node\n * @returns {asserts node is Node}\n */\nfunction assertNode(node) {\n // `isPlainObj` unfortunately uses `any` instead of `unknown`.\n // type-coverage:ignore-next-line\n if (!isPlainObj(node) || typeof node.type !== 'string') {\n throw new TypeError('Expected node, got `' + node + '`')\n // Fine.\n }\n}\n\n/**\n * Assert that `complete` is `true`.\n *\n * @param {string} name\n * @param {string} asyncName\n * @param {unknown} complete\n * @returns {asserts complete is true}\n */\nfunction assertDone(name, asyncName, complete) {\n if (!complete) {\n throw new Error(\n '`' + name + '` finished async. Use `' + asyncName + '` instead'\n )\n }\n}\n\n/**\n * @param {Compatible | undefined} [value]\n * @returns {VFile}\n */\nfunction vfile(value) {\n return looksLikeAVFile(value) ? value : new VFile(value)\n}\n\n/**\n * @param {Compatible | undefined} [value]\n * @returns {value is VFile}\n */\nfunction looksLikeAVFile(value) {\n return Boolean(\n value &&\n typeof value === 'object' &&\n 'message' in value &&\n 'messages' in value\n )\n}\n\n/**\n * @param {unknown} [value]\n * @returns {value is Value}\n */\nfunction looksLikeAValue(value) {\n return typeof value === 'string' || isUint8Array(value)\n}\n\n/**\n * Assert `value` is an `Uint8Array`.\n *\n * @param {unknown} value\n * thing.\n * @returns {value is Uint8Array}\n * Whether `value` is an `Uint8Array`.\n */\nfunction isUint8Array(value) {\n return Boolean(\n value &&\n typeof value === 'object' &&\n 'byteLength' in value &&\n 'byteOffset' in value\n )\n}\n","// Register `Raw` in tree:\n/// \n\n/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').ElementContent} ElementContent\n * @typedef {import('hast').Nodes} Nodes\n * @typedef {import('hast').Parents} Parents\n * @typedef {import('hast').Root} Root\n * @typedef {import('hast-util-to-jsx-runtime').Components} JsxRuntimeComponents\n * @typedef {import('remark-rehype').Options} RemarkRehypeOptions\n * @typedef {import('unist-util-visit').BuildVisitor} Visitor\n * @typedef {import('unified').PluggableList} PluggableList\n */\n\n/**\n * @callback AllowElement\n * Filter elements.\n * @param {Readonly} element\n * Element to check.\n * @param {number} index\n * Index of `element` in `parent`.\n * @param {Readonly | undefined} parent\n * Parent of `element`.\n * @returns {boolean | null | undefined}\n * Whether to allow `element` (default: `false`).\n *\n * @typedef {Partial} Components\n * Map tag names to components.\n *\n * @typedef Deprecation\n * Deprecation.\n * @property {string} from\n * Old field.\n * @property {string} id\n * ID in readme.\n * @property {keyof Options} [to]\n * New field.\n *\n * @typedef Options\n * Configuration.\n * @property {AllowElement | null | undefined} [allowElement]\n * Filter elements (optional);\n * `allowedElements` / `disallowedElements` is used first.\n * @property {ReadonlyArray | null | undefined} [allowedElements]\n * Tag names to allow (default: all tag names);\n * cannot combine w/ `disallowedElements`.\n * @property {string | null | undefined} [children]\n * Markdown.\n * @property {string | null | undefined} [className]\n * Wrap in a `div` with this class name.\n * @property {Components | null | undefined} [components]\n * Map tag names to components.\n * @property {ReadonlyArray | null | undefined} [disallowedElements]\n * Tag names to disallow (default: `[]`);\n * cannot combine w/ `allowedElements`.\n * @property {PluggableList | null | undefined} [rehypePlugins]\n * List of rehype plugins to use.\n * @property {PluggableList | null | undefined} [remarkPlugins]\n * List of remark plugins to use.\n * @property {Readonly | null | undefined} [remarkRehypeOptions]\n * Options to pass through to `remark-rehype`.\n * @property {boolean | null | undefined} [skipHtml=false]\n * Ignore HTML in markdown completely (default: `false`).\n * @property {boolean | null | undefined} [unwrapDisallowed=false]\n * Extract (unwrap) what’s in disallowed elements (default: `false`);\n * normally when say `strong` is not allowed, it and it’s children are dropped,\n * with `unwrapDisallowed` the element itself is replaced by its children.\n * @property {UrlTransform | null | undefined} [urlTransform]\n * Change URLs (default: `defaultUrlTransform`)\n *\n * @callback UrlTransform\n * Transform all URLs.\n * @param {string} url\n * URL.\n * @param {string} key\n * Property name (example: `'href'`).\n * @param {Readonly} node\n * Node.\n * @returns {string | null | undefined}\n * Transformed URL (optional).\n */\n\nimport {unreachable} from 'devlop'\nimport {toJsxRuntime} from 'hast-util-to-jsx-runtime'\nimport {urlAttributes} from 'html-url-attributes'\n// @ts-expect-error: untyped.\nimport {Fragment, jsx, jsxs} from 'react/jsx-runtime'\nimport remarkParse from 'remark-parse'\nimport remarkRehype from 'remark-rehype'\nimport {unified} from 'unified'\nimport {visit} from 'unist-util-visit'\nimport {VFile} from 'vfile'\n\nconst changelog =\n 'https://github.com/remarkjs/react-markdown/blob/main/changelog.md'\n\n/** @type {PluggableList} */\nconst emptyPlugins = []\n/** @type {Readonly} */\nconst emptyRemarkRehypeOptions = {allowDangerousHtml: true}\nconst safeProtocol = /^(https?|ircs?|mailto|xmpp)$/i\n\n// Mutable because we `delete` any time it’s used and a message is sent.\n/** @type {ReadonlyArray>} */\nconst deprecations = [\n {from: 'astPlugins', id: 'remove-buggy-html-in-markdown-parser'},\n {from: 'allowDangerousHtml', id: 'remove-buggy-html-in-markdown-parser'},\n {\n from: 'allowNode',\n id: 'replace-allownode-allowedtypes-and-disallowedtypes',\n to: 'allowElement'\n },\n {\n from: 'allowedTypes',\n id: 'replace-allownode-allowedtypes-and-disallowedtypes',\n to: 'allowedElements'\n },\n {\n from: 'disallowedTypes',\n id: 'replace-allownode-allowedtypes-and-disallowedtypes',\n to: 'disallowedElements'\n },\n {from: 'escapeHtml', id: 'remove-buggy-html-in-markdown-parser'},\n {from: 'includeElementIndex', id: '#remove-includeelementindex'},\n {\n from: 'includeNodeIndex',\n id: 'change-includenodeindex-to-includeelementindex'\n },\n {from: 'linkTarget', id: 'remove-linktarget'},\n {from: 'plugins', id: 'change-plugins-to-remarkplugins', to: 'remarkPlugins'},\n {from: 'rawSourcePos', id: '#remove-rawsourcepos'},\n {from: 'renderers', id: 'change-renderers-to-components', to: 'components'},\n {from: 'source', id: 'change-source-to-children', to: 'children'},\n {from: 'sourcePos', id: '#remove-sourcepos'},\n {from: 'transformImageUri', id: '#add-urltransform', to: 'urlTransform'},\n {from: 'transformLinkUri', id: '#add-urltransform', to: 'urlTransform'}\n]\n\n/**\n * Component to render markdown.\n *\n * @param {Readonly} options\n * Props.\n * @returns {JSX.Element}\n * React element.\n */\nexport function Markdown(options) {\n const allowedElements = options.allowedElements\n const allowElement = options.allowElement\n const children = options.children || ''\n const className = options.className\n const components = options.components\n const disallowedElements = options.disallowedElements\n const rehypePlugins = options.rehypePlugins || emptyPlugins\n const remarkPlugins = options.remarkPlugins || emptyPlugins\n const remarkRehypeOptions = options.remarkRehypeOptions\n ? {...options.remarkRehypeOptions, ...emptyRemarkRehypeOptions}\n : emptyRemarkRehypeOptions\n const skipHtml = options.skipHtml\n const unwrapDisallowed = options.unwrapDisallowed\n const urlTransform = options.urlTransform || defaultUrlTransform\n\n const processor = unified()\n .use(remarkParse)\n .use(remarkPlugins)\n .use(remarkRehype, remarkRehypeOptions)\n .use(rehypePlugins)\n\n const file = new VFile()\n\n if (typeof children === 'string') {\n file.value = children\n } else {\n unreachable(\n 'Unexpected value `' +\n children +\n '` for `children` prop, expected `string`'\n )\n }\n\n if (allowedElements && disallowedElements) {\n unreachable(\n 'Unexpected combined `allowedElements` and `disallowedElements`, expected one or the other'\n )\n }\n\n for (const deprecation of deprecations) {\n if (Object.hasOwn(options, deprecation.from)) {\n unreachable(\n 'Unexpected `' +\n deprecation.from +\n '` prop, ' +\n (deprecation.to\n ? 'use `' + deprecation.to + '` instead'\n : 'remove it') +\n ' (see <' +\n changelog +\n '#' +\n deprecation.id +\n '> for more info)'\n )\n }\n }\n\n const mdastTree = processor.parse(file)\n /** @type {Nodes} */\n let hastTree = processor.runSync(mdastTree, file)\n\n // Wrap in `div` if there’s a class name.\n if (className) {\n hastTree = {\n type: 'element',\n tagName: 'div',\n properties: {className},\n // Assume no doctypes.\n children: /** @type {Array} */ (\n hastTree.type === 'root' ? hastTree.children : [hastTree]\n )\n }\n }\n\n visit(hastTree, transform)\n\n return toJsxRuntime(hastTree, {\n Fragment,\n components,\n ignoreInvalidStyle: true,\n jsx,\n jsxs,\n passKeys: true,\n passNode: true\n })\n\n /** @type {Visitor} */\n function transform(node, index, parent) {\n if (node.type === 'raw' && parent && typeof index === 'number') {\n if (skipHtml) {\n parent.children.splice(index, 1)\n } else {\n parent.children[index] = {type: 'text', value: node.value}\n }\n\n return index\n }\n\n if (node.type === 'element') {\n /** @type {string} */\n let key\n\n for (key in urlAttributes) {\n if (\n Object.hasOwn(urlAttributes, key) &&\n Object.hasOwn(node.properties, key)\n ) {\n const value = node.properties[key]\n const test = urlAttributes[key]\n if (test === null || test.includes(node.tagName)) {\n node.properties[key] = urlTransform(String(value || ''), key, node)\n }\n }\n }\n }\n\n if (node.type === 'element') {\n let remove = allowedElements\n ? !allowedElements.includes(node.tagName)\n : disallowedElements\n ? disallowedElements.includes(node.tagName)\n : false\n\n if (!remove && allowElement && typeof index === 'number') {\n remove = !allowElement(node, index, parent)\n }\n\n if (remove && parent && typeof index === 'number') {\n if (unwrapDisallowed && node.children) {\n parent.children.splice(index, 1, ...node.children)\n } else {\n parent.children.splice(index, 1)\n }\n\n return index\n }\n }\n }\n}\n\n/**\n * Make a URL safe.\n *\n * @satisfies {UrlTransform}\n * @param {string} value\n * URL.\n * @returns {string}\n * Safe URL.\n */\nexport function defaultUrlTransform(value) {\n // Same as:\n // \n // But without the `encode` part.\n const colon = value.indexOf(':')\n const questionMark = value.indexOf('?')\n const numberSign = value.indexOf('#')\n const slash = value.indexOf('/')\n\n if (\n // If there is no protocol, it’s relative.\n colon < 0 ||\n // If the first colon is after a `?`, `#`, or `/`, it’s not a protocol.\n (slash > -1 && colon > slash) ||\n (questionMark > -1 && colon > questionMark) ||\n (numberSign > -1 && colon > numberSign) ||\n // It is a protocol, it should be allowed.\n safeProtocol.test(value.slice(0, colon))\n ) {\n return value\n }\n\n return ''\n}\n","/**\n * Count how often a character (or substring) is used in a string.\n *\n * @param {string} value\n * Value to search in.\n * @param {string} character\n * Character (or substring) to look for.\n * @return {number}\n * Number of times `character` occurred in `value`.\n */\nexport function ccount(value, character) {\n const source = String(value)\n\n if (typeof character !== 'string') {\n throw new TypeError('Expected character')\n }\n\n let count = 0\n let index = source.indexOf(character)\n\n while (index !== -1) {\n count++\n index = source.indexOf(character, index + character.length)\n }\n\n return count\n}\n","export default function escapeStringRegexp(string) {\n\tif (typeof string !== 'string') {\n\t\tthrow new TypeError('Expected a string');\n\t}\n\n\t// Escape characters with special meaning either inside or outside character sets.\n\t// Use a simple backslash escape when it’s always valid, and a `\\xnn` escape when the simpler form would be disallowed by Unicode patterns’ stricter grammar.\n\treturn string\n\t\t.replace(/[|\\\\{}()[\\]^$+*?.]/g, '\\\\$&')\n\t\t.replace(/-/g, '\\\\x2d');\n}\n","/**\n * @typedef {import('mdast').Nodes} Nodes\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('mdast').PhrasingContent} PhrasingContent\n * @typedef {import('mdast').Root} Root\n * @typedef {import('mdast').Text} Text\n * @typedef {import('unist-util-visit-parents').Test} Test\n * @typedef {import('unist-util-visit-parents').VisitorResult} VisitorResult\n */\n\n/**\n * @typedef RegExpMatchObject\n * Info on the match.\n * @property {number} index\n * The index of the search at which the result was found.\n * @property {string} input\n * A copy of the search string in the text node.\n * @property {[...Array, Text]} stack\n * All ancestors of the text node, where the last node is the text itself.\n *\n * @typedef {RegExp | string} Find\n * Pattern to find.\n *\n * Strings are escaped and then turned into global expressions.\n *\n * @typedef {Array} FindAndReplaceList\n * Several find and replaces, in array form.\n *\n * @typedef {[Find, Replace?]} FindAndReplaceTuple\n * Find and replace in tuple form.\n *\n * @typedef {ReplaceFunction | string | null | undefined} Replace\n * Thing to replace with.\n *\n * @callback ReplaceFunction\n * Callback called when a search matches.\n * @param {...any} parameters\n * The parameters are the result of corresponding search expression:\n *\n * * `value` (`string`) — whole match\n * * `...capture` (`Array`) — matches from regex capture groups\n * * `match` (`RegExpMatchObject`) — info on the match\n * @returns {Array | PhrasingContent | string | false | null | undefined}\n * Thing to replace with.\n *\n * * when `null`, `undefined`, `''`, remove the match\n * * …or when `false`, do not replace at all\n * * …or when `string`, replace with a text node of that value\n * * …or when `Node` or `Array`, replace with those nodes\n *\n * @typedef {[RegExp, ReplaceFunction]} Pair\n * Normalized find and replace.\n *\n * @typedef {Array} Pairs\n * All find and replaced.\n *\n * @typedef Options\n * Configuration.\n * @property {Test | null | undefined} [ignore]\n * Test for which nodes to ignore (optional).\n */\n\nimport escape from 'escape-string-regexp'\nimport {visitParents} from 'unist-util-visit-parents'\nimport {convert} from 'unist-util-is'\n\n/**\n * Find patterns in a tree and replace them.\n *\n * The algorithm searches the tree in *preorder* for complete values in `Text`\n * nodes.\n * Partial matches are not supported.\n *\n * @param {Nodes} tree\n * Tree to change.\n * @param {FindAndReplaceList | FindAndReplaceTuple} list\n * Patterns to find.\n * @param {Options | null | undefined} [options]\n * Configuration (when `find` is not `Find`).\n * @returns {undefined}\n * Nothing.\n */\nexport function findAndReplace(tree, list, options) {\n const settings = options || {}\n const ignored = convert(settings.ignore || [])\n const pairs = toPairs(list)\n let pairIndex = -1\n\n while (++pairIndex < pairs.length) {\n visitParents(tree, 'text', visitor)\n }\n\n /** @type {import('unist-util-visit-parents').BuildVisitor} */\n function visitor(node, parents) {\n let index = -1\n /** @type {Parents | undefined} */\n let grandparent\n\n while (++index < parents.length) {\n const parent = parents[index]\n /** @type {Array | undefined} */\n const siblings = grandparent ? grandparent.children : undefined\n\n if (\n ignored(\n parent,\n siblings ? siblings.indexOf(parent) : undefined,\n grandparent\n )\n ) {\n return\n }\n\n grandparent = parent\n }\n\n if (grandparent) {\n return handler(node, parents)\n }\n }\n\n /**\n * Handle a text node which is not in an ignored parent.\n *\n * @param {Text} node\n * Text node.\n * @param {Array} parents\n * Parents.\n * @returns {VisitorResult}\n * Result.\n */\n function handler(node, parents) {\n const parent = parents[parents.length - 1]\n const find = pairs[pairIndex][0]\n const replace = pairs[pairIndex][1]\n let start = 0\n /** @type {Array} */\n const siblings = parent.children\n const index = siblings.indexOf(node)\n let change = false\n /** @type {Array} */\n let nodes = []\n\n find.lastIndex = 0\n\n let match = find.exec(node.value)\n\n while (match) {\n const position = match.index\n /** @type {RegExpMatchObject} */\n const matchObject = {\n index: match.index,\n input: match.input,\n stack: [...parents, node]\n }\n let value = replace(...match, matchObject)\n\n if (typeof value === 'string') {\n value = value.length > 0 ? {type: 'text', value} : undefined\n }\n\n // It wasn’t a match after all.\n if (value === false) {\n // False acts as if there was no match.\n // So we need to reset `lastIndex`, which currently being at the end of\n // the current match, to the beginning.\n find.lastIndex = position + 1\n } else {\n if (start !== position) {\n nodes.push({\n type: 'text',\n value: node.value.slice(start, position)\n })\n }\n\n if (Array.isArray(value)) {\n nodes.push(...value)\n } else if (value) {\n nodes.push(value)\n }\n\n start = position + match[0].length\n change = true\n }\n\n if (!find.global) {\n break\n }\n\n match = find.exec(node.value)\n }\n\n if (change) {\n if (start < node.value.length) {\n nodes.push({type: 'text', value: node.value.slice(start)})\n }\n\n parent.children.splice(index, 1, ...nodes)\n } else {\n nodes = [node]\n }\n\n return index + nodes.length\n }\n}\n\n/**\n * Turn a tuple or a list of tuples into pairs.\n *\n * @param {FindAndReplaceList | FindAndReplaceTuple} tupleOrList\n * Schema.\n * @returns {Pairs}\n * Clean pairs.\n */\nfunction toPairs(tupleOrList) {\n /** @type {Pairs} */\n const result = []\n\n if (!Array.isArray(tupleOrList)) {\n throw new TypeError('Expected find and replace tuple or list of tuples')\n }\n\n /** @type {FindAndReplaceList} */\n // @ts-expect-error: correct.\n const list =\n !tupleOrList[0] || Array.isArray(tupleOrList[0])\n ? tupleOrList\n : [tupleOrList]\n\n let index = -1\n\n while (++index < list.length) {\n const tuple = list[index]\n result.push([toExpression(tuple[0]), toFunction(tuple[1])])\n }\n\n return result\n}\n\n/**\n * Turn a find into an expression.\n *\n * @param {Find} find\n * Find.\n * @returns {RegExp}\n * Expression.\n */\nfunction toExpression(find) {\n return typeof find === 'string' ? new RegExp(escape(find), 'g') : find\n}\n\n/**\n * Turn a replace into a function.\n *\n * @param {Replace} replace\n * Replace.\n * @returns {ReplaceFunction}\n * Function.\n */\nfunction toFunction(replace) {\n return typeof replace === 'function'\n ? replace\n : function () {\n return replace\n }\n}\n","/**\n * @import {RegExpMatchObject, ReplaceFunction} from 'mdast-util-find-and-replace'\n * @import {CompileContext, Extension as FromMarkdownExtension, Handle as FromMarkdownHandle, Transform as FromMarkdownTransform} from 'mdast-util-from-markdown'\n * @import {ConstructName, Options as ToMarkdownExtension} from 'mdast-util-to-markdown'\n * @import {Link, PhrasingContent} from 'mdast'\n */\n\nimport {ccount} from 'ccount'\nimport {ok as assert} from 'devlop'\nimport {unicodePunctuation, unicodeWhitespace} from 'micromark-util-character'\nimport {findAndReplace} from 'mdast-util-find-and-replace'\n\n/** @type {ConstructName} */\nconst inConstruct = 'phrasing'\n/** @type {Array} */\nconst notInConstruct = ['autolink', 'link', 'image', 'label']\n\n/**\n * Create an extension for `mdast-util-from-markdown` to enable GFM autolink\n * literals in markdown.\n *\n * @returns {FromMarkdownExtension}\n * Extension for `mdast-util-to-markdown` to enable GFM autolink literals.\n */\nexport function gfmAutolinkLiteralFromMarkdown() {\n return {\n transforms: [transformGfmAutolinkLiterals],\n enter: {\n literalAutolink: enterLiteralAutolink,\n literalAutolinkEmail: enterLiteralAutolinkValue,\n literalAutolinkHttp: enterLiteralAutolinkValue,\n literalAutolinkWww: enterLiteralAutolinkValue\n },\n exit: {\n literalAutolink: exitLiteralAutolink,\n literalAutolinkEmail: exitLiteralAutolinkEmail,\n literalAutolinkHttp: exitLiteralAutolinkHttp,\n literalAutolinkWww: exitLiteralAutolinkWww\n }\n }\n}\n\n/**\n * Create an extension for `mdast-util-to-markdown` to enable GFM autolink\n * literals in markdown.\n *\n * @returns {ToMarkdownExtension}\n * Extension for `mdast-util-to-markdown` to enable GFM autolink literals.\n */\nexport function gfmAutolinkLiteralToMarkdown() {\n return {\n unsafe: [\n {\n character: '@',\n before: '[+\\\\-.\\\\w]',\n after: '[\\\\-.\\\\w]',\n inConstruct,\n notInConstruct\n },\n {\n character: '.',\n before: '[Ww]',\n after: '[\\\\-.\\\\w]',\n inConstruct,\n notInConstruct\n },\n {\n character: ':',\n before: '[ps]',\n after: '\\\\/',\n inConstruct,\n notInConstruct\n }\n ]\n }\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction enterLiteralAutolink(token) {\n this.enter({type: 'link', title: null, url: '', children: []}, token)\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction enterLiteralAutolinkValue(token) {\n this.config.enter.autolinkProtocol.call(this, token)\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction exitLiteralAutolinkHttp(token) {\n this.config.exit.autolinkProtocol.call(this, token)\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction exitLiteralAutolinkWww(token) {\n this.config.exit.data.call(this, token)\n const node = this.stack[this.stack.length - 1]\n assert(node.type === 'link')\n node.url = 'http://' + this.sliceSerialize(token)\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction exitLiteralAutolinkEmail(token) {\n this.config.exit.autolinkEmail.call(this, token)\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction exitLiteralAutolink(token) {\n this.exit(token)\n}\n\n/** @type {FromMarkdownTransform} */\nfunction transformGfmAutolinkLiterals(tree) {\n findAndReplace(\n tree,\n [\n [/(https?:\\/\\/|www(?=\\.))([-.\\w]+)([^ \\t\\r\\n]*)/gi, findUrl],\n [/(?<=^|\\s|\\p{P}|\\p{S})([-.\\w+]+)@([-\\w]+(?:\\.[-\\w]+)+)/gu, findEmail]\n ],\n {ignore: ['link', 'linkReference']}\n )\n}\n\n/**\n * @type {ReplaceFunction}\n * @param {string} _\n * @param {string} protocol\n * @param {string} domain\n * @param {string} path\n * @param {RegExpMatchObject} match\n * @returns {Array | Link | false}\n */\n// eslint-disable-next-line max-params\nfunction findUrl(_, protocol, domain, path, match) {\n let prefix = ''\n\n // Not an expected previous character.\n if (!previous(match)) {\n return false\n }\n\n // Treat `www` as part of the domain.\n if (/^w/i.test(protocol)) {\n domain = protocol + domain\n protocol = ''\n prefix = 'http://'\n }\n\n if (!isCorrectDomain(domain)) {\n return false\n }\n\n const parts = splitUrl(domain + path)\n\n if (!parts[0]) return false\n\n /** @type {Link} */\n const result = {\n type: 'link',\n title: null,\n url: prefix + protocol + parts[0],\n children: [{type: 'text', value: protocol + parts[0]}]\n }\n\n if (parts[1]) {\n return [result, {type: 'text', value: parts[1]}]\n }\n\n return result\n}\n\n/**\n * @type {ReplaceFunction}\n * @param {string} _\n * @param {string} atext\n * @param {string} label\n * @param {RegExpMatchObject} match\n * @returns {Link | false}\n */\nfunction findEmail(_, atext, label, match) {\n if (\n // Not an expected previous character.\n !previous(match, true) ||\n // Label ends in not allowed character.\n /[-\\d_]$/.test(label)\n ) {\n return false\n }\n\n return {\n type: 'link',\n title: null,\n url: 'mailto:' + atext + '@' + label,\n children: [{type: 'text', value: atext + '@' + label}]\n }\n}\n\n/**\n * @param {string} domain\n * @returns {boolean}\n */\nfunction isCorrectDomain(domain) {\n const parts = domain.split('.')\n\n if (\n parts.length < 2 ||\n (parts[parts.length - 1] &&\n (/_/.test(parts[parts.length - 1]) ||\n !/[a-zA-Z\\d]/.test(parts[parts.length - 1]))) ||\n (parts[parts.length - 2] &&\n (/_/.test(parts[parts.length - 2]) ||\n !/[a-zA-Z\\d]/.test(parts[parts.length - 2])))\n ) {\n return false\n }\n\n return true\n}\n\n/**\n * @param {string} url\n * @returns {[string, string | undefined]}\n */\nfunction splitUrl(url) {\n const trailExec = /[!\"&'),.:;<>?\\]}]+$/.exec(url)\n\n if (!trailExec) {\n return [url, undefined]\n }\n\n url = url.slice(0, trailExec.index)\n\n let trail = trailExec[0]\n let closingParenIndex = trail.indexOf(')')\n const openingParens = ccount(url, '(')\n let closingParens = ccount(url, ')')\n\n while (closingParenIndex !== -1 && openingParens > closingParens) {\n url += trail.slice(0, closingParenIndex + 1)\n trail = trail.slice(closingParenIndex + 1)\n closingParenIndex = trail.indexOf(')')\n closingParens++\n }\n\n return [url, trail]\n}\n\n/**\n * @param {RegExpMatchObject} match\n * @param {boolean | null | undefined} [email=false]\n * @returns {boolean}\n */\nfunction previous(match, email) {\n const code = match.input.charCodeAt(match.index - 1)\n\n return (\n (match.index === 0 ||\n unicodeWhitespace(code) ||\n unicodePunctuation(code)) &&\n // If it’s an email, the previous character should not be a slash.\n (!email || code !== 47)\n )\n}\n","/**\n * @typedef {import('mdast').FootnoteDefinition} FootnoteDefinition\n * @typedef {import('mdast').FootnoteReference} FootnoteReference\n * @typedef {import('mdast-util-from-markdown').CompileContext} CompileContext\n * @typedef {import('mdast-util-from-markdown').Extension} FromMarkdownExtension\n * @typedef {import('mdast-util-from-markdown').Handle} FromMarkdownHandle\n * @typedef {import('mdast-util-to-markdown').Handle} ToMarkdownHandle\n * @typedef {import('mdast-util-to-markdown').Map} Map\n * @typedef {import('mdast-util-to-markdown').Options} ToMarkdownExtension\n */\n\nimport {ok as assert} from 'devlop'\nimport {normalizeIdentifier} from 'micromark-util-normalize-identifier'\n\nfootnoteReference.peek = footnoteReferencePeek\n\n/**\n * Create an extension for `mdast-util-from-markdown` to enable GFM footnotes\n * in markdown.\n *\n * @returns {FromMarkdownExtension}\n * Extension for `mdast-util-from-markdown`.\n */\nexport function gfmFootnoteFromMarkdown() {\n return {\n enter: {\n gfmFootnoteDefinition: enterFootnoteDefinition,\n gfmFootnoteDefinitionLabelString: enterFootnoteDefinitionLabelString,\n gfmFootnoteCall: enterFootnoteCall,\n gfmFootnoteCallString: enterFootnoteCallString\n },\n exit: {\n gfmFootnoteDefinition: exitFootnoteDefinition,\n gfmFootnoteDefinitionLabelString: exitFootnoteDefinitionLabelString,\n gfmFootnoteCall: exitFootnoteCall,\n gfmFootnoteCallString: exitFootnoteCallString\n }\n }\n}\n\n/**\n * Create an extension for `mdast-util-to-markdown` to enable GFM footnotes\n * in markdown.\n *\n * @returns {ToMarkdownExtension}\n * Extension for `mdast-util-to-markdown`.\n */\nexport function gfmFootnoteToMarkdown() {\n return {\n // This is on by default already.\n unsafe: [{character: '[', inConstruct: ['phrasing', 'label', 'reference']}],\n handlers: {footnoteDefinition, footnoteReference}\n }\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction enterFootnoteDefinition(token) {\n this.enter(\n {type: 'footnoteDefinition', identifier: '', label: '', children: []},\n token\n )\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction enterFootnoteDefinitionLabelString() {\n this.buffer()\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction exitFootnoteDefinitionLabelString(token) {\n const label = this.resume()\n const node = this.stack[this.stack.length - 1]\n assert(node.type === 'footnoteDefinition')\n node.label = label\n node.identifier = normalizeIdentifier(\n this.sliceSerialize(token)\n ).toLowerCase()\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction exitFootnoteDefinition(token) {\n this.exit(token)\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction enterFootnoteCall(token) {\n this.enter({type: 'footnoteReference', identifier: '', label: ''}, token)\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction enterFootnoteCallString() {\n this.buffer()\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction exitFootnoteCallString(token) {\n const label = this.resume()\n const node = this.stack[this.stack.length - 1]\n assert(node.type === 'footnoteReference')\n node.label = label\n node.identifier = normalizeIdentifier(\n this.sliceSerialize(token)\n ).toLowerCase()\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction exitFootnoteCall(token) {\n this.exit(token)\n}\n\n/**\n * @type {ToMarkdownHandle}\n * @param {FootnoteReference} node\n */\nfunction footnoteReference(node, _, state, info) {\n const tracker = state.createTracker(info)\n let value = tracker.move('[^')\n const exit = state.enter('footnoteReference')\n const subexit = state.enter('reference')\n value += tracker.move(\n state.safe(state.associationId(node), {\n ...tracker.current(),\n before: value,\n after: ']'\n })\n )\n subexit()\n exit()\n value += tracker.move(']')\n return value\n}\n\n/** @type {ToMarkdownHandle} */\nfunction footnoteReferencePeek() {\n return '['\n}\n\n/**\n * @type {ToMarkdownHandle}\n * @param {FootnoteDefinition} node\n */\nfunction footnoteDefinition(node, _, state, info) {\n const tracker = state.createTracker(info)\n let value = tracker.move('[^')\n const exit = state.enter('footnoteDefinition')\n const subexit = state.enter('label')\n value += tracker.move(\n state.safe(state.associationId(node), {\n ...tracker.current(),\n before: value,\n after: ']'\n })\n )\n subexit()\n value += tracker.move(\n ']:' + (node.children && node.children.length > 0 ? ' ' : '')\n )\n tracker.shift(4)\n value += tracker.move(\n state.indentLines(state.containerFlow(node, tracker.current()), map)\n )\n exit()\n\n return value\n}\n\n/** @type {Map} */\nfunction map(line, index, blank) {\n if (index === 0) {\n return line\n }\n\n return (blank ? '' : ' ') + line\n}\n","/**\n * @typedef {import('mdast').Delete} Delete\n *\n * @typedef {import('mdast-util-from-markdown').CompileContext} CompileContext\n * @typedef {import('mdast-util-from-markdown').Extension} FromMarkdownExtension\n * @typedef {import('mdast-util-from-markdown').Handle} FromMarkdownHandle\n *\n * @typedef {import('mdast-util-to-markdown').ConstructName} ConstructName\n * @typedef {import('mdast-util-to-markdown').Handle} ToMarkdownHandle\n * @typedef {import('mdast-util-to-markdown').Options} ToMarkdownExtension\n */\n\n/**\n * List of constructs that occur in phrasing (paragraphs, headings), but cannot\n * contain strikethrough.\n * So they sort of cancel each other out.\n * Note: could use a better name.\n *\n * Note: keep in sync with: \n *\n * @type {Array}\n */\nconst constructsWithoutStrikethrough = [\n 'autolink',\n 'destinationLiteral',\n 'destinationRaw',\n 'reference',\n 'titleQuote',\n 'titleApostrophe'\n]\n\nhandleDelete.peek = peekDelete\n\n/**\n * Create an extension for `mdast-util-from-markdown` to enable GFM\n * strikethrough in markdown.\n *\n * @returns {FromMarkdownExtension}\n * Extension for `mdast-util-from-markdown` to enable GFM strikethrough.\n */\nexport function gfmStrikethroughFromMarkdown() {\n return {\n canContainEols: ['delete'],\n enter: {strikethrough: enterStrikethrough},\n exit: {strikethrough: exitStrikethrough}\n }\n}\n\n/**\n * Create an extension for `mdast-util-to-markdown` to enable GFM\n * strikethrough in markdown.\n *\n * @returns {ToMarkdownExtension}\n * Extension for `mdast-util-to-markdown` to enable GFM strikethrough.\n */\nexport function gfmStrikethroughToMarkdown() {\n return {\n unsafe: [\n {\n character: '~',\n inConstruct: 'phrasing',\n notInConstruct: constructsWithoutStrikethrough\n }\n ],\n handlers: {delete: handleDelete}\n }\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction enterStrikethrough(token) {\n this.enter({type: 'delete', children: []}, token)\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction exitStrikethrough(token) {\n this.exit(token)\n}\n\n/**\n * @type {ToMarkdownHandle}\n * @param {Delete} node\n */\nfunction handleDelete(node, _, state, info) {\n const tracker = state.createTracker(info)\n const exit = state.enter('strikethrough')\n let value = tracker.move('~~')\n value += state.containerPhrasing(node, {\n ...tracker.current(),\n before: value,\n after: '~'\n })\n value += tracker.move('~~')\n exit()\n return value\n}\n\n/** @type {ToMarkdownHandle} */\nfunction peekDelete() {\n return '~'\n}\n","/**\n * @typedef Options\n * Configuration (optional).\n * @property {string|null|ReadonlyArray} [align]\n * One style for all columns, or styles for their respective columns.\n * Each style is either `'l'` (left), `'r'` (right), or `'c'` (center).\n * Other values are treated as `''`, which doesn’t place the colon in the\n * alignment row but does align left.\n * *Only the lowercased first character is used, so `Right` is fine.*\n * @property {boolean} [padding=true]\n * Whether to add a space of padding between delimiters and cells.\n *\n * When `true`, there is padding:\n *\n * ```markdown\n * | Alpha | B |\n * | ----- | ----- |\n * | C | Delta |\n * ```\n *\n * When `false`, there is no padding:\n *\n * ```markdown\n * |Alpha|B |\n * |-----|-----|\n * |C |Delta|\n * ```\n * @property {boolean} [delimiterStart=true]\n * Whether to begin each row with the delimiter.\n *\n * > 👉 **Note**: please don’t use this: it could create fragile structures\n * > that aren’t understandable to some markdown parsers.\n *\n * When `true`, there are starting delimiters:\n *\n * ```markdown\n * | Alpha | B |\n * | ----- | ----- |\n * | C | Delta |\n * ```\n *\n * When `false`, there are no starting delimiters:\n *\n * ```markdown\n * Alpha | B |\n * ----- | ----- |\n * C | Delta |\n * ```\n * @property {boolean} [delimiterEnd=true]\n * Whether to end each row with the delimiter.\n *\n * > 👉 **Note**: please don’t use this: it could create fragile structures\n * > that aren’t understandable to some markdown parsers.\n *\n * When `true`, there are ending delimiters:\n *\n * ```markdown\n * | Alpha | B |\n * | ----- | ----- |\n * | C | Delta |\n * ```\n *\n * When `false`, there are no ending delimiters:\n *\n * ```markdown\n * | Alpha | B\n * | ----- | -----\n * | C | Delta\n * ```\n * @property {boolean} [alignDelimiters=true]\n * Whether to align the delimiters.\n * By default, they are aligned:\n *\n * ```markdown\n * | Alpha | B |\n * | ----- | ----- |\n * | C | Delta |\n * ```\n *\n * Pass `false` to make them staggered:\n *\n * ```markdown\n * | Alpha | B |\n * | - | - |\n * | C | Delta |\n * ```\n * @property {(value: string) => number} [stringLength]\n * Function to detect the length of table cell content.\n * This is used when aligning the delimiters (`|`) between table cells.\n * Full-width characters and emoji mess up delimiter alignment when viewing\n * the markdown source.\n * To fix this, you can pass this function, which receives the cell content\n * and returns its “visible” size.\n * Note that what is and isn’t visible depends on where the text is displayed.\n *\n * Without such a function, the following:\n *\n * ```js\n * markdownTable([\n * ['Alpha', 'Bravo'],\n * ['中文', 'Charlie'],\n * ['👩‍❤️‍👩', 'Delta']\n * ])\n * ```\n *\n * Yields:\n *\n * ```markdown\n * | Alpha | Bravo |\n * | - | - |\n * | 中文 | Charlie |\n * | 👩‍❤️‍👩 | Delta |\n * ```\n *\n * With [`string-width`](https://github.com/sindresorhus/string-width):\n *\n * ```js\n * import stringWidth from 'string-width'\n *\n * markdownTable(\n * [\n * ['Alpha', 'Bravo'],\n * ['中文', 'Charlie'],\n * ['👩‍❤️‍👩', 'Delta']\n * ],\n * {stringLength: stringWidth}\n * )\n * ```\n *\n * Yields:\n *\n * ```markdown\n * | Alpha | Bravo |\n * | ----- | ------- |\n * | 中文 | Charlie |\n * | 👩‍❤️‍👩 | Delta |\n * ```\n */\n\n/**\n * @typedef {Options} MarkdownTableOptions\n * @todo\n * Remove next major.\n */\n\n/**\n * Generate a markdown ([GFM](https://docs.github.com/en/github/writing-on-github/working-with-advanced-formatting/organizing-information-with-tables)) table..\n *\n * @param {ReadonlyArray>} table\n * Table data (matrix of strings).\n * @param {Options} [options]\n * Configuration (optional).\n * @returns {string}\n */\nexport function markdownTable(table, options = {}) {\n const align = (options.align || []).concat()\n const stringLength = options.stringLength || defaultStringLength\n /** @type {Array} Character codes as symbols for alignment per column. */\n const alignments = []\n /** @type {Array>} Cells per row. */\n const cellMatrix = []\n /** @type {Array>} Sizes of each cell per row. */\n const sizeMatrix = []\n /** @type {Array} */\n const longestCellByColumn = []\n let mostCellsPerRow = 0\n let rowIndex = -1\n\n // This is a superfluous loop if we don’t align delimiters, but otherwise we’d\n // do superfluous work when aligning, so optimize for aligning.\n while (++rowIndex < table.length) {\n /** @type {Array} */\n const row = []\n /** @type {Array} */\n const sizes = []\n let columnIndex = -1\n\n if (table[rowIndex].length > mostCellsPerRow) {\n mostCellsPerRow = table[rowIndex].length\n }\n\n while (++columnIndex < table[rowIndex].length) {\n const cell = serialize(table[rowIndex][columnIndex])\n\n if (options.alignDelimiters !== false) {\n const size = stringLength(cell)\n sizes[columnIndex] = size\n\n if (\n longestCellByColumn[columnIndex] === undefined ||\n size > longestCellByColumn[columnIndex]\n ) {\n longestCellByColumn[columnIndex] = size\n }\n }\n\n row.push(cell)\n }\n\n cellMatrix[rowIndex] = row\n sizeMatrix[rowIndex] = sizes\n }\n\n // Figure out which alignments to use.\n let columnIndex = -1\n\n if (typeof align === 'object' && 'length' in align) {\n while (++columnIndex < mostCellsPerRow) {\n alignments[columnIndex] = toAlignment(align[columnIndex])\n }\n } else {\n const code = toAlignment(align)\n\n while (++columnIndex < mostCellsPerRow) {\n alignments[columnIndex] = code\n }\n }\n\n // Inject the alignment row.\n columnIndex = -1\n /** @type {Array} */\n const row = []\n /** @type {Array} */\n const sizes = []\n\n while (++columnIndex < mostCellsPerRow) {\n const code = alignments[columnIndex]\n let before = ''\n let after = ''\n\n if (code === 99 /* `c` */) {\n before = ':'\n after = ':'\n } else if (code === 108 /* `l` */) {\n before = ':'\n } else if (code === 114 /* `r` */) {\n after = ':'\n }\n\n // There *must* be at least one hyphen-minus in each alignment cell.\n let size =\n options.alignDelimiters === false\n ? 1\n : Math.max(\n 1,\n longestCellByColumn[columnIndex] - before.length - after.length\n )\n\n const cell = before + '-'.repeat(size) + after\n\n if (options.alignDelimiters !== false) {\n size = before.length + size + after.length\n\n if (size > longestCellByColumn[columnIndex]) {\n longestCellByColumn[columnIndex] = size\n }\n\n sizes[columnIndex] = size\n }\n\n row[columnIndex] = cell\n }\n\n // Inject the alignment row.\n cellMatrix.splice(1, 0, row)\n sizeMatrix.splice(1, 0, sizes)\n\n rowIndex = -1\n /** @type {Array} */\n const lines = []\n\n while (++rowIndex < cellMatrix.length) {\n const row = cellMatrix[rowIndex]\n const sizes = sizeMatrix[rowIndex]\n columnIndex = -1\n /** @type {Array} */\n const line = []\n\n while (++columnIndex < mostCellsPerRow) {\n const cell = row[columnIndex] || ''\n let before = ''\n let after = ''\n\n if (options.alignDelimiters !== false) {\n const size =\n longestCellByColumn[columnIndex] - (sizes[columnIndex] || 0)\n const code = alignments[columnIndex]\n\n if (code === 114 /* `r` */) {\n before = ' '.repeat(size)\n } else if (code === 99 /* `c` */) {\n if (size % 2) {\n before = ' '.repeat(size / 2 + 0.5)\n after = ' '.repeat(size / 2 - 0.5)\n } else {\n before = ' '.repeat(size / 2)\n after = before\n }\n } else {\n after = ' '.repeat(size)\n }\n }\n\n if (options.delimiterStart !== false && !columnIndex) {\n line.push('|')\n }\n\n if (\n options.padding !== false &&\n // Don’t add the opening space if we’re not aligning and the cell is\n // empty: there will be a closing space.\n !(options.alignDelimiters === false && cell === '') &&\n (options.delimiterStart !== false || columnIndex)\n ) {\n line.push(' ')\n }\n\n if (options.alignDelimiters !== false) {\n line.push(before)\n }\n\n line.push(cell)\n\n if (options.alignDelimiters !== false) {\n line.push(after)\n }\n\n if (options.padding !== false) {\n line.push(' ')\n }\n\n if (\n options.delimiterEnd !== false ||\n columnIndex !== mostCellsPerRow - 1\n ) {\n line.push('|')\n }\n }\n\n lines.push(\n options.delimiterEnd === false\n ? line.join('').replace(/ +$/, '')\n : line.join('')\n )\n }\n\n return lines.join('\\n')\n}\n\n/**\n * @param {string|null|undefined} [value]\n * @returns {string}\n */\nfunction serialize(value) {\n return value === null || value === undefined ? '' : String(value)\n}\n\n/**\n * @param {string} value\n * @returns {number}\n */\nfunction defaultStringLength(value) {\n return value.length\n}\n\n/**\n * @param {string|null|undefined} value\n * @returns {number}\n */\nfunction toAlignment(value) {\n const code = typeof value === 'string' ? value.codePointAt(0) : 0\n\n return code === 67 /* `C` */ || code === 99 /* `c` */\n ? 99 /* `c` */\n : code === 76 /* `L` */ || code === 108 /* `l` */\n ? 108 /* `l` */\n : code === 82 /* `R` */ || code === 114 /* `r` */\n ? 114 /* `r` */\n : 0\n}\n","/**\n * @typedef {import('mdast').Blockquote} Blockquote\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('../types.js').Info} Info\n * @typedef {import('../types.js').Map} Map\n * @typedef {import('../types.js').State} State\n */\n\n/**\n * @param {Blockquote} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function blockquote(node, _, state, info) {\n const exit = state.enter('blockquote')\n const tracker = state.createTracker(info)\n tracker.move('> ')\n tracker.shift(2)\n const value = state.indentLines(\n state.containerFlow(node, tracker.current()),\n map\n )\n exit()\n return value\n}\n\n/** @type {Map} */\nfunction map(line, _, blank) {\n return '>' + (blank ? '' : ' ') + line\n}\n","/**\n * @typedef {import('../types.js').ConstructName} ConstructName\n * @typedef {import('../types.js').Unsafe} Unsafe\n */\n\n/**\n * @param {Array} stack\n * @param {Unsafe} pattern\n * @returns {boolean}\n */\nexport function patternInScope(stack, pattern) {\n return (\n listInScope(stack, pattern.inConstruct, true) &&\n !listInScope(stack, pattern.notInConstruct, false)\n )\n}\n\n/**\n * @param {Array} stack\n * @param {Unsafe['inConstruct']} list\n * @param {boolean} none\n * @returns {boolean}\n */\nfunction listInScope(stack, list, none) {\n if (typeof list === 'string') {\n list = [list]\n }\n\n if (!list || list.length === 0) {\n return none\n }\n\n let index = -1\n\n while (++index < list.length) {\n if (stack.includes(list[index])) {\n return true\n }\n }\n\n return false\n}\n","/**\n * @typedef {import('mdast').Break} Break\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('../types.js').Info} Info\n * @typedef {import('../types.js').State} State\n */\n\nimport {patternInScope} from '../util/pattern-in-scope.js'\n\n/**\n * @param {Break} _\n * @param {Parents | undefined} _1\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function hardBreak(_, _1, state, info) {\n let index = -1\n\n while (++index < state.unsafe.length) {\n // If we can’t put eols in this construct (setext headings, tables), use a\n // space instead.\n if (\n state.unsafe[index].character === '\\n' &&\n patternInScope(state.stack, state.unsafe[index])\n ) {\n return /[ \\t]/.test(info.before) ? '' : ' '\n }\n }\n\n return '\\\\\\n'\n}\n","/**\n * Get the count of the longest repeating streak of `substring` in `value`.\n *\n * @param {string} value\n * Content to search in.\n * @param {string} substring\n * Substring to look for, typically one character.\n * @returns {number}\n * Count of most frequent adjacent `substring`s in `value`.\n */\nexport function longestStreak(value, substring) {\n const source = String(value)\n let index = source.indexOf(substring)\n let expected = index\n let count = 0\n let max = 0\n\n if (typeof substring !== 'string') {\n throw new TypeError('Expected substring')\n }\n\n while (index !== -1) {\n if (index === expected) {\n if (++count > max) {\n max = count\n }\n } else {\n count = 1\n }\n\n expected = index + substring.length\n index = source.indexOf(substring, expected)\n }\n\n return max\n}\n","/**\n * @typedef {import('mdast').Code} Code\n * @typedef {import('../types.js').State} State\n */\n\n/**\n * @param {Code} node\n * @param {State} state\n * @returns {boolean}\n */\nexport function formatCodeAsIndented(node, state) {\n return Boolean(\n state.options.fences === false &&\n node.value &&\n // If there’s no info…\n !node.lang &&\n // And there’s a non-whitespace character…\n /[^ \\r\\n]/.test(node.value) &&\n // And the value doesn’t start or end in a blank…\n !/^[\\t ]*(?:[\\r\\n]|$)|(?:^|[\\r\\n])[\\t ]*$/.test(node.value)\n )\n}\n","/**\n * @typedef {import('../types.js').Options} Options\n * @typedef {import('../types.js').State} State\n */\n\n/**\n * @param {State} state\n * @returns {Exclude}\n */\nexport function checkFence(state) {\n const marker = state.options.fence || '`'\n\n if (marker !== '`' && marker !== '~') {\n throw new Error(\n 'Cannot serialize code with `' +\n marker +\n '` for `options.fence`, expected `` ` `` or `~`'\n )\n }\n\n return marker\n}\n","/**\n * @typedef {import('mdast').Code} Code\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('../types.js').Info} Info\n * @typedef {import('../types.js').Map} Map\n * @typedef {import('../types.js').State} State\n */\n\nimport {longestStreak} from 'longest-streak'\nimport {formatCodeAsIndented} from '../util/format-code-as-indented.js'\nimport {checkFence} from '../util/check-fence.js'\n\n/**\n * @param {Code} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function code(node, _, state, info) {\n const marker = checkFence(state)\n const raw = node.value || ''\n const suffix = marker === '`' ? 'GraveAccent' : 'Tilde'\n\n if (formatCodeAsIndented(node, state)) {\n const exit = state.enter('codeIndented')\n const value = state.indentLines(raw, map)\n exit()\n return value\n }\n\n const tracker = state.createTracker(info)\n const sequence = marker.repeat(Math.max(longestStreak(raw, marker) + 1, 3))\n const exit = state.enter('codeFenced')\n let value = tracker.move(sequence)\n\n if (node.lang) {\n const subexit = state.enter(`codeFencedLang${suffix}`)\n value += tracker.move(\n state.safe(node.lang, {\n before: value,\n after: ' ',\n encode: ['`'],\n ...tracker.current()\n })\n )\n subexit()\n }\n\n if (node.lang && node.meta) {\n const subexit = state.enter(`codeFencedMeta${suffix}`)\n value += tracker.move(' ')\n value += tracker.move(\n state.safe(node.meta, {\n before: value,\n after: '\\n',\n encode: ['`'],\n ...tracker.current()\n })\n )\n subexit()\n }\n\n value += tracker.move('\\n')\n\n if (raw) {\n value += tracker.move(raw + '\\n')\n }\n\n value += tracker.move(sequence)\n exit()\n return value\n}\n\n/** @type {Map} */\nfunction map(line, _, blank) {\n return (blank ? '' : ' ') + line\n}\n","/**\n * @typedef {import('../types.js').Options} Options\n * @typedef {import('../types.js').State} State\n */\n\n/**\n * @param {State} state\n * @returns {Exclude}\n */\nexport function checkQuote(state) {\n const marker = state.options.quote || '\"'\n\n if (marker !== '\"' && marker !== \"'\") {\n throw new Error(\n 'Cannot serialize title with `' +\n marker +\n '` for `options.quote`, expected `\"`, or `\\'`'\n )\n }\n\n return marker\n}\n","/**\n * @typedef {import('mdast').Definition} Definition\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('../types.js').Info} Info\n * @typedef {import('../types.js').State} State\n */\n\nimport {checkQuote} from '../util/check-quote.js'\n\n/**\n * @param {Definition} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function definition(node, _, state, info) {\n const quote = checkQuote(state)\n const suffix = quote === '\"' ? 'Quote' : 'Apostrophe'\n const exit = state.enter('definition')\n let subexit = state.enter('label')\n const tracker = state.createTracker(info)\n let value = tracker.move('[')\n value += tracker.move(\n state.safe(state.associationId(node), {\n before: value,\n after: ']',\n ...tracker.current()\n })\n )\n value += tracker.move(']: ')\n\n subexit()\n\n if (\n // If there’s no url, or…\n !node.url ||\n // If there are control characters or whitespace.\n /[\\0- \\u007F]/.test(node.url)\n ) {\n subexit = state.enter('destinationLiteral')\n value += tracker.move('<')\n value += tracker.move(\n state.safe(node.url, {before: value, after: '>', ...tracker.current()})\n )\n value += tracker.move('>')\n } else {\n // No whitespace, raw is prettier.\n subexit = state.enter('destinationRaw')\n value += tracker.move(\n state.safe(node.url, {\n before: value,\n after: node.title ? ' ' : '\\n',\n ...tracker.current()\n })\n )\n }\n\n subexit()\n\n if (node.title) {\n subexit = state.enter(`title${suffix}`)\n value += tracker.move(' ' + quote)\n value += tracker.move(\n state.safe(node.title, {\n before: value,\n after: quote,\n ...tracker.current()\n })\n )\n value += tracker.move(quote)\n subexit()\n }\n\n exit()\n\n return value\n}\n","/**\n * @typedef {import('../types.js').Options} Options\n * @typedef {import('../types.js').State} State\n */\n\n/**\n * @param {State} state\n * @returns {Exclude}\n */\nexport function checkEmphasis(state) {\n const marker = state.options.emphasis || '*'\n\n if (marker !== '*' && marker !== '_') {\n throw new Error(\n 'Cannot serialize emphasis with `' +\n marker +\n '` for `options.emphasis`, expected `*`, or `_`'\n )\n }\n\n return marker\n}\n","/**\n * @typedef {import('mdast').Emphasis} Emphasis\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('../types.js').Info} Info\n * @typedef {import('../types.js').State} State\n */\n\nimport {checkEmphasis} from '../util/check-emphasis.js'\n\nemphasis.peek = emphasisPeek\n\n// To do: there are cases where emphasis cannot “form” depending on the\n// previous or next character of sequences.\n// There’s no way around that though, except for injecting zero-width stuff.\n// Do we need to safeguard against that?\n/**\n * @param {Emphasis} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function emphasis(node, _, state, info) {\n const marker = checkEmphasis(state)\n const exit = state.enter('emphasis')\n const tracker = state.createTracker(info)\n let value = tracker.move(marker)\n value += tracker.move(\n state.containerPhrasing(node, {\n before: value,\n after: marker,\n ...tracker.current()\n })\n )\n value += tracker.move(marker)\n exit()\n return value\n}\n\n/**\n * @param {Emphasis} _\n * @param {Parents | undefined} _1\n * @param {State} state\n * @returns {string}\n */\nfunction emphasisPeek(_, _1, state) {\n return state.options.emphasis || '*'\n}\n","/**\n * @typedef {import('mdast').Heading} Heading\n * @typedef {import('../types.js').State} State\n */\n\nimport {EXIT, visit} from 'unist-util-visit'\nimport {toString} from 'mdast-util-to-string'\n\n/**\n * @param {Heading} node\n * @param {State} state\n * @returns {boolean}\n */\nexport function formatHeadingAsSetext(node, state) {\n let literalWithBreak = false\n\n // Look for literals with a line break.\n // Note that this also\n visit(node, function (node) {\n if (\n ('value' in node && /\\r?\\n|\\r/.test(node.value)) ||\n node.type === 'break'\n ) {\n literalWithBreak = true\n return EXIT\n }\n })\n\n return Boolean(\n (!node.depth || node.depth < 3) &&\n toString(node) &&\n (state.options.setext || literalWithBreak)\n )\n}\n","/**\n * @typedef {import('mdast').Heading} Heading\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('../types.js').Info} Info\n * @typedef {import('../types.js').State} State\n */\n\nimport {formatHeadingAsSetext} from '../util/format-heading-as-setext.js'\n\n/**\n * @param {Heading} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function heading(node, _, state, info) {\n const rank = Math.max(Math.min(6, node.depth || 1), 1)\n const tracker = state.createTracker(info)\n\n if (formatHeadingAsSetext(node, state)) {\n const exit = state.enter('headingSetext')\n const subexit = state.enter('phrasing')\n const value = state.containerPhrasing(node, {\n ...tracker.current(),\n before: '\\n',\n after: '\\n'\n })\n subexit()\n exit()\n\n return (\n value +\n '\\n' +\n (rank === 1 ? '=' : '-').repeat(\n // The whole size…\n value.length -\n // Minus the position of the character after the last EOL (or\n // 0 if there is none)…\n (Math.max(value.lastIndexOf('\\r'), value.lastIndexOf('\\n')) + 1)\n )\n )\n }\n\n const sequence = '#'.repeat(rank)\n const exit = state.enter('headingAtx')\n const subexit = state.enter('phrasing')\n\n // Note: for proper tracking, we should reset the output positions when there\n // is no content returned, because then the space is not output.\n // Practically, in that case, there is no content, so it doesn’t matter that\n // we’ve tracked one too many characters.\n tracker.move(sequence + ' ')\n\n let value = state.containerPhrasing(node, {\n before: '# ',\n after: '\\n',\n ...tracker.current()\n })\n\n if (/^[\\t ]/.test(value)) {\n // To do: what effect has the character reference on tracking?\n value =\n '&#x' +\n value.charCodeAt(0).toString(16).toUpperCase() +\n ';' +\n value.slice(1)\n }\n\n value = value ? sequence + ' ' + value : sequence\n\n if (state.options.closeAtx) {\n value += ' ' + sequence\n }\n\n subexit()\n exit()\n\n return value\n}\n","/**\n * @typedef {import('mdast').Html} Html\n */\n\nhtml.peek = htmlPeek\n\n/**\n * @param {Html} node\n * @returns {string}\n */\nexport function html(node) {\n return node.value || ''\n}\n\n/**\n * @returns {string}\n */\nfunction htmlPeek() {\n return '<'\n}\n","/**\n * @typedef {import('mdast').Image} Image\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('../types.js').Info} Info\n * @typedef {import('../types.js').State} State\n */\n\nimport {checkQuote} from '../util/check-quote.js'\n\nimage.peek = imagePeek\n\n/**\n * @param {Image} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function image(node, _, state, info) {\n const quote = checkQuote(state)\n const suffix = quote === '\"' ? 'Quote' : 'Apostrophe'\n const exit = state.enter('image')\n let subexit = state.enter('label')\n const tracker = state.createTracker(info)\n let value = tracker.move('![')\n value += tracker.move(\n state.safe(node.alt, {before: value, after: ']', ...tracker.current()})\n )\n value += tracker.move('](')\n\n subexit()\n\n if (\n // If there’s no url but there is a title…\n (!node.url && node.title) ||\n // If there are control characters or whitespace.\n /[\\0- \\u007F]/.test(node.url)\n ) {\n subexit = state.enter('destinationLiteral')\n value += tracker.move('<')\n value += tracker.move(\n state.safe(node.url, {before: value, after: '>', ...tracker.current()})\n )\n value += tracker.move('>')\n } else {\n // No whitespace, raw is prettier.\n subexit = state.enter('destinationRaw')\n value += tracker.move(\n state.safe(node.url, {\n before: value,\n after: node.title ? ' ' : ')',\n ...tracker.current()\n })\n )\n }\n\n subexit()\n\n if (node.title) {\n subexit = state.enter(`title${suffix}`)\n value += tracker.move(' ' + quote)\n value += tracker.move(\n state.safe(node.title, {\n before: value,\n after: quote,\n ...tracker.current()\n })\n )\n value += tracker.move(quote)\n subexit()\n }\n\n value += tracker.move(')')\n exit()\n\n return value\n}\n\n/**\n * @returns {string}\n */\nfunction imagePeek() {\n return '!'\n}\n","/**\n * @typedef {import('mdast').ImageReference} ImageReference\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('../types.js').Info} Info\n * @typedef {import('../types.js').State} State\n */\n\nimageReference.peek = imageReferencePeek\n\n/**\n * @param {ImageReference} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function imageReference(node, _, state, info) {\n const type = node.referenceType\n const exit = state.enter('imageReference')\n let subexit = state.enter('label')\n const tracker = state.createTracker(info)\n let value = tracker.move('![')\n const alt = state.safe(node.alt, {\n before: value,\n after: ']',\n ...tracker.current()\n })\n value += tracker.move(alt + '][')\n\n subexit()\n // Hide the fact that we’re in phrasing, because escapes don’t work.\n const stack = state.stack\n state.stack = []\n subexit = state.enter('reference')\n // Note: for proper tracking, we should reset the output positions when we end\n // up making a `shortcut` reference, because then there is no brace output.\n // Practically, in that case, there is no content, so it doesn’t matter that\n // we’ve tracked one too many characters.\n const reference = state.safe(state.associationId(node), {\n before: value,\n after: ']',\n ...tracker.current()\n })\n subexit()\n state.stack = stack\n exit()\n\n if (type === 'full' || !alt || alt !== reference) {\n value += tracker.move(reference + ']')\n } else if (type === 'shortcut') {\n // Remove the unwanted `[`.\n value = value.slice(0, -1)\n } else {\n value += tracker.move(']')\n }\n\n return value\n}\n\n/**\n * @returns {string}\n */\nfunction imageReferencePeek() {\n return '!'\n}\n","/**\n * @typedef {import('mdast').InlineCode} InlineCode\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('../types.js').State} State\n */\n\ninlineCode.peek = inlineCodePeek\n\n/**\n * @param {InlineCode} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @returns {string}\n */\nexport function inlineCode(node, _, state) {\n let value = node.value || ''\n let sequence = '`'\n let index = -1\n\n // If there is a single grave accent on its own in the code, use a fence of\n // two.\n // If there are two in a row, use one.\n while (new RegExp('(^|[^`])' + sequence + '([^`]|$)').test(value)) {\n sequence += '`'\n }\n\n // If this is not just spaces or eols (tabs don’t count), and either the\n // first or last character are a space, eol, or tick, then pad with spaces.\n if (\n /[^ \\r\\n]/.test(value) &&\n ((/^[ \\r\\n]/.test(value) && /[ \\r\\n]$/.test(value)) || /^`|`$/.test(value))\n ) {\n value = ' ' + value + ' '\n }\n\n // We have a potential problem: certain characters after eols could result in\n // blocks being seen.\n // For example, if someone injected the string `'\\n# b'`, then that would\n // result in an ATX heading.\n // We can’t escape characters in `inlineCode`, but because eols are\n // transformed to spaces when going from markdown to HTML anyway, we can swap\n // them out.\n while (++index < state.unsafe.length) {\n const pattern = state.unsafe[index]\n const expression = state.compilePattern(pattern)\n /** @type {RegExpExecArray | null} */\n let match\n\n // Only look for `atBreak`s.\n // Btw: note that `atBreak` patterns will always start the regex at LF or\n // CR.\n if (!pattern.atBreak) continue\n\n while ((match = expression.exec(value))) {\n let position = match.index\n\n // Support CRLF (patterns only look for one of the characters).\n if (\n value.charCodeAt(position) === 10 /* `\\n` */ &&\n value.charCodeAt(position - 1) === 13 /* `\\r` */\n ) {\n position--\n }\n\n value = value.slice(0, position) + ' ' + value.slice(match.index + 1)\n }\n }\n\n return sequence + value + sequence\n}\n\n/**\n * @returns {string}\n */\nfunction inlineCodePeek() {\n return '`'\n}\n","/**\n * @typedef {import('mdast').Link} Link\n * @typedef {import('../types.js').State} State\n */\n\nimport {toString} from 'mdast-util-to-string'\n\n/**\n * @param {Link} node\n * @param {State} state\n * @returns {boolean}\n */\nexport function formatLinkAsAutolink(node, state) {\n const raw = toString(node)\n\n return Boolean(\n !state.options.resourceLink &&\n // If there’s a url…\n node.url &&\n // And there’s a no title…\n !node.title &&\n // And the content of `node` is a single text node…\n node.children &&\n node.children.length === 1 &&\n node.children[0].type === 'text' &&\n // And if the url is the same as the content…\n (raw === node.url || 'mailto:' + raw === node.url) &&\n // And that starts w/ a protocol…\n /^[a-z][a-z+.-]+:/i.test(node.url) &&\n // And that doesn’t contain ASCII control codes (character escapes and\n // references don’t work), space, or angle brackets…\n !/[\\0- <>\\u007F]/.test(node.url)\n )\n}\n","/**\n * @typedef {import('mdast').Link} Link\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('../types.js').Exit} Exit\n * @typedef {import('../types.js').Info} Info\n * @typedef {import('../types.js').State} State\n */\n\nimport {checkQuote} from '../util/check-quote.js'\nimport {formatLinkAsAutolink} from '../util/format-link-as-autolink.js'\n\nlink.peek = linkPeek\n\n/**\n * @param {Link} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function link(node, _, state, info) {\n const quote = checkQuote(state)\n const suffix = quote === '\"' ? 'Quote' : 'Apostrophe'\n const tracker = state.createTracker(info)\n /** @type {Exit} */\n let exit\n /** @type {Exit} */\n let subexit\n\n if (formatLinkAsAutolink(node, state)) {\n // Hide the fact that we’re in phrasing, because escapes don’t work.\n const stack = state.stack\n state.stack = []\n exit = state.enter('autolink')\n let value = tracker.move('<')\n value += tracker.move(\n state.containerPhrasing(node, {\n before: value,\n after: '>',\n ...tracker.current()\n })\n )\n value += tracker.move('>')\n exit()\n state.stack = stack\n return value\n }\n\n exit = state.enter('link')\n subexit = state.enter('label')\n let value = tracker.move('[')\n value += tracker.move(\n state.containerPhrasing(node, {\n before: value,\n after: '](',\n ...tracker.current()\n })\n )\n value += tracker.move('](')\n subexit()\n\n if (\n // If there’s no url but there is a title…\n (!node.url && node.title) ||\n // If there are control characters or whitespace.\n /[\\0- \\u007F]/.test(node.url)\n ) {\n subexit = state.enter('destinationLiteral')\n value += tracker.move('<')\n value += tracker.move(\n state.safe(node.url, {before: value, after: '>', ...tracker.current()})\n )\n value += tracker.move('>')\n } else {\n // No whitespace, raw is prettier.\n subexit = state.enter('destinationRaw')\n value += tracker.move(\n state.safe(node.url, {\n before: value,\n after: node.title ? ' ' : ')',\n ...tracker.current()\n })\n )\n }\n\n subexit()\n\n if (node.title) {\n subexit = state.enter(`title${suffix}`)\n value += tracker.move(' ' + quote)\n value += tracker.move(\n state.safe(node.title, {\n before: value,\n after: quote,\n ...tracker.current()\n })\n )\n value += tracker.move(quote)\n subexit()\n }\n\n value += tracker.move(')')\n\n exit()\n return value\n}\n\n/**\n * @param {Link} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @returns {string}\n */\nfunction linkPeek(node, _, state) {\n return formatLinkAsAutolink(node, state) ? '<' : '['\n}\n","/**\n * @typedef {import('mdast').LinkReference} LinkReference\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('../types.js').Info} Info\n * @typedef {import('../types.js').State} State\n */\n\nlinkReference.peek = linkReferencePeek\n\n/**\n * @param {LinkReference} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function linkReference(node, _, state, info) {\n const type = node.referenceType\n const exit = state.enter('linkReference')\n let subexit = state.enter('label')\n const tracker = state.createTracker(info)\n let value = tracker.move('[')\n const text = state.containerPhrasing(node, {\n before: value,\n after: ']',\n ...tracker.current()\n })\n value += tracker.move(text + '][')\n\n subexit()\n // Hide the fact that we’re in phrasing, because escapes don’t work.\n const stack = state.stack\n state.stack = []\n subexit = state.enter('reference')\n // Note: for proper tracking, we should reset the output positions when we end\n // up making a `shortcut` reference, because then there is no brace output.\n // Practically, in that case, there is no content, so it doesn’t matter that\n // we’ve tracked one too many characters.\n const reference = state.safe(state.associationId(node), {\n before: value,\n after: ']',\n ...tracker.current()\n })\n subexit()\n state.stack = stack\n exit()\n\n if (type === 'full' || !text || text !== reference) {\n value += tracker.move(reference + ']')\n } else if (type === 'shortcut') {\n // Remove the unwanted `[`.\n value = value.slice(0, -1)\n } else {\n value += tracker.move(']')\n }\n\n return value\n}\n\n/**\n * @returns {string}\n */\nfunction linkReferencePeek() {\n return '['\n}\n","/**\n * @typedef {import('../types.js').Options} Options\n * @typedef {import('../types.js').State} State\n */\n\n/**\n * @param {State} state\n * @returns {Exclude}\n */\nexport function checkBullet(state) {\n const marker = state.options.bullet || '*'\n\n if (marker !== '*' && marker !== '+' && marker !== '-') {\n throw new Error(\n 'Cannot serialize items with `' +\n marker +\n '` for `options.bullet`, expected `*`, `+`, or `-`'\n )\n }\n\n return marker\n}\n","/**\n * @typedef {import('../types.js').Options} Options\n * @typedef {import('../types.js').State} State\n */\n\nimport {checkBullet} from './check-bullet.js'\n\n/**\n * @param {State} state\n * @returns {Exclude}\n */\nexport function checkBulletOther(state) {\n const bullet = checkBullet(state)\n const bulletOther = state.options.bulletOther\n\n if (!bulletOther) {\n return bullet === '*' ? '-' : '*'\n }\n\n if (bulletOther !== '*' && bulletOther !== '+' && bulletOther !== '-') {\n throw new Error(\n 'Cannot serialize items with `' +\n bulletOther +\n '` for `options.bulletOther`, expected `*`, `+`, or `-`'\n )\n }\n\n if (bulletOther === bullet) {\n throw new Error(\n 'Expected `bullet` (`' +\n bullet +\n '`) and `bulletOther` (`' +\n bulletOther +\n '`) to be different'\n )\n }\n\n return bulletOther\n}\n","/**\n * @typedef {import('../types.js').Options} Options\n * @typedef {import('../types.js').State} State\n */\n\n/**\n * @param {State} state\n * @returns {Exclude}\n */\nexport function checkBulletOrdered(state) {\n const marker = state.options.bulletOrdered || '.'\n\n if (marker !== '.' && marker !== ')') {\n throw new Error(\n 'Cannot serialize items with `' +\n marker +\n '` for `options.bulletOrdered`, expected `.` or `)`'\n )\n }\n\n return marker\n}\n","/**\n * @typedef {import('../types.js').Options} Options\n * @typedef {import('../types.js').State} State\n */\n\n/**\n * @param {State} state\n * @returns {Exclude}\n */\nexport function checkRule(state) {\n const marker = state.options.rule || '*'\n\n if (marker !== '*' && marker !== '-' && marker !== '_') {\n throw new Error(\n 'Cannot serialize rules with `' +\n marker +\n '` for `options.rule`, expected `*`, `-`, or `_`'\n )\n }\n\n return marker\n}\n","/**\n * @typedef {import('mdast').List} List\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('../types.js').Info} Info\n * @typedef {import('../types.js').State} State\n */\n\nimport {checkBullet} from '../util/check-bullet.js'\nimport {checkBulletOther} from '../util/check-bullet-other.js'\nimport {checkBulletOrdered} from '../util/check-bullet-ordered.js'\nimport {checkRule} from '../util/check-rule.js'\n\n/**\n * @param {List} node\n * @param {Parents | undefined} parent\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function list(node, parent, state, info) {\n const exit = state.enter('list')\n const bulletCurrent = state.bulletCurrent\n /** @type {string} */\n let bullet = node.ordered ? checkBulletOrdered(state) : checkBullet(state)\n /** @type {string} */\n const bulletOther = node.ordered\n ? bullet === '.'\n ? ')'\n : '.'\n : checkBulletOther(state)\n let useDifferentMarker =\n parent && state.bulletLastUsed ? bullet === state.bulletLastUsed : false\n\n if (!node.ordered) {\n const firstListItem = node.children ? node.children[0] : undefined\n\n // If there’s an empty first list item directly in two list items,\n // we have to use a different bullet:\n //\n // ```markdown\n // * - *\n // ```\n //\n // …because otherwise it would become one big thematic break.\n if (\n // Bullet could be used as a thematic break marker:\n (bullet === '*' || bullet === '-') &&\n // Empty first list item:\n firstListItem &&\n (!firstListItem.children || !firstListItem.children[0]) &&\n // Directly in two other list items:\n state.stack[state.stack.length - 1] === 'list' &&\n state.stack[state.stack.length - 2] === 'listItem' &&\n state.stack[state.stack.length - 3] === 'list' &&\n state.stack[state.stack.length - 4] === 'listItem' &&\n // That are each the first child.\n state.indexStack[state.indexStack.length - 1] === 0 &&\n state.indexStack[state.indexStack.length - 2] === 0 &&\n state.indexStack[state.indexStack.length - 3] === 0\n ) {\n useDifferentMarker = true\n }\n\n // If there’s a thematic break at the start of the first list item,\n // we have to use a different bullet:\n //\n // ```markdown\n // * ---\n // ```\n //\n // …because otherwise it would become one big thematic break.\n if (checkRule(state) === bullet && firstListItem) {\n let index = -1\n\n while (++index < node.children.length) {\n const item = node.children[index]\n\n if (\n item &&\n item.type === 'listItem' &&\n item.children &&\n item.children[0] &&\n item.children[0].type === 'thematicBreak'\n ) {\n useDifferentMarker = true\n break\n }\n }\n }\n }\n\n if (useDifferentMarker) {\n bullet = bulletOther\n }\n\n state.bulletCurrent = bullet\n const value = state.containerFlow(node, info)\n state.bulletLastUsed = bullet\n state.bulletCurrent = bulletCurrent\n exit()\n return value\n}\n","/**\n * @typedef {import('../types.js').Options} Options\n * @typedef {import('../types.js').State} State\n */\n\n/**\n * @param {State} state\n * @returns {Exclude}\n */\nexport function checkListItemIndent(state) {\n const style = state.options.listItemIndent || 'one'\n\n if (style !== 'tab' && style !== 'one' && style !== 'mixed') {\n throw new Error(\n 'Cannot serialize items with `' +\n style +\n '` for `options.listItemIndent`, expected `tab`, `one`, or `mixed`'\n )\n }\n\n return style\n}\n","/**\n * @typedef {import('mdast').ListItem} ListItem\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('../types.js').Info} Info\n * @typedef {import('../types.js').Map} Map\n * @typedef {import('../types.js').State} State\n */\n\nimport {checkBullet} from '../util/check-bullet.js'\nimport {checkListItemIndent} from '../util/check-list-item-indent.js'\n\n/**\n * @param {ListItem} node\n * @param {Parents | undefined} parent\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function listItem(node, parent, state, info) {\n const listItemIndent = checkListItemIndent(state)\n let bullet = state.bulletCurrent || checkBullet(state)\n\n // Add the marker value for ordered lists.\n if (parent && parent.type === 'list' && parent.ordered) {\n bullet =\n (typeof parent.start === 'number' && parent.start > -1\n ? parent.start\n : 1) +\n (state.options.incrementListMarker === false\n ? 0\n : parent.children.indexOf(node)) +\n bullet\n }\n\n let size = bullet.length + 1\n\n if (\n listItemIndent === 'tab' ||\n (listItemIndent === 'mixed' &&\n ((parent && parent.type === 'list' && parent.spread) || node.spread))\n ) {\n size = Math.ceil(size / 4) * 4\n }\n\n const tracker = state.createTracker(info)\n tracker.move(bullet + ' '.repeat(size - bullet.length))\n tracker.shift(size)\n const exit = state.enter('listItem')\n const value = state.indentLines(\n state.containerFlow(node, tracker.current()),\n map\n )\n exit()\n\n return value\n\n /** @type {Map} */\n function map(line, index, blank) {\n if (index) {\n return (blank ? '' : ' '.repeat(size)) + line\n }\n\n return (blank ? bullet : bullet + ' '.repeat(size - bullet.length)) + line\n }\n}\n","/**\n * @typedef {import('mdast').Paragraph} Paragraph\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('../types.js').Info} Info\n * @typedef {import('../types.js').State} State\n */\n\n/**\n * @param {Paragraph} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function paragraph(node, _, state, info) {\n const exit = state.enter('paragraph')\n const subexit = state.enter('phrasing')\n const value = state.containerPhrasing(node, info)\n subexit()\n exit()\n return value\n}\n","/**\n * @typedef {import('mdast').Html} Html\n * @typedef {import('mdast').PhrasingContent} PhrasingContent\n */\n\nimport {convert} from 'unist-util-is'\n\n/**\n * Check if the given value is *phrasing content*.\n *\n * > 👉 **Note**: Excludes `html`, which can be both phrasing or flow.\n *\n * @param node\n * Thing to check, typically `Node`.\n * @returns\n * Whether `value` is phrasing content.\n */\n\nexport const phrasing =\n /** @type {(node?: unknown) => node is Exclude} */\n (\n convert([\n 'break',\n 'delete',\n 'emphasis',\n // To do: next major: removed since footnotes were added to GFM.\n 'footnote',\n 'footnoteReference',\n 'image',\n 'imageReference',\n 'inlineCode',\n // Enabled by `mdast-util-math`:\n 'inlineMath',\n 'link',\n 'linkReference',\n // Enabled by `mdast-util-mdx`:\n 'mdxJsxTextElement',\n // Enabled by `mdast-util-mdx`:\n 'mdxTextExpression',\n 'strong',\n 'text',\n // Enabled by `mdast-util-directive`:\n 'textDirective'\n ])\n )\n","/**\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('mdast').Root} Root\n * @typedef {import('../types.js').Info} Info\n * @typedef {import('../types.js').State} State\n */\n\nimport {phrasing} from 'mdast-util-phrasing'\n\n/**\n * @param {Root} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function root(node, _, state, info) {\n // Note: `html` nodes are ambiguous.\n const hasPhrasing = node.children.some(function (d) {\n return phrasing(d)\n })\n const fn = hasPhrasing ? state.containerPhrasing : state.containerFlow\n return fn.call(state, node, info)\n}\n","/**\n * @typedef {import('../types.js').Options} Options\n * @typedef {import('../types.js').State} State\n */\n\n/**\n * @param {State} state\n * @returns {Exclude}\n */\nexport function checkStrong(state) {\n const marker = state.options.strong || '*'\n\n if (marker !== '*' && marker !== '_') {\n throw new Error(\n 'Cannot serialize strong with `' +\n marker +\n '` for `options.strong`, expected `*`, or `_`'\n )\n }\n\n return marker\n}\n","/**\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('mdast').Strong} Strong\n * @typedef {import('../types.js').Info} Info\n * @typedef {import('../types.js').State} State\n */\n\nimport {checkStrong} from '../util/check-strong.js'\n\nstrong.peek = strongPeek\n\n// To do: there are cases where emphasis cannot “form” depending on the\n// previous or next character of sequences.\n// There’s no way around that though, except for injecting zero-width stuff.\n// Do we need to safeguard against that?\n/**\n * @param {Strong} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function strong(node, _, state, info) {\n const marker = checkStrong(state)\n const exit = state.enter('strong')\n const tracker = state.createTracker(info)\n let value = tracker.move(marker + marker)\n value += tracker.move(\n state.containerPhrasing(node, {\n before: value,\n after: marker,\n ...tracker.current()\n })\n )\n value += tracker.move(marker + marker)\n exit()\n return value\n}\n\n/**\n * @param {Strong} _\n * @param {Parents | undefined} _1\n * @param {State} state\n * @returns {string}\n */\nfunction strongPeek(_, _1, state) {\n return state.options.strong || '*'\n}\n","/**\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('mdast').Text} Text\n * @typedef {import('../types.js').Info} Info\n * @typedef {import('../types.js').State} State\n */\n\n/**\n * @param {Text} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function text(node, _, state, info) {\n return state.safe(node.value, info)\n}\n","/**\n * @typedef {import('../types.js').Options} Options\n * @typedef {import('../types.js').State} State\n */\n\n/**\n * @param {State} state\n * @returns {Exclude}\n */\nexport function checkRuleRepetition(state) {\n const repetition = state.options.ruleRepetition || 3\n\n if (repetition < 3) {\n throw new Error(\n 'Cannot serialize rules with repetition `' +\n repetition +\n '` for `options.ruleRepetition`, expected `3` or more'\n )\n }\n\n return repetition\n}\n","/**\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('mdast').ThematicBreak} ThematicBreak\n * @typedef {import('../types.js').State} State\n */\n\nimport {checkRuleRepetition} from '../util/check-rule-repetition.js'\nimport {checkRule} from '../util/check-rule.js'\n\n/**\n * @param {ThematicBreak} _\n * @param {Parents | undefined} _1\n * @param {State} state\n * @returns {string}\n */\nexport function thematicBreak(_, _1, state) {\n const value = (\n checkRule(state) + (state.options.ruleSpaces ? ' ' : '')\n ).repeat(checkRuleRepetition(state))\n\n return state.options.ruleSpaces ? value.slice(0, -1) : value\n}\n","import {blockquote} from './blockquote.js'\nimport {hardBreak} from './break.js'\nimport {code} from './code.js'\nimport {definition} from './definition.js'\nimport {emphasis} from './emphasis.js'\nimport {heading} from './heading.js'\nimport {html} from './html.js'\nimport {image} from './image.js'\nimport {imageReference} from './image-reference.js'\nimport {inlineCode} from './inline-code.js'\nimport {link} from './link.js'\nimport {linkReference} from './link-reference.js'\nimport {list} from './list.js'\nimport {listItem} from './list-item.js'\nimport {paragraph} from './paragraph.js'\nimport {root} from './root.js'\nimport {strong} from './strong.js'\nimport {text} from './text.js'\nimport {thematicBreak} from './thematic-break.js'\n\n/**\n * Default (CommonMark) handlers.\n */\nexport const handle = {\n blockquote,\n break: hardBreak,\n code,\n definition,\n emphasis,\n hardBreak,\n heading,\n html,\n image,\n imageReference,\n inlineCode,\n link,\n linkReference,\n list,\n listItem,\n paragraph,\n root,\n strong,\n text,\n thematicBreak\n}\n","/**\n * @typedef {import('mdast').InlineCode} InlineCode\n * @typedef {import('mdast').Table} Table\n * @typedef {import('mdast').TableCell} TableCell\n * @typedef {import('mdast').TableRow} TableRow\n *\n * @typedef {import('markdown-table').Options} MarkdownTableOptions\n *\n * @typedef {import('mdast-util-from-markdown').CompileContext} CompileContext\n * @typedef {import('mdast-util-from-markdown').Extension} FromMarkdownExtension\n * @typedef {import('mdast-util-from-markdown').Handle} FromMarkdownHandle\n *\n * @typedef {import('mdast-util-to-markdown').Options} ToMarkdownExtension\n * @typedef {import('mdast-util-to-markdown').Handle} ToMarkdownHandle\n * @typedef {import('mdast-util-to-markdown').State} State\n * @typedef {import('mdast-util-to-markdown').Info} Info\n */\n\n/**\n * @typedef Options\n * Configuration.\n * @property {boolean | null | undefined} [tableCellPadding=true]\n * Whether to add a space of padding between delimiters and cells (default:\n * `true`).\n * @property {boolean | null | undefined} [tablePipeAlign=true]\n * Whether to align the delimiters (default: `true`).\n * @property {MarkdownTableOptions['stringLength'] | null | undefined} [stringLength]\n * Function to detect the length of table cell content, used when aligning\n * the delimiters between cells (optional).\n */\n\nimport {ok as assert} from 'devlop'\nimport {markdownTable} from 'markdown-table'\nimport {defaultHandlers} from 'mdast-util-to-markdown'\n\n/**\n * Create an extension for `mdast-util-from-markdown` to enable GFM tables in\n * markdown.\n *\n * @returns {FromMarkdownExtension}\n * Extension for `mdast-util-from-markdown` to enable GFM tables.\n */\nexport function gfmTableFromMarkdown() {\n return {\n enter: {\n table: enterTable,\n tableData: enterCell,\n tableHeader: enterCell,\n tableRow: enterRow\n },\n exit: {\n codeText: exitCodeText,\n table: exitTable,\n tableData: exit,\n tableHeader: exit,\n tableRow: exit\n }\n }\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction enterTable(token) {\n const align = token._align\n assert(align, 'expected `_align` on table')\n this.enter(\n {\n type: 'table',\n align: align.map(function (d) {\n return d === 'none' ? null : d\n }),\n children: []\n },\n token\n )\n this.data.inTable = true\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction exitTable(token) {\n this.exit(token)\n this.data.inTable = undefined\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction enterRow(token) {\n this.enter({type: 'tableRow', children: []}, token)\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction exit(token) {\n this.exit(token)\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction enterCell(token) {\n this.enter({type: 'tableCell', children: []}, token)\n}\n\n// Overwrite the default code text data handler to unescape escaped pipes when\n// they are in tables.\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction exitCodeText(token) {\n let value = this.resume()\n\n if (this.data.inTable) {\n value = value.replace(/\\\\([\\\\|])/g, replace)\n }\n\n const node = this.stack[this.stack.length - 1]\n assert(node.type === 'inlineCode')\n node.value = value\n this.exit(token)\n}\n\n/**\n * @param {string} $0\n * @param {string} $1\n * @returns {string}\n */\nfunction replace($0, $1) {\n // Pipes work, backslashes don’t (but can’t escape pipes).\n return $1 === '|' ? $1 : $0\n}\n\n/**\n * Create an extension for `mdast-util-to-markdown` to enable GFM tables in\n * markdown.\n *\n * @param {Options | null | undefined} [options]\n * Configuration.\n * @returns {ToMarkdownExtension}\n * Extension for `mdast-util-to-markdown` to enable GFM tables.\n */\nexport function gfmTableToMarkdown(options) {\n const settings = options || {}\n const padding = settings.tableCellPadding\n const alignDelimiters = settings.tablePipeAlign\n const stringLength = settings.stringLength\n const around = padding ? ' ' : '|'\n\n return {\n unsafe: [\n {character: '\\r', inConstruct: 'tableCell'},\n {character: '\\n', inConstruct: 'tableCell'},\n // A pipe, when followed by a tab or space (padding), or a dash or colon\n // (unpadded delimiter row), could result in a table.\n {atBreak: true, character: '|', after: '[\\t :-]'},\n // A pipe in a cell must be encoded.\n {character: '|', inConstruct: 'tableCell'},\n // A colon must be followed by a dash, in which case it could start a\n // delimiter row.\n {atBreak: true, character: ':', after: '-'},\n // A delimiter row can also start with a dash, when followed by more\n // dashes, a colon, or a pipe.\n // This is a stricter version than the built in check for lists, thematic\n // breaks, and setex heading underlines though:\n // \n {atBreak: true, character: '-', after: '[:|-]'}\n ],\n handlers: {\n inlineCode: inlineCodeWithTable,\n table: handleTable,\n tableCell: handleTableCell,\n tableRow: handleTableRow\n }\n }\n\n /**\n * @type {ToMarkdownHandle}\n * @param {Table} node\n */\n function handleTable(node, _, state, info) {\n return serializeData(handleTableAsData(node, state, info), node.align)\n }\n\n /**\n * This function isn’t really used normally, because we handle rows at the\n * table level.\n * But, if someone passes in a table row, this ensures we make somewhat sense.\n *\n * @type {ToMarkdownHandle}\n * @param {TableRow} node\n */\n function handleTableRow(node, _, state, info) {\n const row = handleTableRowAsData(node, state, info)\n const value = serializeData([row])\n // `markdown-table` will always add an align row\n return value.slice(0, value.indexOf('\\n'))\n }\n\n /**\n * @type {ToMarkdownHandle}\n * @param {TableCell} node\n */\n function handleTableCell(node, _, state, info) {\n const exit = state.enter('tableCell')\n const subexit = state.enter('phrasing')\n const value = state.containerPhrasing(node, {\n ...info,\n before: around,\n after: around\n })\n subexit()\n exit()\n return value\n }\n\n /**\n * @param {Array>} matrix\n * @param {Array | null | undefined} [align]\n */\n function serializeData(matrix, align) {\n return markdownTable(matrix, {\n align,\n // @ts-expect-error: `markdown-table` types should support `null`.\n alignDelimiters,\n // @ts-expect-error: `markdown-table` types should support `null`.\n padding,\n // @ts-expect-error: `markdown-table` types should support `null`.\n stringLength\n })\n }\n\n /**\n * @param {Table} node\n * @param {State} state\n * @param {Info} info\n */\n function handleTableAsData(node, state, info) {\n const children = node.children\n let index = -1\n /** @type {Array>} */\n const result = []\n const subexit = state.enter('table')\n\n while (++index < children.length) {\n result[index] = handleTableRowAsData(children[index], state, info)\n }\n\n subexit()\n\n return result\n }\n\n /**\n * @param {TableRow} node\n * @param {State} state\n * @param {Info} info\n */\n function handleTableRowAsData(node, state, info) {\n const children = node.children\n let index = -1\n /** @type {Array} */\n const result = []\n const subexit = state.enter('tableRow')\n\n while (++index < children.length) {\n // Note: the positional info as used here is incorrect.\n // Making it correct would be impossible due to aligning cells?\n // And it would need copy/pasting `markdown-table` into this project.\n result[index] = handleTableCell(children[index], node, state, info)\n }\n\n subexit()\n\n return result\n }\n\n /**\n * @type {ToMarkdownHandle}\n * @param {InlineCode} node\n */\n function inlineCodeWithTable(node, parent, state) {\n let value = defaultHandlers.inlineCode(node, parent, state)\n\n if (state.stack.includes('tableCell')) {\n value = value.replace(/\\|/g, '\\\\$&')\n }\n\n return value\n }\n}\n","/**\n * @typedef {import('mdast').ListItem} ListItem\n * @typedef {import('mdast').Paragraph} Paragraph\n * @typedef {import('mdast-util-from-markdown').CompileContext} CompileContext\n * @typedef {import('mdast-util-from-markdown').Extension} FromMarkdownExtension\n * @typedef {import('mdast-util-from-markdown').Handle} FromMarkdownHandle\n * @typedef {import('mdast-util-to-markdown').Options} ToMarkdownExtension\n * @typedef {import('mdast-util-to-markdown').Handle} ToMarkdownHandle\n */\n\nimport {ok as assert} from 'devlop'\nimport {defaultHandlers} from 'mdast-util-to-markdown'\n\n/**\n * Create an extension for `mdast-util-from-markdown` to enable GFM task\n * list items in markdown.\n *\n * @returns {FromMarkdownExtension}\n * Extension for `mdast-util-from-markdown` to enable GFM task list items.\n */\nexport function gfmTaskListItemFromMarkdown() {\n return {\n exit: {\n taskListCheckValueChecked: exitCheck,\n taskListCheckValueUnchecked: exitCheck,\n paragraph: exitParagraphWithTaskListItem\n }\n }\n}\n\n/**\n * Create an extension for `mdast-util-to-markdown` to enable GFM task list\n * items in markdown.\n *\n * @returns {ToMarkdownExtension}\n * Extension for `mdast-util-to-markdown` to enable GFM task list items.\n */\nexport function gfmTaskListItemToMarkdown() {\n return {\n unsafe: [{atBreak: true, character: '-', after: '[:|-]'}],\n handlers: {listItem: listItemWithTaskListItem}\n }\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction exitCheck(token) {\n // We’re always in a paragraph, in a list item.\n const node = this.stack[this.stack.length - 2]\n assert(node.type === 'listItem')\n node.checked = token.type === 'taskListCheckValueChecked'\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction exitParagraphWithTaskListItem(token) {\n const parent = this.stack[this.stack.length - 2]\n\n if (\n parent &&\n parent.type === 'listItem' &&\n typeof parent.checked === 'boolean'\n ) {\n const node = this.stack[this.stack.length - 1]\n assert(node.type === 'paragraph')\n const head = node.children[0]\n\n if (head && head.type === 'text') {\n const siblings = parent.children\n let index = -1\n /** @type {Paragraph | undefined} */\n let firstParaghraph\n\n while (++index < siblings.length) {\n const sibling = siblings[index]\n if (sibling.type === 'paragraph') {\n firstParaghraph = sibling\n break\n }\n }\n\n if (firstParaghraph === node) {\n // Must start with a space or a tab.\n head.value = head.value.slice(1)\n\n if (head.value.length === 0) {\n node.children.shift()\n } else if (\n node.position &&\n head.position &&\n typeof head.position.start.offset === 'number'\n ) {\n head.position.start.column++\n head.position.start.offset++\n node.position.start = Object.assign({}, head.position.start)\n }\n }\n }\n }\n\n this.exit(token)\n}\n\n/**\n * @type {ToMarkdownHandle}\n * @param {ListItem} node\n */\nfunction listItemWithTaskListItem(node, parent, state, info) {\n const head = node.children[0]\n const checkable =\n typeof node.checked === 'boolean' && head && head.type === 'paragraph'\n const checkbox = '[' + (node.checked ? 'x' : ' ') + '] '\n const tracker = state.createTracker(info)\n\n if (checkable) {\n tracker.move(checkbox)\n }\n\n let value = defaultHandlers.listItem(node, parent, state, {\n ...info,\n ...tracker.current()\n })\n\n if (checkable) {\n value = value.replace(/^(?:[*+-]|\\d+\\.)([\\r\\n]| {1,3})/, check)\n }\n\n return value\n\n /**\n * @param {string} $0\n * @returns {string}\n */\n function check($0) {\n return $0 + checkbox\n }\n}\n","/**\n * @typedef {import('mdast-util-from-markdown').Extension} FromMarkdownExtension\n * @typedef {import('mdast-util-to-markdown').Options} ToMarkdownExtension\n */\n\n/**\n * @typedef {import('mdast-util-gfm-table').Options} Options\n * Configuration.\n */\n\nimport {\n gfmAutolinkLiteralFromMarkdown,\n gfmAutolinkLiteralToMarkdown\n} from 'mdast-util-gfm-autolink-literal'\nimport {\n gfmFootnoteFromMarkdown,\n gfmFootnoteToMarkdown\n} from 'mdast-util-gfm-footnote'\nimport {\n gfmStrikethroughFromMarkdown,\n gfmStrikethroughToMarkdown\n} from 'mdast-util-gfm-strikethrough'\nimport {gfmTableFromMarkdown, gfmTableToMarkdown} from 'mdast-util-gfm-table'\nimport {\n gfmTaskListItemFromMarkdown,\n gfmTaskListItemToMarkdown\n} from 'mdast-util-gfm-task-list-item'\n\n/**\n * Create an extension for `mdast-util-from-markdown` to enable GFM (autolink\n * literals, footnotes, strikethrough, tables, tasklists).\n *\n * @returns {Array}\n * Extension for `mdast-util-from-markdown` to enable GFM (autolink literals,\n * footnotes, strikethrough, tables, tasklists).\n */\nexport function gfmFromMarkdown() {\n return [\n gfmAutolinkLiteralFromMarkdown(),\n gfmFootnoteFromMarkdown(),\n gfmStrikethroughFromMarkdown(),\n gfmTableFromMarkdown(),\n gfmTaskListItemFromMarkdown()\n ]\n}\n\n/**\n * Create an extension for `mdast-util-to-markdown` to enable GFM (autolink\n * literals, footnotes, strikethrough, tables, tasklists).\n *\n * @param {Options | null | undefined} [options]\n * Configuration.\n * @returns {ToMarkdownExtension}\n * Extension for `mdast-util-to-markdown` to enable GFM (autolink literals,\n * footnotes, strikethrough, tables, tasklists).\n */\nexport function gfmToMarkdown(options) {\n return {\n extensions: [\n gfmAutolinkLiteralToMarkdown(),\n gfmFootnoteToMarkdown(),\n gfmStrikethroughToMarkdown(),\n gfmTableToMarkdown(options),\n gfmTaskListItemToMarkdown()\n ]\n }\n}\n","/**\n * @import {Code, ConstructRecord, Event, Extension, Previous, State, TokenizeContext, Tokenizer} from 'micromark-util-types'\n */\n\nimport { asciiAlpha, asciiAlphanumeric, asciiControl, markdownLineEndingOrSpace, unicodePunctuation, unicodeWhitespace } from 'micromark-util-character';\nconst wwwPrefix = {\n tokenize: tokenizeWwwPrefix,\n partial: true\n};\nconst domain = {\n tokenize: tokenizeDomain,\n partial: true\n};\nconst path = {\n tokenize: tokenizePath,\n partial: true\n};\nconst trail = {\n tokenize: tokenizeTrail,\n partial: true\n};\nconst emailDomainDotTrail = {\n tokenize: tokenizeEmailDomainDotTrail,\n partial: true\n};\nconst wwwAutolink = {\n name: 'wwwAutolink',\n tokenize: tokenizeWwwAutolink,\n previous: previousWww\n};\nconst protocolAutolink = {\n name: 'protocolAutolink',\n tokenize: tokenizeProtocolAutolink,\n previous: previousProtocol\n};\nconst emailAutolink = {\n name: 'emailAutolink',\n tokenize: tokenizeEmailAutolink,\n previous: previousEmail\n};\n\n/** @type {ConstructRecord} */\nconst text = {};\n\n/**\n * Create an extension for `micromark` to support GitHub autolink literal\n * syntax.\n *\n * @returns {Extension}\n * Extension for `micromark` that can be passed in `extensions` to enable GFM\n * autolink literal syntax.\n */\nexport function gfmAutolinkLiteral() {\n return {\n text\n };\n}\n\n/** @type {Code} */\nlet code = 48;\n\n// Add alphanumerics.\nwhile (code < 123) {\n text[code] = emailAutolink;\n code++;\n if (code === 58) code = 65;else if (code === 91) code = 97;\n}\ntext[43] = emailAutolink;\ntext[45] = emailAutolink;\ntext[46] = emailAutolink;\ntext[95] = emailAutolink;\ntext[72] = [emailAutolink, protocolAutolink];\ntext[104] = [emailAutolink, protocolAutolink];\ntext[87] = [emailAutolink, wwwAutolink];\ntext[119] = [emailAutolink, wwwAutolink];\n\n// To do: perform email autolink literals on events, afterwards.\n// That’s where `markdown-rs` and `cmark-gfm` perform it.\n// It should look for `@`, then for atext backwards, and then for a label\n// forwards.\n// To do: `mailto:`, `xmpp:` protocol as prefix.\n\n/**\n * Email autolink literal.\n *\n * ```markdown\n * > | a contact@example.org b\n * ^^^^^^^^^^^^^^^^^^^\n * ```\n *\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeEmailAutolink(effects, ok, nok) {\n const self = this;\n /** @type {boolean | undefined} */\n let dot;\n /** @type {boolean} */\n let data;\n return start;\n\n /**\n * Start of email autolink literal.\n *\n * ```markdown\n * > | a contact@example.org b\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n if (!gfmAtext(code) || !previousEmail.call(self, self.previous) || previousUnbalanced(self.events)) {\n return nok(code);\n }\n effects.enter('literalAutolink');\n effects.enter('literalAutolinkEmail');\n return atext(code);\n }\n\n /**\n * In email atext.\n *\n * ```markdown\n * > | a contact@example.org b\n * ^\n * ```\n *\n * @type {State}\n */\n function atext(code) {\n if (gfmAtext(code)) {\n effects.consume(code);\n return atext;\n }\n if (code === 64) {\n effects.consume(code);\n return emailDomain;\n }\n return nok(code);\n }\n\n /**\n * In email domain.\n *\n * The reference code is a bit overly complex as it handles the `@`, of which\n * there may be just one.\n * Source: \n *\n * ```markdown\n * > | a contact@example.org b\n * ^\n * ```\n *\n * @type {State}\n */\n function emailDomain(code) {\n // Dot followed by alphanumerical (not `-` or `_`).\n if (code === 46) {\n return effects.check(emailDomainDotTrail, emailDomainAfter, emailDomainDot)(code);\n }\n\n // Alphanumerical, `-`, and `_`.\n if (code === 45 || code === 95 || asciiAlphanumeric(code)) {\n data = true;\n effects.consume(code);\n return emailDomain;\n }\n\n // To do: `/` if xmpp.\n\n // Note: normally we’d truncate trailing punctuation from the link.\n // However, email autolink literals cannot contain any of those markers,\n // except for `.`, but that can only occur if it isn’t trailing.\n // So we can ignore truncating!\n return emailDomainAfter(code);\n }\n\n /**\n * In email domain, on dot that is not a trail.\n *\n * ```markdown\n * > | a contact@example.org b\n * ^\n * ```\n *\n * @type {State}\n */\n function emailDomainDot(code) {\n effects.consume(code);\n dot = true;\n return emailDomain;\n }\n\n /**\n * After email domain.\n *\n * ```markdown\n * > | a contact@example.org b\n * ^\n * ```\n *\n * @type {State}\n */\n function emailDomainAfter(code) {\n // Domain must not be empty, must include a dot, and must end in alphabetical.\n // Source: .\n if (data && dot && asciiAlpha(self.previous)) {\n effects.exit('literalAutolinkEmail');\n effects.exit('literalAutolink');\n return ok(code);\n }\n return nok(code);\n }\n}\n\n/**\n * `www` autolink literal.\n *\n * ```markdown\n * > | a www.example.org b\n * ^^^^^^^^^^^^^^^\n * ```\n *\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeWwwAutolink(effects, ok, nok) {\n const self = this;\n return wwwStart;\n\n /**\n * Start of www autolink literal.\n *\n * ```markdown\n * > | www.example.com/a?b#c\n * ^\n * ```\n *\n * @type {State}\n */\n function wwwStart(code) {\n if (code !== 87 && code !== 119 || !previousWww.call(self, self.previous) || previousUnbalanced(self.events)) {\n return nok(code);\n }\n effects.enter('literalAutolink');\n effects.enter('literalAutolinkWww');\n // Note: we *check*, so we can discard the `www.` we parsed.\n // If it worked, we consider it as a part of the domain.\n return effects.check(wwwPrefix, effects.attempt(domain, effects.attempt(path, wwwAfter), nok), nok)(code);\n }\n\n /**\n * After a www autolink literal.\n *\n * ```markdown\n * > | www.example.com/a?b#c\n * ^\n * ```\n *\n * @type {State}\n */\n function wwwAfter(code) {\n effects.exit('literalAutolinkWww');\n effects.exit('literalAutolink');\n return ok(code);\n }\n}\n\n/**\n * Protocol autolink literal.\n *\n * ```markdown\n * > | a https://example.org b\n * ^^^^^^^^^^^^^^^^^^^\n * ```\n *\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeProtocolAutolink(effects, ok, nok) {\n const self = this;\n let buffer = '';\n let seen = false;\n return protocolStart;\n\n /**\n * Start of protocol autolink literal.\n *\n * ```markdown\n * > | https://example.com/a?b#c\n * ^\n * ```\n *\n * @type {State}\n */\n function protocolStart(code) {\n if ((code === 72 || code === 104) && previousProtocol.call(self, self.previous) && !previousUnbalanced(self.events)) {\n effects.enter('literalAutolink');\n effects.enter('literalAutolinkHttp');\n buffer += String.fromCodePoint(code);\n effects.consume(code);\n return protocolPrefixInside;\n }\n return nok(code);\n }\n\n /**\n * In protocol.\n *\n * ```markdown\n * > | https://example.com/a?b#c\n * ^^^^^\n * ```\n *\n * @type {State}\n */\n function protocolPrefixInside(code) {\n // `5` is size of `https`\n if (asciiAlpha(code) && buffer.length < 5) {\n // @ts-expect-error: definitely number.\n buffer += String.fromCodePoint(code);\n effects.consume(code);\n return protocolPrefixInside;\n }\n if (code === 58) {\n const protocol = buffer.toLowerCase();\n if (protocol === 'http' || protocol === 'https') {\n effects.consume(code);\n return protocolSlashesInside;\n }\n }\n return nok(code);\n }\n\n /**\n * In slashes.\n *\n * ```markdown\n * > | https://example.com/a?b#c\n * ^^\n * ```\n *\n * @type {State}\n */\n function protocolSlashesInside(code) {\n if (code === 47) {\n effects.consume(code);\n if (seen) {\n return afterProtocol;\n }\n seen = true;\n return protocolSlashesInside;\n }\n return nok(code);\n }\n\n /**\n * After protocol, before domain.\n *\n * ```markdown\n * > | https://example.com/a?b#c\n * ^\n * ```\n *\n * @type {State}\n */\n function afterProtocol(code) {\n // To do: this is different from `markdown-rs`:\n // https://github.com/wooorm/markdown-rs/blob/b3a921c761309ae00a51fe348d8a43adbc54b518/src/construct/gfm_autolink_literal.rs#L172-L182\n return code === null || asciiControl(code) || markdownLineEndingOrSpace(code) || unicodeWhitespace(code) || unicodePunctuation(code) ? nok(code) : effects.attempt(domain, effects.attempt(path, protocolAfter), nok)(code);\n }\n\n /**\n * After a protocol autolink literal.\n *\n * ```markdown\n * > | https://example.com/a?b#c\n * ^\n * ```\n *\n * @type {State}\n */\n function protocolAfter(code) {\n effects.exit('literalAutolinkHttp');\n effects.exit('literalAutolink');\n return ok(code);\n }\n}\n\n/**\n * `www` prefix.\n *\n * ```markdown\n * > | a www.example.org b\n * ^^^^\n * ```\n *\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeWwwPrefix(effects, ok, nok) {\n let size = 0;\n return wwwPrefixInside;\n\n /**\n * In www prefix.\n *\n * ```markdown\n * > | www.example.com\n * ^^^^\n * ```\n *\n * @type {State}\n */\n function wwwPrefixInside(code) {\n if ((code === 87 || code === 119) && size < 3) {\n size++;\n effects.consume(code);\n return wwwPrefixInside;\n }\n if (code === 46 && size === 3) {\n effects.consume(code);\n return wwwPrefixAfter;\n }\n return nok(code);\n }\n\n /**\n * After www prefix.\n *\n * ```markdown\n * > | www.example.com\n * ^\n * ```\n *\n * @type {State}\n */\n function wwwPrefixAfter(code) {\n // If there is *anything*, we can link.\n return code === null ? nok(code) : ok(code);\n }\n}\n\n/**\n * Domain.\n *\n * ```markdown\n * > | a https://example.org b\n * ^^^^^^^^^^^\n * ```\n *\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeDomain(effects, ok, nok) {\n /** @type {boolean | undefined} */\n let underscoreInLastSegment;\n /** @type {boolean | undefined} */\n let underscoreInLastLastSegment;\n /** @type {boolean | undefined} */\n let seen;\n return domainInside;\n\n /**\n * In domain.\n *\n * ```markdown\n * > | https://example.com/a\n * ^^^^^^^^^^^\n * ```\n *\n * @type {State}\n */\n function domainInside(code) {\n // Check whether this marker, which is a trailing punctuation\n // marker, optionally followed by more trailing markers, and then\n // followed by an end.\n if (code === 46 || code === 95) {\n return effects.check(trail, domainAfter, domainAtPunctuation)(code);\n }\n\n // GH documents that only alphanumerics (other than `-`, `.`, and `_`) can\n // occur, which sounds like ASCII only, but they also support `www.點看.com`,\n // so that’s Unicode.\n // Instead of some new production for Unicode alphanumerics, markdown\n // already has that for Unicode punctuation and whitespace, so use those.\n // Source: .\n if (code === null || markdownLineEndingOrSpace(code) || unicodeWhitespace(code) || code !== 45 && unicodePunctuation(code)) {\n return domainAfter(code);\n }\n seen = true;\n effects.consume(code);\n return domainInside;\n }\n\n /**\n * In domain, at potential trailing punctuation, that was not trailing.\n *\n * ```markdown\n * > | https://example.com\n * ^\n * ```\n *\n * @type {State}\n */\n function domainAtPunctuation(code) {\n // There is an underscore in the last segment of the domain\n if (code === 95) {\n underscoreInLastSegment = true;\n }\n // Otherwise, it’s a `.`: save the last segment underscore in the\n // penultimate segment slot.\n else {\n underscoreInLastLastSegment = underscoreInLastSegment;\n underscoreInLastSegment = undefined;\n }\n effects.consume(code);\n return domainInside;\n }\n\n /**\n * After domain.\n *\n * ```markdown\n * > | https://example.com/a\n * ^\n * ```\n *\n * @type {State} */\n function domainAfter(code) {\n // Note: that’s GH says a dot is needed, but it’s not true:\n // \n if (underscoreInLastLastSegment || underscoreInLastSegment || !seen) {\n return nok(code);\n }\n return ok(code);\n }\n}\n\n/**\n * Path.\n *\n * ```markdown\n * > | a https://example.org/stuff b\n * ^^^^^^\n * ```\n *\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizePath(effects, ok) {\n let sizeOpen = 0;\n let sizeClose = 0;\n return pathInside;\n\n /**\n * In path.\n *\n * ```markdown\n * > | https://example.com/a\n * ^^\n * ```\n *\n * @type {State}\n */\n function pathInside(code) {\n if (code === 40) {\n sizeOpen++;\n effects.consume(code);\n return pathInside;\n }\n\n // To do: `markdown-rs` also needs this.\n // If this is a paren, and there are less closings than openings,\n // we don’t check for a trail.\n if (code === 41 && sizeClose < sizeOpen) {\n return pathAtPunctuation(code);\n }\n\n // Check whether this trailing punctuation marker is optionally\n // followed by more trailing markers, and then followed\n // by an end.\n if (code === 33 || code === 34 || code === 38 || code === 39 || code === 41 || code === 42 || code === 44 || code === 46 || code === 58 || code === 59 || code === 60 || code === 63 || code === 93 || code === 95 || code === 126) {\n return effects.check(trail, ok, pathAtPunctuation)(code);\n }\n if (code === null || markdownLineEndingOrSpace(code) || unicodeWhitespace(code)) {\n return ok(code);\n }\n effects.consume(code);\n return pathInside;\n }\n\n /**\n * In path, at potential trailing punctuation, that was not trailing.\n *\n * ```markdown\n * > | https://example.com/a\"b\n * ^\n * ```\n *\n * @type {State}\n */\n function pathAtPunctuation(code) {\n // Count closing parens.\n if (code === 41) {\n sizeClose++;\n }\n effects.consume(code);\n return pathInside;\n }\n}\n\n/**\n * Trail.\n *\n * This calls `ok` if this *is* the trail, followed by an end, which means\n * the entire trail is not part of the link.\n * It calls `nok` if this *is* part of the link.\n *\n * ```markdown\n * > | https://example.com\").\n * ^^^\n * ```\n *\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeTrail(effects, ok, nok) {\n return trail;\n\n /**\n * In trail of domain or path.\n *\n * ```markdown\n * > | https://example.com\").\n * ^\n * ```\n *\n * @type {State}\n */\n function trail(code) {\n // Regular trailing punctuation.\n if (code === 33 || code === 34 || code === 39 || code === 41 || code === 42 || code === 44 || code === 46 || code === 58 || code === 59 || code === 63 || code === 95 || code === 126) {\n effects.consume(code);\n return trail;\n }\n\n // `&` followed by one or more alphabeticals and then a `;`, is\n // as a whole considered as trailing punctuation.\n // In all other cases, it is considered as continuation of the URL.\n if (code === 38) {\n effects.consume(code);\n return trailCharacterReferenceStart;\n }\n\n // Needed because we allow literals after `[`, as we fix:\n // .\n // Check that it is not followed by `(` or `[`.\n if (code === 93) {\n effects.consume(code);\n return trailBracketAfter;\n }\n if (\n // `<` is an end.\n code === 60 ||\n // So is whitespace.\n code === null || markdownLineEndingOrSpace(code) || unicodeWhitespace(code)) {\n return ok(code);\n }\n return nok(code);\n }\n\n /**\n * In trail, after `]`.\n *\n * > 👉 **Note**: this deviates from `cmark-gfm` to fix a bug.\n * > See end of for more.\n *\n * ```markdown\n * > | https://example.com](\n * ^\n * ```\n *\n * @type {State}\n */\n function trailBracketAfter(code) {\n // Whitespace or something that could start a resource or reference is the end.\n // Switch back to trail otherwise.\n if (code === null || code === 40 || code === 91 || markdownLineEndingOrSpace(code) || unicodeWhitespace(code)) {\n return ok(code);\n }\n return trail(code);\n }\n\n /**\n * In character-reference like trail, after `&`.\n *\n * ```markdown\n * > | https://example.com&).\n * ^\n * ```\n *\n * @type {State}\n */\n function trailCharacterReferenceStart(code) {\n // When non-alpha, it’s not a trail.\n return asciiAlpha(code) ? trailCharacterReferenceInside(code) : nok(code);\n }\n\n /**\n * In character-reference like trail.\n *\n * ```markdown\n * > | https://example.com&).\n * ^\n * ```\n *\n * @type {State}\n */\n function trailCharacterReferenceInside(code) {\n // Switch back to trail if this is well-formed.\n if (code === 59) {\n effects.consume(code);\n return trail;\n }\n if (asciiAlpha(code)) {\n effects.consume(code);\n return trailCharacterReferenceInside;\n }\n\n // It’s not a trail.\n return nok(code);\n }\n}\n\n/**\n * Dot in email domain trail.\n *\n * This calls `ok` if this *is* the trail, followed by an end, which means\n * the trail is not part of the link.\n * It calls `nok` if this *is* part of the link.\n *\n * ```markdown\n * > | contact@example.org.\n * ^\n * ```\n *\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeEmailDomainDotTrail(effects, ok, nok) {\n return start;\n\n /**\n * Dot.\n *\n * ```markdown\n * > | contact@example.org.\n * ^ ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n // Must be dot.\n effects.consume(code);\n return after;\n }\n\n /**\n * After dot.\n *\n * ```markdown\n * > | contact@example.org.\n * ^ ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n // Not a trail if alphanumeric.\n return asciiAlphanumeric(code) ? nok(code) : ok(code);\n }\n}\n\n/**\n * See:\n * .\n *\n * @type {Previous}\n */\nfunction previousWww(code) {\n return code === null || code === 40 || code === 42 || code === 95 || code === 91 || code === 93 || code === 126 || markdownLineEndingOrSpace(code);\n}\n\n/**\n * See:\n * .\n *\n * @type {Previous}\n */\nfunction previousProtocol(code) {\n return !asciiAlpha(code);\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Previous}\n */\nfunction previousEmail(code) {\n // Do not allow a slash “inside” atext.\n // The reference code is a bit weird, but that’s what it results in.\n // Source: .\n // Other than slash, every preceding character is allowed.\n return !(code === 47 || gfmAtext(code));\n}\n\n/**\n * @param {Code} code\n * @returns {boolean}\n */\nfunction gfmAtext(code) {\n return code === 43 || code === 45 || code === 46 || code === 95 || asciiAlphanumeric(code);\n}\n\n/**\n * @param {Array} events\n * @returns {boolean}\n */\nfunction previousUnbalanced(events) {\n let index = events.length;\n let result = false;\n while (index--) {\n const token = events[index][1];\n if ((token.type === 'labelLink' || token.type === 'labelImage') && !token._balanced) {\n result = true;\n break;\n }\n\n // If we’ve seen this token, and it was marked as not having any unbalanced\n // bracket before it, we can exit.\n if (token._gfmAutolinkLiteralWalkedInto) {\n result = false;\n break;\n }\n }\n if (events.length > 0 && !result) {\n // Mark the last token as “walked into” w/o finding\n // anything.\n events[events.length - 1][1]._gfmAutolinkLiteralWalkedInto = true;\n }\n return result;\n}","/**\n * @import {Event, Exiter, Extension, Resolver, State, Token, TokenizeContext, Tokenizer} from 'micromark-util-types'\n */\n\nimport { blankLine } from 'micromark-core-commonmark';\nimport { factorySpace } from 'micromark-factory-space';\nimport { markdownLineEndingOrSpace } from 'micromark-util-character';\nimport { normalizeIdentifier } from 'micromark-util-normalize-identifier';\nconst indent = {\n tokenize: tokenizeIndent,\n partial: true\n};\n\n// To do: micromark should support a `_hiddenGfmFootnoteSupport`, which only\n// affects label start (image).\n// That will let us drop `tokenizePotentialGfmFootnote*`.\n// It currently has a `_hiddenFootnoteSupport`, which affects that and more.\n// That can be removed when `micromark-extension-footnote` is archived.\n\n/**\n * Create an extension for `micromark` to enable GFM footnote syntax.\n *\n * @returns {Extension}\n * Extension for `micromark` that can be passed in `extensions` to\n * enable GFM footnote syntax.\n */\nexport function gfmFootnote() {\n /** @type {Extension} */\n return {\n document: {\n [91]: {\n name: 'gfmFootnoteDefinition',\n tokenize: tokenizeDefinitionStart,\n continuation: {\n tokenize: tokenizeDefinitionContinuation\n },\n exit: gfmFootnoteDefinitionEnd\n }\n },\n text: {\n [91]: {\n name: 'gfmFootnoteCall',\n tokenize: tokenizeGfmFootnoteCall\n },\n [93]: {\n name: 'gfmPotentialFootnoteCall',\n add: 'after',\n tokenize: tokenizePotentialGfmFootnoteCall,\n resolveTo: resolveToPotentialGfmFootnoteCall\n }\n }\n };\n}\n\n// To do: remove after micromark update.\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizePotentialGfmFootnoteCall(effects, ok, nok) {\n const self = this;\n let index = self.events.length;\n const defined = self.parser.gfmFootnotes || (self.parser.gfmFootnotes = []);\n /** @type {Token} */\n let labelStart;\n\n // Find an opening.\n while (index--) {\n const token = self.events[index][1];\n if (token.type === \"labelImage\") {\n labelStart = token;\n break;\n }\n\n // Exit if we’ve walked far enough.\n if (token.type === 'gfmFootnoteCall' || token.type === \"labelLink\" || token.type === \"label\" || token.type === \"image\" || token.type === \"link\") {\n break;\n }\n }\n return start;\n\n /**\n * @type {State}\n */\n function start(code) {\n if (!labelStart || !labelStart._balanced) {\n return nok(code);\n }\n const id = normalizeIdentifier(self.sliceSerialize({\n start: labelStart.end,\n end: self.now()\n }));\n if (id.codePointAt(0) !== 94 || !defined.includes(id.slice(1))) {\n return nok(code);\n }\n effects.enter('gfmFootnoteCallLabelMarker');\n effects.consume(code);\n effects.exit('gfmFootnoteCallLabelMarker');\n return ok(code);\n }\n}\n\n// To do: remove after micromark update.\n/** @type {Resolver} */\nfunction resolveToPotentialGfmFootnoteCall(events, context) {\n let index = events.length;\n /** @type {Token | undefined} */\n let labelStart;\n\n // Find an opening.\n while (index--) {\n if (events[index][1].type === \"labelImage\" && events[index][0] === 'enter') {\n labelStart = events[index][1];\n break;\n }\n }\n // Change the `labelImageMarker` to a `data`.\n events[index + 1][1].type = \"data\";\n events[index + 3][1].type = 'gfmFootnoteCallLabelMarker';\n\n // The whole (without `!`):\n /** @type {Token} */\n const call = {\n type: 'gfmFootnoteCall',\n start: Object.assign({}, events[index + 3][1].start),\n end: Object.assign({}, events[events.length - 1][1].end)\n };\n // The `^` marker\n /** @type {Token} */\n const marker = {\n type: 'gfmFootnoteCallMarker',\n start: Object.assign({}, events[index + 3][1].end),\n end: Object.assign({}, events[index + 3][1].end)\n };\n // Increment the end 1 character.\n marker.end.column++;\n marker.end.offset++;\n marker.end._bufferIndex++;\n /** @type {Token} */\n const string = {\n type: 'gfmFootnoteCallString',\n start: Object.assign({}, marker.end),\n end: Object.assign({}, events[events.length - 1][1].start)\n };\n /** @type {Token} */\n const chunk = {\n type: \"chunkString\",\n contentType: 'string',\n start: Object.assign({}, string.start),\n end: Object.assign({}, string.end)\n };\n\n /** @type {Array} */\n const replacement = [\n // Take the `labelImageMarker` (now `data`, the `!`)\n events[index + 1], events[index + 2], ['enter', call, context],\n // The `[`\n events[index + 3], events[index + 4],\n // The `^`.\n ['enter', marker, context], ['exit', marker, context],\n // Everything in between.\n ['enter', string, context], ['enter', chunk, context], ['exit', chunk, context], ['exit', string, context],\n // The ending (`]`, properly parsed and labelled).\n events[events.length - 2], events[events.length - 1], ['exit', call, context]];\n events.splice(index, events.length - index + 1, ...replacement);\n return events;\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeGfmFootnoteCall(effects, ok, nok) {\n const self = this;\n const defined = self.parser.gfmFootnotes || (self.parser.gfmFootnotes = []);\n let size = 0;\n /** @type {boolean} */\n let data;\n\n // Note: the implementation of `markdown-rs` is different, because it houses\n // core *and* extensions in one project.\n // Therefore, it can include footnote logic inside `label-end`.\n // We can’t do that, but luckily, we can parse footnotes in a simpler way than\n // needed for labels.\n return start;\n\n /**\n * Start of footnote label.\n *\n * ```markdown\n * > | a [^b] c\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter('gfmFootnoteCall');\n effects.enter('gfmFootnoteCallLabelMarker');\n effects.consume(code);\n effects.exit('gfmFootnoteCallLabelMarker');\n return callStart;\n }\n\n /**\n * After `[`, at `^`.\n *\n * ```markdown\n * > | a [^b] c\n * ^\n * ```\n *\n * @type {State}\n */\n function callStart(code) {\n if (code !== 94) return nok(code);\n effects.enter('gfmFootnoteCallMarker');\n effects.consume(code);\n effects.exit('gfmFootnoteCallMarker');\n effects.enter('gfmFootnoteCallString');\n effects.enter('chunkString').contentType = 'string';\n return callData;\n }\n\n /**\n * In label.\n *\n * ```markdown\n * > | a [^b] c\n * ^\n * ```\n *\n * @type {State}\n */\n function callData(code) {\n if (\n // Too long.\n size > 999 ||\n // Closing brace with nothing.\n code === 93 && !data ||\n // Space or tab is not supported by GFM for some reason.\n // `\\n` and `[` not being supported makes sense.\n code === null || code === 91 || markdownLineEndingOrSpace(code)) {\n return nok(code);\n }\n if (code === 93) {\n effects.exit('chunkString');\n const token = effects.exit('gfmFootnoteCallString');\n if (!defined.includes(normalizeIdentifier(self.sliceSerialize(token)))) {\n return nok(code);\n }\n effects.enter('gfmFootnoteCallLabelMarker');\n effects.consume(code);\n effects.exit('gfmFootnoteCallLabelMarker');\n effects.exit('gfmFootnoteCall');\n return ok;\n }\n if (!markdownLineEndingOrSpace(code)) {\n data = true;\n }\n size++;\n effects.consume(code);\n return code === 92 ? callEscape : callData;\n }\n\n /**\n * On character after escape.\n *\n * ```markdown\n * > | a [^b\\c] d\n * ^\n * ```\n *\n * @type {State}\n */\n function callEscape(code) {\n if (code === 91 || code === 92 || code === 93) {\n effects.consume(code);\n size++;\n return callData;\n }\n return callData(code);\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeDefinitionStart(effects, ok, nok) {\n const self = this;\n const defined = self.parser.gfmFootnotes || (self.parser.gfmFootnotes = []);\n /** @type {string} */\n let identifier;\n let size = 0;\n /** @type {boolean | undefined} */\n let data;\n return start;\n\n /**\n * Start of GFM footnote definition.\n *\n * ```markdown\n * > | [^a]: b\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter('gfmFootnoteDefinition')._container = true;\n effects.enter('gfmFootnoteDefinitionLabel');\n effects.enter('gfmFootnoteDefinitionLabelMarker');\n effects.consume(code);\n effects.exit('gfmFootnoteDefinitionLabelMarker');\n return labelAtMarker;\n }\n\n /**\n * In label, at caret.\n *\n * ```markdown\n * > | [^a]: b\n * ^\n * ```\n *\n * @type {State}\n */\n function labelAtMarker(code) {\n if (code === 94) {\n effects.enter('gfmFootnoteDefinitionMarker');\n effects.consume(code);\n effects.exit('gfmFootnoteDefinitionMarker');\n effects.enter('gfmFootnoteDefinitionLabelString');\n effects.enter('chunkString').contentType = 'string';\n return labelInside;\n }\n return nok(code);\n }\n\n /**\n * In label.\n *\n * > 👉 **Note**: `cmark-gfm` prevents whitespace from occurring in footnote\n * > definition labels.\n *\n * ```markdown\n * > | [^a]: b\n * ^\n * ```\n *\n * @type {State}\n */\n function labelInside(code) {\n if (\n // Too long.\n size > 999 ||\n // Closing brace with nothing.\n code === 93 && !data ||\n // Space or tab is not supported by GFM for some reason.\n // `\\n` and `[` not being supported makes sense.\n code === null || code === 91 || markdownLineEndingOrSpace(code)) {\n return nok(code);\n }\n if (code === 93) {\n effects.exit('chunkString');\n const token = effects.exit('gfmFootnoteDefinitionLabelString');\n identifier = normalizeIdentifier(self.sliceSerialize(token));\n effects.enter('gfmFootnoteDefinitionLabelMarker');\n effects.consume(code);\n effects.exit('gfmFootnoteDefinitionLabelMarker');\n effects.exit('gfmFootnoteDefinitionLabel');\n return labelAfter;\n }\n if (!markdownLineEndingOrSpace(code)) {\n data = true;\n }\n size++;\n effects.consume(code);\n return code === 92 ? labelEscape : labelInside;\n }\n\n /**\n * After `\\`, at a special character.\n *\n * > 👉 **Note**: `cmark-gfm` currently does not support escaped brackets:\n * > \n *\n * ```markdown\n * > | [^a\\*b]: c\n * ^\n * ```\n *\n * @type {State}\n */\n function labelEscape(code) {\n if (code === 91 || code === 92 || code === 93) {\n effects.consume(code);\n size++;\n return labelInside;\n }\n return labelInside(code);\n }\n\n /**\n * After definition label.\n *\n * ```markdown\n * > | [^a]: b\n * ^\n * ```\n *\n * @type {State}\n */\n function labelAfter(code) {\n if (code === 58) {\n effects.enter('definitionMarker');\n effects.consume(code);\n effects.exit('definitionMarker');\n if (!defined.includes(identifier)) {\n defined.push(identifier);\n }\n\n // Any whitespace after the marker is eaten, forming indented code\n // is not possible.\n // No space is also fine, just like a block quote marker.\n return factorySpace(effects, whitespaceAfter, 'gfmFootnoteDefinitionWhitespace');\n }\n return nok(code);\n }\n\n /**\n * After definition prefix.\n *\n * ```markdown\n * > | [^a]: b\n * ^\n * ```\n *\n * @type {State}\n */\n function whitespaceAfter(code) {\n // `markdown-rs` has a wrapping token for the prefix that is closed here.\n return ok(code);\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeDefinitionContinuation(effects, ok, nok) {\n /// Start of footnote definition continuation.\n ///\n /// ```markdown\n /// | [^a]: b\n /// > | c\n /// ^\n /// ```\n //\n // Either a blank line, which is okay, or an indented thing.\n return effects.check(blankLine, ok, effects.attempt(indent, ok, nok));\n}\n\n/** @type {Exiter} */\nfunction gfmFootnoteDefinitionEnd(effects) {\n effects.exit('gfmFootnoteDefinition');\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeIndent(effects, ok, nok) {\n const self = this;\n return factorySpace(effects, afterPrefix, 'gfmFootnoteDefinitionIndent', 4 + 1);\n\n /**\n * @type {State}\n */\n function afterPrefix(code) {\n const tail = self.events[self.events.length - 1];\n return tail && tail[1].type === 'gfmFootnoteDefinitionIndent' && tail[2].sliceSerialize(tail[1], true).length === 4 ? ok(code) : nok(code);\n }\n}","/**\n * @import {Options} from 'micromark-extension-gfm-strikethrough'\n * @import {Event, Extension, Resolver, State, Token, TokenizeContext, Tokenizer} from 'micromark-util-types'\n */\n\nimport { splice } from 'micromark-util-chunked';\nimport { classifyCharacter } from 'micromark-util-classify-character';\nimport { resolveAll } from 'micromark-util-resolve-all';\n/**\n * Create an extension for `micromark` to enable GFM strikethrough syntax.\n *\n * @param {Options | null | undefined} [options={}]\n * Configuration.\n * @returns {Extension}\n * Extension for `micromark` that can be passed in `extensions`, to\n * enable GFM strikethrough syntax.\n */\nexport function gfmStrikethrough(options) {\n const options_ = options || {};\n let single = options_.singleTilde;\n const tokenizer = {\n name: 'strikethrough',\n tokenize: tokenizeStrikethrough,\n resolveAll: resolveAllStrikethrough\n };\n if (single === null || single === undefined) {\n single = true;\n }\n return {\n text: {\n [126]: tokenizer\n },\n insideSpan: {\n null: [tokenizer]\n },\n attentionMarkers: {\n null: [126]\n }\n };\n\n /**\n * Take events and resolve strikethrough.\n *\n * @type {Resolver}\n */\n function resolveAllStrikethrough(events, context) {\n let index = -1;\n\n // Walk through all events.\n while (++index < events.length) {\n // Find a token that can close.\n if (events[index][0] === 'enter' && events[index][1].type === 'strikethroughSequenceTemporary' && events[index][1]._close) {\n let open = index;\n\n // Now walk back to find an opener.\n while (open--) {\n // Find a token that can open the closer.\n if (events[open][0] === 'exit' && events[open][1].type === 'strikethroughSequenceTemporary' && events[open][1]._open &&\n // If the sizes are the same:\n events[index][1].end.offset - events[index][1].start.offset === events[open][1].end.offset - events[open][1].start.offset) {\n events[index][1].type = 'strikethroughSequence';\n events[open][1].type = 'strikethroughSequence';\n\n /** @type {Token} */\n const strikethrough = {\n type: 'strikethrough',\n start: Object.assign({}, events[open][1].start),\n end: Object.assign({}, events[index][1].end)\n };\n\n /** @type {Token} */\n const text = {\n type: 'strikethroughText',\n start: Object.assign({}, events[open][1].end),\n end: Object.assign({}, events[index][1].start)\n };\n\n // Opening.\n /** @type {Array} */\n const nextEvents = [['enter', strikethrough, context], ['enter', events[open][1], context], ['exit', events[open][1], context], ['enter', text, context]];\n const insideSpan = context.parser.constructs.insideSpan.null;\n if (insideSpan) {\n // Between.\n splice(nextEvents, nextEvents.length, 0, resolveAll(insideSpan, events.slice(open + 1, index), context));\n }\n\n // Closing.\n splice(nextEvents, nextEvents.length, 0, [['exit', text, context], ['enter', events[index][1], context], ['exit', events[index][1], context], ['exit', strikethrough, context]]);\n splice(events, open - 1, index - open + 3, nextEvents);\n index = open + nextEvents.length - 2;\n break;\n }\n }\n }\n }\n index = -1;\n while (++index < events.length) {\n if (events[index][1].type === 'strikethroughSequenceTemporary') {\n events[index][1].type = \"data\";\n }\n }\n return events;\n }\n\n /**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\n function tokenizeStrikethrough(effects, ok, nok) {\n const previous = this.previous;\n const events = this.events;\n let size = 0;\n return start;\n\n /** @type {State} */\n function start(code) {\n if (previous === 126 && events[events.length - 1][1].type !== \"characterEscape\") {\n return nok(code);\n }\n effects.enter('strikethroughSequenceTemporary');\n return more(code);\n }\n\n /** @type {State} */\n function more(code) {\n const before = classifyCharacter(previous);\n if (code === 126) {\n // If this is the third marker, exit.\n if (size > 1) return nok(code);\n effects.consume(code);\n size++;\n return more;\n }\n if (size < 2 && !single) return nok(code);\n const token = effects.exit('strikethroughSequenceTemporary');\n const after = classifyCharacter(code);\n token._open = !after || after === 2 && Boolean(before);\n token._close = !before || before === 2 && Boolean(after);\n return ok(code);\n }\n }\n}","/**\n * @import {Event} from 'micromark-util-types'\n */\n\n// Port of `edit_map.rs` from `markdown-rs`.\n// This should move to `markdown-js` later.\n\n// Deal with several changes in events, batching them together.\n//\n// Preferably, changes should be kept to a minimum.\n// Sometimes, it’s needed to change the list of events, because parsing can be\n// messy, and it helps to expose a cleaner interface of events to the compiler\n// and other users.\n// It can also help to merge many adjacent similar events.\n// And, in other cases, it’s needed to parse subcontent: pass some events\n// through another tokenizer and inject the result.\n\n/**\n * @typedef {[number, number, Array]} Change\n * @typedef {[number, number, number]} Jump\n */\n\n/**\n * Tracks a bunch of edits.\n */\nexport class EditMap {\n /**\n * Create a new edit map.\n */\n constructor() {\n /**\n * Record of changes.\n *\n * @type {Array}\n */\n this.map = [];\n }\n\n /**\n * Create an edit: a remove and/or add at a certain place.\n *\n * @param {number} index\n * @param {number} remove\n * @param {Array} add\n * @returns {undefined}\n */\n add(index, remove, add) {\n addImplementation(this, index, remove, add);\n }\n\n // To do: add this when moving to `micromark`.\n // /**\n // * Create an edit: but insert `add` before existing additions.\n // *\n // * @param {number} index\n // * @param {number} remove\n // * @param {Array} add\n // * @returns {undefined}\n // */\n // addBefore(index, remove, add) {\n // addImplementation(this, index, remove, add, true)\n // }\n\n /**\n * Done, change the events.\n *\n * @param {Array} events\n * @returns {undefined}\n */\n consume(events) {\n this.map.sort(function (a, b) {\n return a[0] - b[0];\n });\n\n /* c8 ignore next 3 -- `resolve` is never called without tables, so without edits. */\n if (this.map.length === 0) {\n return;\n }\n\n // To do: if links are added in events, like they are in `markdown-rs`,\n // this is needed.\n // // Calculate jumps: where items in the current list move to.\n // /** @type {Array} */\n // const jumps = []\n // let index = 0\n // let addAcc = 0\n // let removeAcc = 0\n // while (index < this.map.length) {\n // const [at, remove, add] = this.map[index]\n // removeAcc += remove\n // addAcc += add.length\n // jumps.push([at, removeAcc, addAcc])\n // index += 1\n // }\n //\n // . shiftLinks(events, jumps)\n\n let index = this.map.length;\n /** @type {Array>} */\n const vecs = [];\n while (index > 0) {\n index -= 1;\n vecs.push(events.slice(this.map[index][0] + this.map[index][1]), this.map[index][2]);\n\n // Truncate rest.\n events.length = this.map[index][0];\n }\n vecs.push([...events]);\n events.length = 0;\n let slice = vecs.pop();\n while (slice) {\n events.push(...slice);\n slice = vecs.pop();\n }\n\n // Truncate everything.\n this.map.length = 0;\n }\n}\n\n/**\n * Create an edit.\n *\n * @param {EditMap} editMap\n * @param {number} at\n * @param {number} remove\n * @param {Array} add\n * @returns {undefined}\n */\nfunction addImplementation(editMap, at, remove, add) {\n let index = 0;\n\n /* c8 ignore next 3 -- `resolve` is never called without tables, so without edits. */\n if (remove === 0 && add.length === 0) {\n return;\n }\n while (index < editMap.map.length) {\n if (editMap.map[index][0] === at) {\n editMap.map[index][1] += remove;\n\n // To do: before not used by tables, use when moving to micromark.\n // if (before) {\n // add.push(...editMap.map[index][2])\n // editMap.map[index][2] = add\n // } else {\n editMap.map[index][2].push(...add);\n // }\n\n return;\n }\n index += 1;\n }\n editMap.map.push([at, remove, add]);\n}\n\n// /**\n// * Shift `previous` and `next` links according to `jumps`.\n// *\n// * This fixes links in case there are events removed or added between them.\n// *\n// * @param {Array} events\n// * @param {Array} jumps\n// */\n// function shiftLinks(events, jumps) {\n// let jumpIndex = 0\n// let index = 0\n// let add = 0\n// let rm = 0\n\n// while (index < events.length) {\n// const rmCurr = rm\n\n// while (jumpIndex < jumps.length && jumps[jumpIndex][0] <= index) {\n// add = jumps[jumpIndex][2]\n// rm = jumps[jumpIndex][1]\n// jumpIndex += 1\n// }\n\n// // Ignore items that will be removed.\n// if (rm > rmCurr) {\n// index += rm - rmCurr\n// } else {\n// // ?\n// // if let Some(link) = &events[index].link {\n// // if let Some(next) = link.next {\n// // events[next].link.as_mut().unwrap().previous = Some(index + add - rm);\n// // while jumpIndex < jumps.len() && jumps[jumpIndex].0 <= next {\n// // add = jumps[jumpIndex].2;\n// // rm = jumps[jumpIndex].1;\n// // jumpIndex += 1;\n// // }\n// // events[index].link.as_mut().unwrap().next = Some(next + add - rm);\n// // index = next;\n// // continue;\n// // }\n// // }\n// index += 1\n// }\n// }\n// }","/**\n * @import {Event} from 'micromark-util-types'\n */\n\n/**\n * @typedef {'center' | 'left' | 'none' | 'right'} Align\n */\n\n/**\n * Figure out the alignment of a GFM table.\n *\n * @param {Readonly>} events\n * List of events.\n * @param {number} index\n * Table enter event.\n * @returns {Array}\n * List of aligns.\n */\nexport function gfmTableAlign(events, index) {\n let inDelimiterRow = false;\n /** @type {Array} */\n const align = [];\n while (index < events.length) {\n const event = events[index];\n if (inDelimiterRow) {\n if (event[0] === 'enter') {\n // Start of alignment value: set a new column.\n // To do: `markdown-rs` uses `tableDelimiterCellValue`.\n if (event[1].type === 'tableContent') {\n align.push(events[index + 1][1].type === 'tableDelimiterMarker' ? 'left' : 'none');\n }\n }\n // Exits:\n // End of alignment value: change the column.\n // To do: `markdown-rs` uses `tableDelimiterCellValue`.\n else if (event[1].type === 'tableContent') {\n if (events[index - 1][1].type === 'tableDelimiterMarker') {\n const alignIndex = align.length - 1;\n align[alignIndex] = align[alignIndex] === 'left' ? 'center' : 'right';\n }\n }\n // Done!\n else if (event[1].type === 'tableDelimiterRow') {\n break;\n }\n } else if (event[0] === 'enter' && event[1].type === 'tableDelimiterRow') {\n inDelimiterRow = true;\n }\n index += 1;\n }\n return align;\n}","/**\n * @import {Event, Extension, Point, Resolver, State, Token, TokenizeContext, Tokenizer} from 'micromark-util-types'\n */\n\n/**\n * @typedef {[number, number, number, number]} Range\n * Cell info.\n *\n * @typedef {0 | 1 | 2 | 3} RowKind\n * Where we are: `1` for head row, `2` for delimiter row, `3` for body row.\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { markdownLineEnding, markdownLineEndingOrSpace, markdownSpace } from 'micromark-util-character';\nimport { EditMap } from './edit-map.js';\nimport { gfmTableAlign } from './infer.js';\n\n/**\n * Create an HTML extension for `micromark` to support GitHub tables syntax.\n *\n * @returns {Extension}\n * Extension for `micromark` that can be passed in `extensions` to enable GFM\n * table syntax.\n */\nexport function gfmTable() {\n return {\n flow: {\n null: {\n name: 'table',\n tokenize: tokenizeTable,\n resolveAll: resolveTable\n }\n }\n };\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeTable(effects, ok, nok) {\n const self = this;\n let size = 0;\n let sizeB = 0;\n /** @type {boolean | undefined} */\n let seen;\n return start;\n\n /**\n * Start of a GFM table.\n *\n * If there is a valid table row or table head before, then we try to parse\n * another row.\n * Otherwise, we try to parse a head.\n *\n * ```markdown\n * > | | a |\n * ^\n * | | - |\n * > | | b |\n * ^\n * ```\n * @type {State}\n */\n function start(code) {\n let index = self.events.length - 1;\n while (index > -1) {\n const type = self.events[index][1].type;\n if (type === \"lineEnding\" ||\n // Note: markdown-rs uses `whitespace` instead of `linePrefix`\n type === \"linePrefix\") index--;else break;\n }\n const tail = index > -1 ? self.events[index][1].type : null;\n const next = tail === 'tableHead' || tail === 'tableRow' ? bodyRowStart : headRowBefore;\n\n // Don’t allow lazy body rows.\n if (next === bodyRowStart && self.parser.lazy[self.now().line]) {\n return nok(code);\n }\n return next(code);\n }\n\n /**\n * Before table head row.\n *\n * ```markdown\n * > | | a |\n * ^\n * | | - |\n * | | b |\n * ```\n *\n * @type {State}\n */\n function headRowBefore(code) {\n effects.enter('tableHead');\n effects.enter('tableRow');\n return headRowStart(code);\n }\n\n /**\n * Before table head row, after whitespace.\n *\n * ```markdown\n * > | | a |\n * ^\n * | | - |\n * | | b |\n * ```\n *\n * @type {State}\n */\n function headRowStart(code) {\n if (code === 124) {\n return headRowBreak(code);\n }\n\n // To do: micromark-js should let us parse our own whitespace in extensions,\n // like `markdown-rs`:\n //\n // ```js\n // // 4+ spaces.\n // if (markdownSpace(code)) {\n // return nok(code)\n // }\n // ```\n\n seen = true;\n // Count the first character, that isn’t a pipe, double.\n sizeB += 1;\n return headRowBreak(code);\n }\n\n /**\n * At break in table head row.\n *\n * ```markdown\n * > | | a |\n * ^\n * ^\n * ^\n * | | - |\n * | | b |\n * ```\n *\n * @type {State}\n */\n function headRowBreak(code) {\n if (code === null) {\n // Note: in `markdown-rs`, we need to reset, in `micromark-js` we don‘t.\n return nok(code);\n }\n if (markdownLineEnding(code)) {\n // If anything other than one pipe (ignoring whitespace) was used, it’s fine.\n if (sizeB > 1) {\n sizeB = 0;\n // To do: check if this works.\n // Feel free to interrupt:\n self.interrupt = true;\n effects.exit('tableRow');\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n return headDelimiterStart;\n }\n\n // Note: in `markdown-rs`, we need to reset, in `micromark-js` we don‘t.\n return nok(code);\n }\n if (markdownSpace(code)) {\n // To do: check if this is fine.\n // effects.attempt(State::Next(StateName::GfmTableHeadRowBreak), State::Nok)\n // State::Retry(space_or_tab(tokenizer))\n return factorySpace(effects, headRowBreak, \"whitespace\")(code);\n }\n sizeB += 1;\n if (seen) {\n seen = false;\n // Header cell count.\n size += 1;\n }\n if (code === 124) {\n effects.enter('tableCellDivider');\n effects.consume(code);\n effects.exit('tableCellDivider');\n // Whether a delimiter was seen.\n seen = true;\n return headRowBreak;\n }\n\n // Anything else is cell data.\n effects.enter(\"data\");\n return headRowData(code);\n }\n\n /**\n * In table head row data.\n *\n * ```markdown\n * > | | a |\n * ^\n * | | - |\n * | | b |\n * ```\n *\n * @type {State}\n */\n function headRowData(code) {\n if (code === null || code === 124 || markdownLineEndingOrSpace(code)) {\n effects.exit(\"data\");\n return headRowBreak(code);\n }\n effects.consume(code);\n return code === 92 ? headRowEscape : headRowData;\n }\n\n /**\n * In table head row escape.\n *\n * ```markdown\n * > | | a\\-b |\n * ^\n * | | ---- |\n * | | c |\n * ```\n *\n * @type {State}\n */\n function headRowEscape(code) {\n if (code === 92 || code === 124) {\n effects.consume(code);\n return headRowData;\n }\n return headRowData(code);\n }\n\n /**\n * Before delimiter row.\n *\n * ```markdown\n * | | a |\n * > | | - |\n * ^\n * | | b |\n * ```\n *\n * @type {State}\n */\n function headDelimiterStart(code) {\n // Reset `interrupt`.\n self.interrupt = false;\n\n // Note: in `markdown-rs`, we need to handle piercing here too.\n if (self.parser.lazy[self.now().line]) {\n return nok(code);\n }\n effects.enter('tableDelimiterRow');\n // Track if we’ve seen a `:` or `|`.\n seen = false;\n if (markdownSpace(code)) {\n return factorySpace(effects, headDelimiterBefore, \"linePrefix\", self.parser.constructs.disable.null.includes('codeIndented') ? undefined : 4)(code);\n }\n return headDelimiterBefore(code);\n }\n\n /**\n * Before delimiter row, after optional whitespace.\n *\n * Reused when a `|` is found later, to parse another cell.\n *\n * ```markdown\n * | | a |\n * > | | - |\n * ^\n * | | b |\n * ```\n *\n * @type {State}\n */\n function headDelimiterBefore(code) {\n if (code === 45 || code === 58) {\n return headDelimiterValueBefore(code);\n }\n if (code === 124) {\n seen = true;\n // If we start with a pipe, we open a cell marker.\n effects.enter('tableCellDivider');\n effects.consume(code);\n effects.exit('tableCellDivider');\n return headDelimiterCellBefore;\n }\n\n // More whitespace / empty row not allowed at start.\n return headDelimiterNok(code);\n }\n\n /**\n * After `|`, before delimiter cell.\n *\n * ```markdown\n * | | a |\n * > | | - |\n * ^\n * ```\n *\n * @type {State}\n */\n function headDelimiterCellBefore(code) {\n if (markdownSpace(code)) {\n return factorySpace(effects, headDelimiterValueBefore, \"whitespace\")(code);\n }\n return headDelimiterValueBefore(code);\n }\n\n /**\n * Before delimiter cell value.\n *\n * ```markdown\n * | | a |\n * > | | - |\n * ^\n * ```\n *\n * @type {State}\n */\n function headDelimiterValueBefore(code) {\n // Align: left.\n if (code === 58) {\n sizeB += 1;\n seen = true;\n effects.enter('tableDelimiterMarker');\n effects.consume(code);\n effects.exit('tableDelimiterMarker');\n return headDelimiterLeftAlignmentAfter;\n }\n\n // Align: none.\n if (code === 45) {\n sizeB += 1;\n // To do: seems weird that this *isn’t* left aligned, but that state is used?\n return headDelimiterLeftAlignmentAfter(code);\n }\n if (code === null || markdownLineEnding(code)) {\n return headDelimiterCellAfter(code);\n }\n return headDelimiterNok(code);\n }\n\n /**\n * After delimiter cell left alignment marker.\n *\n * ```markdown\n * | | a |\n * > | | :- |\n * ^\n * ```\n *\n * @type {State}\n */\n function headDelimiterLeftAlignmentAfter(code) {\n if (code === 45) {\n effects.enter('tableDelimiterFiller');\n return headDelimiterFiller(code);\n }\n\n // Anything else is not ok after the left-align colon.\n return headDelimiterNok(code);\n }\n\n /**\n * In delimiter cell filler.\n *\n * ```markdown\n * | | a |\n * > | | - |\n * ^\n * ```\n *\n * @type {State}\n */\n function headDelimiterFiller(code) {\n if (code === 45) {\n effects.consume(code);\n return headDelimiterFiller;\n }\n\n // Align is `center` if it was `left`, `right` otherwise.\n if (code === 58) {\n seen = true;\n effects.exit('tableDelimiterFiller');\n effects.enter('tableDelimiterMarker');\n effects.consume(code);\n effects.exit('tableDelimiterMarker');\n return headDelimiterRightAlignmentAfter;\n }\n effects.exit('tableDelimiterFiller');\n return headDelimiterRightAlignmentAfter(code);\n }\n\n /**\n * After delimiter cell right alignment marker.\n *\n * ```markdown\n * | | a |\n * > | | -: |\n * ^\n * ```\n *\n * @type {State}\n */\n function headDelimiterRightAlignmentAfter(code) {\n if (markdownSpace(code)) {\n return factorySpace(effects, headDelimiterCellAfter, \"whitespace\")(code);\n }\n return headDelimiterCellAfter(code);\n }\n\n /**\n * After delimiter cell.\n *\n * ```markdown\n * | | a |\n * > | | -: |\n * ^\n * ```\n *\n * @type {State}\n */\n function headDelimiterCellAfter(code) {\n if (code === 124) {\n return headDelimiterBefore(code);\n }\n if (code === null || markdownLineEnding(code)) {\n // Exit when:\n // * there was no `:` or `|` at all (it’s a thematic break or setext\n // underline instead)\n // * the header cell count is not the delimiter cell count\n if (!seen || size !== sizeB) {\n return headDelimiterNok(code);\n }\n\n // Note: in markdown-rs`, a reset is needed here.\n effects.exit('tableDelimiterRow');\n effects.exit('tableHead');\n // To do: in `markdown-rs`, resolvers need to be registered manually.\n // effects.register_resolver(ResolveName::GfmTable)\n return ok(code);\n }\n return headDelimiterNok(code);\n }\n\n /**\n * In delimiter row, at a disallowed byte.\n *\n * ```markdown\n * | | a |\n * > | | x |\n * ^\n * ```\n *\n * @type {State}\n */\n function headDelimiterNok(code) {\n // Note: in `markdown-rs`, we need to reset, in `micromark-js` we don‘t.\n return nok(code);\n }\n\n /**\n * Before table body row.\n *\n * ```markdown\n * | | a |\n * | | - |\n * > | | b |\n * ^\n * ```\n *\n * @type {State}\n */\n function bodyRowStart(code) {\n // Note: in `markdown-rs` we need to manually take care of a prefix,\n // but in `micromark-js` that is done for us, so if we’re here, we’re\n // never at whitespace.\n effects.enter('tableRow');\n return bodyRowBreak(code);\n }\n\n /**\n * At break in table body row.\n *\n * ```markdown\n * | | a |\n * | | - |\n * > | | b |\n * ^\n * ^\n * ^\n * ```\n *\n * @type {State}\n */\n function bodyRowBreak(code) {\n if (code === 124) {\n effects.enter('tableCellDivider');\n effects.consume(code);\n effects.exit('tableCellDivider');\n return bodyRowBreak;\n }\n if (code === null || markdownLineEnding(code)) {\n effects.exit('tableRow');\n return ok(code);\n }\n if (markdownSpace(code)) {\n return factorySpace(effects, bodyRowBreak, \"whitespace\")(code);\n }\n\n // Anything else is cell content.\n effects.enter(\"data\");\n return bodyRowData(code);\n }\n\n /**\n * In table body row data.\n *\n * ```markdown\n * | | a |\n * | | - |\n * > | | b |\n * ^\n * ```\n *\n * @type {State}\n */\n function bodyRowData(code) {\n if (code === null || code === 124 || markdownLineEndingOrSpace(code)) {\n effects.exit(\"data\");\n return bodyRowBreak(code);\n }\n effects.consume(code);\n return code === 92 ? bodyRowEscape : bodyRowData;\n }\n\n /**\n * In table body row escape.\n *\n * ```markdown\n * | | a |\n * | | ---- |\n * > | | b\\-c |\n * ^\n * ```\n *\n * @type {State}\n */\n function bodyRowEscape(code) {\n if (code === 92 || code === 124) {\n effects.consume(code);\n return bodyRowData;\n }\n return bodyRowData(code);\n }\n}\n\n/** @type {Resolver} */\n\nfunction resolveTable(events, context) {\n let index = -1;\n let inFirstCellAwaitingPipe = true;\n /** @type {RowKind} */\n let rowKind = 0;\n /** @type {Range} */\n let lastCell = [0, 0, 0, 0];\n /** @type {Range} */\n let cell = [0, 0, 0, 0];\n let afterHeadAwaitingFirstBodyRow = false;\n let lastTableEnd = 0;\n /** @type {Token | undefined} */\n let currentTable;\n /** @type {Token | undefined} */\n let currentBody;\n /** @type {Token | undefined} */\n let currentCell;\n const map = new EditMap();\n while (++index < events.length) {\n const event = events[index];\n const token = event[1];\n if (event[0] === 'enter') {\n // Start of head.\n if (token.type === 'tableHead') {\n afterHeadAwaitingFirstBodyRow = false;\n\n // Inject previous (body end and) table end.\n if (lastTableEnd !== 0) {\n flushTableEnd(map, context, lastTableEnd, currentTable, currentBody);\n currentBody = undefined;\n lastTableEnd = 0;\n }\n\n // Inject table start.\n currentTable = {\n type: 'table',\n start: Object.assign({}, token.start),\n // Note: correct end is set later.\n end: Object.assign({}, token.end)\n };\n map.add(index, 0, [['enter', currentTable, context]]);\n } else if (token.type === 'tableRow' || token.type === 'tableDelimiterRow') {\n inFirstCellAwaitingPipe = true;\n currentCell = undefined;\n lastCell = [0, 0, 0, 0];\n cell = [0, index + 1, 0, 0];\n\n // Inject table body start.\n if (afterHeadAwaitingFirstBodyRow) {\n afterHeadAwaitingFirstBodyRow = false;\n currentBody = {\n type: 'tableBody',\n start: Object.assign({}, token.start),\n // Note: correct end is set later.\n end: Object.assign({}, token.end)\n };\n map.add(index, 0, [['enter', currentBody, context]]);\n }\n rowKind = token.type === 'tableDelimiterRow' ? 2 : currentBody ? 3 : 1;\n }\n // Cell data.\n else if (rowKind && (token.type === \"data\" || token.type === 'tableDelimiterMarker' || token.type === 'tableDelimiterFiller')) {\n inFirstCellAwaitingPipe = false;\n\n // First value in cell.\n if (cell[2] === 0) {\n if (lastCell[1] !== 0) {\n cell[0] = cell[1];\n currentCell = flushCell(map, context, lastCell, rowKind, undefined, currentCell);\n lastCell = [0, 0, 0, 0];\n }\n cell[2] = index;\n }\n } else if (token.type === 'tableCellDivider') {\n if (inFirstCellAwaitingPipe) {\n inFirstCellAwaitingPipe = false;\n } else {\n if (lastCell[1] !== 0) {\n cell[0] = cell[1];\n currentCell = flushCell(map, context, lastCell, rowKind, undefined, currentCell);\n }\n lastCell = cell;\n cell = [lastCell[1], index, 0, 0];\n }\n }\n }\n // Exit events.\n else if (token.type === 'tableHead') {\n afterHeadAwaitingFirstBodyRow = true;\n lastTableEnd = index;\n } else if (token.type === 'tableRow' || token.type === 'tableDelimiterRow') {\n lastTableEnd = index;\n if (lastCell[1] !== 0) {\n cell[0] = cell[1];\n currentCell = flushCell(map, context, lastCell, rowKind, index, currentCell);\n } else if (cell[1] !== 0) {\n currentCell = flushCell(map, context, cell, rowKind, index, currentCell);\n }\n rowKind = 0;\n } else if (rowKind && (token.type === \"data\" || token.type === 'tableDelimiterMarker' || token.type === 'tableDelimiterFiller')) {\n cell[3] = index;\n }\n }\n if (lastTableEnd !== 0) {\n flushTableEnd(map, context, lastTableEnd, currentTable, currentBody);\n }\n map.consume(context.events);\n\n // To do: move this into `html`, when events are exposed there.\n // That’s what `markdown-rs` does.\n // That needs updates to `mdast-util-gfm-table`.\n index = -1;\n while (++index < context.events.length) {\n const event = context.events[index];\n if (event[0] === 'enter' && event[1].type === 'table') {\n event[1]._align = gfmTableAlign(context.events, index);\n }\n }\n return events;\n}\n\n/**\n * Generate a cell.\n *\n * @param {EditMap} map\n * @param {Readonly} context\n * @param {Readonly} range\n * @param {RowKind} rowKind\n * @param {number | undefined} rowEnd\n * @param {Token | undefined} previousCell\n * @returns {Token | undefined}\n */\n// eslint-disable-next-line max-params\nfunction flushCell(map, context, range, rowKind, rowEnd, previousCell) {\n // `markdown-rs` uses:\n // rowKind === 2 ? 'tableDelimiterCell' : 'tableCell'\n const groupName = rowKind === 1 ? 'tableHeader' : rowKind === 2 ? 'tableDelimiter' : 'tableData';\n // `markdown-rs` uses:\n // rowKind === 2 ? 'tableDelimiterCellValue' : 'tableCellText'\n const valueName = 'tableContent';\n\n // Insert an exit for the previous cell, if there is one.\n //\n // ```markdown\n // > | | aa | bb | cc |\n // ^-- exit\n // ^^^^-- this cell\n // ```\n if (range[0] !== 0) {\n previousCell.end = Object.assign({}, getPoint(context.events, range[0]));\n map.add(range[0], 0, [['exit', previousCell, context]]);\n }\n\n // Insert enter of this cell.\n //\n // ```markdown\n // > | | aa | bb | cc |\n // ^-- enter\n // ^^^^-- this cell\n // ```\n const now = getPoint(context.events, range[1]);\n previousCell = {\n type: groupName,\n start: Object.assign({}, now),\n // Note: correct end is set later.\n end: Object.assign({}, now)\n };\n map.add(range[1], 0, [['enter', previousCell, context]]);\n\n // Insert text start at first data start and end at last data end, and\n // remove events between.\n //\n // ```markdown\n // > | | aa | bb | cc |\n // ^-- enter\n // ^-- exit\n // ^^^^-- this cell\n // ```\n if (range[2] !== 0) {\n const relatedStart = getPoint(context.events, range[2]);\n const relatedEnd = getPoint(context.events, range[3]);\n /** @type {Token} */\n const valueToken = {\n type: valueName,\n start: Object.assign({}, relatedStart),\n end: Object.assign({}, relatedEnd)\n };\n map.add(range[2], 0, [['enter', valueToken, context]]);\n if (rowKind !== 2) {\n // Fix positional info on remaining events\n const start = context.events[range[2]];\n const end = context.events[range[3]];\n start[1].end = Object.assign({}, end[1].end);\n start[1].type = \"chunkText\";\n start[1].contentType = \"text\";\n\n // Remove if needed.\n if (range[3] > range[2] + 1) {\n const a = range[2] + 1;\n const b = range[3] - range[2] - 1;\n map.add(a, b, []);\n }\n }\n map.add(range[3] + 1, 0, [['exit', valueToken, context]]);\n }\n\n // Insert an exit for the last cell, if at the row end.\n //\n // ```markdown\n // > | | aa | bb | cc |\n // ^-- exit\n // ^^^^^^-- this cell (the last one contains two “between” parts)\n // ```\n if (rowEnd !== undefined) {\n previousCell.end = Object.assign({}, getPoint(context.events, rowEnd));\n map.add(rowEnd, 0, [['exit', previousCell, context]]);\n previousCell = undefined;\n }\n return previousCell;\n}\n\n/**\n * Generate table end (and table body end).\n *\n * @param {Readonly} map\n * @param {Readonly} context\n * @param {number} index\n * @param {Token} table\n * @param {Token | undefined} tableBody\n */\n// eslint-disable-next-line max-params\nfunction flushTableEnd(map, context, index, table, tableBody) {\n /** @type {Array} */\n const exits = [];\n const related = getPoint(context.events, index);\n if (tableBody) {\n tableBody.end = Object.assign({}, related);\n exits.push(['exit', tableBody, context]);\n }\n table.end = Object.assign({}, related);\n exits.push(['exit', table, context]);\n map.add(index + 1, 0, exits);\n}\n\n/**\n * @param {Readonly>} events\n * @param {number} index\n * @returns {Readonly}\n */\nfunction getPoint(events, index) {\n const event = events[index];\n const side = event[0] === 'enter' ? 'start' : 'end';\n return event[1][side];\n}","/**\n * @import {Extension, State, TokenizeContext, Tokenizer} from 'micromark-util-types'\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { markdownLineEnding, markdownLineEndingOrSpace, markdownSpace } from 'micromark-util-character';\nconst tasklistCheck = {\n name: 'tasklistCheck',\n tokenize: tokenizeTasklistCheck\n};\n\n/**\n * Create an HTML extension for `micromark` to support GFM task list items\n * syntax.\n *\n * @returns {Extension}\n * Extension for `micromark` that can be passed in `htmlExtensions` to\n * support GFM task list items when serializing to HTML.\n */\nexport function gfmTaskListItem() {\n return {\n text: {\n [91]: tasklistCheck\n }\n };\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeTasklistCheck(effects, ok, nok) {\n const self = this;\n return open;\n\n /**\n * At start of task list item check.\n *\n * ```markdown\n * > | * [x] y.\n * ^\n * ```\n *\n * @type {State}\n */\n function open(code) {\n if (\n // Exit if there’s stuff before.\n self.previous !== null ||\n // Exit if not in the first content that is the first child of a list\n // item.\n !self._gfmTasklistFirstContentOfListItem) {\n return nok(code);\n }\n effects.enter('taskListCheck');\n effects.enter('taskListCheckMarker');\n effects.consume(code);\n effects.exit('taskListCheckMarker');\n return inside;\n }\n\n /**\n * In task list item check.\n *\n * ```markdown\n * > | * [x] y.\n * ^\n * ```\n *\n * @type {State}\n */\n function inside(code) {\n // Currently we match how GH works in files.\n // To match how GH works in comments, use `markdownSpace` (`[\\t ]`) instead\n // of `markdownLineEndingOrSpace` (`[\\t\\n\\r ]`).\n if (markdownLineEndingOrSpace(code)) {\n effects.enter('taskListCheckValueUnchecked');\n effects.consume(code);\n effects.exit('taskListCheckValueUnchecked');\n return close;\n }\n if (code === 88 || code === 120) {\n effects.enter('taskListCheckValueChecked');\n effects.consume(code);\n effects.exit('taskListCheckValueChecked');\n return close;\n }\n return nok(code);\n }\n\n /**\n * At close of task list item check.\n *\n * ```markdown\n * > | * [x] y.\n * ^\n * ```\n *\n * @type {State}\n */\n function close(code) {\n if (code === 93) {\n effects.enter('taskListCheckMarker');\n effects.consume(code);\n effects.exit('taskListCheckMarker');\n effects.exit('taskListCheck');\n return after;\n }\n return nok(code);\n }\n\n /**\n * @type {State}\n */\n function after(code) {\n // EOL in paragraph means there must be something else after it.\n if (markdownLineEnding(code)) {\n return ok(code);\n }\n\n // Space or tab?\n // Check what comes after.\n if (markdownSpace(code)) {\n return effects.check({\n tokenize: spaceThenNonSpace\n }, ok, nok)(code);\n }\n\n // EOF, or non-whitespace, both wrong.\n return nok(code);\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction spaceThenNonSpace(effects, ok, nok) {\n return factorySpace(effects, after, \"whitespace\");\n\n /**\n * After whitespace, after task list item check.\n *\n * ```markdown\n * > | * [x] y.\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n // EOF means there was nothing, so bad.\n // EOL means there’s content after it, so good.\n // Impossible to have more spaces.\n // Anything else is good.\n return code === null ? nok(code) : ok(code);\n }\n}","/**\n * @typedef {import('micromark-extension-gfm-footnote').HtmlOptions} HtmlOptions\n * @typedef {import('micromark-extension-gfm-strikethrough').Options} Options\n * @typedef {import('micromark-util-types').Extension} Extension\n * @typedef {import('micromark-util-types').HtmlExtension} HtmlExtension\n */\n\nimport {\n combineExtensions,\n combineHtmlExtensions\n} from 'micromark-util-combine-extensions'\nimport {\n gfmAutolinkLiteral,\n gfmAutolinkLiteralHtml\n} from 'micromark-extension-gfm-autolink-literal'\nimport {gfmFootnote, gfmFootnoteHtml} from 'micromark-extension-gfm-footnote'\nimport {\n gfmStrikethrough,\n gfmStrikethroughHtml\n} from 'micromark-extension-gfm-strikethrough'\nimport {gfmTable, gfmTableHtml} from 'micromark-extension-gfm-table'\nimport {gfmTagfilterHtml} from 'micromark-extension-gfm-tagfilter'\nimport {\n gfmTaskListItem,\n gfmTaskListItemHtml\n} from 'micromark-extension-gfm-task-list-item'\n\n/**\n * Create an extension for `micromark` to enable GFM syntax.\n *\n * @param {Options | null | undefined} [options]\n * Configuration (optional).\n *\n * Passed to `micromark-extens-gfm-strikethrough`.\n * @returns {Extension}\n * Extension for `micromark` that can be passed in `extensions` to enable GFM\n * syntax.\n */\nexport function gfm(options) {\n return combineExtensions([\n gfmAutolinkLiteral(),\n gfmFootnote(),\n gfmStrikethrough(options),\n gfmTable(),\n gfmTaskListItem()\n ])\n}\n\n/**\n * Create an extension for `micromark` to support GFM when serializing to HTML.\n *\n * @param {HtmlOptions | null | undefined} [options]\n * Configuration (optional).\n *\n * Passed to `micromark-extens-gfm-footnote`.\n * @returns {HtmlExtension}\n * Extension for `micromark` that can be passed in `htmlExtensions` to\n * support GFM when serializing to HTML.\n */\nexport function gfmHtml(options) {\n return combineHtmlExtensions([\n gfmAutolinkLiteralHtml(),\n gfmFootnoteHtml(options),\n gfmStrikethroughHtml(),\n gfmTableHtml(),\n gfmTagfilterHtml(),\n gfmTaskListItemHtml()\n ])\n}\n","/// \n/// \n\n/**\n * @typedef {import('mdast').Root} Root\n * @typedef {import('mdast-util-gfm').Options} MdastOptions\n * @typedef {import('micromark-extension-gfm').Options} MicromarkOptions\n * @typedef {import('unified').Processor} Processor\n */\n\n/**\n * @typedef {MicromarkOptions & MdastOptions} Options\n * Configuration.\n */\n\nimport {gfmFromMarkdown, gfmToMarkdown} from 'mdast-util-gfm'\nimport {gfm} from 'micromark-extension-gfm'\n\n/** @type {Options} */\nconst emptyOptions = {}\n\n/**\n * Add support GFM (autolink literals, footnotes, strikethrough, tables,\n * tasklists).\n *\n * @param {Options | null | undefined} [options]\n * Configuration (optional).\n * @returns {undefined}\n * Nothing.\n */\nexport default function remarkGfm(options) {\n // @ts-expect-error: TS is wrong about `this`.\n // eslint-disable-next-line unicorn/no-this-assignment\n const self = /** @type {Processor} */ (this)\n const settings = options || emptyOptions\n const data = self.data()\n\n const micromarkExtensions =\n data.micromarkExtensions || (data.micromarkExtensions = [])\n const fromMarkdownExtensions =\n data.fromMarkdownExtensions || (data.fromMarkdownExtensions = [])\n const toMarkdownExtensions =\n data.toMarkdownExtensions || (data.toMarkdownExtensions = [])\n\n micromarkExtensions.push(gfm(settings))\n fromMarkdownExtensions.push(gfmFromMarkdown())\n toMarkdownExtensions.push(gfmToMarkdown(settings))\n}\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Parent} Parent\n */\n\n/**\n * @template Fn\n * @template Fallback\n * @typedef {Fn extends (value: any) => value is infer Thing ? Thing : Fallback} Predicate\n */\n\n/**\n * @callback Check\n * Check that an arbitrary value is a node.\n * @param {unknown} this\n * The given context.\n * @param {unknown} [node]\n * Anything (typically a node).\n * @param {number | null | undefined} [index]\n * The node’s position in its parent.\n * @param {Parent | null | undefined} [parent]\n * The node’s parent.\n * @returns {boolean}\n * Whether this is a node and passes a test.\n *\n * @typedef {Record | Node} Props\n * Object to check for equivalence.\n *\n * Note: `Node` is included as it is common but is not indexable.\n *\n * @typedef {Array | Props | TestFunction | string | null | undefined} Test\n * Check for an arbitrary node.\n *\n * @callback TestFunction\n * Check if a node passes a test.\n * @param {unknown} this\n * The given context.\n * @param {Node} node\n * A node.\n * @param {number | undefined} [index]\n * The node’s position in its parent.\n * @param {Parent | undefined} [parent]\n * The node’s parent.\n * @returns {boolean | undefined | void}\n * Whether this node passes the test.\n *\n * Note: `void` is included until TS sees no return as `undefined`.\n */\n\n/**\n * Check if `node` is a `Node` and whether it passes the given test.\n *\n * @param {unknown} node\n * Thing to check, typically `Node`.\n * @param {Test} test\n * A check for a specific node.\n * @param {number | null | undefined} index\n * The node’s position in its parent.\n * @param {Parent | null | undefined} parent\n * The node’s parent.\n * @param {unknown} context\n * Context object (`this`) to pass to `test` functions.\n * @returns {boolean}\n * Whether `node` is a node and passes a test.\n */\nexport const is =\n // Note: overloads in JSDoc can’t yet use different `@template`s.\n /**\n * @type {(\n * ((node: unknown, test: Condition, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & {type: Condition}) &\n * ((node: unknown, test: Condition, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & Condition) &\n * ((node: unknown, test: Condition, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & Predicate) &\n * ((node?: null | undefined) => false) &\n * ((node: unknown, test?: null | undefined, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node) &\n * ((node: unknown, test?: Test, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => boolean)\n * )}\n */\n (\n /**\n * @param {unknown} [node]\n * @param {Test} [test]\n * @param {number | null | undefined} [index]\n * @param {Parent | null | undefined} [parent]\n * @param {unknown} [context]\n * @returns {boolean}\n */\n // eslint-disable-next-line max-params\n function (node, test, index, parent, context) {\n const check = convert(test)\n\n if (\n index !== undefined &&\n index !== null &&\n (typeof index !== 'number' ||\n index < 0 ||\n index === Number.POSITIVE_INFINITY)\n ) {\n throw new Error('Expected positive finite index')\n }\n\n if (\n parent !== undefined &&\n parent !== null &&\n (!is(parent) || !parent.children)\n ) {\n throw new Error('Expected parent node')\n }\n\n if (\n (parent === undefined || parent === null) !==\n (index === undefined || index === null)\n ) {\n throw new Error('Expected both parent and index')\n }\n\n return looksLikeANode(node)\n ? check.call(context, node, index, parent)\n : false\n }\n )\n\n/**\n * Generate an assertion from a test.\n *\n * Useful if you’re going to test many nodes, for example when creating a\n * utility where something else passes a compatible test.\n *\n * The created function is a bit faster because it expects valid input only:\n * a `node`, `index`, and `parent`.\n *\n * @param {Test} test\n * * when nullish, checks if `node` is a `Node`.\n * * when `string`, works like passing `(node) => node.type === test`.\n * * when `function` checks if function passed the node is true.\n * * when `object`, checks that all keys in test are in node, and that they have (strictly) equal values.\n * * when `array`, checks if any one of the subtests pass.\n * @returns {Check}\n * An assertion.\n */\nexport const convert =\n // Note: overloads in JSDoc can’t yet use different `@template`s.\n /**\n * @type {(\n * ((test: Condition) => (node: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & {type: Condition}) &\n * ((test: Condition) => (node: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & Condition) &\n * ((test: Condition) => (node: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & Predicate) &\n * ((test?: null | undefined) => (node?: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node) &\n * ((test?: Test) => Check)\n * )}\n */\n (\n /**\n * @param {Test} [test]\n * @returns {Check}\n */\n function (test) {\n if (test === null || test === undefined) {\n return ok\n }\n\n if (typeof test === 'function') {\n return castFactory(test)\n }\n\n if (typeof test === 'object') {\n return Array.isArray(test) ? anyFactory(test) : propsFactory(test)\n }\n\n if (typeof test === 'string') {\n return typeFactory(test)\n }\n\n throw new Error('Expected function, string, or object as test')\n }\n )\n\n/**\n * @param {Array} tests\n * @returns {Check}\n */\nfunction anyFactory(tests) {\n /** @type {Array} */\n const checks = []\n let index = -1\n\n while (++index < tests.length) {\n checks[index] = convert(tests[index])\n }\n\n return castFactory(any)\n\n /**\n * @this {unknown}\n * @type {TestFunction}\n */\n function any(...parameters) {\n let index = -1\n\n while (++index < checks.length) {\n if (checks[index].apply(this, parameters)) return true\n }\n\n return false\n }\n}\n\n/**\n * Turn an object into a test for a node with a certain fields.\n *\n * @param {Props} check\n * @returns {Check}\n */\nfunction propsFactory(check) {\n const checkAsRecord = /** @type {Record} */ (check)\n\n return castFactory(all)\n\n /**\n * @param {Node} node\n * @returns {boolean}\n */\n function all(node) {\n const nodeAsRecord = /** @type {Record} */ (\n /** @type {unknown} */ (node)\n )\n\n /** @type {string} */\n let key\n\n for (key in check) {\n if (nodeAsRecord[key] !== checkAsRecord[key]) return false\n }\n\n return true\n }\n}\n\n/**\n * Turn a string into a test for a node with a certain type.\n *\n * @param {string} check\n * @returns {Check}\n */\nfunction typeFactory(check) {\n return castFactory(type)\n\n /**\n * @param {Node} node\n */\n function type(node) {\n return node && node.type === check\n }\n}\n\n/**\n * Turn a custom test into a test for a node that passes that test.\n *\n * @param {TestFunction} testFunction\n * @returns {Check}\n */\nfunction castFactory(testFunction) {\n return check\n\n /**\n * @this {unknown}\n * @type {Check}\n */\n function check(value, index, parent) {\n return Boolean(\n looksLikeANode(value) &&\n testFunction.call(\n this,\n value,\n typeof index === 'number' ? index : undefined,\n parent || undefined\n )\n )\n }\n}\n\nfunction ok() {\n return true\n}\n\n/**\n * @param {unknown} value\n * @returns {value is Node}\n */\nfunction looksLikeANode(value) {\n return value !== null && typeof value === 'object' && 'type' in value\n}\n","/**\n * @param {string} d\n * @returns {string}\n */\nexport function color(d) {\n return d\n}\n","/**\n * @typedef {import('unist').Node} UnistNode\n * @typedef {import('unist').Parent} UnistParent\n */\n\n/**\n * @typedef {Exclude | undefined} Test\n * Test from `unist-util-is`.\n *\n * Note: we have remove and add `undefined`, because otherwise when generating\n * automatic `.d.ts` files, TS tries to flatten paths from a local perspective,\n * which doesn’t work when publishing on npm.\n */\n\n/**\n * @typedef {(\n * Fn extends (value: any) => value is infer Thing\n * ? Thing\n * : Fallback\n * )} Predicate\n * Get the value of a type guard `Fn`.\n * @template Fn\n * Value; typically function that is a type guard (such as `(x): x is Y`).\n * @template Fallback\n * Value to yield if `Fn` is not a type guard.\n */\n\n/**\n * @typedef {(\n * Check extends null | undefined // No test.\n * ? Value\n * : Value extends {type: Check} // String (type) test.\n * ? Value\n * : Value extends Check // Partial test.\n * ? Value\n * : Check extends Function // Function test.\n * ? Predicate extends Value\n * ? Predicate\n * : never\n * : never // Some other test?\n * )} MatchesOne\n * Check whether a node matches a primitive check in the type system.\n * @template Value\n * Value; typically unist `Node`.\n * @template Check\n * Value; typically `unist-util-is`-compatible test, but not arrays.\n */\n\n/**\n * @typedef {(\n * Check extends Array\n * ? MatchesOne\n * : MatchesOne\n * )} Matches\n * Check whether a node matches a check in the type system.\n * @template Value\n * Value; typically unist `Node`.\n * @template Check\n * Value; typically `unist-util-is`-compatible test.\n */\n\n/**\n * @typedef {0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10} Uint\n * Number; capped reasonably.\n */\n\n/**\n * @typedef {I extends 0 ? 1 : I extends 1 ? 2 : I extends 2 ? 3 : I extends 3 ? 4 : I extends 4 ? 5 : I extends 5 ? 6 : I extends 6 ? 7 : I extends 7 ? 8 : I extends 8 ? 9 : 10} Increment\n * Increment a number in the type system.\n * @template {Uint} [I=0]\n * Index.\n */\n\n/**\n * @typedef {(\n * Node extends UnistParent\n * ? Node extends {children: Array}\n * ? Child extends Children ? Node : never\n * : never\n * : never\n * )} InternalParent\n * Collect nodes that can be parents of `Child`.\n * @template {UnistNode} Node\n * All node types in a tree.\n * @template {UnistNode} Child\n * Node to search for.\n */\n\n/**\n * @typedef {InternalParent, Child>} Parent\n * Collect nodes in `Tree` that can be parents of `Child`.\n * @template {UnistNode} Tree\n * All node types in a tree.\n * @template {UnistNode} Child\n * Node to search for.\n */\n\n/**\n * @typedef {(\n * Depth extends Max\n * ? never\n * :\n * | InternalParent\n * | InternalAncestor, Max, Increment>\n * )} InternalAncestor\n * Collect nodes in `Tree` that can be ancestors of `Child`.\n * @template {UnistNode} Node\n * All node types in a tree.\n * @template {UnistNode} Child\n * Node to search for.\n * @template {Uint} [Max=10]\n * Max; searches up to this depth.\n * @template {Uint} [Depth=0]\n * Current depth.\n */\n\n/**\n * @typedef {InternalAncestor, Child>} Ancestor\n * Collect nodes in `Tree` that can be ancestors of `Child`.\n * @template {UnistNode} Tree\n * All node types in a tree.\n * @template {UnistNode} Child\n * Node to search for.\n */\n\n/**\n * @typedef {(\n * Tree extends UnistParent\n * ? Depth extends Max\n * ? Tree\n * : Tree | InclusiveDescendant>\n * : Tree\n * )} InclusiveDescendant\n * Collect all (inclusive) descendants of `Tree`.\n *\n * > 👉 **Note**: for performance reasons, this seems to be the fastest way to\n * > recurse without actually running into an infinite loop, which the\n * > previous version did.\n * >\n * > Practically, a max of `2` is typically enough assuming a `Root` is\n * > passed, but it doesn’t improve performance.\n * > It gets higher with `List > ListItem > Table > TableRow > TableCell`.\n * > Using up to `10` doesn’t hurt or help either.\n * @template {UnistNode} Tree\n * Tree type.\n * @template {Uint} [Max=10]\n * Max; searches up to this depth.\n * @template {Uint} [Depth=0]\n * Current depth.\n */\n\n/**\n * @typedef {'skip' | boolean} Action\n * Union of the action types.\n *\n * @typedef {number} Index\n * Move to the sibling at `index` next (after node itself is completely\n * traversed).\n *\n * Useful if mutating the tree, such as removing the node the visitor is\n * currently on, or any of its previous siblings.\n * Results less than 0 or greater than or equal to `children.length` stop\n * traversing the parent.\n *\n * @typedef {[(Action | null | undefined | void)?, (Index | null | undefined)?]} ActionTuple\n * List with one or two values, the first an action, the second an index.\n *\n * @typedef {Action | ActionTuple | Index | null | undefined | void} VisitorResult\n * Any value that can be returned from a visitor.\n */\n\n/**\n * @callback Visitor\n * Handle a node (matching `test`, if given).\n *\n * Visitors are free to transform `node`.\n * They can also transform the parent of node (the last of `ancestors`).\n *\n * Replacing `node` itself, if `SKIP` is not returned, still causes its\n * descendants to be walked (which is a bug).\n *\n * When adding or removing previous siblings of `node` (or next siblings, in\n * case of reverse), the `Visitor` should return a new `Index` to specify the\n * sibling to traverse after `node` is traversed.\n * Adding or removing next siblings of `node` (or previous siblings, in case\n * of reverse) is handled as expected without needing to return a new `Index`.\n *\n * Removing the children property of an ancestor still results in them being\n * traversed.\n * @param {Visited} node\n * Found node.\n * @param {Array} ancestors\n * Ancestors of `node`.\n * @returns {VisitorResult}\n * What to do next.\n *\n * An `Index` is treated as a tuple of `[CONTINUE, Index]`.\n * An `Action` is treated as a tuple of `[Action]`.\n *\n * Passing a tuple back only makes sense if the `Action` is `SKIP`.\n * When the `Action` is `EXIT`, that action can be returned.\n * When the `Action` is `CONTINUE`, `Index` can be returned.\n * @template {UnistNode} [Visited=UnistNode]\n * Visited node type.\n * @template {UnistParent} [VisitedParents=UnistParent]\n * Ancestor type.\n */\n\n/**\n * @typedef {Visitor, Check>, Ancestor, Check>>>} BuildVisitor\n * Build a typed `Visitor` function from a tree and a test.\n *\n * It will infer which values are passed as `node` and which as `parents`.\n * @template {UnistNode} [Tree=UnistNode]\n * Tree type.\n * @template {Test} [Check=Test]\n * Test type.\n */\n\nimport {convert} from 'unist-util-is'\nimport {color} from 'unist-util-visit-parents/do-not-use-color'\n\n/** @type {Readonly} */\nconst empty = []\n\n/**\n * Continue traversing as normal.\n */\nexport const CONTINUE = true\n\n/**\n * Stop traversing immediately.\n */\nexport const EXIT = false\n\n/**\n * Do not traverse this node’s children.\n */\nexport const SKIP = 'skip'\n\n/**\n * Visit nodes, with ancestral information.\n *\n * This algorithm performs *depth-first* *tree traversal* in *preorder*\n * (**NLR**) or if `reverse` is given, in *reverse preorder* (**NRL**).\n *\n * You can choose for which nodes `visitor` is called by passing a `test`.\n * For complex tests, you should test yourself in `visitor`, as it will be\n * faster and will have improved type information.\n *\n * Walking the tree is an intensive task.\n * Make use of the return values of the visitor when possible.\n * Instead of walking a tree multiple times, walk it once, use `unist-util-is`\n * to check if a node matches, and then perform different operations.\n *\n * You can change the tree.\n * See `Visitor` for more info.\n *\n * @overload\n * @param {Tree} tree\n * @param {Check} check\n * @param {BuildVisitor} visitor\n * @param {boolean | null | undefined} [reverse]\n * @returns {undefined}\n *\n * @overload\n * @param {Tree} tree\n * @param {BuildVisitor} visitor\n * @param {boolean | null | undefined} [reverse]\n * @returns {undefined}\n *\n * @param {UnistNode} tree\n * Tree to traverse.\n * @param {Visitor | Test} test\n * `unist-util-is`-compatible test\n * @param {Visitor | boolean | null | undefined} [visitor]\n * Handle each node.\n * @param {boolean | null | undefined} [reverse]\n * Traverse in reverse preorder (NRL) instead of the default preorder (NLR).\n * @returns {undefined}\n * Nothing.\n *\n * @template {UnistNode} Tree\n * Node type.\n * @template {Test} Check\n * `unist-util-is`-compatible test.\n */\nexport function visitParents(tree, test, visitor, reverse) {\n /** @type {Test} */\n let check\n\n if (typeof test === 'function' && typeof visitor !== 'function') {\n reverse = visitor\n // @ts-expect-error no visitor given, so `visitor` is test.\n visitor = test\n } else {\n // @ts-expect-error visitor given, so `test` isn’t a visitor.\n check = test\n }\n\n const is = convert(check)\n const step = reverse ? -1 : 1\n\n factory(tree, undefined, [])()\n\n /**\n * @param {UnistNode} node\n * @param {number | undefined} index\n * @param {Array} parents\n */\n function factory(node, index, parents) {\n const value = /** @type {Record} */ (\n node && typeof node === 'object' ? node : {}\n )\n\n if (typeof value.type === 'string') {\n const name =\n // `hast`\n typeof value.tagName === 'string'\n ? value.tagName\n : // `xast`\n typeof value.name === 'string'\n ? value.name\n : undefined\n\n Object.defineProperty(visit, 'name', {\n value:\n 'node (' + color(node.type + (name ? '<' + name + '>' : '')) + ')'\n })\n }\n\n return visit\n\n function visit() {\n /** @type {Readonly} */\n let result = empty\n /** @type {Readonly} */\n let subresult\n /** @type {number} */\n let offset\n /** @type {Array} */\n let grandparents\n\n if (!test || is(node, index, parents[parents.length - 1] || undefined)) {\n // @ts-expect-error: `visitor` is now a visitor.\n result = toResult(visitor(node, parents))\n\n if (result[0] === EXIT) {\n return result\n }\n }\n\n if ('children' in node && node.children) {\n const nodeAsParent = /** @type {UnistParent} */ (node)\n\n if (nodeAsParent.children && result[0] !== SKIP) {\n offset = (reverse ? nodeAsParent.children.length : -1) + step\n grandparents = parents.concat(nodeAsParent)\n\n while (offset > -1 && offset < nodeAsParent.children.length) {\n const child = nodeAsParent.children[offset]\n\n subresult = factory(child, offset, grandparents)()\n\n if (subresult[0] === EXIT) {\n return subresult\n }\n\n offset =\n typeof subresult[1] === 'number' ? subresult[1] : offset + step\n }\n }\n }\n\n return result\n }\n }\n}\n\n/**\n * Turn a return value into a clean result.\n *\n * @param {VisitorResult} value\n * Valid return values from visitors.\n * @returns {Readonly}\n * Clean result.\n */\nfunction toResult(value) {\n if (Array.isArray(value)) {\n return value\n }\n\n if (typeof value === 'number') {\n return [CONTINUE, value]\n }\n\n return value === null || value === undefined ? empty : [value]\n}\n","/**\n * @typedef {import('unist').Node} UnistNode\n * @typedef {import('unist').Parent} UnistParent\n * @typedef {import('unist-util-visit-parents').VisitorResult} VisitorResult\n */\n\n/**\n * @typedef {Exclude | undefined} Test\n * Test from `unist-util-is`.\n *\n * Note: we have remove and add `undefined`, because otherwise when generating\n * automatic `.d.ts` files, TS tries to flatten paths from a local perspective,\n * which doesn’t work when publishing on npm.\n */\n\n// To do: use types from `unist-util-visit-parents` when it’s released.\n\n/**\n * @typedef {(\n * Fn extends (value: any) => value is infer Thing\n * ? Thing\n * : Fallback\n * )} Predicate\n * Get the value of a type guard `Fn`.\n * @template Fn\n * Value; typically function that is a type guard (such as `(x): x is Y`).\n * @template Fallback\n * Value to yield if `Fn` is not a type guard.\n */\n\n/**\n * @typedef {(\n * Check extends null | undefined // No test.\n * ? Value\n * : Value extends {type: Check} // String (type) test.\n * ? Value\n * : Value extends Check // Partial test.\n * ? Value\n * : Check extends Function // Function test.\n * ? Predicate extends Value\n * ? Predicate\n * : never\n * : never // Some other test?\n * )} MatchesOne\n * Check whether a node matches a primitive check in the type system.\n * @template Value\n * Value; typically unist `Node`.\n * @template Check\n * Value; typically `unist-util-is`-compatible test, but not arrays.\n */\n\n/**\n * @typedef {(\n * Check extends Array\n * ? MatchesOne\n * : MatchesOne\n * )} Matches\n * Check whether a node matches a check in the type system.\n * @template Value\n * Value; typically unist `Node`.\n * @template Check\n * Value; typically `unist-util-is`-compatible test.\n */\n\n/**\n * @typedef {0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10} Uint\n * Number; capped reasonably.\n */\n\n/**\n * @typedef {I extends 0 ? 1 : I extends 1 ? 2 : I extends 2 ? 3 : I extends 3 ? 4 : I extends 4 ? 5 : I extends 5 ? 6 : I extends 6 ? 7 : I extends 7 ? 8 : I extends 8 ? 9 : 10} Increment\n * Increment a number in the type system.\n * @template {Uint} [I=0]\n * Index.\n */\n\n/**\n * @typedef {(\n * Node extends UnistParent\n * ? Node extends {children: Array}\n * ? Child extends Children ? Node : never\n * : never\n * : never\n * )} InternalParent\n * Collect nodes that can be parents of `Child`.\n * @template {UnistNode} Node\n * All node types in a tree.\n * @template {UnistNode} Child\n * Node to search for.\n */\n\n/**\n * @typedef {InternalParent, Child>} Parent\n * Collect nodes in `Tree` that can be parents of `Child`.\n * @template {UnistNode} Tree\n * All node types in a tree.\n * @template {UnistNode} Child\n * Node to search for.\n */\n\n/**\n * @typedef {(\n * Depth extends Max\n * ? never\n * :\n * | InternalParent\n * | InternalAncestor, Max, Increment>\n * )} InternalAncestor\n * Collect nodes in `Tree` that can be ancestors of `Child`.\n * @template {UnistNode} Node\n * All node types in a tree.\n * @template {UnistNode} Child\n * Node to search for.\n * @template {Uint} [Max=10]\n * Max; searches up to this depth.\n * @template {Uint} [Depth=0]\n * Current depth.\n */\n\n/**\n * @typedef {(\n * Tree extends UnistParent\n * ? Depth extends Max\n * ? Tree\n * : Tree | InclusiveDescendant>\n * : Tree\n * )} InclusiveDescendant\n * Collect all (inclusive) descendants of `Tree`.\n *\n * > 👉 **Note**: for performance reasons, this seems to be the fastest way to\n * > recurse without actually running into an infinite loop, which the\n * > previous version did.\n * >\n * > Practically, a max of `2` is typically enough assuming a `Root` is\n * > passed, but it doesn’t improve performance.\n * > It gets higher with `List > ListItem > Table > TableRow > TableCell`.\n * > Using up to `10` doesn’t hurt or help either.\n * @template {UnistNode} Tree\n * Tree type.\n * @template {Uint} [Max=10]\n * Max; searches up to this depth.\n * @template {Uint} [Depth=0]\n * Current depth.\n */\n\n/**\n * @callback Visitor\n * Handle a node (matching `test`, if given).\n *\n * Visitors are free to transform `node`.\n * They can also transform `parent`.\n *\n * Replacing `node` itself, if `SKIP` is not returned, still causes its\n * descendants to be walked (which is a bug).\n *\n * When adding or removing previous siblings of `node` (or next siblings, in\n * case of reverse), the `Visitor` should return a new `Index` to specify the\n * sibling to traverse after `node` is traversed.\n * Adding or removing next siblings of `node` (or previous siblings, in case\n * of reverse) is handled as expected without needing to return a new `Index`.\n *\n * Removing the children property of `parent` still results in them being\n * traversed.\n * @param {Visited} node\n * Found node.\n * @param {Visited extends UnistNode ? number | undefined : never} index\n * Index of `node` in `parent`.\n * @param {Ancestor extends UnistParent ? Ancestor | undefined : never} parent\n * Parent of `node`.\n * @returns {VisitorResult}\n * What to do next.\n *\n * An `Index` is treated as a tuple of `[CONTINUE, Index]`.\n * An `Action` is treated as a tuple of `[Action]`.\n *\n * Passing a tuple back only makes sense if the `Action` is `SKIP`.\n * When the `Action` is `EXIT`, that action can be returned.\n * When the `Action` is `CONTINUE`, `Index` can be returned.\n * @template {UnistNode} [Visited=UnistNode]\n * Visited node type.\n * @template {UnistParent} [Ancestor=UnistParent]\n * Ancestor type.\n */\n\n/**\n * @typedef {Visitor>} BuildVisitorFromMatch\n * Build a typed `Visitor` function from a node and all possible parents.\n *\n * It will infer which values are passed as `node` and which as `parent`.\n * @template {UnistNode} Visited\n * Node type.\n * @template {UnistParent} Ancestor\n * Parent type.\n */\n\n/**\n * @typedef {(\n * BuildVisitorFromMatch<\n * Matches,\n * Extract\n * >\n * )} BuildVisitorFromDescendants\n * Build a typed `Visitor` function from a list of descendants and a test.\n *\n * It will infer which values are passed as `node` and which as `parent`.\n * @template {UnistNode} Descendant\n * Node type.\n * @template {Test} Check\n * Test type.\n */\n\n/**\n * @typedef {(\n * BuildVisitorFromDescendants<\n * InclusiveDescendant,\n * Check\n * >\n * )} BuildVisitor\n * Build a typed `Visitor` function from a tree and a test.\n *\n * It will infer which values are passed as `node` and which as `parent`.\n * @template {UnistNode} [Tree=UnistNode]\n * Node type.\n * @template {Test} [Check=Test]\n * Test type.\n */\n\nimport {visitParents} from 'unist-util-visit-parents'\n\nexport {CONTINUE, EXIT, SKIP} from 'unist-util-visit-parents'\n\n/**\n * Visit nodes.\n *\n * This algorithm performs *depth-first* *tree traversal* in *preorder*\n * (**NLR**) or if `reverse` is given, in *reverse preorder* (**NRL**).\n *\n * You can choose for which nodes `visitor` is called by passing a `test`.\n * For complex tests, you should test yourself in `visitor`, as it will be\n * faster and will have improved type information.\n *\n * Walking the tree is an intensive task.\n * Make use of the return values of the visitor when possible.\n * Instead of walking a tree multiple times, walk it once, use `unist-util-is`\n * to check if a node matches, and then perform different operations.\n *\n * You can change the tree.\n * See `Visitor` for more info.\n *\n * @overload\n * @param {Tree} tree\n * @param {Check} check\n * @param {BuildVisitor} visitor\n * @param {boolean | null | undefined} [reverse]\n * @returns {undefined}\n *\n * @overload\n * @param {Tree} tree\n * @param {BuildVisitor} visitor\n * @param {boolean | null | undefined} [reverse]\n * @returns {undefined}\n *\n * @param {UnistNode} tree\n * Tree to traverse.\n * @param {Visitor | Test} testOrVisitor\n * `unist-util-is`-compatible test (optional, omit to pass a visitor).\n * @param {Visitor | boolean | null | undefined} [visitorOrReverse]\n * Handle each node (when test is omitted, pass `reverse`).\n * @param {boolean | null | undefined} [maybeReverse=false]\n * Traverse in reverse preorder (NRL) instead of the default preorder (NLR).\n * @returns {undefined}\n * Nothing.\n *\n * @template {UnistNode} Tree\n * Node type.\n * @template {Test} Check\n * `unist-util-is`-compatible test.\n */\nexport function visit(tree, testOrVisitor, visitorOrReverse, maybeReverse) {\n /** @type {boolean | null | undefined} */\n let reverse\n /** @type {Test} */\n let test\n /** @type {Visitor} */\n let visitor\n\n if (\n typeof testOrVisitor === 'function' &&\n typeof visitorOrReverse !== 'function'\n ) {\n test = undefined\n visitor = testOrVisitor\n reverse = visitorOrReverse\n } else {\n // @ts-expect-error: assume the overload with test was given.\n test = testOrVisitor\n // @ts-expect-error: assume the overload with test was given.\n visitor = visitorOrReverse\n reverse = maybeReverse\n }\n\n visitParents(tree, test, overload, reverse)\n\n /**\n * @param {UnistNode} node\n * @param {Array} parents\n */\n function overload(node, parents) {\n const parent = parents[parents.length - 1]\n const index = parent ? parent.children.indexOf(node) : undefined\n return visitor(node, index, parent)\n }\n}\n"],"names":["__WEBPACK_AMD_DEFINE_RESULT__","canUseDOM","ExecutionEnvironment","window","document","createElement","canUseWorkers","Worker","canUseEventListeners","addEventListener","attachEvent","canUseViewport","screen","undefined","call","exports","__webpack_require__","module","hasOwn","Object","prototype","hasOwnProperty","toStr","toString","defineProperty","gOPD","getOwnPropertyDescriptor","isArray","arr","Array","isPlainObject","obj","key","hasOwnConstructor","hasIsPrototypeOf","constructor","setProperty","target","options","name","enumerable","configurable","value","newValue","writable","getProperty","extend","src","copy","copyIsArray","clone","arguments","i","length","deep","b","aa","defineProperties","a","c","e","g","da","Symbol","ea","fa","ha","iterator","done","next","ba","split","d","f","String","ka","self","execScript","shift","k","splice","propertyIsEnumerable","la","oa","qa","forEach","l","map","h","sa","Error","n","p","q","va","Function","displayName","r","arrClean","wa","w","v","u","push","xa","fromCharCode","apply","ra","slice","sort","toArray","Mc","m","toObject","fromObject","set","Jb","getLength","clear","Cb","del","Eb","getEntryList","entries","keys","values","get","has","Jc","t","Va","Ya","serializeBinary","deserializeBinary","bb","ya","za","Aa","x","Ba","Ca","B","M","join","Da","Math","floor","indexOf","Uint8Array","Ea","charAt","La","test","subarray","concat","yb","ee","FLOAT","ke","te","je","xb","wb","BOOL","re","ie","le","ce","se","ge","me","ne","oe","pe","he","ve","ue","de","qe","fe","y","z","Fa","A","abs","Ga","Ha","isNaN","round","log","LN2","pow","Ia","C","charCodeAt","D","E","Ja","Ka","Ma","Na","NaN","Infinity","Oa","Pa","F","G","Qa","H","Ra","Sa","Ta","Ua","ArrayBuffer","buffer","byteOffset","byteLength","I","toLowerCase","toUpperCase","Wa","pop","J","O","getInstanceCacheLength","alloc","free","Y","getBuffer","setBlock","Db","getEnd","setEnd","reset","getCursor","setCursor","advance","atEnd","Qb","pastEnd","getError","readSplitVarint64","readSplitZigzagVarint64","ta","readSplitFixed64","kb","skipVarint","mb","unskipVarint","o","readUnsignedVarint32","readSignedVarint32","readSignedVarint32String","readZigzagVarint32","readUnsignedVarint64","readUnsignedVarint64String","readSignedVarint64","readSignedVarint64String","readZigzagVarint64","fb","readZigzagVarintHash64","readZigzagVarint64String","Gc","readUint8","Ec","readUint16","readUint32","ga","readUint64","readUint64String","Xb","readInt8","Vb","readInt16","P","readInt32","readInt64","ca","readInt64String","readFloat","Z","readDouble","pa","readBool","readEnum","readString","Dc","readStringWithLength","readBytes","ia","readVarintHash64","$","readFixedHash64","K","Xa","L","ma","na","Za","Ab","Nb","N","clearInstanceCache","zb","Fb","getFieldCursor","Hb","getFieldNumber","Lb","getWireType","Mb","isDelimited","isEndGroup","nextField","unskipHeader","Lc","skipMatchingFields","lb","skipVarintField","gb","skipDelimitedField","hb","skipFixed32Field","ib","skipFixed64Field","jb","skipGroup","skipField","Hc","registerReadCallback","Ic","runReadCallback","Yb","readMessage","Ub","readGroup","Gb","getFieldDecoder","Wb","readInt32String","Fc","readUint32String","zc","readSint32","Ac","readSint64","Bc","readSint64String","Rb","readFixed32","Sb","readFixed64","Tb","readFixed64String","vc","readSfixed32","wc","readSfixed32String","xc","readSfixed64","yc","readSfixed64String","Cc","readSintHash64","gc","readPackedInt32","hc","readPackedInt32String","ic","readPackedInt64","jc","readPackedInt64String","qc","readPackedUint32","rc","readPackedUint32String","sc","readPackedUint64","tc","readPackedUint64String","nc","readPackedSint32","oc","readPackedSint64","pc","readPackedSint64String","bc","readPackedFixed32","cc","readPackedFixed64","dc","readPackedFixed64String","kc","readPackedSfixed32","lc","readPackedSfixed64","mc","readPackedSfixed64String","fc","readPackedFloat","$b","readPackedDouble","Zb","readPackedBool","ac","readPackedEnum","uc","readPackedVarintHash64","ec","readPackedFixedHash64","isMessageType","GENERATE_TO_OBJECT","GENERATE_FROM_OBJECT","$a","Ib","getJsPbMessageId","initialize","max","Number","MAX_VALUE","ab","cb","freeze","db","eb","Q","ob","nb","pb","qb","toObjectList","toObjectExtension","serializeBinaryExtensions","readBinaryExtension","getField","getRepeatedField","getOptionalFloatingPointField","getBooleanField","getRepeatedFloatingPointField","getRepeatedBooleanField","bytesAsB64","bytesAsU8","bytesListAsB64","bytesListAsU8","getFieldWithDefault","getBooleanFieldWithDefault","getFloatingPointFieldWithDefault","getFieldProto3","getMapField","setField","setProto3IntField","setProto3FloatField","setProto3BooleanField","setProto3StringField","setProto3BytesField","setProto3EnumField","setProto3StringIntField","addToRepeatedField","setOneofField","computeOneofCase","getWrapperField","getRepeatedWrapperField","setWrapperField","setOneofWrapperField","setRepeatedWrapperField","addToRepeatedWrapperField","toMap","getExtension","Kc","setExtension","difference","equals","compareExtensions","compareFields","Bb","cloneMessage","copyInto","registerMessageType","we","R","dump","X","S","T","lo","hi","rb","U","parseInt","add","V","sb","substring","sub","W","tb","end","j","ub","vb","ua","$name","exec","extensionObject_","$extensions","extensions","replace","writeSplitVarint64","s","writeSplitFixed64","writeUnsignedVarint32","writeSignedVarint32","writeUnsignedVarint64","writeSignedVarint64","writeZigzagVarint32","writeZigzagVarint64","writeZigzagVarint64String","writeZigzagVarintHash64","be","writeUint8","ae","writeUint16","writeUint32","writeUint64","Qc","writeInt8","Pc","writeInt16","writeInt32","writeInt64","writeInt64String","writeFloat","writeDouble","writeBool","writeEnum","ja","writeBytes","writeVarintHash64","writeFixedHash64","writeString","cmp","rightShift","leftShift","msb","Ob","lsb","zero","mul32x32","mul","div","fromString","writeSerializedMessage","Pb","maybeWriteSerializedMessage","getResultBuffer","Kb","getResultBase64String","beginSubMessage","endSubMessage","Nc","writeAny","writeInt32String","writeUint32String","writeUint64String","writeSint32","writeSint64","$d","writeSintHash64","Zd","writeSint64String","writeFixed32","writeFixed64","writeFixed64String","writeSfixed32","writeSfixed64","writeSfixed64String","Rc","writeMessage","Sc","writeMessageSet","Oc","writeGroup","writeSplitZigzagVarint64","Ed","writeRepeatedInt32","Fd","writeRepeatedInt32String","Gd","writeRepeatedInt64","Qd","writeRepeatedSplitFixed64","Rd","writeRepeatedSplitVarint64","Sd","writeRepeatedSplitZigzagVarint64","Hd","writeRepeatedInt64String","Ud","writeRepeatedUint32","Vd","writeRepeatedUint32String","Wd","writeRepeatedUint64","Xd","writeRepeatedUint64String","Md","writeRepeatedSint32","Nd","writeRepeatedSint64","Od","writeRepeatedSint64String","Pd","writeRepeatedSintHash64","yd","writeRepeatedFixed32","zd","writeRepeatedFixed64","Ad","writeRepeatedFixed64String","Jd","writeRepeatedSfixed32","Kd","writeRepeatedSfixed64","Ld","writeRepeatedSfixed64String","Cd","writeRepeatedFloat","wd","writeRepeatedDouble","ud","writeRepeatedBool","xd","writeRepeatedEnum","Td","writeRepeatedString","vd","writeRepeatedBytes","Id","writeRepeatedMessage","Dd","writeRepeatedGroup","Bd","writeRepeatedFixedHash64","Yd","writeRepeatedVarintHash64","ad","writePackedInt32","bd","writePackedInt32String","cd","writePackedInt64","md","writePackedSplitFixed64","nd","writePackedSplitVarint64","od","writePackedSplitZigzagVarint64","dd","writePackedInt64String","pd","writePackedUint32","qd","writePackedUint32String","rd","writePackedUint64","sd","writePackedUint64String","hd","writePackedSint32","jd","writePackedSint64","kd","writePackedSint64String","ld","writePackedSintHash64","Wc","writePackedFixed32","Xc","writePackedFixed64","Yc","writePackedFixed64String","ed","writePackedSfixed32","fd","writePackedSfixed64","gd","writePackedSfixed64String","$c","writePackedFloat","Uc","writePackedDouble","Tc","writePackedBool","Vc","writePackedEnum","Zc","writePackedFixedHash64","td","writePackedVarintHash64","debug","Map","Message","BinaryReader","BinaryWriter","ExtensionFieldInfo","ExtensionFieldBinaryInfo","exportSymbol","inherits","object","typeOf","jspb","global","globalThis","goog","proto","google","protobuf","Empty","opt_data","DEBUG","COMPILED","opt_includeInstance","includeInstance","msg","$jspbMessageInstance","bytes","reader","deserializeBinaryFromReader","writer","serializeBinaryToWriter","message","COMMENT_REGEX","NEWLINE_REGEX","WHITESPACE_REGEX","PROPERTY_REGEX","COLON_REGEX","VALUE_REGEX","SEMICOLON_REGEX","TRIM_REGEX","trim","str","style","lineno","column","updatePosition","lines","match","lastIndexOf","position","start","line","node","Position","source","content","errorsList","error","err","reason","filename","silent","comments","rules","comment","pos","FORWARD_SLASH","ASTERISK","EMPTY_STRING","type","declarations","decl","decls","declaration","prop","val","ret","property","_global_process","_global_process1","process","env","defaultSetTimout","defaultClearTimeout","runTimeout","setTimeout","clearTimeout","cleanUpNextTick","drainQueue","run","runClearTimeout","Item","fun","array","noop","nextTick","title","browser","argv","version","versions","on","addListener","once","off","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","listeners","binding","cwd","chdir","umask","__nccwpck_require__","__dirname","ReactPropTypesSecret","emptyFunction","emptyFunctionWithReset","resetWarningCache","shim","props","propName","componentName","location","propFullName","secret","getShim","isRequired","ReactPropTypes","bigint","bool","func","number","string","symbol","any","arrayOf","element","elementType","instanceOf","objectOf","oneOf","oneOfType","shape","exact","checkPropTypes","PropTypes","componentWillMount","state","getDerivedStateFromProps","setState","componentWillReceiveProps","nextProps","updater","prevState","bind","componentWillUpdate","nextState","prevProps","__reactInternalSnapshotFlag","__reactInternalSnapshot","getSnapshotBeforeUpdate","polyfill","Component","isReactComponent","foundWillMountName","foundWillReceivePropsName","foundWillUpdateName","UNSAFE_componentWillMount","UNSAFE_componentWillReceiveProps","UNSAFE_componentWillUpdate","componentDidUpdate","maybeSnapshot","snapshot","__suppressDeprecationWarning","__assign","assign","__awaiter","thisArg","_arguments","generator","Promise","resolve","reject","fulfilled","step","rejected","result","adopt","then","__generator","body","_","label","sent","trys","ops","verb","op","CommandOrchestrator","getStateFromTextArea","TextAreaTextApi","__1","InsertTextAtPosition_1","command_utils_1","defaults_1","textAreaRef","replaceSelection","text","textArea","current","insertText","setSelectionRange","selection","focus","selectionStart","selectionEnd","getState","selectedText","customCommands","l18n","pasteOptions","_this","getCommand","command","commandMap","handlePossibleKeyCommand","_i","_a","keyActivatedCommands","commandName","handleKeyCommand","executeCommand","saveImage","getDefaultCommandMap","extractKeyActivatedCommands","textApi","context","isExecuting","execute","initialState","executePasteCommand","event","getDefaultSaveImageCommandName","executeDropCommand","executeSelectImageCommand","getCommandByName","boldCommand","MarkdownUtil_1","buttonProps","newSelectionRange","selectWord","state1","state2","ctrlKey","metaKey","codeCommand","selectionStart_1","selectionEnd_1","breaksBeforeCount","getBreaksNeededForEmptyLineBefore","breaksBefore","breaksAfter","breaksAfterCount","getBreaksNeededForEmptyLineAfter","getDefaultToolbarCommands","headerCommand_1","boldCommand_1","italicCommand_1","strikeThroughCommand_1","linkCommand_1","quoteCommand_1","codeCommand_1","listCommands_1","imageCommand_1","save_image_command_1","header","headerCommand","bold","italic","italicCommand","strikethrough","strikeThroughCommand","link","linkCommand","quote","quoteCommand","code","image","imageCommand","unorderedListCommand","orderedListCommand","checkedListCommand","saveImageCommand","setHeader","api","prefix","imageTemplate","makeList","insertBeforeEachLine","insertBefore","insertionLength","modifiedText","item","index","insertionResult","state0","oneLinerOffset","files_1","dataTransferToArray","items","kind","getAsFile","pasteContext","_b","multiple","accept","filteredItems","_c","_d","initialState_1","placeHolder","blob","blobContents","imageUrl","newState","realImageMarkdown","selectionDelta","_e","filterItems","acceptedTypes","fileExtensions_1","Set","filter","mimeTypes_1","anyTypes_1","isPasteEvent","clipboardData","isDragEvent","dataTransfer","fileListToArray","list","files","uploadingImage","readFileAsync","savingImage","substr","extendStatics","__extends","setPrototypeOf","__proto__","__","create","Preview","React","ClassNames_1","_super","loading","componentDidMount","generatePreview","markdown","generateMarkdownPreview","preview","render","classes","minHeight","loadingPreview","refObject","heightUnits","finalHtml","className","dangerouslySetInnerHTML","__html","ref","classNames","ReactMde","_1","react_mde_en_1","icons_1","command_orchestrator_1","pasteOptionDefaults","handleTextChange","onChange","handlePaste","paste","commandOrchestrator","handleDrop","handleImageSelection","handleTabChange","newTab","onTabChange","handleCommand","finalRefs","refs","textarea","createRef","commands","minEditorHeight","min","maxEditorHeight","editorHeight","initialEditorHeight","getIcon","toolbarCommands","readOnly","disablePreview","minPreviewHeight","childProps","selectedTab","loadSuggestions","suggestionTriggerCharacters","textAreaComponent","finalChildProps","toolbarButtons","group","buttonContent","icon","buttonComponentClass","reactMde","Toolbar","toolbar","buttons","onCommand","tab","commandButtons","writeButtonProps","writeButton","previewButtonProps","previewButton","invisible","TextArea","suggestionsDropdownClasses","suggestionsDropdown","suggestionsAutoplace","onPaste","onDrop","textAreaProps","height","onPossibleKeyCommand","pasteDropSelect","defaultProps","SvgIcon","enL18n","SuggestionsDropdown","suggestions","caret","onSuggestionSelected","focusIndex","handleSuggestionClick","preventDefault","currentTarget","attributes","handleMouseDown","vw","documentElement","clientWidth","innerWidth","vh","clientHeight","innerHeight","left","scrollLeft","top","scrollTop","getBoundingClientRect","bottom","offsetHeight","right","offsetWidth","onClick","onMouseDown","TextAreaCaretPosition_1","Math_1","SuggestionsDropdown_1","currentLoadSuggestionsPromise","suggestionsPromiseIndex","getTextArea","handleOnChange","handleBlur","mention","status","startLoadingSuggestions","promiseIndex","triggeredBy","loadEmptySuggestion","getCaretCoordinates","startPosition","handleSuggestionSelected","handleKeyDown","suggestionsEnabled","shiftKey","mod","handleKeyUp","searchText","prevChar","includes","handleKeyPress","onBlur","onKeyDown","onKeyUp","onKeyPress","onDragOver","stopPropagation","ToolbarButtonGroup_1","ToolbarButton_1","children","writePreviewTabs","selected","write","commandGroup","ToolbarButtonGroup","hidden","ToolbarButton","defaultButtonProps","tabIndex","finalButtonProps","disabled","__createBinding","k2","__exportStar","MdeFontAwesomeIcon","transformedIcon","checkedListIcon","role","xmlns","viewBox","fill","orderedListIcon","unorderedListIcon","imageIcon","codeIcon","quoteIcon","linkIcon","strikeThroughIcon","italicIcon","headerIcon","boldIcon","MarkdownUtil","components_1","classValues","classValue","inner","input","ieRange","createRange","collapse","select","execCommand","setRangeText","canManipulateViaTextNodes","nodeName","browserSupportsTextareaTextNodes","firstChild","textNode","createTextNode","offset","startNode","endNode","range","nodeLength","nodeValue","setStart","nextSibling","deleteContents","insertNode","appendChild","createEvent","initEvent","dispatchEvent","getSurroundingWord","isWordDelimiter","neededBreaks","isInFirstLine","isInLastLine","properties","isBrowser","isFirefox","mozInnerScreenX","append","id","computed","getComputedStyle","currentStyle","whiteSpace","wordWrap","visibility","scrollHeight","overflowY","overflow","textContent","span","coordinates","offsetTop","offsetLeft","lineHeight","removeChild","file","FileReader","onload","onerror","readAsArrayBuffer","bodyOpenClassName","portalClassName","_extends","_createClass","descriptor","Constructor","protoProps","staticProps","_react","_react2","_interopRequireDefault","_reactDom2","_propTypes2","_ModalPortal2","ariaAppHider","_interopRequireWildcard","__esModule","newObj","default","_safeHTMLElement","_safeHTMLElement2","_reactLifecyclesCompat","_possibleConstructorReturn","isReact16","createPortal","createHTMLElement","getCreatePortal","unstable_renderSubtreeIntoContainer","Modal","_Component","_classCallCheck","instance","_ref","_temp","_len","args","_key","_ret","getPrototypeOf","removePortal","unmountComponentAtNode","parent","parentSelector","contains","console","warn","portalRef","portal","renderPortal","defaultStyles","_inherits","subClass","superClass","prevParent","nextParent","_props","isOpen","now","Date","closesAt","closeTimeoutMS","beforeClose","closeWithTimeout","setElement","propTypes","overlay","htmlOpenClassName","base","afterOpen","overlayClassName","appElement","SafeHTMLCollection","SafeNodeList","onAfterOpen","onRequestClose","ariaHideApp","shouldFocusAfterRender","shouldCloseOnOverlayClick","shouldReturnFocusAfterClose","preventScroll","aria","data","contentLabel","shouldCloseOnEsc","overlayRef","contentRef","overlayElement","contentElement","contentEl","backgroundColor","border","background","WebkitOverflowScrolling","borderRadius","outline","padding","_typeof","focusManager","_scopeTab2","classList","_portalOpenInstances2","CLASS_NAMES","ariaHiddenInstances","ModalPortal","setOverlayRef","setContentRef","afterClose","_this$props","parentDocument","ownerDocument","remove","getElementsByTagName","show","returnFocus","teardownScopedFocus","popWithoutFocus","onAfterClose","deregister","open","beforeOpen","closeTimer","setupScopedFocus","markForFocusLater","openAnimationFrame","requestAnimationFrame","overlayEl","close","closeWithoutTimeout","focusContent","contentHasFocus","keyCode","requestClose","handleOverlayOnClick","shouldClose","ownerHandlesClose","handleContentOnMouseUp","handleOverlayOnMouseDown","handleContentOnClick","handleContentOnMouseDown","shouldBeClosed","activeElement","buildClassName","which","additional","attributesFromObject","reduce","acc","moveFromContentToOverlay","cancelAnimationFrame","hide","register","_props2","contentStyles","overlayStyles","overlayProps","contentProps","onMouseUp","modal","testId","resetState","globalElement","removeAttribute","querySelectorAll","assertNodeList","useElement","el","validateElement","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_step","_iterator","setAttribute","return","_iteratorNormalCompletion2","_didIteratorError2","_iteratorError2","_step2","_iterator2","documentNotReadyOrSSRTesting","_warning2","nodeList","selector","HTMLCollection","NodeList","_arr","before","after","parentNode","instances","_arr2","_i2","check","subscribe","eventType","openInstances","opacity","cloneNode","lastChild","parentElement","htmlElement","cls","htmlClassList","removeClass","_cls","docBodyClassList","at","trackClass","classListRef","poll","untrackClass","classString","focusLaterElements","handleFocus","toFocus","modalElement","removeEventListener","detachEvent","_tabbable2","needToFocus","portalOpenInstances","PortalOpenInstances","openInstance","callback","subscribers","subscriber","EE","_exenv2","SafeHTMLElement","HTMLElement","tabbable","head","tail","getActiveElement","shadowRoot","checkSafari","navigator","userAgent","findTabbableDescendants","descendants","finished","tabbableNode","isTabIndexNotNaN","getAttribute","isTabIndexNaN","res","href","visible","rootNode","getRootNode","host","hidesContents","zeroSize","innerHTML","displayValue","getPropertyValue","scrollWidth","exception","_Modal2","__importDefault","styleObject","inline_style_parser_1","hasIterator","_message_js__WEBPACK_IMPORTED_MODULE_0__","_proto3_js__WEBPACK_IMPORTED_MODULE_1__","util","initPartial","fromBinary","fromJson","jsonValue","fromJsonString","jsonString","runtime","typeName","fields","newFieldList","other","getType","format","bin","opt","makeReadOptions","readerFactory","json","JSON","parse","toBinary","makeWriteOptions","writerFactory","finish","toJson","toJsonString","stringify","prettySpaces","toJSON","emitDefaultValues","encTable","decTable","protoBase64","dec","base64Str","es","bytePos","groupPos","enc","base64","assert","condition","assertInt32","arg","isInteger","assertUInt32","assertFloat32","isFinite","enumTypeSymbol","setEnumType","enumObject","makeEnumType","no","localName","_opt","names","numbers","normalValues","normalizeEnumValue","findName","findNumber","ScalarType","LongType","WireType","initFields","varint64read","lowBits","highBits","buf","assertBounds","middleByte","varint64write","hasNext","byte","splitBits","hasMoreBits","int64FromString","minus","add1e6digit","begin","digit1e6","negate","newBits","uInt64ToString","TWO_PWR_32_DBL","low","mid","high","digitA","digitB","digitC","decimalFrom1e7WithLeadingZeros","partial","digit1e7","varint32write","varint32read","protoInt64","makeInt64Support","dv","DataView","BigInt","getBigInt64","getBigUint64","setBigInt64","setBigUint64","BUF_BIGINT_DISABLE","MIN","MAX","UMIN","UMAX","supported","bi","uParse","getInt32","uEnc","setInt32","uDec","assertInt64String","assertUInt64String","int64ToString","bits","negative","scalarEquals","BYTES","UINT64","FIXED64","INT64","SFIXED64","SINT64","scalarZeroValue","longType","DOUBLE","STRING","isScalarZeroValue","createExtensionContainer","extension","field","container","initExtensionField","ext","repeated","fieldWrapper","unwrapField","hasExtension","messageType","extendee","listUnknownFields","find","uf","assertExtendee","isFieldSet","oneof","case","req","clearField","implicitPresence","isMessage","getOwnPropertyNames","every","actualType","wrapField","INT32","UINT32","jsonReadDefaults","ignoreUnknownFields","jsonWriteDefaults","enumAsInteger","useProtoFieldName","tokenNull","tokenIgnoredUnknownEnum","debugJsonValue","readField","parentType","targetArray","jsonItem","enumValue","readScalar","targetMap","jsonMapKey","jsonMapValue","readMapKey","BIGINT","currentValue","scalarValue","nullAsZeroValue","POSITIVE_INFINITY","NEGATIVE_INFINITY","float","FIXED32","SFIXED32","SINT32","int32","long","uLong","encodeURIComponent","proto_base64","writeField","jsonObj","entryKey","entryValue","writeScalar","enumType","jsonArr","textEncoder","stack","TextEncoder","chunks","len","fork","chunk","prev","uint32","raw","tag","fieldNo","encode","setFloat32","double","setFloat64","fixed32","setUint32","sfixed32","sint32","sfixed64","view","fixed64","int64","sint64","sign","uint64","textDecoder","varint64","TextDecoder","wireType","skip","Varint","Bit64","Bit32","LengthDelimited","StartGroup","fn","wt","EndGroup","zze","getUint32","getFloat32","getFloat64","decode","unknownFieldsSymbol","readDefaults","readUnknownFields","writeDefaults","writeUnknownFields","binary_format_readField","scalarType","read","binary_format_readScalar","readScalarLTString","readMessageField","mapKey","mapVal","readMapEntry","delimited","binary_format_writeField","packed","writePacked","method","scalarTypeInfo","binary_format_writeScalar","writeMessageField","writeMapEntry","keyValue","cloneSingularField","toU8Arr","InternalFieldList","normalizer","_fields","_normalizer","findJsonName","jsonName","jsonNames","all","byNumber","numbersAsc","byMember","members","localFieldName","protoName","inOneof","protoCamelCase","safeObjectProperty","safeMessageProperty","fieldJsonName","snakeCase","capNext","reservedObjectProperties","reservedMessageProperties","fallback","InternalOneofInfo","addField","findField","_lookup","proto3","normalizeFieldInfos","fieldInfos","packedByDefault","_f","ooname","member","syntax","oneofSeen","registry","typeRegistry","jsonKey","seen","found","findExtension","startsWith","endsWith","readOpt","writeOpt","ufs","discardUnknownFields","onUnknownField","findExtensionFor","filterUnknownFields","unknownFields","lengthOrEndTagFieldNo","delimitedMessageEncoding","sk","sourceField","mt","makeMessageType","makeEnum","getEnumType","makeExtension","fi","MethodKind","MethodIdempotency","createContextValues","defaultValue","delete","getJsonOptions","createClientMethodSerializers","useBinaryFormat","jsonOptions","binaryOptions","createBinarySerialization","createJsonSerialization","output","serialize","connect_error","Internal","from","InvalidArgument","applyInterceptors","interceptors","reverse","getAbortSignalReason","signal","aborted","normalize","setupSignal","cleanup","createDeadlineSignal","timeoutMs","timeoutId","controller","AbortController","listener","abort","DeadlineExceeded","createLinkedAbortController","signals","onAbort","createMethodUrl","baseUrl","service","headerContentType","headers_headerUnaryEncoding","headers_headerProtocolVersion","contentTypeRegExp","requestHeader","methodKind","userProvidedHeaders","setUserAgent","Headers","service_type","Unary","contentTypePrefix","validateResponse","headers","mimeType","parsedType","parseContentType","contentType","stream","binary","errorFromStatus","codeFromHttpStatus","httpStatus","Unauthenticated","PermissionDenied","Unimplemented","Unavailable","Unknown","isUnaryError","unaryError","allowedContentType","errorFromJson","metadata","code_string","details","detail","trailerDemux","__await","__asyncGenerator","asyncIterator","resume","fulfill","settle","createConnectTransport","assertFetchApi","unary","contextValues","defaultTimeoutMs","runUnaryCall","url","init","credentials","redirect","mode","useGet","useHttpGet","idempotency","NoSideEffects","transformConnectPostToGetRequest","request","useBase64","query","compression","fetch","response","http_headers_appendHeaders","demuxedHeader","demuxedTrailer","arrayBuffer","trailer","createRequestBody","ServerStreaming","encodeEnvelope","flags","setUint8","runStreamingCall","normalizeIterable","transform","it","throw","doneCalled","catch","fRes","parseResponseBody","trailerTarget","createEnvelopeReadableStream","ReadableStream","getReader","pull","DataLoss","enqueue","endStreamReceived","endStream","endStreamFromJson","parseErr","some","throwIfAborted","Code","ConnectError","_code_js__WEBPACK_IMPORTED_MODULE_0__","outgoingDetails","cause","_protocol_connect_code_string_js__WEBPACK_IMPORTED_MODULE_1__","rawMessage","Canceled","hasInstance","findDetails","typeOrRegistry","findMessage","__asyncValues","__values","__asyncDelegator","promise_client_asyncValues","promise_client_await","promise_client_asyncDelegator","promise_client_asyncGenerator","createPromiseClient","transport","makeAnyClient","createMethod","client","methodInfo","methods","onHeader","onTrailer","handleStreamResponse","createAsyncIterable","ClientStreaming","singleMessage","count","e_1","_h","_g","e_1_1","BiDiStreaming","stringToCode","codeToString","codeFromString","ok","unreachable","emptyOptions","settings","one","includeImageAlt","includeHtml","alt","blankLine","tokenize","effects","nok","micromark_util_character__WEBPACK_IMPORTED_MODULE_0__","xz","micromark_factory_space__WEBPACK_IMPORTED_MODULE_1__","Ch","factorySpace","limit","size","enter","consume","exit","asciiAlpha","regexCheck","asciiAlphanumeric","asciiAtext","asciiControl","asciiDigit","asciiHexDigit","asciiPunctuation","markdownLineEnding","markdownLineEndingOrSpace","markdownSpace","unicodePunctuation","unicodeWhitespace","regex","parameters","chunkStart","unshift","classifyCharacter","z3","B8","Xh","combineExtensions","syntaxExtension","hook","maybe","constructs","existing","micromark_util_chunked__WEBPACK_IMPORTED_MODULE_0__","normalizeIdentifier","resolveAll","events","called","hasRequiredReactIs_production_min","parse_1","eqIdx","endIdx","tryDecode","serialize_1","fieldContentRegExp","maxAge","domain","path","expires","__toString","valueOf","toUTCString","httpOnly","secure","partitioned","priority","sameSite","decodeURIComponent","readCookie","cleanValue","doNotParse","Cookies","cookies","defaultSetOptions","changeListeners","HAS_DOCUMENT_COOKIE","update","previousCookies","cookie","_checkChanges","domCookies","hasDocumentCookie","testingValue","TEST_HAS_DOCUMENT_COOKIE","_emitChange","params","_startPolling","pollingInterval","setInterval","_stopPolling","clearInterval","doNotUpdate","getAll","stringValue","finalOptions","addChangeListener","cookieStore","removeChangeListener","idx","CookiesContext","react","createContext","Provider","Consumer","CookiesProvider","SuppressedError","reactIs$1","reactIs_production_min","requireReactIs_production_min","for","$$typeof","AsyncMode","ConcurrentMode","ContextConsumer","ContextProvider","Element","ForwardRef","Fragment","Lazy","Memo","Portal","Profiler","StrictMode","Suspense","isAsyncMode","isConcurrentMode","isContextConsumer","isContextProvider","isElement","isForwardRef","isFragment","isLazy","isMemo","isPortal","isProfiler","isStrictMode","isSuspense","isValidElementType","reactIsExports","TYPE_STATICS","useCookies","dependencies","useContext","getOptions","allCookies","setCookies","useState","useLayoutEffect","newCookies","shouldUpdate","oldCookies","dependency","useMemo","reactIs","compare","nameRe","nameReJsx","lib_name","jsx","empty","Schema","normal","space","merge","definitions","Info","attribute","boolean","booleanish","overloadedBoolean","commaSeparated","spaceSeparated","commaOrSpaceSeparated","mustUseProperty","defined","powers","types_boolean","increment","checks","types_namespaceObject","DefinedInfo","mask","own","definition","info","xlink","xLinkActuate","xLinkArcRole","xLinkHref","xLinkRole","xLinkShow","xLinkTitle","xLinkType","xml","xmlLang","xmlBase","xmlSpace","caseSensitiveTransform","caseInsensitiveTransform","xmlnsxlink","xmlnsXLink","ariaActiveDescendant","ariaAtomic","ariaAutoComplete","ariaBusy","ariaChecked","ariaColCount","ariaColIndex","ariaColSpan","ariaControls","ariaCurrent","ariaDescribedBy","ariaDetails","ariaDisabled","ariaDropEffect","ariaErrorMessage","ariaExpanded","ariaFlowTo","ariaGrabbed","ariaHasPopup","ariaHidden","ariaInvalid","ariaKeyShortcuts","ariaLabel","ariaLabelledBy","ariaLevel","ariaLive","ariaModal","ariaMultiLine","ariaMultiSelectable","ariaOrientation","ariaOwns","ariaPlaceholder","ariaPosInSet","ariaPressed","ariaReadOnly","ariaRelevant","ariaRequired","ariaRoleDescription","ariaRowCount","ariaRowIndex","ariaRowSpan","ariaSelected","ariaSetSize","ariaSort","ariaValueMax","ariaValueMin","ariaValueNow","ariaValueText","html","acceptcharset","classname","htmlfor","httpequiv","abbr","acceptCharset","accessKey","action","allow","allowFullScreen","allowPaymentRequest","allowUserMedia","as","async","autoCapitalize","autoComplete","autoFocus","autoPlay","blocking","capture","charSet","checked","cite","cols","colSpan","contentEditable","controls","controlsList","coords","crossOrigin","dateTime","decoding","defer","dir","dirName","download","draggable","encType","enterKeyHint","fetchPriority","form","formAction","formEncType","formMethod","formNoValidate","formTarget","hrefLang","htmlFor","httpEquiv","imageSizes","imageSrcSet","inert","inputMode","integrity","is","isMap","itemId","itemProp","itemRef","itemScope","itemType","lang","language","loop","manifest","maxLength","media","minLength","muted","nonce","noModule","noValidate","onAfterPrint","onAuxClick","onBeforeMatch","onBeforePrint","onBeforeToggle","onBeforeUnload","onCancel","onCanPlay","onCanPlayThrough","onClose","onContextLost","onContextMenu","onContextRestored","onCopy","onCueChange","onCut","onDblClick","onDrag","onDragEnd","onDragEnter","onDragExit","onDragLeave","onDragStart","onDurationChange","onEmptied","onEnded","onError","onFocus","onFormData","onHashChange","onInput","onInvalid","onLanguageChange","onLoad","onLoadedData","onLoadedMetadata","onLoadEnd","onLoadStart","onMessage","onMessageError","onMouseEnter","onMouseLeave","onMouseMove","onMouseOut","onMouseOver","onOffline","onOnline","onPageHide","onPageShow","onPause","onPlay","onPlaying","onPopState","onProgress","onRateChange","onRejectionHandled","onReset","onResize","onScroll","onScrollEnd","onSecurityPolicyViolation","onSeeked","onSeeking","onSelect","onSlotChange","onStalled","onStorage","onSubmit","onSuspend","onTimeUpdate","onToggle","onUnhandledRejection","onUnload","onVolumeChange","onWaiting","onWheel","optimum","pattern","ping","placeholder","playsInline","popover","popoverTarget","popoverTargetAction","poster","preload","referrerPolicy","rel","required","reversed","rows","rowSpan","sandbox","scope","scoped","seamless","shadowRootClonable","shadowRootDelegatesFocus","shadowRootMode","sizes","slot","spellCheck","srcDoc","srcLang","srcSet","translate","typeMustMatch","useMap","width","wrap","writingSuggestions","align","aLink","archive","axis","bgColor","borderColor","bottomMargin","cellPadding","cellSpacing","char","charOff","classId","codeBase","codeType","color","compact","declare","face","frame","frameBorder","hSpace","leftMargin","longDesc","lowSrc","marginHeight","marginWidth","noResize","noHref","noShade","noWrap","profile","prompt","rev","rightMargin","scheme","scrolling","standby","summary","topMargin","valueType","vAlign","vLink","vSpace","allowTransparency","autoCorrect","autoSave","disablePictureInPicture","disableRemotePlayback","results","security","unselectable","svg","accentHeight","alignmentBaseline","arabicForm","baselineShift","capHeight","clipPath","clipRule","colorInterpolation","colorInterpolationFilters","colorProfile","colorRendering","dataType","dominantBaseline","enableBackground","fillOpacity","fillRule","floodColor","floodOpacity","fontFamily","fontSize","fontSizeAdjust","fontStretch","fontStyle","fontVariant","fontWeight","glyphName","glyphOrientationHorizontal","glyphOrientationVertical","horizAdvX","horizOriginX","horizOriginY","imageRendering","letterSpacing","lightingColor","markerEnd","markerMid","markerStart","navDown","navDownLeft","navDownRight","navLeft","navNext","navPrev","navRight","navUp","navUpLeft","navUpRight","onActivate","onBegin","onEnd","onFocusIn","onFocusOut","onMouseWheel","onRepeat","onShow","onZoom","overlinePosition","overlineThickness","paintOrder","panose1","pointerEvents","renderingIntent","shapeRendering","stopColor","stopOpacity","strikethroughPosition","strikethroughThickness","strokeDashArray","strokeDashOffset","strokeLineCap","strokeLineJoin","strokeMiterLimit","strokeOpacity","strokeWidth","textAnchor","textDecoration","textRendering","transformOrigin","underlinePosition","underlineThickness","unicodeBidi","unicodeRange","unitsPerEm","vAlphabetic","vHanging","vIdeographic","vMathematical","vectorEffect","vertAdvY","vertOriginX","vertOriginY","wordSpacing","writingMode","xHeight","playbackOrder","timelineBegin","about","accumulate","additive","alphabetic","amplitude","ascent","attributeName","attributeType","azimuth","bandwidth","baseFrequency","baseProfile","bbox","bias","by","calcMode","clip","clipPathUnits","contentScriptType","contentStyleType","cursor","cx","cy","defaultAction","descent","diffuseConstant","direction","display","dur","divisor","dx","dy","edgeMode","editable","elevation","exponent","externalResourcesRequired","filterRes","filterUnits","focusable","focusHighlight","fr","fx","fy","g1","g2","glyphRef","gradientTransform","gradientUnits","handler","hanging","hatchContentUnits","hatchUnits","ideographic","initialVisibility","in","in2","intercept","k1","k3","k4","kernelMatrix","kernelUnitLength","keyPoints","keySplines","keyTimes","kerning","lengthAdjust","limitingConeAngle","local","markerHeight","markerUnits","markerWidth","maskContentUnits","maskUnits","mathematical","mediaCharacterEncoding","mediaContentEncodings","mediaSize","mediaTime","numOctaves","observer","operator","order","orient","orientation","origin","pathLength","patternContentUnits","patternTransform","patternUnits","phase","pitch","points","pointsAtX","pointsAtY","pointsAtZ","preserveAlpha","preserveAspectRatio","primitiveUnits","propagate","radius","refX","refY","repeatCount","repeatDur","requiredExtensions","requiredFeatures","requiredFonts","requiredFormats","resource","restart","rotate","rx","ry","scale","seed","side","slope","snapshotTime","specularConstant","specularExponent","spreadMethod","spacing","startOffset","stdDeviation","stemh","stemv","stitchTiles","stroke","surfaceScale","syncBehavior","syncBehaviorDefault","syncMaster","syncTolerance","syncToleranceDefault","systemLanguage","tableValues","targetX","targetY","textLength","transformBehavior","to","u1","u2","unicode","viewTarget","widths","x1","x2","xChannelSelector","y1","y2","yChannelSelector","zoomAndPan","property_information_html","property_information_svg","valid","dash","cap","kebab","$0","camelcase","hastToReact","esm","cjs","pointEnd","point","pointStart","stringifyPosition","lib_position","lib_point","VFileMessage","causeOrReason","optionsOrParentOrPlace","legacyCause","place","ancestors","ruleId","fatal","actual","expected","note","lib_own","emptyMap","lib_cap","dashSomething","tableElements","tableCellElement","docs","lib_element","parentSchema","schema","tagName","findComponentFromName","createElementProps","alignValue","createProperty","Type","rest","dashes","padRight","padLeft","parseStyle","toCamel","ignoreInvalidStyle","filePath","stylePropertyNameCase","transformStylesToCssCasing","domCasing","cssCasing","transformStyleToCssCasing","toDash","elementAttributeNameCase","tableCellAlignToStyle","createChildren","child","thing","addNode","addChildren","mdxExpression","estree","evaluater","expression","program","lib_default","evaluateExpression","crashEstree","mdxJsxElement","createJsxElementProps","objectExpression","argument","mdxEsm","evaluateProgram","root","passNode","countsByName","passKeys","allowExpression","identifiers","Boolean","optional","components","$1","urlAttributes","SpliceBuffer","initial","stop","deleteCount","trunc","removed","chunkedPush","pushMany","unshiftMany","subtokenize","eventsArray","lineIndex","otherIndex","otherEvent","subevents","more","jumps","_tokenizer","_isInFirstContentOfListItem","subcontent","eventIndex","previous","token","startPositions","tokenizer","parser","childEvents","gaps","adjust","breaks","sliceStream","defineSkip","_gfmTasklistFirstContentOfListItem","_container","micromark_util_chunked","contentStart","attempt","contentInitial","micromark_factory_space","lineStart","micromark_util_character","document_document","childFlow","childToken","lineStartOffset","continued","containerState","continuation","documentContinue","checkNewContainers","_closeFlow","closeFlow","indexBeforeExits","indexBeforeFlow","exitContainers","documentContinued","currentConstruct","concrete","flowStart","interrupt","_gfmTableDynamicInterruptHack","containerConstruct","thereIsANewContainer","thereIsNoNewContainer","lazy","containerContinue","flow","flowContinue","writeToChild","eof","entry","disable","null","content_content","chunkInside","contentEnd","continuationConstruct","contentContinue","prefixed","sliceSerialize","blank_line","flowInitial","afterConstruct","resolver","createResolver","initializeFactory","text_text","notText","atBreak","resolveAllLineSuffixes","extraResolver","tabs","bufferIndex","_index","_bufferIndex","thematicBreak","marker","sequence","initialSize","pY","atMarker","inside","onBlank","listItemPrefixWhitespaceConstruct","endOfPrefix","otherPrefix","initialBlankLine","furtherBlankLines","notInCurrentItem","indentConstruct","blockQuote","contBefore","factoryDestination","literalType","literalMarkerType","rawType","stringType","balance","enclosedBefore","Av","enclosed","enclosedEscape","rawEscape","factoryLabel","markerType","labelInside","labelEscape","factoryTitle","escape","factoryWhitespace","titleBefore","beforeMarker","titleAfter","titleAfterOptionalWhitespace","codeIndented","afterPrefix","furtherStart","setextUnderline","paragraph","resolveTo","heading","htmlBlockNames","htmlRawNames","blankLineBefore","nonLazyContinuationStart","nonLazyContinuation","codeFenced","closeStart","beforeSequenceClose","sequenceClose","sizeOpen","sequenceCloseAfter","initialPrefix","beforeSequenceOpen","sequenceOpen","infoBefore","atNonLazyBreak","metaBefore","meta","contentBefore","beforeContentChunk","contentChunk","index_dom_element","decodeNamedCharacterReference","characterReference","numeric","H$","AF","characterEscape","sR","lineEnding","labelEnd","labelStart","_balanced","_inactive","labelEndNok","micromark_util_normalize_identifier","resourceConstruct","labelEndOk","referenceFullConstruct","referenceNotFull","referenceCollapsedConstruct","micromark_util_resolve_all","insideSpan","resourceBefore","resourceOpen","resourceEnd","resourceDestinationAfter","resourceDestinationMissing","resourceBetween","resourceTitleAfter","referenceFullAfter","referenceFullMissing","referenceCollapsedOpen","labelStartImage","attention","attentionMarkers","micromark_util_classify_character","_open","_close","openingSequence","closingSequence","use","nextEvents","movePoint","labelStartLink","constructs_document","identifier","labelAfter","markerAfter","destinationBefore","destinationAfter","afterWhitespace","constructs_flow","sequenceFurther","closingTag","markerB","declarationOpen","tagCloseStart","continuationDeclarationInside","jv","commentOpenInside","cdataOpenInside","slash","basicSelfClosing","completeClosingTagAfter","completeEnd","completeAttributeNameBefore","completeAttributeName","completeAttributeNameAfter","completeAttributeValueBefore","completeAttributeValueQuoted","completeAttributeValueUnquoted","completeAttributeValueQuotedAfter","completeAfter","continuationCommentInside","continuationRawTagOpen","continuationClose","continuationCdataInside","continuationAfter","continuationStart","continuationStartNonLazy","continuationBefore","continuationRawEndTag","constructs_string","constructs_text","schemeOrEmailAtext","emailAtext","schemeInsideOrEmailAtext","urlInside","emailAtSignOrDot","n9","emailLabel","emailValue","returnState","instruction","tagOpen","commentEnd","commentClose","lineEndingBefore","cdata","cdataClose","cdataEnd","instructionClose","tagClose","tagCloseBetween","tagOpenBetween","tagOpenAttributeName","tagOpenAttributeNameAfter","tagOpenAttributeValueBefore","tagOpenAttributeValueQuoted","tagOpenAttributeValueUnquoted","tagOpenAttributeValueQuotedAfter","lineEndingAfter","lineEndingAfterPrefix","between","tailExitIndex","headEnterIndex","search","decodeNumericCharacterReference","fromCodePoint","characterEscapeOrReference","$2","hex","mdast_util_from_markdown_lib_own","mdast_util_from_markdown_lib_point","defaultOnError","remarkParse","doc","encoding","atCarriageReturn","mdastExtensions","compiler","config","transforms","canContainEols","autolink","opener","autolinkProtocol","onenterdata","autolinkEmail","atxHeading","codeFlow","codeFencedFenceInfo","codeFencedFenceMeta","codeText","codeTextData","codeFlowValue","definitionDestinationString","definitionLabelString","definitionTitleString","emphasis","hardBreakEscape","hardBreak","hardBreakTrailing","htmlFlow","htmlFlowData","htmlText","htmlTextData","listItem","spread","_spread","listItemValue","expectingFirstListItemValue","ancestor","listOrdered","listUnordered","reference","referenceType","referenceString","resourceDestinationString","resourceTitleString","setextHeading","strong","closer","atxHeadingSequence","depth","onexitdata","characterEscapeValue","characterReferenceMarkerHexadecimal","onexitcharacterreferencemarker","characterReferenceMarkerNumeric","characterReferenceValue","characterReferenceType","flowCodeInside","codeFencedFence","onexithardbreak","inReference","fragment","labelText","atHardBreak","setextHeadingSlurpLineEnding","setextHeadingLineSequence","codePointAt","setextHeadingText","configure","combined","tree","tokenStack","listStack","prepareList","firstBlankLineIndex","containerBalance","listSpread","tailIndex","tailEvent","and","errorHandler","siblings","onExitError","lib","ordered","postprocess","parse_parse","micromark_util_combine_extensions","constructs_namespaceObject","createTokenizer","columnStart","resolveAllConstructs","accountForPotentialSkip","constructFactory","construct","addResult","onsuccessfulcheck","expandTabs","serializeChunks","atTab","main","chunkIndex","go","sliceChunks","startIndex","startBufferIndex","endIndex","endBufferIndex","restore","onreturn","bogusState","listOfConstructs","constructIndex","handleListOfConstructs","def","handleConstruct","store","startPoint","startPrevious","startCurrentConstruct","startEventsIndex","startStack","preprocess","endPosition","lastIndex","ceil","deserializer","out","unpair","RegExp","deserialize","serialized","serialize_toString","asString","shouldSkip","TYPE","serializer","strict","pair","toISOString","lossy","structured_clone_esm","structuredClone","normalizeUri","defaultFootnoteBackContent","rereferenceIndex","defaultFootnoteBackLabel","referenceIndex","revert","subtype","suffix","contents","listItemLoose","trimLine","handlers_handlers","blockquote","patch","applyData","break","footnoteReference","counter","clobberPrefix","safeId","footnoteOrder","reuseCounter","footnoteCounts","dataFootnoteRef","sup","allowDangerousHtml","imageReference","definitionById","inlineCode","linkReference","loose","listLoose","table","firstRow","tableContent","tableCell","tableRow","rowIndex","cellIndex","cells","cell","trimLines","last","toml","ignore","yaml","footnoteDefinition","state_own","state_emptyOptions","hName","hChildren","hProperties","nodes","trimMarkdownSpaceStart","toHast","createState","footnoteById","handlers","handle","passThrough","shallow","unknown","unknownHandler","unist_util_visit_lib","Vn","foot","footer","footnoteBackContent","footnoteBackLabel","footnoteLabel","footnoteLabelTagName","footnoteLabelProperties","listItems","backReferences","counts","dataFootnoteBackref","tailTail","dataFootnotes","remarkRehype","destination","hastTree","bail","toStringTag","minpath","basename","extname","seenNonSlash","assertPath","firstNonSlashEnd","extnameIndex","dirname","unmatchedSlash","startPart","startDot","preDotState","segments","joined","minpath_browser_normalize","absolute","normalizeString","allowAboveRoot","lastSlashIndex","lastSegmentLength","lastSlash","dots","sep","minproc","isUrl","fileUrlOrPath","protocol","auth","VFile","history","messages","stored","assertNonEmpty","assertPart","lib_assertPath","stem","urlToPath","URL","getPathFromURLPosix","hostname","pathname","third","fail","decoder","part","CallableInstance","constr","unified_lib_own","Processor","Compiler","Parser","attachers","freezeIndex","frozen","namespace","transformers","trough","fns","pipeline","middlewareIndex","lib_wrap","middleware","fnExpectsCallback","middelware","attacher","assertUnfrozen","transformer","realFile","vfile","assertParser","assertCompiler","executor","parseTree","realDone","compileResult","processSync","complete","assertDone","assertNode","outputTree","resultingTree","runSync","addPlugin","addList","addPreset","plugins","plugin","entryIndex","primary","currentPrimary","unified","asyncName","looksLikeAVFile","emptyPlugins","emptyRemarkRehypeOptions","safeProtocol","deprecations","Markdown","allowedElements","allowElement","disallowedElements","rehypePlugins","remarkPlugins","remarkRehypeOptions","skipHtml","unwrapDisallowed","urlTransform","defaultUrlTransform","processor","deprecation","t1","mdastTree","toJsxRuntime","jsxDEV","jsxs","development","isStaticChildren","columnNumber","fileName","lineNumber","createEvaluater","jsx_runtime","colon","questionMark","numberSign","ccount","character","inConstruct","notInConstruct","enterLiteralAutolink","enterLiteralAutolinkValue","exitLiteralAutolinkHttp","exitLiteralAutolinkWww","exitLiteralAutolinkEmail","exitLiteralAutolink","transformGfmAutolinkLiterals","findAndReplace","ignored","unist_util_is_lib","pairs","toPairs","tupleOrList","tuple","escapeStringRegexp","toFunction","pairIndex","S4","visitor","parents","grandparent","change","matchObject","findUrl","findEmail","isCorrectDomain","parts","splitUrl","trailExec","trail","closingParenIndex","openingParens","closingParens","atext","email","enterFootnoteDefinition","enterFootnoteDefinitionLabelString","exitFootnoteDefinitionLabelString","exitFootnoteDefinition","enterFootnoteCall","enterFootnoteCallString","exitFootnoteCallString","exitFootnoteCall","tracker","createTracker","move","subexit","safe","associationId","indentLines","containerFlow","blank","peek","constructsWithoutStrikethrough","enterStrikethrough","exitStrikethrough","handleDelete","containerPhrasing","defaultStringLength","toAlignment","unsafe","compilePattern","listItemIndent","checkListItemIndent","bullet","bulletCurrent","checkBullet","incrementListMarker","repeat","enterTable","_align","inTable","exitTable","enterRow","enterCell","exitCodeText","exitCheck","exitParagraphWithTaskListItem","firstParaghraph","sibling","listItemWithTaskListItem","checkable","checkbox","wwwPrefix","wwwPrefixInside","wwwPrefixAfter","underscoreInLastSegment","underscoreInLastLastSegment","domainInside","domainAfter","domainAtPunctuation","sizeClose","pathInside","pathAtPunctuation","trailCharacterReferenceStart","trailBracketAfter","trailCharacterReferenceInside","emailDomainDotTrail","wwwAutolink","previousWww","previousUnbalanced","wwwAfter","protocolAutolink","previousProtocol","protocolPrefixInside","protocolSlashesInside","afterProtocol","protocolAfter","emailAutolink","dot","gfmAtext","previousEmail","emailDomain","emailDomainAfter","emailDomainDot","syntax_text","syntax_code","_gfmAutolinkLiteralWalkedInto","indent","tokenizePotentialGfmFootnoteCall","gfmFootnotes","resolveToPotentialGfmFootnoteCall","replacement","tokenizeGfmFootnoteCall","callStart","callData","callEscape","tokenizeDefinitionStart","labelAtMarker","whitespaceAfter","tokenizeDefinitionContinuation","gfmFootnoteDefinitionEnd","EditMap","addImplementation","editMap","vecs","tokenizeTable","sizeB","bodyRowStart","headRowBefore","headRowBreak","headDelimiterStart","headRowData","headRowEscape","headDelimiterBefore","headDelimiterValueBefore","headDelimiterCellBefore","headDelimiterLeftAlignmentAfter","headDelimiterCellAfter","headDelimiterFiller","headDelimiterRightAlignmentAfter","bodyRowBreak","bodyRowData","bodyRowEscape","resolveTable","currentTable","currentBody","currentCell","inFirstCellAwaitingPipe","rowKind","lastCell","afterHeadAwaitingFirstBodyRow","lastTableEnd","flushTableEnd","flushCell","gfmTableAlign","inDelimiterRow","alignIndex","rowEnd","previousCell","getPoint","relatedStart","relatedEnd","valueToken","tableBody","exits","related","tasklistCheck","spaceThenNonSpace","remarkGfm","micromarkExtensions","fromMarkdownExtensions","toMarkdownExtensions","gfmStrikethrough","single","options_","singleTilde","literalAutolink","literalAutolinkEmail","literalAutolinkHttp","literalAutolinkWww","gfmFootnoteDefinition","gfmFootnoteDefinitionLabelString","gfmFootnoteCall","gfmFootnoteCallString","tableData","tableHeader","taskListCheckValueChecked","taskListCheckValueUnchecked","gfmTableToMarkdown","tableCellPadding","alignDelimiters","tablePipeAlign","stringLength","around","serializeData","handleTableAsData","handleTableRowAsData","handleTableCell","matrix","markdownTable","alignments","cellMatrix","sizeMatrix","longestCellByColumn","mostCellsPerRow","row","columnIndex","delimiterStart","delimiterEnd","convert","castFactory","anyFactory","tests","nodeAsRecord","checkAsRecord","testFunction","looksLikeANode","EXIT","visitParents","factory","visit","subresult","grandparents","nodeAsParent","testOrVisitor","visitorOrReverse","maybeReverse","unist_util_visit_parents__WEBPACK_IMPORTED_MODULE_0__"],"sourceRoot":""}