{"version":3,"file":"static/js/main.js","mappings":"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","sources":["../node_modules/extend/index.js","../node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","../node_modules/hoist-non-react-statics/node_modules/react-is/cjs/react-is.production.min.js","../node_modules/hoist-non-react-statics/node_modules/react-is/index.js","../node_modules/inline-style-parser/index.js","../node_modules/js-guid/dist/guid.constants.js","../node_modules/js-guid/dist/guid.helpers.js","../node_modules/js-guid/dist/guid.js","../node_modules/js-guid/dist/index.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/index.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/react-dom/client.js","../node_modules/react-dom/index.js","../node_modules/react-ga4/dist/format.js","../node_modules/react-ga4/dist/ga4.js","../node_modules/react-ga4/dist/gtag.js","../node_modules/react-ga4/dist/index.js","../node_modules/react-router/node_modules/isarray/index.js","../node_modules/react-router/node_modules/path-to-regexp/index.js","../node_modules/react-router/node_modules/react-is/cjs/react-is.production.min.js","../node_modules/react-router/node_modules/react-is/index.js","../node_modules/react/cjs/react-jsx-runtime.production.min.js","../node_modules/react/cjs/react.production.min.js","../node_modules/react/index.js","../node_modules/react/jsx-runtime.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/scheduler/index.js","../node_modules/style-to-object/src/index.ts","../node_modules/use-sync-external-store/cjs/use-sync-external-store-with-selector.production.min.js","../node_modules/use-sync-external-store/with-selector.js","../node_modules/@babel/runtime/helpers/defineProperty.js","../node_modules/@babel/runtime/helpers/toPrimitive.js","../node_modules/@babel/runtime/helpers/toPropertyKey.js","../node_modules/@babel/runtime/helpers/typeof.js","../webpack/bootstrap","../webpack/runtime/compat get default export","../webpack/runtime/create fake namespace object","../webpack/runtime/define property getters","../webpack/runtime/global","../webpack/runtime/hasOwnProperty shorthand","../webpack/runtime/make namespace object","constants/pattern.js","util/util.js","../node_modules/@reduxjs/toolkit/node_modules/immer/src/utils/env.ts","../node_modules/@reduxjs/toolkit/node_modules/immer/src/utils/errors.ts","../node_modules/@reduxjs/toolkit/node_modules/immer/src/utils/common.ts","../node_modules/@reduxjs/toolkit/node_modules/immer/src/utils/plugins.ts","../node_modules/@reduxjs/toolkit/node_modules/immer/src/core/scope.ts","../node_modules/@reduxjs/toolkit/node_modules/immer/src/core/finalize.ts","../node_modules/@reduxjs/toolkit/node_modules/immer/src/core/proxy.ts","../node_modules/@reduxjs/toolkit/node_modules/immer/src/core/immerClass.ts","../node_modules/@reduxjs/toolkit/node_modules/immer/src/core/current.ts","../node_modules/@reduxjs/toolkit/node_modules/immer/src/immer.ts","../node_modules/reselect/src/utils.ts","../node_modules/reselect/src/autotrackMemoize/proxy.ts","../node_modules/reselect/src/weakMapMemoize.ts","../node_modules/reselect/src/createSelectorCreator.ts","../node_modules/redux/src/utils/formatProdErrorMessage.ts","../node_modules/redux/src/utils/symbol-observable.ts","../node_modules/redux/src/utils/actionTypes.ts","../node_modules/redux/src/utils/isPlainObject.ts","../node_modules/redux/src/createStore.ts","../node_modules/redux/src/combineReducers.ts","../node_modules/redux/src/compose.ts","../node_modules/redux-thunk/dist/redux-thunk.mjs","../node_modules/@reduxjs/toolkit/src/devtoolsExtension.ts","../node_modules/@reduxjs/toolkit/src/createDraftSafeSelector.ts","../node_modules/@reduxjs/toolkit/src/createAction.ts","../node_modules/redux/src/utils/isAction.ts","../node_modules/@reduxjs/toolkit/src/utils.ts","../node_modules/@reduxjs/toolkit/src/getDefaultMiddleware.ts","../node_modules/@reduxjs/toolkit/src/autoBatchEnhancer.ts","../node_modules/@reduxjs/toolkit/src/getDefaultEnhancers.ts","../node_modules/@reduxjs/toolkit/src/mapBuilders.ts","../node_modules/@reduxjs/toolkit/src/createSlice.ts","../node_modules/@reduxjs/toolkit/src/createReducer.ts","../node_modules/@reduxjs/toolkit/src/listenerMiddleware/utils.ts","../node_modules/@reduxjs/toolkit/src/listenerMiddleware/exceptions.ts","../node_modules/@reduxjs/toolkit/src/listenerMiddleware/task.ts","../node_modules/@reduxjs/toolkit/src/listenerMiddleware/index.ts","../node_modules/@reduxjs/toolkit/src/combineSlices.ts","../node_modules/@reduxjs/toolkit/src/formatProdErrorMessage.ts","state/sources/sourcesSlice.js","state/ui/uiSlice.js","state/prompt/promptSlice.js","../node_modules/axios/lib/helpers/bind.js","../node_modules/axios/lib/utils.js","../node_modules/axios/lib/core/AxiosError.js","../node_modules/axios/lib/helpers/toFormData.js","../node_modules/axios/lib/helpers/AxiosURLSearchParams.js","../node_modules/axios/lib/helpers/buildURL.js","../node_modules/axios/lib/core/InterceptorManager.js","../node_modules/axios/lib/defaults/transitional.js","../node_modules/axios/lib/platform/browser/index.js","../node_modules/axios/lib/platform/browser/classes/URLSearchParams.js","../node_modules/axios/lib/platform/browser/classes/FormData.js","../node_modules/axios/lib/platform/browser/classes/Blob.js","../node_modules/axios/lib/platform/common/utils.js","../node_modules/axios/lib/platform/index.js","../node_modules/axios/lib/helpers/formDataToJSON.js","../node_modules/axios/lib/defaults/index.js","../node_modules/axios/lib/helpers/toURLEncodedForm.js","../node_modules/axios/lib/helpers/parseHeaders.js","../node_modules/axios/lib/core/AxiosHeaders.js","../node_modules/axios/lib/core/transformData.js","../node_modules/axios/lib/cancel/isCancel.js","../node_modules/axios/lib/cancel/CanceledError.js","../node_modules/axios/lib/helpers/cookies.js","../node_modules/axios/lib/core/buildFullPath.js","../node_modules/axios/lib/helpers/isAbsoluteURL.js","../node_modules/axios/lib/helpers/combineURLs.js","../node_modules/axios/lib/helpers/isURLSameOrigin.js","../node_modules/axios/lib/helpers/speedometer.js","../node_modules/axios/lib/adapters/xhr.js","../node_modules/axios/lib/core/settle.js","../node_modules/axios/lib/helpers/parseProtocol.js","../node_modules/axios/lib/adapters/adapters.js","../node_modules/axios/lib/helpers/null.js","../node_modules/axios/lib/core/dispatchRequest.js","../node_modules/axios/lib/core/mergeConfig.js","../node_modules/axios/lib/env/data.js","../node_modules/axios/lib/helpers/validator.js","../node_modules/axios/lib/core/Axios.js","../node_modules/axios/lib/cancel/CancelToken.js","../node_modules/axios/lib/helpers/HttpStatusCode.js","../node_modules/axios/lib/axios.js","../node_modules/axios/lib/helpers/spread.js","../node_modules/axios/lib/helpers/isAxiosError.js","util/tracking.js","../node_modules/react-redux/src/utils/react.ts","../node_modules/react-redux/src/components/Context.ts","../node_modules/react-redux/src/utils/useSyncExternalStore.ts","../node_modules/react-redux/src/hooks/useReduxContext.ts","../node_modules/react-redux/src/hooks/useSelector.ts","../node_modules/react-redux/src/utils/react-is.ts","../node_modules/react-redux/src/utils/batch.ts","../node_modules/react-redux/src/utils/Subscription.ts","../node_modules/react-redux/src/utils/useIsomorphicLayoutEffect.ts","../node_modules/react-redux/src/utils/hoistStatics.ts","../node_modules/react-redux/src/components/Provider.tsx","../node_modules/react-redux/src/hooks/useStore.ts","../node_modules/react-redux/src/hooks/useDispatch.ts","components/icons/AvatarAnswerIcon.jsx","components/icons/ArrowDownIcon.jsx","components/icons/ArrowUpIcon.jsx","components/icons/LargeTextIcon.jsx","components/icons/MediumTextIcon.jsx","components/icons/ShortTextIcon.jsx","hook/useMobile.js","../node_modules/react-redux/src/index.ts","../node_modules/react-redux/src/components/connect.tsx","components/ContentLength.jsx","components/icons/CopeIcon.jsx","components/icons/DislikeIcon.jsx","components/icons/LikeIcon.jsx","components/icons/RefreshIcon.jsx","components/icons/TickIcon.jsx","../node_modules/turndown/lib/turndown.browser.es.js","components/chat-dialog/ChatBubbleAction.jsx","hook/useToggleSource.js","components/icons/PauseIcon.jsx","components/chat-dialog/ChatBubbleCancel.jsx","../node_modules/comma-separated-tokens/index.js","../node_modules/estree-util-is-identifier-name/lib/index.js","../node_modules/hast-util-whitespace/lib/index.js","../node_modules/property-information/lib/util/schema.js","../node_modules/property-information/lib/util/merge.js","../node_modules/property-information/lib/normalize.js","../node_modules/property-information/lib/util/info.js","../node_modules/property-information/lib/util/types.js","../node_modules/property-information/lib/util/defined-info.js","../node_modules/property-information/lib/util/create.js","../node_modules/property-information/lib/xlink.js","../node_modules/property-information/lib/xml.js","../node_modules/property-information/lib/util/case-sensitive-transform.js","../node_modules/property-information/lib/util/case-insensitive-transform.js","../node_modules/property-information/lib/xmlns.js","../node_modules/property-information/lib/aria.js","../node_modules/property-information/lib/html.js","../node_modules/property-information/lib/svg.js","../node_modules/property-information/index.js","../node_modules/property-information/lib/find.js","../node_modules/property-information/lib/hast-to-react.js","../node_modules/space-separated-tokens/index.js","../node_modules/style-to-object/esm/index.mjs","../node_modules/unist-util-position/lib/index.js","../node_modules/unist-util-stringify-position/lib/index.js","../node_modules/vfile-message/lib/index.js","../node_modules/hast-util-to-jsx-runtime/lib/index.js","../node_modules/html-url-attributes/lib/index.js","../node_modules/mdast-util-to-string/lib/index.js","../node_modules/micromark-util-chunked/index.js","../node_modules/micromark-util-subtokenize/index.js","../node_modules/micromark-util-combine-extensions/index.js","../node_modules/micromark-util-character/index.js","../node_modules/micromark-factory-space/index.js","../node_modules/micromark/lib/initialize/content.js","../node_modules/micromark/lib/initialize/document.js","../node_modules/micromark-core-commonmark/lib/blank-line.js","../node_modules/micromark-core-commonmark/lib/content.js","../node_modules/micromark/lib/initialize/flow.js","../node_modules/micromark/lib/initialize/text.js","../node_modules/micromark-util-resolve-all/index.js","../node_modules/micromark/lib/create-tokenizer.js","../node_modules/micromark-core-commonmark/lib/thematic-break.js","../node_modules/micromark-core-commonmark/lib/list.js","../node_modules/micromark-core-commonmark/lib/block-quote.js","../node_modules/micromark-factory-destination/index.js","../node_modules/micromark-factory-label/index.js","../node_modules/micromark-factory-title/index.js","../node_modules/micromark-factory-whitespace/index.js","../node_modules/micromark-util-normalize-identifier/index.js","../node_modules/micromark-core-commonmark/lib/definition.js","../node_modules/micromark-core-commonmark/lib/code-indented.js","../node_modules/micromark-core-commonmark/lib/heading-atx.js","../node_modules/micromark-core-commonmark/lib/setext-underline.js","../node_modules/micromark-util-html-tag-name/index.js","../node_modules/micromark-core-commonmark/lib/html-flow.js","../node_modules/micromark-core-commonmark/lib/code-fenced.js","../node_modules/decode-named-character-reference/index.dom.js","../node_modules/micromark-core-commonmark/lib/character-reference.js","../node_modules/micromark-core-commonmark/lib/character-escape.js","../node_modules/micromark-core-commonmark/lib/line-ending.js","../node_modules/micromark-core-commonmark/lib/label-end.js","../node_modules/micromark-core-commonmark/lib/label-start-image.js","../node_modules/micromark-util-classify-character/index.js","../node_modules/micromark-core-commonmark/lib/attention.js","../node_modules/micromark-core-commonmark/lib/autolink.js","../node_modules/micromark-core-commonmark/lib/html-text.js","../node_modules/micromark-core-commonmark/lib/label-start-link.js","../node_modules/micromark-core-commonmark/lib/hard-break-escape.js","../node_modules/micromark-core-commonmark/lib/code-text.js","../node_modules/micromark/lib/constructs.js","../node_modules/micromark/lib/preprocess.js","../node_modules/micromark-util-decode-numeric-character-reference/index.js","../node_modules/micromark-util-decode-string/index.js","../node_modules/mdast-util-from-markdown/lib/index.js","../node_modules/micromark/lib/postprocess.js","../node_modules/micromark/lib/parse.js","../node_modules/remark-parse/lib/index.js","../node_modules/@ungap/structured-clone/esm/types.js","../node_modules/@ungap/structured-clone/esm/deserialize.js","../node_modules/@ungap/structured-clone/esm/serialize.js","../node_modules/@ungap/structured-clone/esm/index.js","../node_modules/micromark-util-sanitize-uri/index.js","../node_modules/mdast-util-to-hast/lib/footer.js","../node_modules/unist-util-is/lib/index.js","../node_modules/unist-util-visit-parents/lib/index.js","../node_modules/unist-util-visit/lib/index.js","../node_modules/mdast-util-to-hast/lib/revert.js","../node_modules/mdast-util-to-hast/lib/handlers/list-item.js","../node_modules/trim-lines/index.js","../node_modules/mdast-util-to-hast/lib/handlers/index.js","../node_modules/mdast-util-to-hast/lib/handlers/blockquote.js","../node_modules/mdast-util-to-hast/lib/handlers/break.js","../node_modules/mdast-util-to-hast/lib/handlers/code.js","../node_modules/mdast-util-to-hast/lib/handlers/delete.js","../node_modules/mdast-util-to-hast/lib/handlers/emphasis.js","../node_modules/mdast-util-to-hast/lib/handlers/footnote-reference.js","../node_modules/mdast-util-to-hast/lib/handlers/heading.js","../node_modules/mdast-util-to-hast/lib/handlers/html.js","../node_modules/mdast-util-to-hast/lib/handlers/image-reference.js","../node_modules/mdast-util-to-hast/lib/handlers/image.js","../node_modules/mdast-util-to-hast/lib/handlers/inline-code.js","../node_modules/mdast-util-to-hast/lib/handlers/link-reference.js","../node_modules/mdast-util-to-hast/lib/handlers/link.js","../node_modules/mdast-util-to-hast/lib/handlers/list.js","../node_modules/mdast-util-to-hast/lib/handlers/paragraph.js","../node_modules/mdast-util-to-hast/lib/handlers/root.js","../node_modules/mdast-util-to-hast/lib/handlers/strong.js","../node_modules/mdast-util-to-hast/lib/handlers/table.js","../node_modules/mdast-util-to-hast/lib/handlers/table-cell.js","../node_modules/mdast-util-to-hast/lib/handlers/table-row.js","../node_modules/mdast-util-to-hast/lib/handlers/text.js","../node_modules/mdast-util-to-hast/lib/handlers/thematic-break.js","../node_modules/mdast-util-to-hast/lib/state.js","../node_modules/mdast-util-to-hast/lib/index.js","../node_modules/remark-rehype/lib/index.js","../node_modules/bail/index.js","../node_modules/unified/node_modules/is-plain-obj/index.js","../node_modules/trough/lib/index.js","../node_modules/vfile/lib/minpath.browser.js","../node_modules/vfile/lib/minproc.browser.js","../node_modules/vfile/lib/minurl.shared.js","../node_modules/vfile/lib/minurl.browser.js","../node_modules/vfile/lib/index.js","../node_modules/unified/lib/callable-instance.js","../node_modules/unified/lib/index.js","../node_modules/react-markdown/lib/index.js","../node_modules/hast-util-parse-selector/lib/index.js","../node_modules/hastscript/lib/create-h.js","../node_modules/hastscript/lib/svg-case-sensitive-tag-names.js","../node_modules/hastscript/lib/index.js","../node_modules/vfile-location/lib/index.js","../node_modules/web-namespaces/index.js","../node_modules/hast-util-from-parse5/lib/index.js","../node_modules/zwitch/index.js","../node_modules/hast-util-to-parse5/lib/index.js","../node_modules/html-void-elements/index.js","../node_modules/hast-util-raw/node_modules/parse5/dist/common/unicode.js","../node_modules/hast-util-raw/node_modules/parse5/dist/common/error-codes.js","../node_modules/hast-util-raw/node_modules/parse5/dist/tokenizer/preprocessor.js","../node_modules/hast-util-raw/node_modules/parse5/dist/common/token.js","../https:/raw.githubusercontent.com/fb55/entities/61afd4701eaa736978b13c7351cd3de9a96b04bc/src/generated/decode-data-html.ts","../https:/raw.githubusercontent.com/fb55/entities/61afd4701eaa736978b13c7351cd3de9a96b04bc/src/generated/decode-data-xml.ts","../https:/raw.githubusercontent.com/fb55/entities/61afd4701eaa736978b13c7351cd3de9a96b04bc/src/decode_codepoint.ts","../https:/raw.githubusercontent.com/fb55/entities/61afd4701eaa736978b13c7351cd3de9a96b04bc/src/decode.ts","../node_modules/hast-util-raw/node_modules/parse5/dist/common/html.js","../node_modules/hast-util-raw/node_modules/parse5/dist/tokenizer/index.js","../node_modules/hast-util-raw/node_modules/parse5/dist/parser/open-element-stack.js","../node_modules/hast-util-raw/node_modules/parse5/dist/parser/formatting-element-list.js","../node_modules/hast-util-raw/node_modules/parse5/dist/tree-adapters/default.js","../node_modules/hast-util-raw/node_modules/parse5/dist/common/doctype.js","../node_modules/hast-util-raw/node_modules/parse5/dist/common/foreign-content.js","../node_modules/hast-util-raw/node_modules/parse5/dist/parser/index.js","../https:/raw.githubusercontent.com/fb55/entities/61afd4701eaa736978b13c7351cd3de9a96b04bc/src/escape.ts","../node_modules/hast-util-raw/node_modules/parse5/dist/serializer/index.js","../node_modules/hast-util-raw/lib/index.js","../node_modules/rehype-raw/lib/index.js","../node_modules/ccount/index.js","../node_modules/mdast-util-find-and-replace/lib/index.js","../node_modules/mdast-util-find-and-replace/node_modules/escape-string-regexp/index.js","../node_modules/mdast-util-gfm-autolink-literal/lib/index.js","../node_modules/mdast-util-gfm-footnote/lib/index.js","../node_modules/mdast-util-gfm-strikethrough/lib/index.js","../node_modules/markdown-table/index.js","../node_modules/mdast-util-to-markdown/lib/handle/blockquote.js","../node_modules/mdast-util-to-markdown/lib/util/pattern-in-scope.js","../node_modules/mdast-util-to-markdown/lib/handle/break.js","../node_modules/mdast-util-to-markdown/lib/handle/code.js","../node_modules/mdast-util-to-markdown/lib/util/check-quote.js","../node_modules/mdast-util-to-markdown/lib/handle/emphasis.js","../node_modules/mdast-util-to-markdown/lib/util/check-emphasis.js","../node_modules/mdast-util-to-markdown/lib/handle/html.js","../node_modules/mdast-util-to-markdown/lib/handle/image.js","../node_modules/mdast-util-to-markdown/lib/handle/image-reference.js","../node_modules/mdast-util-to-markdown/lib/handle/inline-code.js","../node_modules/mdast-util-to-markdown/lib/util/format-link-as-autolink.js","../node_modules/mdast-util-to-markdown/lib/handle/link.js","../node_modules/mdast-util-to-markdown/lib/handle/link-reference.js","../node_modules/mdast-util-to-markdown/lib/util/check-bullet.js","../node_modules/mdast-util-to-markdown/lib/util/check-rule.js","../node_modules/mdast-util-phrasing/lib/index.js","../node_modules/mdast-util-to-markdown/lib/handle/strong.js","../node_modules/mdast-util-to-markdown/lib/util/check-strong.js","../node_modules/mdast-util-to-markdown/lib/handle/index.js","../node_modules/mdast-util-to-markdown/lib/util/check-fence.js","../node_modules/mdast-util-to-markdown/lib/util/format-code-as-indented.js","../node_modules/longest-streak/index.js","../node_modules/mdast-util-to-markdown/lib/handle/definition.js","../node_modules/mdast-util-to-markdown/lib/handle/heading.js","../node_modules/mdast-util-to-markdown/lib/util/format-heading-as-setext.js","../node_modules/mdast-util-to-markdown/lib/handle/list.js","../node_modules/mdast-util-to-markdown/lib/util/check-bullet-ordered.js","../node_modules/mdast-util-to-markdown/lib/util/check-bullet-other.js","../node_modules/mdast-util-to-markdown/lib/handle/list-item.js","../node_modules/mdast-util-to-markdown/lib/util/check-list-item-indent.js","../node_modules/mdast-util-to-markdown/lib/handle/paragraph.js","../node_modules/mdast-util-to-markdown/lib/handle/root.js","../node_modules/mdast-util-to-markdown/lib/handle/text.js","../node_modules/mdast-util-to-markdown/lib/handle/thematic-break.js","../node_modules/mdast-util-to-markdown/lib/util/check-rule-repetition.js","../node_modules/mdast-util-gfm-table/lib/index.js","../node_modules/mdast-util-gfm-task-list-item/lib/index.js","../node_modules/micromark-extension-gfm-autolink-literal/lib/syntax.js","../node_modules/micromark-extension-gfm-footnote/lib/syntax.js","../node_modules/micromark-extension-gfm-strikethrough/lib/syntax.js","../node_modules/micromark-extension-gfm-table/lib/edit-map.js","../node_modules/micromark-extension-gfm-table/lib/infer.js","../node_modules/micromark-extension-gfm-table/lib/syntax.js","../node_modules/micromark-extension-gfm-task-list-item/lib/syntax.js","../node_modules/remark-gfm/lib/index.js","../node_modules/micromark-extension-gfm/index.js","../node_modules/mdast-util-gfm/lib/index.js","components/chat-dialog/ChatBubbleExternal.jsx","components/chat-dialog/ChatBubbleInternal.jsx","components/icons/PlusIcon.jsx","components/icons/UserAvatarIcon.jsx","components/icons/CloseIcon.jsx","components/chat-dialog/UserFeedback.jsx","state/chat/chatSlice.js","components/chat-dialog/ChatBubble.jsx","components/ChatDisclaimer.jsx","components/icons/ArrowRightDirectionIcon.jsx","components/icons/CloseFillIcon.jsx","hook/useTogglePromptLibrary.js","hook/useWindowSize.js","components/ChatTextBox.jsx","components/FeatureButton.jsx","components/icons/ArrowLeftThinIcon.jsx","../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","../node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/resolve-pathname/esm/resolve-pathname.js","../node_modules/tiny-invariant/dist/esm/tiny-invariant.js","../node_modules/history/esm/history.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/react-router/modules/miniCreateReactContext.js","../node_modules/react-router/modules/createContext.js","../node_modules/react-router/modules/createNamedContext.js","../node_modules/react-router/modules/HistoryContext.js","../node_modules/react-router/modules/RouterContext.js","../node_modules/react-router/modules/Router.js","../node_modules/react-router/modules/MemoryRouter.js","../node_modules/react-router/modules/Lifecycle.js","../node_modules/react-router/modules/matchPath.js","../node_modules/react-router/modules/Route.js","../node_modules/react-router/modules/StaticRouter.js","../node_modules/react-router/modules/Switch.js","../node_modules/react-router/modules/hooks.js","components/Header.jsx","components/Heading.jsx","components/prompt/_PromptFeature.jsx","components/icons/PromptLibraryIcon.jsx","components/select/Select.jsx","components/prompt/_PromptSample.jsx","components/prompt/_PromptTips.jsx","components/prompt/PromptLibrary.jsx","components/source/SourceItem.jsx","components/source/SourcePopover.jsx","components/source/Sources.jsx","App.jsx","../node_modules/react-router-dom/modules/BrowserRouter.js","../node_modules/react-router-dom/modules/HashRouter.js","../node_modules/react-router-dom/modules/utils/locationUtils.js","../node_modules/react-router-dom/modules/Link.js","../node_modules/react-router-dom/modules/NavLink.js","state/store.js","../node_modules/@reduxjs/toolkit/src/configureStore.ts","../node_modules/redux/src/applyMiddleware.ts","index.js"],"sourcesContent":["'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","'use strict';\n\nvar reactIs = require('react-is');\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\nmodule.exports = hoistNonReactStatics;\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\n'use strict';var 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?\nSymbol.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;\nfunction 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}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.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)};exports.typeOf=z;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\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\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.VALUE_REQUIRED = exports.UNSUPPORTED_TYPE = exports.INVALID_GUID = void 0;\r\n// Constant message for the GUID class.\r\nconst INVALID_GUID = 'Invalid Guid value! Please specify a valid value!';\r\nexports.INVALID_GUID = INVALID_GUID;\r\nconst VALUE_REQUIRED = 'The parameter value required!';\r\nexports.VALUE_REQUIRED = VALUE_REQUIRED;\r\nconst UNSUPPORTED_TYPE = 'UnSupported type! please specify one of the following: [Guid | string | Uint8Array]';\r\nexports.UNSUPPORTED_TYPE = UNSUPPORTED_TYPE;\r\n","\"use strict\";\r\n/* eslint-disable no-bitwise */\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.GenerateGuidV4 = exports.isUint8ArrayValidGuid = exports.isStringValidGuid = exports.uint8ArrayToString = exports.stringToUint8Array = exports.ARRAY_LENGTH = void 0;\r\nexports.ARRAY_LENGTH = 16;\r\nconst BYTE_ORDER = [3, 2, 1, 0, 5, 4, 7, 6, 8, 9, 10, 11, 12, 13, 14, 15];\r\n/**\r\n * Regex to validate the given GUID accept all the UUIDs version.\r\n */\r\nconst regexValidator = new RegExp('^[a-z0-9]{8}-[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{12}$', 'i');\r\n/**\r\n * Convert the given number to a Hex format.\r\n * @param value The number to be converted\r\n */\r\nfunction convertNumberToHex(value) {\r\n let hex = value <= 0xf ? '0' : '';\r\n hex += value.toString(exports.ARRAY_LENGTH);\r\n return hex;\r\n}\r\n/**\r\n * Convert the given {string} to a {Uint8Array} value.\r\n * @param value String value of the Guid.\r\n */\r\nfunction stringToUint8Array(value) {\r\n // Strip any separators and un-wanted chars.\r\n const regExp = new RegExp('[{}()-]', 'g');\r\n const guid = value.replace(regExp, '');\r\n const bytes = [];\r\n for (let i = 0; i < exports.ARRAY_LENGTH; i++) {\r\n const pos = BYTE_ORDER[i];\r\n const b1 = guid.charAt(pos * 2);\r\n const b2 = guid.charAt(pos * 2 + 1);\r\n const charAt = unescape(`%${b1}${b2}`).charCodeAt(0);\r\n bytes.push(charAt);\r\n }\r\n return new Uint8Array(bytes);\r\n}\r\nexports.stringToUint8Array = stringToUint8Array;\r\n/**\r\n * Convert the given {Uint8Array} to a {string} value.\r\n *\r\n * @param value Byte Array value of the Guid.\r\n */\r\nfunction uint8ArrayToString(value) {\r\n let guid = '';\r\n for (let i = 0; i < exports.ARRAY_LENGTH; i++) {\r\n // Decide if we need to add the Hyphen {-} in the Guid.\r\n guid += i === 4 || i === 6 || i === 8 || i === 10 ? '-' : '';\r\n const pos = BYTE_ORDER[i];\r\n guid += convertNumberToHex(value[pos]);\r\n }\r\n return guid;\r\n}\r\nexports.uint8ArrayToString = uint8ArrayToString;\r\n/**\r\n * Validate that the given value is a valid GUID.\r\n * @param guid The value to be validated.\r\n */\r\nfunction isStringValidGuid(guid) {\r\n if (!guid) {\r\n return false;\r\n }\r\n return regexValidator.test(guid);\r\n}\r\nexports.isStringValidGuid = isStringValidGuid;\r\n/**\r\n * Validate that the given value is a valid GUID.\r\n * @param guid The value to be validated.\r\n */\r\nfunction isUint8ArrayValidGuid(guid) {\r\n const strGuid = uint8ArrayToString(guid);\r\n return guid && regexValidator.test(strGuid);\r\n}\r\nexports.isUint8ArrayValidGuid = isUint8ArrayValidGuid;\r\n/**\r\n * Generate a random v4 GUID.\r\n */\r\nfunction GenerateGuidV4() {\r\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (char) {\r\n const random = (Math.random() * 16) | 0;\r\n const v = char === 'x' ? random : (random & 0x3) | 0x8;\r\n return v.toString(16);\r\n });\r\n}\r\nexports.GenerateGuidV4 = GenerateGuidV4;\r\n","\"use strict\";\r\n/* eslint-disable no-bitwise */\r\n/* eslint-disable no-plusplus */\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.Guid = void 0;\r\nconst guid_constants_1 = require(\"./guid.constants\");\r\nconst guid_helpers_1 = require(\"./guid.helpers\");\r\nclass Guid {\r\n /**\r\n * Empty string Guid value: '00000000-0000-0000-0000-000000000000'.\r\n */\r\n static EMPTY = '00000000-0000-0000-0000-000000000000';\r\n /**\r\n * Holds a Uint8Array of 16 elements containing the GUID values.\r\n */\r\n BytesGuid = new Uint8Array(16);\r\n /**\r\n * Holds the string value of the GUID.\r\n */\r\n StringGuid = '';\r\n /**\r\n * Create a new instance of the Guid with the given value,\r\n * or generate a new Guid if no value was given.\r\n * @param value The target value if already exists, leave it empty for a new value.\r\n */\r\n constructor(value) {\r\n this.BytesGuid = new Uint8Array(16);\r\n this.StringGuid = '';\r\n if (!value) {\r\n this.StringGuid = (0, guid_helpers_1.GenerateGuidV4)();\r\n this.BytesGuid = (0, guid_helpers_1.stringToUint8Array)(this.StringGuid);\r\n return;\r\n }\r\n if (typeof value === 'string') {\r\n if (!Guid.isValid(value)) {\r\n throw new Error(guid_constants_1.INVALID_GUID);\r\n }\r\n this.StringGuid = value;\r\n this.BytesGuid = (0, guid_helpers_1.stringToUint8Array)(this.StringGuid);\r\n return;\r\n }\r\n if (typeof value === 'object' && value instanceof Uint8Array) {\r\n if (!Guid.isValid(value)) {\r\n throw new Error(guid_constants_1.INVALID_GUID);\r\n }\r\n this.BytesGuid = value;\r\n this.StringGuid = (0, guid_helpers_1.uint8ArrayToString)(value);\r\n return;\r\n }\r\n throw new Error(guid_constants_1.UNSUPPORTED_TYPE);\r\n }\r\n toString() {\r\n return this.StringGuid;\r\n }\r\n toByteArray() {\r\n return this.BytesGuid;\r\n }\r\n equals(value) {\r\n if (!value) {\r\n throw new Error(guid_constants_1.VALUE_REQUIRED);\r\n }\r\n if (typeof value === 'string') {\r\n if (!(0, guid_helpers_1.isStringValidGuid)(value)) {\r\n throw new Error(guid_constants_1.INVALID_GUID);\r\n }\r\n return this.StringGuid === value;\r\n }\r\n if (typeof value !== 'object') {\r\n throw new Error(guid_constants_1.UNSUPPORTED_TYPE);\r\n }\r\n if (value instanceof Uint8Array) {\r\n if (!(0, guid_helpers_1.isUint8ArrayValidGuid)(value)) {\r\n throw new Error(guid_constants_1.INVALID_GUID);\r\n }\r\n return this.StringGuid === (0, guid_helpers_1.uint8ArrayToString)(value);\r\n }\r\n if (value instanceof Guid) {\r\n return this.StringGuid === value.toString();\r\n }\r\n return true;\r\n }\r\n isEmpty() {\r\n return this.StringGuid === Guid.EMPTY;\r\n }\r\n /**\r\n * Parse the given value into the opposite type.\r\n * Example : if value is string the function return a {Uint8Array of 16 elements},\r\n * otherwise it return a {string} if the value is a Uint8Array.\r\n */\r\n static parse(value) {\r\n if (!Guid.isValid(value)) {\r\n throw new Error(guid_constants_1.INVALID_GUID);\r\n }\r\n if (typeof value === 'object' && value instanceof Uint8Array) {\r\n return (0, guid_helpers_1.uint8ArrayToString)(value);\r\n }\r\n // At this point we're sure that the value is string.\r\n return (0, guid_helpers_1.stringToUint8Array)(value);\r\n }\r\n /**\r\n * Generate a new v4 Guid and return a new instance of the Guid.\r\n */\r\n static newGuid() {\r\n return new Guid((0, guid_helpers_1.GenerateGuidV4)());\r\n }\r\n /**\r\n * Checks if the given value is a valid GUID.\r\n * @param value The given guid that need to be validated.\r\n */\r\n static isValid(value) {\r\n if (!value) {\r\n throw new Error(guid_constants_1.VALUE_REQUIRED);\r\n }\r\n if (typeof value === 'string') {\r\n return (0, guid_helpers_1.isStringValidGuid)(value);\r\n }\r\n if (typeof value === 'object' && value instanceof Uint8Array) {\r\n if (value.length !== guid_helpers_1.ARRAY_LENGTH) {\r\n throw new Error(guid_constants_1.INVALID_GUID);\r\n }\r\n return (0, guid_helpers_1.isUint8ArrayValidGuid)(value);\r\n }\r\n throw new Error(guid_constants_1.UNSUPPORTED_TYPE);\r\n }\r\n}\r\nexports.Guid = Guid;\r\n","\"use strict\";\r\n/**\r\n * Determine the methods and functions to be exported.\r\n */\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.Guid = void 0;\r\nvar guid_1 = require(\"./guid\");\r\nObject.defineProperty(exports, \"Guid\", { enumerable: true, get: function () { return guid_1.Guid; } });\r\n","/**\n * Copyright (c) 2013-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\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-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\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\n * Copyright (c) 2013-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\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","/**\n * @license React\n * react-dom.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/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n'use strict';var aa=require(\"react\"),ca=require(\"scheduler\");function p(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;cb}return!1}function v(a,b,c,d,e,f,g){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f;this.removeEmptyString=g}var z={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){z[a]=new v(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];z[b]=new v(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){z[a]=new v(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){z[a]=new v(a,2,!1,a,null,!1,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){z[a]=new v(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){z[a]=new v(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){z[a]=new v(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){z[a]=new v(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){z[a]=new v(a,5,!1,a.toLowerCase(),null,!1,!1)});var ra=/[\\-:]([a-z])/g;function sa(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(ra,\nsa);z[b]=new v(b,1,!1,a,null,!1,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1,!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!1,!1)});\nz.xlinkHref=new v(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!0,!0)});\nfunction ta(a,b,c,d){var e=z.hasOwnProperty(b)?z[b]:null;if(null!==e?0!==e.type:d||!(2h||e[g]!==f[h]){var k=\"\\n\"+e[g].replace(\" at new \",\" at \");a.displayName&&k.includes(\"\")&&(k=k.replace(\"\",a.displayName));return k}while(1<=g&&0<=h)}break}}}finally{Na=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:\"\")?Ma(a):\"\"}\nfunction Pa(a){switch(a.tag){case 5:return Ma(a.type);case 16:return Ma(\"Lazy\");case 13:return Ma(\"Suspense\");case 19:return Ma(\"SuspenseList\");case 0:case 2:case 15:return a=Oa(a.type,!1),a;case 11:return a=Oa(a.type.render,!1),a;case 1:return a=Oa(a.type,!0),a;default:return\"\"}}\nfunction Qa(a){if(null==a)return null;if(\"function\"===typeof a)return a.displayName||a.name||null;if(\"string\"===typeof a)return a;switch(a){case ya:return\"Fragment\";case wa:return\"Portal\";case Aa:return\"Profiler\";case za:return\"StrictMode\";case Ea:return\"Suspense\";case Fa:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case Ca:return(a.displayName||\"Context\")+\".Consumer\";case Ba:return(a._context.displayName||\"Context\")+\".Provider\";case Da:var b=a.render;a=a.displayName;a||(a=b.displayName||\nb.name||\"\",a=\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");return a;case Ga:return b=a.displayName||null,null!==b?b:Qa(a.type)||\"Memo\";case Ha:b=a._payload;a=a._init;try{return Qa(a(b))}catch(c){}}return null}\nfunction Ra(a){var b=a.type;switch(a.tag){case 24:return\"Cache\";case 9:return(b.displayName||\"Context\")+\".Consumer\";case 10:return(b._context.displayName||\"Context\")+\".Provider\";case 18:return\"DehydratedFragment\";case 11:return a=b.render,a=a.displayName||a.name||\"\",b.displayName||(\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");case 7:return\"Fragment\";case 5:return b;case 4:return\"Portal\";case 3:return\"Root\";case 6:return\"Text\";case 16:return Qa(b);case 8:return b===za?\"StrictMode\":\"Mode\";case 22:return\"Offscreen\";\ncase 12:return\"Profiler\";case 21:return\"Scope\";case 13:return\"Suspense\";case 19:return\"SuspenseList\";case 25:return\"TracingMarker\";case 1:case 0:case 17:case 2:case 14:case 15:if(\"function\"===typeof b)return b.displayName||b.name||null;if(\"string\"===typeof b)return b}return null}function Sa(a){switch(typeof a){case \"boolean\":case \"number\":case \"string\":case \"undefined\":return a;case \"object\":return a;default:return\"\"}}\nfunction Ta(a){var b=a.type;return(a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===b||\"radio\"===b)}\nfunction Ua(a){var b=Ta(a)?\"checked\":\"value\",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=\"\"+a[b];if(!a.hasOwnProperty(b)&&\"undefined\"!==typeof c&&\"function\"===typeof c.get&&\"function\"===typeof c.set){var e=c.get,f=c.set;Object.defineProperty(a,b,{configurable:!0,get:function(){return e.call(this)},set:function(a){d=\"\"+a;f.call(this,a)}});Object.defineProperty(a,b,{enumerable:c.enumerable});return{getValue:function(){return d},setValue:function(a){d=\"\"+a},stopTracking:function(){a._valueTracker=\nnull;delete a[b]}}}}function Va(a){a._valueTracker||(a._valueTracker=Ua(a))}function Wa(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d=\"\";a&&(d=Ta(a)?a.checked?\"true\":\"false\":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function Xa(a){a=a||(\"undefined\"!==typeof document?document:void 0);if(\"undefined\"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}\nfunction Ya(a,b){var c=b.checked;return A({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}function Za(a,b){var c=null==b.defaultValue?\"\":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=Sa(null!=b.value?b.value:c);a._wrapperState={initialChecked:d,initialValue:c,controlled:\"checkbox\"===b.type||\"radio\"===b.type?null!=b.checked:null!=b.value}}function ab(a,b){b=b.checked;null!=b&&ta(a,\"checked\",b,!1)}\nfunction bb(a,b){ab(a,b);var c=Sa(b.value),d=b.type;if(null!=c)if(\"number\"===d){if(0===c&&\"\"===a.value||a.value!=c)a.value=\"\"+c}else a.value!==\"\"+c&&(a.value=\"\"+c);else if(\"submit\"===d||\"reset\"===d){a.removeAttribute(\"value\");return}b.hasOwnProperty(\"value\")?cb(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&cb(a,b.type,Sa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction db(a,b,c){if(b.hasOwnProperty(\"value\")||b.hasOwnProperty(\"defaultValue\")){var d=b.type;if(!(\"submit\"!==d&&\"reset\"!==d||void 0!==b.value&&null!==b.value))return;b=\"\"+a._wrapperState.initialValue;c||b===a.value||(a.value=b);a.defaultValue=b}c=a.name;\"\"!==c&&(a.name=\"\");a.defaultChecked=!!a._wrapperState.initialChecked;\"\"!==c&&(a.name=c)}\nfunction cb(a,b,c){if(\"number\"!==b||Xa(a.ownerDocument)!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}var eb=Array.isArray;\nfunction fb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e\"+b.valueOf().toString()+\"\";for(b=mb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction ob(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar pb={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,\nzoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},qb=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(pb).forEach(function(a){qb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);pb[b]=pb[a]})});function rb(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||pb.hasOwnProperty(a)&&pb[a]?(\"\"+b).trim():b+\"px\"}\nfunction sb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=rb(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var tb=A({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction ub(a,b){if(b){if(tb[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(p(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(p(60));if(\"object\"!==typeof b.dangerouslySetInnerHTML||!(\"__html\"in b.dangerouslySetInnerHTML))throw Error(p(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(p(62));}}\nfunction vb(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}var wb=null;function xb(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}var yb=null,zb=null,Ab=null;\nfunction Bb(a){if(a=Cb(a)){if(\"function\"!==typeof yb)throw Error(p(280));var b=a.stateNode;b&&(b=Db(b),yb(a.stateNode,a.type,b))}}function Eb(a){zb?Ab?Ab.push(a):Ab=[a]:zb=a}function Fb(){if(zb){var a=zb,b=Ab;Ab=zb=null;Bb(a);if(b)for(a=0;a>>=0;return 0===a?32:31-(pc(a)/qc|0)|0}var rc=64,sc=4194304;\nfunction tc(a){switch(a&-a){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return a&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return a&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;\ndefault:return a}}function uc(a,b){var c=a.pendingLanes;if(0===c)return 0;var d=0,e=a.suspendedLanes,f=a.pingedLanes,g=c&268435455;if(0!==g){var h=g&~e;0!==h?d=tc(h):(f&=g,0!==f&&(d=tc(f)))}else g=c&~e,0!==g?d=tc(g):0!==f&&(d=tc(f));if(0===d)return 0;if(0!==b&&b!==d&&0===(b&e)&&(e=d&-d,f=b&-b,e>=f||16===e&&0!==(f&4194240)))return b;0!==(d&4)&&(d|=c&16);b=a.entangledLanes;if(0!==b)for(a=a.entanglements,b&=d;0c;c++)b.push(a);return b}\nfunction Ac(a,b,c){a.pendingLanes|=b;536870912!==b&&(a.suspendedLanes=0,a.pingedLanes=0);a=a.eventTimes;b=31-oc(b);a[b]=c}function Bc(a,b){var c=a.pendingLanes&~b;a.pendingLanes=b;a.suspendedLanes=0;a.pingedLanes=0;a.expiredLanes&=b;a.mutableReadLanes&=b;a.entangledLanes&=b;b=a.entanglements;var d=a.eventTimes;for(a=a.expirationTimes;0=be),ee=String.fromCharCode(32),fe=!1;\nfunction ge(a,b){switch(a){case \"keyup\":return-1!==$d.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"focusout\":return!0;default:return!1}}function he(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var ie=!1;function je(a,b){switch(a){case \"compositionend\":return he(b);case \"keypress\":if(32!==b.which)return null;fe=!0;return ee;case \"textInput\":return a=b.data,a===ee&&fe?null:a;default:return null}}\nfunction ke(a,b){if(ie)return\"compositionend\"===a||!ae&&ge(a,b)?(a=nd(),md=ld=kd=null,ie=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Je(c)}}function Le(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Le(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Me(){for(var a=window,b=Xa();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=Xa(a.document)}return b}function Ne(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}\nfunction Oe(a){var b=Me(),c=a.focusedElem,d=a.selectionRange;if(b!==c&&c&&c.ownerDocument&&Le(c.ownerDocument.documentElement,c)){if(null!==d&&Ne(c))if(b=d.start,a=d.end,void 0===a&&(a=b),\"selectionStart\"in c)c.selectionStart=b,c.selectionEnd=Math.min(a,c.value.length);else if(a=(b=c.ownerDocument||document)&&b.defaultView||window,a.getSelection){a=a.getSelection();var e=c.textContent.length,f=Math.min(d.start,e);d=void 0===d.end?f:Math.min(d.end,e);!a.extend&&f>d&&(e=d,d=f,f=e);e=Ke(c,f);var g=Ke(c,\nd);e&&g&&(1!==a.rangeCount||a.anchorNode!==e.node||a.anchorOffset!==e.offset||a.focusNode!==g.node||a.focusOffset!==g.offset)&&(b=b.createRange(),b.setStart(e.node,e.offset),a.removeAllRanges(),f>d?(a.addRange(b),a.extend(g.node,g.offset)):(b.setEnd(g.node,g.offset),a.addRange(b)))}b=[];for(a=c;a=a.parentNode;)1===a.nodeType&&b.push({element:a,left:a.scrollLeft,top:a.scrollTop});\"function\"===typeof c.focus&&c.focus();for(c=0;c=document.documentMode,Qe=null,Re=null,Se=null,Te=!1;\nfunction Ue(a,b,c){var d=c.window===c?c.document:9===c.nodeType?c:c.ownerDocument;Te||null==Qe||Qe!==Xa(d)||(d=Qe,\"selectionStart\"in d&&Ne(d)?d={start:d.selectionStart,end:d.selectionEnd}:(d=(d.ownerDocument&&d.ownerDocument.defaultView||window).getSelection(),d={anchorNode:d.anchorNode,anchorOffset:d.anchorOffset,focusNode:d.focusNode,focusOffset:d.focusOffset}),Se&&Ie(Se,d)||(Se=d,d=oe(Re,\"onSelect\"),0Tf||(a.current=Sf[Tf],Sf[Tf]=null,Tf--)}function G(a,b){Tf++;Sf[Tf]=a.current;a.current=b}var Vf={},H=Uf(Vf),Wf=Uf(!1),Xf=Vf;function Yf(a,b){var c=a.type.contextTypes;if(!c)return Vf;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}\nfunction Zf(a){a=a.childContextTypes;return null!==a&&void 0!==a}function $f(){E(Wf);E(H)}function ag(a,b,c){if(H.current!==Vf)throw Error(p(168));G(H,b);G(Wf,c)}function bg(a,b,c){var d=a.stateNode;b=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in b))throw Error(p(108,Ra(a)||\"Unknown\",e));return A({},c,d)}\nfunction cg(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Vf;Xf=H.current;G(H,a);G(Wf,Wf.current);return!0}function dg(a,b,c){var d=a.stateNode;if(!d)throw Error(p(169));c?(a=bg(a,b,Xf),d.__reactInternalMemoizedMergedChildContext=a,E(Wf),E(H),G(H,a)):E(Wf);G(Wf,c)}var eg=null,fg=!1,gg=!1;function hg(a){null===eg?eg=[a]:eg.push(a)}function ig(a){fg=!0;hg(a)}\nfunction jg(){if(!gg&&null!==eg){gg=!0;var a=0,b=C;try{var c=eg;for(C=1;a>=g;e-=g;rg=1<<32-oc(b)+e|c<w?(x=u,u=null):x=u.sibling;var n=r(e,u,h[w],k);if(null===n){null===u&&(u=x);break}a&&u&&null===n.alternate&&b(e,u);g=f(n,g,w);null===m?l=n:m.sibling=n;m=n;u=x}if(w===h.length)return c(e,u),I&&tg(e,w),l;if(null===u){for(;ww?(x=m,m=null):x=m.sibling;var t=r(e,m,n.value,k);if(null===t){null===m&&(m=x);break}a&&m&&null===t.alternate&&b(e,m);g=f(t,g,w);null===u?l=t:u.sibling=t;u=t;m=x}if(n.done)return c(e,\nm),I&&tg(e,w),l;if(null===m){for(;!n.done;w++,n=h.next())n=q(e,n.value,k),null!==n&&(g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);I&&tg(e,w);return l}for(m=d(e,m);!n.done;w++,n=h.next())n=y(m,e,w,n.value,k),null!==n&&(a&&null!==n.alternate&&m.delete(null===n.key?w:n.key),g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);a&&m.forEach(function(a){return b(e,a)});I&&tg(e,w);return l}function J(a,d,f,h){\"object\"===typeof f&&null!==f&&f.type===ya&&null===f.key&&(f=f.props.children);if(\"object\"===typeof f&&null!==f){switch(f.$$typeof){case va:a:{for(var k=\nf.key,l=d;null!==l;){if(l.key===k){k=f.type;if(k===ya){if(7===l.tag){c(a,l.sibling);d=e(l,f.props.children);d.return=a;a=d;break a}}else if(l.elementType===k||\"object\"===typeof k&&null!==k&&k.$$typeof===Ha&&uh(k)===l.type){c(a,l.sibling);d=e(l,f.props);d.ref=sh(a,l,f);d.return=a;a=d;break a}c(a,l);break}else b(a,l);l=l.sibling}f.type===ya?(d=Ah(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=yh(f.type,f.key,f.props,null,a.mode,h),h.ref=sh(a,d,f),h.return=a,a=h)}return g(a);case wa:a:{for(l=f.key;null!==\nd;){if(d.key===l)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=zh(f,a.mode,h);d.return=a;a=d}return g(a);case Ha:return l=f._init,J(a,d,l(f._payload),h)}if(eb(f))return n(a,d,f,h);if(Ka(f))return t(a,d,f,h);th(a,f)}return\"string\"===typeof f&&\"\"!==f||\"number\"===typeof f?(f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):\n(c(a,d),d=xh(f,a.mode,h),d.return=a,a=d),g(a)):c(a,d)}return J}var Bh=vh(!0),Ch=vh(!1),Dh={},Eh=Uf(Dh),Fh=Uf(Dh),Gh=Uf(Dh);function Hh(a){if(a===Dh)throw Error(p(174));return a}function Ih(a,b){G(Gh,b);G(Fh,a);G(Eh,Dh);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:lb(null,\"\");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=lb(b,a)}E(Eh);G(Eh,b)}function Jh(){E(Eh);E(Fh);E(Gh)}\nfunction Kh(a){Hh(Gh.current);var b=Hh(Eh.current);var c=lb(b,a.type);b!==c&&(G(Fh,a),G(Eh,c))}function Lh(a){Fh.current===a&&(E(Eh),E(Fh))}var M=Uf(0);\nfunction Mh(a){for(var b=a;null!==b;){if(13===b.tag){var c=b.memoizedState;if(null!==c&&(c=c.dehydrated,null===c||\"$?\"===c.data||\"$!\"===c.data))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.flags&128))return b}else if(null!==b.child){b.child.return=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}return null}var Nh=[];\nfunction Oh(){for(var a=0;ac?c:4;a(!0);var d=Qh.transition;Qh.transition={};try{a(!1),b()}finally{C=c,Qh.transition=d}}function Fi(){return di().memoizedState}\nfunction Gi(a,b,c){var d=lh(a);c={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(Hi(a))Ii(b,c);else if(c=Yg(a,b,c,d),null!==c){var e=L();mh(c,a,d,e);Ji(c,b,d)}}\nfunction ri(a,b,c){var d=lh(a),e={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(Hi(a))Ii(b,e);else{var f=a.alternate;if(0===a.lanes&&(null===f||0===f.lanes)&&(f=b.lastRenderedReducer,null!==f))try{var g=b.lastRenderedState,h=f(g,c);e.hasEagerState=!0;e.eagerState=h;if(He(h,g)){var k=b.interleaved;null===k?(e.next=e,Xg(b)):(e.next=k.next,k.next=e);b.interleaved=e;return}}catch(l){}finally{}c=Yg(a,b,e,d);null!==c&&(e=L(),mh(c,a,d,e),Ji(c,b,d))}}\nfunction Hi(a){var b=a.alternate;return a===N||null!==b&&b===N}function Ii(a,b){Th=Sh=!0;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}function Ji(a,b,c){if(0!==(c&4194240)){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nvar ai={readContext:Vg,useCallback:Q,useContext:Q,useEffect:Q,useImperativeHandle:Q,useInsertionEffect:Q,useLayoutEffect:Q,useMemo:Q,useReducer:Q,useRef:Q,useState:Q,useDebugValue:Q,useDeferredValue:Q,useTransition:Q,useMutableSource:Q,useSyncExternalStore:Q,useId:Q,unstable_isNewReconciler:!1},Yh={readContext:Vg,useCallback:function(a,b){ci().memoizedState=[a,void 0===b?null:b];return a},useContext:Vg,useEffect:vi,useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return ti(4194308,\n4,yi.bind(null,b,a),c)},useLayoutEffect:function(a,b){return ti(4194308,4,a,b)},useInsertionEffect:function(a,b){return ti(4,2,a,b)},useMemo:function(a,b){var c=ci();b=void 0===b?null:b;a=a();c.memoizedState=[a,b];return a},useReducer:function(a,b,c){var d=ci();b=void 0!==c?c(b):b;d.memoizedState=d.baseState=b;a={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:a,lastRenderedState:b};d.queue=a;a=a.dispatch=Gi.bind(null,N,a);return[d.memoizedState,a]},useRef:function(a){var b=\nci();a={current:a};return b.memoizedState=a},useState:qi,useDebugValue:Ai,useDeferredValue:function(a){return ci().memoizedState=a},useTransition:function(){var a=qi(!1),b=a[0];a=Ei.bind(null,a[1]);ci().memoizedState=a;return[b,a]},useMutableSource:function(){},useSyncExternalStore:function(a,b,c){var d=N,e=ci();if(I){if(void 0===c)throw Error(p(407));c=c()}else{c=b();if(null===R)throw Error(p(349));0!==(Rh&30)||ni(d,b,c)}e.memoizedState=c;var f={value:c,getSnapshot:b};e.queue=f;vi(ki.bind(null,d,\nf,a),[a]);d.flags|=2048;li(9,mi.bind(null,d,f,c,b),void 0,null);return c},useId:function(){var a=ci(),b=R.identifierPrefix;if(I){var c=sg;var d=rg;c=(d&~(1<<32-oc(d)-1)).toString(32)+c;b=\":\"+b+\"R\"+c;c=Uh++;0\\x3c/script>\",a=a.removeChild(a.firstChild)):\n\"string\"===typeof d.is?a=g.createElement(c,{is:d.is}):(a=g.createElement(c),\"select\"===c&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,c);a[Of]=b;a[Pf]=d;Aj(a,b,!1,!1);b.stateNode=a;a:{g=vb(c,d);switch(c){case \"dialog\":D(\"cancel\",a);D(\"close\",a);e=d;break;case \"iframe\":case \"object\":case \"embed\":D(\"load\",a);e=d;break;case \"video\":case \"audio\":for(e=0;eHj&&(b.flags|=128,d=!0,Ej(f,!1),b.lanes=4194304)}else{if(!d)if(a=Mh(g),null!==a){if(b.flags|=128,d=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Ej(f,!0),null===f.tail&&\"hidden\"===f.tailMode&&!g.alternate&&!I)return S(b),null}else 2*B()-f.renderingStartTime>Hj&&1073741824!==c&&(b.flags|=128,d=!0,Ej(f,!1),b.lanes=4194304);f.isBackwards?(g.sibling=b.child,b.child=g):(c=f.last,null!==c?c.sibling=g:b.child=g,f.last=g)}if(null!==f.tail)return b=f.tail,f.rendering=\nb,f.tail=b.sibling,f.renderingStartTime=B(),b.sibling=null,c=M.current,G(M,d?c&1|2:c&1),b;S(b);return null;case 22:case 23:return Ij(),d=null!==b.memoizedState,null!==a&&null!==a.memoizedState!==d&&(b.flags|=8192),d&&0!==(b.mode&1)?0!==(gj&1073741824)&&(S(b),b.subtreeFlags&6&&(b.flags|=8192)):S(b),null;case 24:return null;case 25:return null}throw Error(p(156,b.tag));}\nfunction Jj(a,b){wg(b);switch(b.tag){case 1:return Zf(b.type)&&$f(),a=b.flags,a&65536?(b.flags=a&-65537|128,b):null;case 3:return Jh(),E(Wf),E(H),Oh(),a=b.flags,0!==(a&65536)&&0===(a&128)?(b.flags=a&-65537|128,b):null;case 5:return Lh(b),null;case 13:E(M);a=b.memoizedState;if(null!==a&&null!==a.dehydrated){if(null===b.alternate)throw Error(p(340));Ig()}a=b.flags;return a&65536?(b.flags=a&-65537|128,b):null;case 19:return E(M),null;case 4:return Jh(),null;case 10:return Rg(b.type._context),null;case 22:case 23:return Ij(),\nnull;case 24:return null;default:return null}}var Kj=!1,U=!1,Lj=\"function\"===typeof WeakSet?WeakSet:Set,V=null;function Mj(a,b){var c=a.ref;if(null!==c)if(\"function\"===typeof c)try{c(null)}catch(d){W(a,b,d)}else c.current=null}function Nj(a,b,c){try{c()}catch(d){W(a,b,d)}}var Oj=!1;\nfunction Pj(a,b){Cf=dd;a=Me();if(Ne(a)){if(\"selectionStart\"in a)var c={start:a.selectionStart,end:a.selectionEnd};else a:{c=(c=a.ownerDocument)&&c.defaultView||window;var d=c.getSelection&&c.getSelection();if(d&&0!==d.rangeCount){c=d.anchorNode;var e=d.anchorOffset,f=d.focusNode;d=d.focusOffset;try{c.nodeType,f.nodeType}catch(F){c=null;break a}var g=0,h=-1,k=-1,l=0,m=0,q=a,r=null;b:for(;;){for(var y;;){q!==c||0!==e&&3!==q.nodeType||(h=g+e);q!==f||0!==d&&3!==q.nodeType||(k=g+d);3===q.nodeType&&(g+=\nq.nodeValue.length);if(null===(y=q.firstChild))break;r=q;q=y}for(;;){if(q===a)break b;r===c&&++l===e&&(h=g);r===f&&++m===d&&(k=g);if(null!==(y=q.nextSibling))break;q=r;r=q.parentNode}q=y}c=-1===h||-1===k?null:{start:h,end:k}}else c=null}c=c||{start:0,end:0}}else c=null;Df={focusedElem:a,selectionRange:c};dd=!1;for(V=b;null!==V;)if(b=V,a=b.child,0!==(b.subtreeFlags&1028)&&null!==a)a.return=b,V=a;else for(;null!==V;){b=V;try{var n=b.alternate;if(0!==(b.flags&1024))switch(b.tag){case 0:case 11:case 15:break;\ncase 1:if(null!==n){var t=n.memoizedProps,J=n.memoizedState,x=b.stateNode,w=x.getSnapshotBeforeUpdate(b.elementType===b.type?t:Lg(b.type,t),J);x.__reactInternalSnapshotBeforeUpdate=w}break;case 3:var u=b.stateNode.containerInfo;1===u.nodeType?u.textContent=\"\":9===u.nodeType&&u.documentElement&&u.removeChild(u.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(p(163));}}catch(F){W(b,b.return,F)}a=b.sibling;if(null!==a){a.return=b.return;V=a;break}V=b.return}n=Oj;Oj=!1;return n}\nfunction Qj(a,b,c){var d=b.updateQueue;d=null!==d?d.lastEffect:null;if(null!==d){var e=d=d.next;do{if((e.tag&a)===a){var f=e.destroy;e.destroy=void 0;void 0!==f&&Nj(b,c,f)}e=e.next}while(e!==d)}}function Rj(a,b){b=b.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){var c=b=b.next;do{if((c.tag&a)===a){var d=c.create;c.destroy=d()}c=c.next}while(c!==b)}}function Sj(a){var b=a.ref;if(null!==b){var c=a.stateNode;switch(a.tag){case 5:a=c;break;default:a=c}\"function\"===typeof b?b(a):b.current=a}}\nfunction Tj(a){var b=a.alternate;null!==b&&(a.alternate=null,Tj(b));a.child=null;a.deletions=null;a.sibling=null;5===a.tag&&(b=a.stateNode,null!==b&&(delete b[Of],delete b[Pf],delete b[of],delete b[Qf],delete b[Rf]));a.stateNode=null;a.return=null;a.dependencies=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.stateNode=null;a.updateQueue=null}function Uj(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction Vj(a){a:for(;;){for(;null===a.sibling;){if(null===a.return||Uj(a.return))return null;a=a.return}a.sibling.return=a.return;for(a=a.sibling;5!==a.tag&&6!==a.tag&&18!==a.tag;){if(a.flags&2)continue a;if(null===a.child||4===a.tag)continue a;else a.child.return=a,a=a.child}if(!(a.flags&2))return a.stateNode}}\nfunction Wj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?8===c.nodeType?c.parentNode.insertBefore(a,b):c.insertBefore(a,b):(8===c.nodeType?(b=c.parentNode,b.insertBefore(a,c)):(b=c,b.appendChild(a)),c=c._reactRootContainer,null!==c&&void 0!==c||null!==b.onclick||(b.onclick=Bf));else if(4!==d&&(a=a.child,null!==a))for(Wj(a,b,c),a=a.sibling;null!==a;)Wj(a,b,c),a=a.sibling}\nfunction Xj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(Xj(a,b,c),a=a.sibling;null!==a;)Xj(a,b,c),a=a.sibling}var X=null,Yj=!1;function Zj(a,b,c){for(c=c.child;null!==c;)ak(a,b,c),c=c.sibling}\nfunction ak(a,b,c){if(lc&&\"function\"===typeof lc.onCommitFiberUnmount)try{lc.onCommitFiberUnmount(kc,c)}catch(h){}switch(c.tag){case 5:U||Mj(c,b);case 6:var d=X,e=Yj;X=null;Zj(a,b,c);X=d;Yj=e;null!==X&&(Yj?(a=X,c=c.stateNode,8===a.nodeType?a.parentNode.removeChild(c):a.removeChild(c)):X.removeChild(c.stateNode));break;case 18:null!==X&&(Yj?(a=X,c=c.stateNode,8===a.nodeType?Kf(a.parentNode,c):1===a.nodeType&&Kf(a,c),bd(a)):Kf(X,c.stateNode));break;case 4:d=X;e=Yj;X=c.stateNode.containerInfo;Yj=!0;\nZj(a,b,c);X=d;Yj=e;break;case 0:case 11:case 14:case 15:if(!U&&(d=c.updateQueue,null!==d&&(d=d.lastEffect,null!==d))){e=d=d.next;do{var f=e,g=f.destroy;f=f.tag;void 0!==g&&(0!==(f&2)?Nj(c,b,g):0!==(f&4)&&Nj(c,b,g));e=e.next}while(e!==d)}Zj(a,b,c);break;case 1:if(!U&&(Mj(c,b),d=c.stateNode,\"function\"===typeof d.componentWillUnmount))try{d.props=c.memoizedProps,d.state=c.memoizedState,d.componentWillUnmount()}catch(h){W(c,b,h)}Zj(a,b,c);break;case 21:Zj(a,b,c);break;case 22:c.mode&1?(U=(d=U)||null!==\nc.memoizedState,Zj(a,b,c),U=d):Zj(a,b,c);break;default:Zj(a,b,c)}}function bk(a){var b=a.updateQueue;if(null!==b){a.updateQueue=null;var c=a.stateNode;null===c&&(c=a.stateNode=new Lj);b.forEach(function(b){var d=ck.bind(null,a,b);c.has(b)||(c.add(b),b.then(d,d))})}}\nfunction dk(a,b){var c=b.deletions;if(null!==c)for(var d=0;de&&(e=g);d&=~f}d=e;d=B()-d;d=(120>d?120:480>d?480:1080>d?1080:1920>d?1920:3E3>d?3E3:4320>d?4320:1960*mk(d/1960))-d;if(10a?16:a;if(null===xk)var d=!1;else{a=xk;xk=null;yk=0;if(0!==(K&6))throw Error(p(331));var e=K;K|=4;for(V=a.current;null!==V;){var f=V,g=f.child;if(0!==(V.flags&16)){var h=f.deletions;if(null!==h){for(var k=0;kB()-gk?Lk(a,0):sk|=c);Ek(a,b)}function Zk(a,b){0===b&&(0===(a.mode&1)?b=1:(b=sc,sc<<=1,0===(sc&130023424)&&(sc=4194304)));var c=L();a=Zg(a,b);null!==a&&(Ac(a,b,c),Ek(a,c))}function vj(a){var b=a.memoizedState,c=0;null!==b&&(c=b.retryLane);Zk(a,c)}\nfunction ck(a,b){var c=0;switch(a.tag){case 13:var d=a.stateNode;var e=a.memoizedState;null!==e&&(c=e.retryLane);break;case 19:d=a.stateNode;break;default:throw Error(p(314));}null!==d&&d.delete(b);Zk(a,c)}var Wk;\nWk=function(a,b,c){if(null!==a)if(a.memoizedProps!==b.pendingProps||Wf.current)Ug=!0;else{if(0===(a.lanes&c)&&0===(b.flags&128))return Ug=!1,zj(a,b,c);Ug=0!==(a.flags&131072)?!0:!1}else Ug=!1,I&&0!==(b.flags&1048576)&&ug(b,ng,b.index);b.lanes=0;switch(b.tag){case 2:var d=b.type;jj(a,b);a=b.pendingProps;var e=Yf(b,H.current);Tg(b,c);e=Xh(null,b,d,a,e,c);var f=bi();b.flags|=1;\"object\"===typeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof?(b.tag=1,b.memoizedState=null,b.updateQueue=\nnull,Zf(d)?(f=!0,cg(b)):f=!1,b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null,ah(b),e.updater=nh,b.stateNode=e,e._reactInternals=b,rh(b,d,a,c),b=kj(null,b,d,!0,f,c)):(b.tag=0,I&&f&&vg(b),Yi(null,b,e,c),b=b.child);return b;case 16:d=b.elementType;a:{jj(a,b);a=b.pendingProps;e=d._init;d=e(d._payload);b.type=d;e=b.tag=$k(d);a=Lg(d,a);switch(e){case 0:b=dj(null,b,d,a,c);break a;case 1:b=ij(null,b,d,a,c);break a;case 11:b=Zi(null,b,d,a,c);break a;case 14:b=aj(null,b,d,Lg(d.type,a),c);break a}throw Error(p(306,\nd,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),dj(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),ij(a,b,d,e,c);case 3:a:{lj(b);if(null===a)throw Error(p(387));d=b.pendingProps;f=b.memoizedState;e=f.element;bh(a,b);gh(b,d,null,c);var g=b.memoizedState;d=g.element;if(f.isDehydrated)if(f={element:d,isDehydrated:!1,cache:g.cache,pendingSuspenseBoundaries:g.pendingSuspenseBoundaries,transitions:g.transitions},b.updateQueue.baseState=\nf,b.memoizedState=f,b.flags&256){e=Ki(Error(p(423)),b);b=mj(a,b,d,c,e);break a}else if(d!==e){e=Ki(Error(p(424)),b);b=mj(a,b,d,c,e);break a}else for(yg=Lf(b.stateNode.containerInfo.firstChild),xg=b,I=!0,zg=null,c=Ch(b,null,d,c),b.child=c;c;)c.flags=c.flags&-3|4096,c=c.sibling;else{Ig();if(d===e){b=$i(a,b,c);break a}Yi(a,b,d,c)}b=b.child}return b;case 5:return Kh(b),null===a&&Eg(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:null,g=e.children,Ef(d,e)?g=null:null!==f&&Ef(d,f)&&(b.flags|=32),\nhj(a,b),Yi(a,b,g,c),b.child;case 6:return null===a&&Eg(b),null;case 13:return pj(a,b,c);case 4:return Ih(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=Bh(b,null,d,c):Yi(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),Zi(a,b,d,e,c);case 7:return Yi(a,b,b.pendingProps,c),b.child;case 8:return Yi(a,b,b.pendingProps.children,c),b.child;case 12:return Yi(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;e=b.pendingProps;f=b.memoizedProps;\ng=e.value;G(Mg,d._currentValue);d._currentValue=g;if(null!==f)if(He(f.value,g)){if(f.children===e.children&&!Wf.current){b=$i(a,b,c);break a}}else for(f=b.child,null!==f&&(f.return=b);null!==f;){var h=f.dependencies;if(null!==h){g=f.child;for(var k=h.firstContext;null!==k;){if(k.context===d){if(1===f.tag){k=ch(-1,c&-c);k.tag=2;var l=f.updateQueue;if(null!==l){l=l.shared;var m=l.pending;null===m?k.next=k:(k.next=m.next,m.next=k);l.pending=k}}f.lanes|=c;k=f.alternate;null!==k&&(k.lanes|=c);Sg(f.return,\nc,b);h.lanes|=c;break}k=k.next}}else if(10===f.tag)g=f.type===b.type?null:f.child;else if(18===f.tag){g=f.return;if(null===g)throw Error(p(341));g.lanes|=c;h=g.alternate;null!==h&&(h.lanes|=c);Sg(g,c,b);g=f.sibling}else g=f.child;if(null!==g)g.return=f;else for(g=f;null!==g;){if(g===b){g=null;break}f=g.sibling;if(null!==f){f.return=g.return;g=f;break}g=g.return}f=g}Yi(a,b,e.children,c);b=b.child}return b;case 9:return e=b.type,d=b.pendingProps.children,Tg(b,c),e=Vg(e),d=d(e),b.flags|=1,Yi(a,b,d,c),\nb.child;case 14:return d=b.type,e=Lg(d,b.pendingProps),e=Lg(d.type,e),aj(a,b,d,e,c);case 15:return cj(a,b,b.type,b.pendingProps,c);case 17:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),jj(a,b),b.tag=1,Zf(d)?(a=!0,cg(b)):a=!1,Tg(b,c),ph(b,d,e),rh(b,d,e,c),kj(null,b,d,!0,a,c);case 19:return yj(a,b,c);case 22:return ej(a,b,c)}throw Error(p(156,b.tag));};function Gk(a,b){return ac(a,b)}\nfunction al(a,b,c,d){this.tag=a;this.key=c;this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null;this.index=0;this.ref=null;this.pendingProps=b;this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null;this.mode=d;this.subtreeFlags=this.flags=0;this.deletions=null;this.childLanes=this.lanes=0;this.alternate=null}function Bg(a,b,c,d){return new al(a,b,c,d)}function bj(a){a=a.prototype;return!(!a||!a.isReactComponent)}\nfunction $k(a){if(\"function\"===typeof a)return bj(a)?1:0;if(void 0!==a&&null!==a){a=a.$$typeof;if(a===Da)return 11;if(a===Ga)return 14}return 2}\nfunction wh(a,b){var c=a.alternate;null===c?(c=Bg(a.tag,b,a.key,a.mode),c.elementType=a.elementType,c.type=a.type,c.stateNode=a.stateNode,c.alternate=a,a.alternate=c):(c.pendingProps=b,c.type=a.type,c.flags=0,c.subtreeFlags=0,c.deletions=null);c.flags=a.flags&14680064;c.childLanes=a.childLanes;c.lanes=a.lanes;c.child=a.child;c.memoizedProps=a.memoizedProps;c.memoizedState=a.memoizedState;c.updateQueue=a.updateQueue;b=a.dependencies;c.dependencies=null===b?null:{lanes:b.lanes,firstContext:b.firstContext};\nc.sibling=a.sibling;c.index=a.index;c.ref=a.ref;return c}\nfunction yh(a,b,c,d,e,f){var g=2;d=a;if(\"function\"===typeof a)bj(a)&&(g=1);else if(\"string\"===typeof a)g=5;else a:switch(a){case ya:return Ah(c.children,e,f,b);case za:g=8;e|=8;break;case Aa:return a=Bg(12,c,b,e|2),a.elementType=Aa,a.lanes=f,a;case Ea:return a=Bg(13,c,b,e),a.elementType=Ea,a.lanes=f,a;case Fa:return a=Bg(19,c,b,e),a.elementType=Fa,a.lanes=f,a;case Ia:return qj(c,e,f,b);default:if(\"object\"===typeof a&&null!==a)switch(a.$$typeof){case Ba:g=10;break a;case Ca:g=9;break a;case Da:g=11;\nbreak a;case Ga:g=14;break a;case Ha:g=16;d=null;break a}throw Error(p(130,null==a?a:typeof a,\"\"));}b=Bg(g,c,b,e);b.elementType=a;b.type=d;b.lanes=f;return b}function Ah(a,b,c,d){a=Bg(7,a,d,b);a.lanes=c;return a}function qj(a,b,c,d){a=Bg(22,a,d,b);a.elementType=Ia;a.lanes=c;a.stateNode={isHidden:!1};return a}function xh(a,b,c){a=Bg(6,a,null,b);a.lanes=c;return a}\nfunction zh(a,b,c){b=Bg(4,null!==a.children?a.children:[],a.key,b);b.lanes=c;b.stateNode={containerInfo:a.containerInfo,pendingChildren:null,implementation:a.implementation};return b}\nfunction bl(a,b,c,d,e){this.tag=b;this.containerInfo=a;this.finishedWork=this.pingCache=this.current=this.pendingChildren=null;this.timeoutHandle=-1;this.callbackNode=this.pendingContext=this.context=null;this.callbackPriority=0;this.eventTimes=zc(0);this.expirationTimes=zc(-1);this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0;this.entanglements=zc(0);this.identifierPrefix=d;this.onRecoverableError=e;this.mutableSourceEagerHydrationData=\nnull}function cl(a,b,c,d,e,f,g,h,k){a=new bl(a,b,c,h,k);1===b?(b=1,!0===f&&(b|=8)):b=0;f=Bg(3,null,null,b);a.current=f;f.stateNode=a;f.memoizedState={element:d,isDehydrated:c,cache:null,transitions:null,pendingSuspenseBoundaries:null};ah(f);return a}function dl(a,b,c){var d=3 0 && index + match.length !== title.length && match.search(smallWords) > -1 && title.charAt(index - 2) !== \":\" && (title.charAt(index + match.length) !== \"-\" || title.charAt(index - 1) === \"-\") && title.charAt(index - 1).search(/[^\\s-]/) < 0) {\n return match.toLowerCase();\n }\n if (match.substr(1).search(/[A-Z]|\\../) > -1) {\n return match;\n }\n return match.charAt(0).toUpperCase() + match.substr(1);\n });\n}\n\n// See if s could be an email address. We don't want to send personal data like email.\n// https://support.google.com/analytics/answer/2795983?hl=en\nfunction mightBeEmail(s) {\n // There's no point trying to validate rfc822 fully, just look for ...@...\n return typeof s === \"string\" && s.indexOf(\"@\") !== -1;\n}\nvar redacted = \"REDACTED (Potential Email Address)\";\nfunction redactEmail(string) {\n if (mightBeEmail(string)) {\n console.warn(\"This arg looks like an email address, redacting.\");\n return redacted;\n }\n return string;\n}\nfunction format() {\n var s = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : \"\";\n var titleCase = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n var redactingEmail = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n var _str = s || \"\";\n if (titleCase) {\n _str = toTitleCase(s);\n }\n if (redactingEmail) {\n _str = redactEmail(_str);\n }\n return _str;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = exports.GA4 = void 0;\nvar _gtag = _interopRequireDefault(require(\"./gtag\"));\nvar _format = _interopRequireDefault(require(\"./format\"));\nvar _excluded = [\"eventCategory\", \"eventAction\", \"eventLabel\", \"eventValue\", \"hitType\"],\n _excluded2 = [\"title\", \"location\"],\n _excluded3 = [\"page\", \"hitType\"];\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : \"undefined\" != typeof Symbol && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i[\"return\"] && (_r = _i[\"return\"](), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _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, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\n/*\nLinks\nhttps://developers.google.com/gtagjs/reference/api\nhttps://developers.google.com/tag-platform/gtagjs/reference\n*/\n/**\n * @typedef GaOptions\n * @type {Object}\n * @property {boolean} [cookieUpdate=true]\n * @property {number} [cookieExpires=63072000] Default two years\n * @property {string} [cookieDomain=\"auto\"]\n * @property {string} [cookieFlags]\n * @property {string} [userId]\n * @property {string} [clientId]\n * @property {boolean} [anonymizeIp]\n * @property {string} [contentGroup1]\n * @property {string} [contentGroup2]\n * @property {string} [contentGroup3]\n * @property {string} [contentGroup4]\n * @property {string} [contentGroup5]\n * @property {boolean} [allowAdFeatures=true]\n * @property {boolean} [allowAdPersonalizationSignals]\n * @property {boolean} [nonInteraction]\n * @property {string} [page]\n */\n/**\n * @typedef UaEventOptions\n * @type {Object}\n * @property {string} action\n * @property {string} category\n * @property {string} [label]\n * @property {number} [value]\n * @property {boolean} [nonInteraction]\n * @property {('beacon'|'xhr'|'image')} [transport]\n */\n/**\n * @typedef InitOptions\n * @type {Object}\n * @property {string} trackingId\n * @property {GaOptions|any} [gaOptions]\n * @property {Object} [gtagOptions] New parameter\n */\nvar GA4 = /*#__PURE__*/function () {\n function GA4() {\n var _this = this;\n _classCallCheck(this, GA4);\n _defineProperty(this, \"reset\", function () {\n _this.isInitialized = false;\n _this._testMode = false;\n _this._currentMeasurementId;\n _this._hasLoadedGA = false;\n _this._isQueuing = false;\n _this._queueGtag = [];\n });\n _defineProperty(this, \"_gtag\", function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n if (!_this._testMode) {\n if (_this._isQueuing) {\n _this._queueGtag.push(args);\n } else {\n _gtag[\"default\"].apply(void 0, args);\n }\n } else {\n _this._queueGtag.push(args);\n }\n });\n _defineProperty(this, \"_loadGA\", function (GA_MEASUREMENT_ID, nonce) {\n var gtagUrl = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : \"https://www.googletagmanager.com/gtag/js\";\n if (typeof window === \"undefined\" || typeof document === \"undefined\") {\n return;\n }\n if (!_this._hasLoadedGA) {\n // Global Site Tag (gtag.js) - Google Analytics\n var script = document.createElement(\"script\");\n script.async = true;\n script.src = \"\".concat(gtagUrl, \"?id=\").concat(GA_MEASUREMENT_ID);\n if (nonce) {\n script.setAttribute(\"nonce\", nonce);\n }\n document.body.appendChild(script);\n window.dataLayer = window.dataLayer || [];\n window.gtag = function gtag() {\n window.dataLayer.push(arguments);\n };\n _this._hasLoadedGA = true;\n }\n });\n _defineProperty(this, \"_toGtagOptions\", function (gaOptions) {\n if (!gaOptions) {\n return;\n }\n var mapFields = {\n // Old https://developers.google.com/analytics/devguides/collection/analyticsjs/field-reference#cookieUpdate\n // New https://developers.google.com/analytics/devguides/collection/gtagjs/cookies-user-id#cookie_update\n cookieUpdate: \"cookie_update\",\n cookieExpires: \"cookie_expires\",\n cookieDomain: \"cookie_domain\",\n cookieFlags: \"cookie_flags\",\n // must be in set method?\n userId: \"user_id\",\n clientId: \"client_id\",\n anonymizeIp: \"anonymize_ip\",\n // https://support.google.com/analytics/answer/2853546?hl=en#zippy=%2Cin-this-article\n contentGroup1: \"content_group1\",\n contentGroup2: \"content_group2\",\n contentGroup3: \"content_group3\",\n contentGroup4: \"content_group4\",\n contentGroup5: \"content_group5\",\n // https://support.google.com/analytics/answer/9050852?hl=en\n allowAdFeatures: \"allow_google_signals\",\n allowAdPersonalizationSignals: \"allow_ad_personalization_signals\",\n nonInteraction: \"non_interaction\",\n page: \"page_path\",\n hitCallback: \"event_callback\"\n };\n var gtagOptions = Object.entries(gaOptions).reduce(function (prev, _ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n key = _ref2[0],\n value = _ref2[1];\n if (mapFields[key]) {\n prev[mapFields[key]] = value;\n } else {\n prev[key] = value;\n }\n return prev;\n }, {});\n return gtagOptions;\n });\n _defineProperty(this, \"initialize\", function (GA_MEASUREMENT_ID) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n if (!GA_MEASUREMENT_ID) {\n throw new Error(\"Require GA_MEASUREMENT_ID\");\n }\n var initConfigs = typeof GA_MEASUREMENT_ID === \"string\" ? [{\n trackingId: GA_MEASUREMENT_ID\n }] : GA_MEASUREMENT_ID;\n _this._currentMeasurementId = initConfigs[0].trackingId;\n var gaOptions = options.gaOptions,\n gtagOptions = options.gtagOptions,\n nonce = options.nonce,\n _options$testMode = options.testMode,\n testMode = _options$testMode === void 0 ? false : _options$testMode,\n gtagUrl = options.gtagUrl;\n _this._testMode = testMode;\n if (!testMode) {\n _this._loadGA(_this._currentMeasurementId, nonce, gtagUrl);\n }\n if (!_this.isInitialized) {\n _this._gtag(\"js\", new Date());\n initConfigs.forEach(function (config) {\n var mergedGtagOptions = _objectSpread(_objectSpread(_objectSpread({}, _this._toGtagOptions(_objectSpread(_objectSpread({}, gaOptions), config.gaOptions))), gtagOptions), config.gtagOptions);\n if (Object.keys(mergedGtagOptions).length) {\n _this._gtag(\"config\", config.trackingId, mergedGtagOptions);\n } else {\n _this._gtag(\"config\", config.trackingId);\n }\n });\n }\n _this.isInitialized = true;\n if (!testMode) {\n var queues = _toConsumableArray(_this._queueGtag);\n _this._queueGtag = [];\n _this._isQueuing = false;\n while (queues.length) {\n var queue = queues.shift();\n _this._gtag.apply(_this, _toConsumableArray(queue));\n if (queue[0] === \"get\") {\n _this._isQueuing = true;\n }\n }\n }\n });\n _defineProperty(this, \"set\", function (fieldsObject) {\n if (!fieldsObject) {\n console.warn(\"`fieldsObject` is required in .set()\");\n return;\n }\n if (_typeof(fieldsObject) !== \"object\") {\n console.warn(\"Expected `fieldsObject` arg to be an Object\");\n return;\n }\n if (Object.keys(fieldsObject).length === 0) {\n console.warn(\"empty `fieldsObject` given to .set()\");\n }\n _this._gaCommand(\"set\", fieldsObject);\n });\n _defineProperty(this, \"_gaCommandSendEvent\", function (eventCategory, eventAction, eventLabel, eventValue, fieldsObject) {\n _this._gtag(\"event\", eventAction, _objectSpread(_objectSpread({\n event_category: eventCategory,\n event_label: eventLabel,\n value: eventValue\n }, fieldsObject && {\n non_interaction: fieldsObject.nonInteraction\n }), _this._toGtagOptions(fieldsObject)));\n });\n _defineProperty(this, \"_gaCommandSendEventParameters\", function () {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n if (typeof args[0] === \"string\") {\n _this._gaCommandSendEvent.apply(_this, _toConsumableArray(args.slice(1)));\n } else {\n var _args$ = args[0],\n eventCategory = _args$.eventCategory,\n eventAction = _args$.eventAction,\n eventLabel = _args$.eventLabel,\n eventValue = _args$.eventValue,\n hitType = _args$.hitType,\n rest = _objectWithoutProperties(_args$, _excluded);\n _this._gaCommandSendEvent(eventCategory, eventAction, eventLabel, eventValue, rest);\n }\n });\n _defineProperty(this, \"_gaCommandSendTiming\", function (timingCategory, timingVar, timingValue, timingLabel) {\n _this._gtag(\"event\", \"timing_complete\", {\n name: timingVar,\n value: timingValue,\n event_category: timingCategory,\n event_label: timingLabel\n });\n });\n _defineProperty(this, \"_gaCommandSendPageview\", function (page, fieldsObject) {\n if (fieldsObject && Object.keys(fieldsObject).length) {\n var _this$_toGtagOptions = _this._toGtagOptions(fieldsObject),\n title = _this$_toGtagOptions.title,\n location = _this$_toGtagOptions.location,\n rest = _objectWithoutProperties(_this$_toGtagOptions, _excluded2);\n _this._gtag(\"event\", \"page_view\", _objectSpread(_objectSpread(_objectSpread(_objectSpread({}, page && {\n page_path: page\n }), title && {\n page_title: title\n }), location && {\n page_location: location\n }), rest));\n } else if (page) {\n _this._gtag(\"event\", \"page_view\", {\n page_path: page\n });\n } else {\n _this._gtag(\"event\", \"page_view\");\n }\n });\n _defineProperty(this, \"_gaCommandSendPageviewParameters\", function () {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n if (typeof args[0] === \"string\") {\n _this._gaCommandSendPageview.apply(_this, _toConsumableArray(args.slice(1)));\n } else {\n var _args$2 = args[0],\n page = _args$2.page,\n hitType = _args$2.hitType,\n rest = _objectWithoutProperties(_args$2, _excluded3);\n _this._gaCommandSendPageview(page, rest);\n }\n });\n _defineProperty(this, \"_gaCommandSend\", function () {\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n var hitType = typeof args[0] === \"string\" ? args[0] : args[0].hitType;\n switch (hitType) {\n case \"event\":\n _this._gaCommandSendEventParameters.apply(_this, args);\n break;\n case \"pageview\":\n _this._gaCommandSendPageviewParameters.apply(_this, args);\n break;\n case \"timing\":\n _this._gaCommandSendTiming.apply(_this, _toConsumableArray(args.slice(1)));\n break;\n case \"screenview\":\n case \"transaction\":\n case \"item\":\n case \"social\":\n case \"exception\":\n console.warn(\"Unsupported send command: \".concat(hitType));\n break;\n default:\n console.warn(\"Send command doesn't exist: \".concat(hitType));\n }\n });\n _defineProperty(this, \"_gaCommandSet\", function () {\n for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {\n args[_key5] = arguments[_key5];\n }\n if (typeof args[0] === \"string\") {\n args[0] = _defineProperty({}, args[0], args[1]);\n }\n _this._gtag(\"set\", _this._toGtagOptions(args[0]));\n });\n _defineProperty(this, \"_gaCommand\", function (command) {\n for (var _len6 = arguments.length, args = new Array(_len6 > 1 ? _len6 - 1 : 0), _key6 = 1; _key6 < _len6; _key6++) {\n args[_key6 - 1] = arguments[_key6];\n }\n switch (command) {\n case \"send\":\n _this._gaCommandSend.apply(_this, args);\n break;\n case \"set\":\n _this._gaCommandSet.apply(_this, args);\n break;\n default:\n console.warn(\"Command doesn't exist: \".concat(command));\n }\n });\n _defineProperty(this, \"ga\", function () {\n for (var _len7 = arguments.length, args = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {\n args[_key7] = arguments[_key7];\n }\n if (typeof args[0] === \"string\") {\n _this._gaCommand.apply(_this, args);\n } else {\n var readyCallback = args[0];\n _this._gtag(\"get\", _this._currentMeasurementId, \"client_id\", function (clientId) {\n _this._isQueuing = false;\n var queues = _this._queueGtag;\n readyCallback({\n get: function get(property) {\n return property === \"clientId\" ? clientId : property === \"trackingId\" ? _this._currentMeasurementId : property === \"apiVersion\" ? \"1\" : undefined;\n }\n });\n while (queues.length) {\n var queue = queues.shift();\n _this._gtag.apply(_this, _toConsumableArray(queue));\n }\n });\n _this._isQueuing = true;\n }\n return _this.ga;\n });\n _defineProperty(this, \"event\", function (optionsOrName, params) {\n if (typeof optionsOrName === \"string\") {\n _this._gtag(\"event\", optionsOrName, _this._toGtagOptions(params));\n } else {\n var action = optionsOrName.action,\n category = optionsOrName.category,\n label = optionsOrName.label,\n value = optionsOrName.value,\n nonInteraction = optionsOrName.nonInteraction,\n transport = optionsOrName.transport;\n if (!category || !action) {\n console.warn(\"args.category AND args.action are required in event()\");\n return;\n }\n\n // Required Fields\n var fieldObject = {\n hitType: \"event\",\n eventCategory: (0, _format[\"default\"])(category),\n eventAction: (0, _format[\"default\"])(action)\n };\n\n // Optional Fields\n if (label) {\n fieldObject.eventLabel = (0, _format[\"default\"])(label);\n }\n if (typeof value !== \"undefined\") {\n if (typeof value !== \"number\") {\n console.warn(\"Expected `args.value` arg to be a Number.\");\n } else {\n fieldObject.eventValue = value;\n }\n }\n if (typeof nonInteraction !== \"undefined\") {\n if (typeof nonInteraction !== \"boolean\") {\n console.warn(\"`args.nonInteraction` must be a boolean.\");\n } else {\n fieldObject.nonInteraction = nonInteraction;\n }\n }\n if (typeof transport !== \"undefined\") {\n if (typeof transport !== \"string\") {\n console.warn(\"`args.transport` must be a string.\");\n } else {\n if ([\"beacon\", \"xhr\", \"image\"].indexOf(transport) === -1) {\n console.warn(\"`args.transport` must be either one of these values: `beacon`, `xhr` or `image`\");\n }\n fieldObject.transport = transport;\n }\n }\n _this._gaCommand(\"send\", fieldObject);\n }\n });\n _defineProperty(this, \"send\", function (fieldObject) {\n _this._gaCommand(\"send\", fieldObject);\n });\n this.reset();\n }\n _createClass(GA4, [{\n key: \"gtag\",\n value: function gtag() {\n this._gtag.apply(this, arguments);\n }\n }]);\n return GA4;\n}();\nexports.GA4 = GA4;\nvar _default = new GA4();\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\nvar gtag = function gtag() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n if (typeof window !== \"undefined\") {\n var _window;\n if (typeof window.gtag === \"undefined\") {\n window.dataLayer = window.dataLayer || [];\n window.gtag = function gtag() {\n window.dataLayer.push(arguments);\n };\n }\n (_window = window).gtag.apply(_window, args);\n }\n};\nvar _default = gtag;\nexports[\"default\"] = _default;","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = exports.ReactGAImplementation = void 0;\nvar _ga = _interopRequireWildcard(require(\"./ga4\"));\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\nvar ReactGAImplementation = _ga.GA4;\nexports.ReactGAImplementation = ReactGAImplementation;\nvar _default = _ga[\"default\"];\nexports[\"default\"] = _default;","module.exports = Array.isArray || function (arr) {\n return Object.prototype.toString.call(arr) == '[object Array]';\n};\n","var isarray = require('isarray')\n\n/**\n * Expose `pathToRegexp`.\n */\nmodule.exports = pathToRegexp\nmodule.exports.parse = parse\nmodule.exports.compile = compile\nmodule.exports.tokensToFunction = tokensToFunction\nmodule.exports.tokensToRegExp = tokensToRegExp\n\n/**\n * The main path matching regexp utility.\n *\n * @type {RegExp}\n */\nvar PATH_REGEXP = new RegExp([\n // Match escaped characters that would otherwise appear in future matches.\n // This allows the user to escape special characters that won't transform.\n '(\\\\\\\\.)',\n // Match Express-style parameters and un-named parameters with a prefix\n // and optional suffixes. Matches appear as:\n //\n // \"/:test(\\\\d+)?\" => [\"/\", \"test\", \"\\d+\", undefined, \"?\", undefined]\n // \"/route(\\\\d+)\" => [undefined, undefined, undefined, \"\\d+\", undefined, undefined]\n // \"/*\" => [\"/\", undefined, undefined, undefined, undefined, \"*\"]\n '([\\\\/.])?(?:(?:\\\\:(\\\\w+)(?:\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))?|\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))([+*?])?|(\\\\*))'\n].join('|'), 'g')\n\n/**\n * Parse a string for the raw tokens.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!Array}\n */\nfunction parse (str, options) {\n var tokens = []\n var key = 0\n var index = 0\n var path = ''\n var defaultDelimiter = options && options.delimiter || '/'\n var res\n\n while ((res = PATH_REGEXP.exec(str)) != null) {\n var m = res[0]\n var escaped = res[1]\n var offset = res.index\n path += str.slice(index, offset)\n index = offset + m.length\n\n // Ignore already escaped sequences.\n if (escaped) {\n path += escaped[1]\n continue\n }\n\n var next = str[index]\n var prefix = res[2]\n var name = res[3]\n var capture = res[4]\n var group = res[5]\n var modifier = res[6]\n var asterisk = res[7]\n\n // Push the current path onto the tokens.\n if (path) {\n tokens.push(path)\n path = ''\n }\n\n var partial = prefix != null && next != null && next !== prefix\n var repeat = modifier === '+' || modifier === '*'\n var optional = modifier === '?' || modifier === '*'\n var delimiter = res[2] || defaultDelimiter\n var pattern = capture || group\n\n tokens.push({\n name: name || key++,\n prefix: prefix || '',\n delimiter: delimiter,\n optional: optional,\n repeat: repeat,\n partial: partial,\n asterisk: !!asterisk,\n pattern: pattern ? escapeGroup(pattern) : (asterisk ? '.*' : '[^' + escapeString(delimiter) + ']+?')\n })\n }\n\n // Match any characters still remaining.\n if (index < str.length) {\n path += str.substr(index)\n }\n\n // If the path exists, push it onto the end.\n if (path) {\n tokens.push(path)\n }\n\n return tokens\n}\n\n/**\n * Compile a string to a template function for the path.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!function(Object=, Object=)}\n */\nfunction compile (str, options) {\n return tokensToFunction(parse(str, options), options)\n}\n\n/**\n * Prettier encoding of URI path segments.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeURIComponentPretty (str) {\n return encodeURI(str).replace(/[\\/?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Encode the asterisk parameter. Similar to `pretty`, but allows slashes.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeAsterisk (str) {\n return encodeURI(str).replace(/[?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Expose a method for transforming tokens into the path function.\n */\nfunction tokensToFunction (tokens, options) {\n // Compile all the tokens into regexps.\n var matches = new Array(tokens.length)\n\n // Compile all the patterns before compilation.\n for (var i = 0; i < tokens.length; i++) {\n if (typeof tokens[i] === 'object') {\n matches[i] = new RegExp('^(?:' + tokens[i].pattern + ')$', flags(options))\n }\n }\n\n return function (obj, opts) {\n var path = ''\n var data = obj || {}\n var options = opts || {}\n var encode = options.pretty ? encodeURIComponentPretty : encodeURIComponent\n\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i]\n\n if (typeof token === 'string') {\n path += token\n\n continue\n }\n\n var value = data[token.name]\n var segment\n\n if (value == null) {\n if (token.optional) {\n // Prepend partial segment prefixes.\n if (token.partial) {\n path += token.prefix\n }\n\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to be defined')\n }\n }\n\n if (isarray(value)) {\n if (!token.repeat) {\n throw new TypeError('Expected \"' + token.name + '\" to not repeat, but received `' + JSON.stringify(value) + '`')\n }\n\n if (value.length === 0) {\n if (token.optional) {\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to not be empty')\n }\n }\n\n for (var j = 0; j < value.length; j++) {\n segment = encode(value[j])\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected all \"' + token.name + '\" to match \"' + token.pattern + '\", but received `' + JSON.stringify(segment) + '`')\n }\n\n path += (j === 0 ? token.prefix : token.delimiter) + segment\n }\n\n continue\n }\n\n segment = token.asterisk ? encodeAsterisk(value) : encode(value)\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected \"' + token.name + '\" to match \"' + token.pattern + '\", but received \"' + segment + '\"')\n }\n\n path += token.prefix + segment\n }\n\n return path\n }\n}\n\n/**\n * Escape a regular expression string.\n *\n * @param {string} str\n * @return {string}\n */\nfunction escapeString (str) {\n return str.replace(/([.+*?=^!:${}()[\\]|\\/\\\\])/g, '\\\\$1')\n}\n\n/**\n * Escape the capturing group by escaping special characters and meaning.\n *\n * @param {string} group\n * @return {string}\n */\nfunction escapeGroup (group) {\n return group.replace(/([=!:$\\/()])/g, '\\\\$1')\n}\n\n/**\n * Attach the keys as a property of the regexp.\n *\n * @param {!RegExp} re\n * @param {Array} keys\n * @return {!RegExp}\n */\nfunction attachKeys (re, keys) {\n re.keys = keys\n return re\n}\n\n/**\n * Get the flags for a regexp from the options.\n *\n * @param {Object} options\n * @return {string}\n */\nfunction flags (options) {\n return options && options.sensitive ? '' : 'i'\n}\n\n/**\n * Pull out keys from a regexp.\n *\n * @param {!RegExp} path\n * @param {!Array} keys\n * @return {!RegExp}\n */\nfunction regexpToRegexp (path, keys) {\n // Use a negative lookahead to match only capturing groups.\n var groups = path.source.match(/\\((?!\\?)/g)\n\n if (groups) {\n for (var i = 0; i < groups.length; i++) {\n keys.push({\n name: i,\n prefix: null,\n delimiter: null,\n optional: false,\n repeat: false,\n partial: false,\n asterisk: false,\n pattern: null\n })\n }\n }\n\n return attachKeys(path, keys)\n}\n\n/**\n * Transform an array into a regexp.\n *\n * @param {!Array} path\n * @param {Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction arrayToRegexp (path, keys, options) {\n var parts = []\n\n for (var i = 0; i < path.length; i++) {\n parts.push(pathToRegexp(path[i], keys, options).source)\n }\n\n var regexp = new RegExp('(?:' + parts.join('|') + ')', flags(options))\n\n return attachKeys(regexp, keys)\n}\n\n/**\n * Create a path regexp from string input.\n *\n * @param {string} path\n * @param {!Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction stringToRegexp (path, keys, options) {\n return tokensToRegExp(parse(path, options), keys, options)\n}\n\n/**\n * Expose a function for taking tokens and returning a RegExp.\n *\n * @param {!Array} tokens\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction tokensToRegExp (tokens, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options)\n keys = []\n }\n\n options = options || {}\n\n var strict = options.strict\n var end = options.end !== false\n var route = ''\n\n // Iterate over the tokens and create our regexp string.\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i]\n\n if (typeof token === 'string') {\n route += escapeString(token)\n } else {\n var prefix = escapeString(token.prefix)\n var capture = '(?:' + token.pattern + ')'\n\n keys.push(token)\n\n if (token.repeat) {\n capture += '(?:' + prefix + capture + ')*'\n }\n\n if (token.optional) {\n if (!token.partial) {\n capture = '(?:' + prefix + '(' + capture + '))?'\n } else {\n capture = prefix + '(' + capture + ')?'\n }\n } else {\n capture = prefix + '(' + capture + ')'\n }\n\n route += capture\n }\n }\n\n var delimiter = escapeString(options.delimiter || '/')\n var endsWithDelimiter = route.slice(-delimiter.length) === delimiter\n\n // In non-strict mode we allow a slash at the end of match. If the path to\n // match already ends with a slash, we remove it for consistency. The slash\n // is valid at the end of a path match, not in the middle. This is important\n // in non-ending mode, where \"/test/\" shouldn't match \"/test//route\".\n if (!strict) {\n route = (endsWithDelimiter ? route.slice(0, -delimiter.length) : route) + '(?:' + delimiter + '(?=$))?'\n }\n\n if (end) {\n route += '$'\n } else {\n // In non-ending mode, we need the capturing groups to match as much as\n // possible by using a positive lookahead to the end or next path segment.\n route += strict && endsWithDelimiter ? '' : '(?=' + delimiter + '|$)'\n }\n\n return attachKeys(new RegExp('^' + route, flags(options)), keys)\n}\n\n/**\n * Normalize the given path string, returning a regular expression.\n *\n * An empty array can be passed in for the keys, which will hold the\n * placeholder key descriptions. For example, using `/user/:id`, `keys` will\n * contain `[{ name: 'id', delimiter: '/', optional: false, repeat: false }]`.\n *\n * @param {(string|RegExp|Array)} path\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction pathToRegexp (path, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options)\n keys = []\n }\n\n options = options || {}\n\n if (path instanceof RegExp) {\n return regexpToRegexp(path, /** @type {!Array} */ (keys))\n }\n\n if (isarray(path)) {\n return arrayToRegexp(/** @type {!Array} */ (path), /** @type {!Array} */ (keys), options)\n }\n\n return stringToRegexp(/** @type {string} */ (path), /** @type {!Array} */ (keys), options)\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\n'use strict';var 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?\nSymbol.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;\nfunction 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}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.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)};exports.typeOf=z;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","/**\n * @license React\n * react-jsx-runtime.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'use strict';var f=require(\"react\"),k=Symbol.for(\"react.element\"),l=Symbol.for(\"react.fragment\"),m=Object.prototype.hasOwnProperty,n=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,g){var b,d={},e=null,h=null;void 0!==g&&(e=\"\"+g);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(h=a.ref);for(b in a)m.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:k,type:c,key:e,ref:h,props:d,_owner:n.current}}exports.Fragment=l;exports.jsx=q;exports.jsxs=q;\n","/**\n * @license React\n * react.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'use strict';var l=Symbol.for(\"react.element\"),n=Symbol.for(\"react.portal\"),p=Symbol.for(\"react.fragment\"),q=Symbol.for(\"react.strict_mode\"),r=Symbol.for(\"react.profiler\"),t=Symbol.for(\"react.provider\"),u=Symbol.for(\"react.context\"),v=Symbol.for(\"react.forward_ref\"),w=Symbol.for(\"react.suspense\"),x=Symbol.for(\"react.memo\"),y=Symbol.for(\"react.lazy\"),z=Symbol.iterator;function A(a){if(null===a||\"object\"!==typeof a)return null;a=z&&a[z]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}\nvar B={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},C=Object.assign,D={};function E(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}E.prototype.isReactComponent={};\nE.prototype.setState=function(a,b){if(\"object\"!==typeof a&&\"function\"!==typeof a&&null!=a)throw Error(\"setState(...): takes an object of state variables to update or a function which returns an object of state variables.\");this.updater.enqueueSetState(this,a,b,\"setState\")};E.prototype.forceUpdate=function(a){this.updater.enqueueForceUpdate(this,a,\"forceUpdate\")};function F(){}F.prototype=E.prototype;function G(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}var H=G.prototype=new F;\nH.constructor=G;C(H,E.prototype);H.isPureReactComponent=!0;var I=Array.isArray,J=Object.prototype.hasOwnProperty,K={current:null},L={key:!0,ref:!0,__self:!0,__source:!0};\nfunction M(a,b,e){var d,c={},k=null,h=null;if(null!=b)for(d in void 0!==b.ref&&(h=b.ref),void 0!==b.key&&(k=\"\"+b.key),b)J.call(b,d)&&!L.hasOwnProperty(d)&&(c[d]=b[d]);var g=arguments.length-2;if(1===g)c.children=e;else if(1>>1,e=a[d];if(0>>1;dg(C,c))ng(x,C)?(a[d]=x,a[n]=c,d=n):(a[d]=C,a[m]=c,d=m);else if(ng(x,c))a[d]=x,a[n]=c,d=n;else break a}}return b}\nfunction g(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}if(\"object\"===typeof performance&&\"function\"===typeof performance.now){var l=performance;exports.unstable_now=function(){return l.now()}}else{var p=Date,q=p.now();exports.unstable_now=function(){return p.now()-q}}var r=[],t=[],u=1,v=null,y=3,z=!1,A=!1,B=!1,D=\"function\"===typeof setTimeout?setTimeout:null,E=\"function\"===typeof clearTimeout?clearTimeout:null,F=\"undefined\"!==typeof setImmediate?setImmediate:null;\n\"undefined\"!==typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function G(a){for(var b=h(t);null!==b;){if(null===b.callback)k(t);else if(b.startTime<=a)k(t),b.sortIndex=b.expirationTime,f(r,b);else break;b=h(t)}}function H(a){B=!1;G(a);if(!A)if(null!==h(r))A=!0,I(J);else{var b=h(t);null!==b&&K(H,b.startTime-a)}}\nfunction J(a,b){A=!1;B&&(B=!1,E(L),L=-1);z=!0;var c=y;try{G(b);for(v=h(r);null!==v&&(!(v.expirationTime>b)||a&&!M());){var d=v.callback;if(\"function\"===typeof d){v.callback=null;y=v.priorityLevel;var e=d(v.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?v.callback=e:v===h(r)&&k(r);G(b)}else k(r);v=h(r)}if(null!==v)var w=!0;else{var m=h(t);null!==m&&K(H,m.startTime-b);w=!1}return w}finally{v=null,y=c,z=!1}}var N=!1,O=null,L=-1,P=5,Q=-1;\nfunction M(){return exports.unstable_now()-Qa||125d?(a.sortIndex=c,f(t,a),null===h(r)&&a===h(t)&&(B?(E(L),L=-1):B=!0,K(H,c-d))):(a.sortIndex=e,f(r,a),A||z||(A=!0,I(J)));return a};\nexports.unstable_shouldYield=M;exports.unstable_wrapCallback=function(a){var b=y;return function(){var c=y;y=b;try{return a.apply(this,arguments)}finally{y=c}}};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.production.min.js');\n} else {\n module.exports = require('./cjs/scheduler.development.js');\n}\n","import parse from 'inline-style-parser';\nimport type { Declaration } from 'inline-style-parser';\n\nexport { Declaration };\n\ninterface StyleObject {\n [name: string]: string;\n}\n\ntype Iterator = (\n property: string,\n value: string,\n declaration: Declaration,\n) => void;\n\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 */\nexport default function StyleToObject(\n style: string,\n iterator?: Iterator,\n): StyleObject | null {\n let styleObject: StyleObject | null = null;\n\n if (!style || typeof style !== 'string') {\n return styleObject;\n }\n\n const declarations = parse(style);\n const hasIterator = typeof iterator === 'function';\n\n declarations.forEach((declaration) => {\n if (declaration.type !== 'declaration') {\n return;\n }\n\n const { property, value } = declaration;\n\n if (hasIterator) {\n iterator(property, value, declaration);\n } else if (value) {\n styleObject = styleObject || {};\n styleObject[property] = value;\n }\n });\n\n return styleObject;\n}\n","/**\n * @license React\n * use-sync-external-store-with-selector.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'use strict';var g=require(\"react\");function n(a,b){return a===b&&(0!==a||1/a===1/b)||a!==a&&b!==b}var p=\"function\"===typeof Object.is?Object.is:n,q=g.useSyncExternalStore,r=g.useRef,t=g.useEffect,u=g.useMemo,v=g.useDebugValue;\nexports.useSyncExternalStoreWithSelector=function(a,b,e,l,h){var c=r(null);if(null===c.current){var f={hasValue:!1,value:null};c.current=f}else f=c.current;c=u(function(){function a(a){if(!c){c=!0;d=a;a=l(a);if(void 0!==h&&f.hasValue){var b=f.value;if(h(b,a))return k=b}return k=a}b=k;if(p(d,a))return b;var e=l(a);if(void 0!==h&&h(b,e))return b;d=a;return k=e}var c=!1,d,k,m=void 0===e?null:e;return[function(){return a(b())},null===m?void 0:function(){return a(m())}]},[b,e,l,h]);var d=q(a,c[0],c[1]);\nt(function(){f.hasValue=!0;f.value=d},[d]);v(d);return d};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/use-sync-external-store-with-selector.production.min.js');\n} else {\n module.exports = require('./cjs/use-sync-external-store-with-selector.development.js');\n}\n","var toPropertyKey = require(\"./toPropertyKey.js\");\nfunction _defineProperty(obj, key, value) {\n key = toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nmodule.exports = _defineProperty, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\nfunction toPrimitive(t, r) {\n if (\"object\" != _typeof(t) || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != _typeof(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}\nmodule.exports = toPrimitive, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\nvar toPrimitive = require(\"./toPrimitive.js\");\nfunction toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : String(i);\n}\nmodule.exports = toPropertyKey, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return (module.exports = _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports), _typeof(o);\n}\nmodule.exports = _typeof, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","var getProto = Object.getPrototypeOf ? (obj) => (Object.getPrototypeOf(obj)) : (obj) => (obj.__proto__);\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach((key) => (def[key] = () => (value[key])));\n\t}\n\tdef['default'] = () => (value);\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","export const REFERENCE_STATISTA_PATTERN = /\\[([\\d]+)\\]/;\nexport const REFERENCE_GOOGLE_PATTERN = /(\\s)*\\[([\\d, ]+)\\]/;\nexport const REFERENCE_PATTERN = /(\\s)*\\[([\\d, ]+)\\]/;\nexport const REFERENCE_ELEMENT_PATTERN =\n /[\\d]+<\\/span>/;\n\nexport const REFERENCE_EXTERNAL_ELEMENT_PATTERN =\n /[\\d]+<\\/span>/;\n","// import { Guid } from \"js-guid\";\nimport {\n REFERENCE_ELEMENT_PATTERN,\n REFERENCE_EXTERNAL_ELEMENT_PATTERN,\n REFERENCE_GOOGLE_PATTERN,\n REFERENCE_PATTERN,\n REFERENCE_STATISTA_PATTERN,\n} from \"constants/pattern\";\n\nimport ReactGA from \"react-ga4\";\n\n/**\n * Function initialize GA\n */\nexport const initializeGA = () => {\n if (!process.env.REACT_APP_GA_ID) return false;\n ReactGA.initialize(process.env.REACT_APP_GA_ID);\n console.log(\"ReactGA.initialize\", process.env.REACT_APP_GA_ID);\n return true;\n};\n\n/**\n * Function Track Event\n * @member name - Event name\n * @member params - Event parameters\n */\nexport const TrackEvent = (apiLog, name, params) => {\n // in case we will have other tracking platforms\n // add a layer of wrapper to GA\n // ReactGA.event({\n // category: \"TrackEvent\",\n // action: name,\n // label: params, // optional\n // nonInteraction: true, // optional, true/false\n // });\n // ReactGA.event({\n // ...params,\n // category: \"TrackEvent\",\n // action: name,\n // nonInteraction: true, // optional, true/false\n // });\n console.log(\"apiLog\", apiLog);\n ReactGA.event(name, params);\n console.log(\n \"[Track Event] Name: \" + name + \" | Params: /\" + JSON.stringify(params)\n );\n};\n\nexport const getCookie = (cookieName) => {\n const name = cookieName + \"=\";\n const decodedCookie = decodeURIComponent(document.cookie);\n const cookieArray = decodedCookie.split(\";\");\n\n for (let i = 0; i < cookieArray.length; i++) {\n let cookie = cookieArray[i].trim();\n if (cookie.indexOf(name) === 0) {\n return cookie.substring(name.length, cookie.length);\n }\n }\n\n return null; // Cookie not found\n};\n\nexport const setCookie = (cookieName, cookieValue, expirationDays = null) => {\n if (expirationDays !== null) {\n const d = new Date();\n d.setTime(d.getTime() + expirationDays * 24 * 60 * 60 * 1000);\n const expires = \"expires=\" + d.toUTCString();\n document.cookie =\n cookieName + \"=\" + cookieValue + \";\" + expires + \";path=/\";\n } else {\n document.cookie = `${cookieName}=${cookieValue}; path=/`;\n }\n};\n\nexport const chatWithGPTStreaming = async (\n userInput,\n apiEndpoint,\n history = [],\n callbackProcess,\n callbackDone,\n message_id\n) => {\n // Prepare data\n const sessionId = getCookie(\"hfAIChatSession\") || \"\";\n const headers = {\n \"Content-Type\": \"application/json\",\n \"Content-Encoding\": \"none\",\n \"Ocp-Apim-Subscription-Key\": getCookie(\"Ocp-Apim-Subscription-Key\"),\n Accept: \"text/event-stream\",\n };\n\n const payload = JSON.stringify({\n question: userInput.text,\n question_link: userInput.link,\n contentLength: userInput.contentLength,\n include_external: userInput.isIncludeExternal,\n history,\n ...(sessionId ? { session_id: sessionId } : {}),\n ...(message_id ? { message_id: message_id } : {}),\n });\n\n try {\n const chatbotController = new AbortController();\n const chatbotSignal = chatbotController.signal;\n\n // Call API Streaming\n const response = await fetch(apiEndpoint, {\n method: \"POST\",\n headers: headers,\n body: payload,\n signal: chatbotSignal,\n });\n\n if (!response.ok) {\n throw new Error(\"Failed to fetch data\");\n }\n\n const reader = response.body.getReader();\n const decoder = new TextDecoder(\"utf-8\");\n\n window.chatbotController = chatbotController;\n window.isCancel = false;\n\n let buffer = \"\",\n tempMessage = \"\",\n tempExternalMessage = \"\",\n externalType = \"google\",\n tempMessageFromAPI = [],\n tempGoogleMessageFromAPI = [],\n tempStatistaMessageFromAPI = [],\n orderSources = [],\n orderGoogleSources = [],\n currentIndex = 0, // To handle some case edge case\n currentExternalIndex = 0, // To handle some case edge case\n listMessage = [],\n listMessageExternal = [],\n isDone = false,\n isEndInternal = false,\n finalMessage = {\n isIncludeExternal: userInput?.isIncludeExternal,\n prevPath: userInput?.prevPath,\n related: [],\n sources: [],\n external_sources: [],\n question_keywords: [],\n id: \"-1\",\n },\n intervalTyping,\n errorMessage = \"\",\n pauseTiming = 0,\n noAnswerIndicator = [];\n\n function streamingDone(dt = {}) {\n callbackDone({\n ...finalMessage,\n ...dt,\n sources: separateSources(\n finalMessage.sources,\n listMessage.slice(0, currentIndex).join(\"\"),\n orderSources\n ),\n external_sources: tempGoogleMessageFromAPI?.length\n ? separateSources(\n finalMessage.external_sources,\n listMessageExternal.slice(0, currentExternalIndex).join(\"\"),\n orderGoogleSources,\n true\n )\n : finalMessage.external_sources,\n answerFromAPI: ignoreSource(\n listMessage.slice(0, currentIndex).join(\"\"),\n REFERENCE_ELEMENT_PATTERN\n ),\n answerGoogleFromAPI: tempGoogleMessageFromAPI.length\n ? ignoreSource(\n listMessageExternal.slice(0, currentExternalIndex).join(\"\"),\n REFERENCE_EXTERNAL_ELEMENT_PATTERN\n )\n : \"\",\n answerStatistaFromAPI: tempStatistaMessageFromAPI.length\n ? ignoreSource(\n listMessageExternal.slice(0, currentExternalIndex).join(\"\"),\n REFERENCE_EXTERNAL_ELEMENT_PATTERN\n )\n : \"\",\n });\n }\n\n function handleVisibilityChange() {\n if (document.visibilityState === \"hidden\") {\n pauseTiming = new Date().getTime();\n } else {\n const amountOfChunkRendered = Math.floor(\n (new Date().getTime() - pauseTiming) / 80\n );\n\n if (currentIndex < listMessage.length) {\n callbackProcess({\n nextMessage: listMessage\n .slice(\n currentIndex,\n Math.min(\n currentIndex + amountOfChunkRendered,\n listMessage.length\n )\n )\n .join(\"\"),\n ...(finalMessage.id\n ? {\n id: finalMessage?.id,\n }\n : {}),\n ...(finalMessage.external_message_id\n ? {\n external_message_id: finalMessage?.external_message_id,\n }\n : {}),\n });\n\n currentIndex += amountOfChunkRendered;\n } else if (isDone) {\n if (\n currentIndex >= listMessage.length &&\n currentExternalIndex < listMessageExternal.length\n ) {\n callbackProcess({\n nextMessage: listMessageExternal\n .slice(\n currentExternalIndex,\n Math.min(\n currentExternalIndex + amountOfChunkRendered,\n listMessageExternal.length\n )\n )\n .join(\"\"),\n externalType,\n ...(finalMessage.id\n ? {\n id: finalMessage?.id,\n }\n : {}),\n ...(finalMessage.external_message_id\n ? {\n external_message_id: finalMessage?.external_message_id,\n }\n : {}),\n });\n\n currentExternalIndex += amountOfChunkRendered;\n }\n }\n\n pauseTiming = 0;\n }\n }\n\n await Promise.all([\n // Handle streaming data\n new Promise(async (resolve, reject) => {\n try {\n while (true) {\n const { done, value } = await reader.read();\n\n if (done) {\n isDone = true;\n break;\n }\n\n buffer += decoder.decode(value, { stream: true });\n\n // Split buffer by newlines to get individual events\n const lines = buffer.split(\"\\n\\n\");\n buffer = lines.pop(); // Keep the last incomplete line in the buffer\n\n // Process complete lines (events)\n // eslint-disable-next-line no-loop-func\n lines.forEach((line) => {\n const [dataText, eventTypeText] = line.split(\"\\n\");\n\n const type = eventTypeText.replace(\"event: \", \"\"); // extra info | answer | related\n const data = JSON.parse(dataText.replace(\"data: \", \"\"));\n\n switch (type) {\n case \"error\":\n errorMessage = data?.message;\n isEndInternal = true;\n\n break;\n\n case \"answer\": {\n const message = data?.choices?.[0].delta.content || \"\";\n\n tempMessageFromAPI.push(message);\n\n if (/(\\s)*\\[.*/.test(message) || tempMessage) {\n tempMessage += message;\n }\n\n if (/(\\s)*\\[.*\\]/.test(tempMessage)) {\n // Template [References: (\\d+)\\] to detect if sources are using to response question\n tempMessage = replaceReferencePatternWithElement(\n tempMessage,\n REFERENCE_PATTERN,\n false,\n orderSources\n );\n\n listMessage.push(tempMessage);\n\n tempMessage = \"\";\n } else if (!tempMessage) {\n listMessage.push(message);\n }\n\n break;\n }\n\n case \"statista_answer\": {\n externalType = \"statista\";\n\n const messageStatista = data?.response?.answer;\n\n tempStatistaMessageFromAPI.push(messageStatista);\n\n if (\n /(\\s)*\\[.*/.test(messageStatista) ||\n tempExternalMessage\n ) {\n tempExternalMessage += messageStatista;\n }\n\n if (/(\\s)*\\[.*\\]/.test(tempExternalMessage)) {\n listMessageExternal.push(\n ...tempExternalMessage.split(\" \").map((text) => {\n let newText = text;\n\n while (REFERENCE_STATISTA_PATTERN.test(newText)) {\n newText = replaceReferencePatternWithElement(\n newText,\n REFERENCE_STATISTA_PATTERN,\n true\n );\n }\n\n return newText;\n })\n );\n\n tempExternalMessage = \"\";\n } else if (!tempExternalMessage) {\n listMessageExternal.push(...messageStatista.split(\" \"));\n }\n\n let amountOfWord = 1;\n\n listMessageExternal = listMessageExternal.reduce(\n (prev, cur) => {\n const lastItem = prev.slice(-1)?.[0];\n\n if (!lastItem) {\n return [cur];\n }\n\n amountOfWord -= 1;\n\n if (amountOfWord > 0) {\n return [...prev.slice(0, -1), lastItem + \" \" + cur];\n } else {\n amountOfWord = Math.floor(Math.random() * 3) + 1;\n\n return [...prev.slice(0, -1), lastItem, \" \", cur];\n }\n },\n []\n );\n\n break;\n }\n\n case \"google_answer\": {\n externalType = \"google\";\n\n const messageGoogle = data?.choices?.[0].delta.content || \"\";\n\n tempGoogleMessageFromAPI.push(messageGoogle);\n\n if (/(\\s)*\\[.*/.test(messageGoogle) || tempExternalMessage) {\n tempExternalMessage += messageGoogle;\n }\n\n if (/(\\s)*\\[.*\\]/.test(tempExternalMessage)) {\n tempExternalMessage = replaceReferencePatternWithElement(\n tempExternalMessage,\n REFERENCE_GOOGLE_PATTERN,\n true,\n orderGoogleSources\n );\n\n listMessageExternal.push(tempExternalMessage);\n\n tempExternalMessage = \"\";\n } else if (!tempExternalMessage) {\n listMessageExternal.push(messageGoogle);\n }\n\n break;\n }\n\n case \"related\": {\n isEndInternal = true;\n finalMessage.related =\n data?.choices?.[0]?.context?.followup_questions || [];\n\n break;\n }\n\n case \"google_extra_infor\":\n case \"statista_extra_infor\": {\n const sources = [],\n topShow = data?.choices[0].context.top_show;\n\n const citations = data?.choices[0].context?.citations || [];\n\n citations.forEach((item) => {\n if (!sources.find((s) => s.url === item.url)) {\n sources.push(item);\n }\n });\n\n finalMessage.external_message_id =\n data?.choices[0].context?.message_id;\n\n finalMessage.external_sources.push(\n ...sources.slice(0, topShow)\n );\n\n break;\n }\n\n case \"extra info\": {\n const sources = [],\n topShow = data?.choices[0].context.top_show;\n\n noAnswerIndicator =\n data?.choices[0].context?.no_answer_indicator || [];\n\n const citations = data?.choices[0].context?.citations || [];\n\n citations.forEach((item) => {\n if (!sources.find((s) => s.url === item.url)) {\n sources.push(item);\n }\n });\n\n finalMessage.sources = sources.slice(0, topShow);\n finalMessage.id = data?.choices[0].context?.message_id;\n\n finalMessage.contentLength =\n data?.choices[0].context?.contentLength;\n\n finalMessage.question_keywords =\n data?.choices[0].context.keywords || [];\n\n break;\n }\n\n default:\n break;\n }\n });\n }\n\n resolve();\n } catch (error) {\n console.log({ error });\n window.isCancel = true;\n\n document.removeEventListener(\n \"visibilitychange\",\n handleVisibilityChange\n );\n\n streamingDone();\n\n resolve();\n }\n }),\n // Handle typing writer behavior\n new Promise(async (resolve, reject) => {\n // Handle visibility change (user switches tabs)\n document.addEventListener(\"visibilitychange\", handleVisibilityChange);\n\n clearInterval(intervalTyping);\n\n intervalTyping = setInterval(() => {\n // Pausing rendering when user click into other tab\n // Until when handling the render text render after user active tab again\n if (pauseTiming) {\n return;\n }\n\n if (window.isCancel) {\n clearInterval(intervalTyping);\n\n streamingDone();\n\n resolve();\n\n return;\n }\n\n if (message_id) {\n if (currentExternalIndex < listMessageExternal.length) {\n callbackProcess({\n nextMessage: listMessageExternal[currentExternalIndex],\n externalType,\n ...(finalMessage.id\n ? {\n id: finalMessage?.id,\n }\n : {}),\n ...(finalMessage.external_message_id\n ? {\n external_message_id: finalMessage?.external_message_id,\n }\n : {}),\n });\n\n currentExternalIndex += 1;\n }\n\n if (isDone && currentExternalIndex >= listMessageExternal.length) {\n clearInterval(intervalTyping);\n\n console.log(\"External source: \", finalMessage.external_sources);\n\n streamingDone({\n ...finalMessage,\n ...(errorMessage ? { response: errorMessage } : {}),\n });\n\n document.removeEventListener(\n \"visibilitychange\",\n handleVisibilityChange\n );\n\n console.log(\n \"Text external from API: \\n\" + tempGoogleMessageFromAPI.join(\"\")\n );\n console.log(\"External: \\n\" + listMessageExternal.join(\"\"));\n\n resolve();\n }\n\n return;\n }\n\n // Internal message is always existed\n // Waiting until list message done\n if (!listMessage.length) {\n return;\n }\n\n // For internal response\n if (currentIndex < listMessage.length) {\n callbackProcess({\n nextMessage:\n typeof listMessage[currentIndex] === \"string\"\n ? listMessage[currentIndex]\n : \"\",\n ...(finalMessage.id\n ? {\n id: finalMessage?.id,\n }\n : {}),\n ...(finalMessage.external_message_id\n ? {\n external_message_id: finalMessage?.external_message_id,\n }\n : {}),\n });\n\n currentIndex += 1;\n }\n\n if (\n currentIndex >= listMessage.length &&\n !isDone &&\n isEndInternal &&\n !listMessageExternal.length &&\n userInput?.isIncludeExternal\n ) {\n callbackProcess({\n nextMessage:
,\n externalType,\n });\n }\n\n // For external response\n // Only render external response when event completed\n if (\n currentIndex >= listMessage.length &&\n isEndInternal &&\n currentExternalIndex < listMessageExternal.length\n ) {\n callbackProcess({\n nextMessage: listMessageExternal[currentExternalIndex],\n externalType,\n ...(finalMessage.id\n ? {\n id: finalMessage?.id,\n }\n : {}),\n ...(finalMessage.external_message_id\n ? {\n external_message_id: finalMessage?.external_message_id,\n }\n : {}),\n });\n\n currentExternalIndex += 1;\n }\n\n if (isDone) {\n if (\n currentIndex >= listMessage.length &&\n currentExternalIndex >= listMessageExternal.length\n ) {\n clearInterval(intervalTyping);\n\n // let sourceFromResponse = isReference ? finalMessage.sources : [];\n console.log(\"Source: \", finalMessage.sources);\n console.log(\"External source: \", finalMessage.external_sources);\n console.log(\"noAnswerIndicator: \", noAnswerIndicator);\n\n streamingDone({\n ...finalMessage,\n ...(errorMessage ? { response: errorMessage } : {}),\n });\n\n document.removeEventListener(\n \"visibilitychange\",\n handleVisibilityChange\n );\n\n console.log(\"Text from API: \\n\" + tempMessageFromAPI.join(\"\"));\n console.log(\"Internal: \\n\" + listMessage.join(\"\"));\n console.log(\n \"Text google from API: \\n\" + tempGoogleMessageFromAPI.join(\"\")\n );\n console.log(\"External: \\n\" + listMessageExternal.join(\"\"));\n\n resolve();\n }\n }\n }, 80);\n }),\n ]);\n } catch (error) {\n console.error(\"Error communicating with the API:\", error);\n callbackDone({});\n }\n};\n\nexport function ignoreSource(text, pattern = REFERENCE_PATTERN) {\n let newText = text;\n\n while (pattern.test(newText)) {\n newText = newText.replace(pattern, \"\");\n }\n\n return newText;\n}\n\nexport const formatDate = (dateString, options = {}) => {\n try {\n const date = new Date(dateString);\n\n const defaultOptions = {\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\",\n // hour: 'numeric',\n // minute: 'numeric',\n // second: 'numeric',\n // timeZoneName: 'short'\n };\n\n const formattedDate = new Intl.DateTimeFormat(\"en-UK\", {\n ...defaultOptions,\n ...options,\n }).format(date);\n return formattedDate;\n } catch (error) {\n return \"\";\n }\n};\n\nexport function replaceReferencePatternWithElement(\n tempMessage,\n pattern = REFERENCE_PATTERN,\n isExternal = false,\n refArrayOrder // This is reference into order sources\n) {\n let newText = tempMessage;\n\n while (newText.match(pattern)) {\n let sourceIndexHTML = [];\n const match = newText.match(pattern);\n\n if (match) {\n const sourceIndex =\n match?.[pattern === REFERENCE_STATISTA_PATTERN ? 1 : 2]\n ?.replace(\" \", \"\")\n ?.split(\",\")\n ?.map((idx) => +idx) || [];\n\n sourceIndex.forEach((idx) => {\n if (refArrayOrder && !refArrayOrder.includes(idx)) {\n refArrayOrder.push(idx);\n }\n\n const idxFromRef = refArrayOrder ? refArrayOrder.indexOf(idx) + 1 : idx;\n\n sourceIndexHTML.push(\n `${idxFromRef}`\n );\n });\n }\n\n newText = newText.replace(pattern, sourceIndexHTML.join(\"\"));\n }\n\n return typeof newText === \"string\" ? newText : \"\";\n}\n\nexport function reorderSource(message, pattern = REFERENCE_ELEMENT_PATTERN) {\n let isLoop = true,\n temptMessage = message,\n newOrder = message,\n textMatch = [];\n\n function replaceOrder() {\n if (textMatch.length > 1) {\n newOrder = newOrder.replace(\n textMatch.join(\"\"),\n textMatch\n .sort(\n (a, b) => +extractOnlyTextFromHTML(a) - +extractOnlyTextFromHTML(b)\n )\n .join(\"\")\n );\n }\n }\n\n while (isLoop) {\n if (pattern.test(temptMessage)) {\n const match = temptMessage.match(pattern);\n\n if ((match.index === 0 && textMatch.length) || textMatch.length === 0) {\n textMatch.push(match[0]);\n } else {\n if (textMatch.length > 1) {\n replaceOrder();\n }\n\n textMatch = [match[0]];\n }\n\n temptMessage = temptMessage.slice(match.index + match[0].length);\n } else {\n replaceOrder();\n\n isLoop = false;\n }\n }\n\n return newOrder;\n}\n\nexport const fetchMetaTitleFromUrl = async (url) => {\n try {\n const response = await fetch(url);\n const htmlText = await response.text();\n\n const parser = new DOMParser();\n const doc = parser.parseFromString(htmlText, \"text/html\");\n const title = doc.querySelector(\"title\")?.innerText;\n\n return title.indexOf(\"|\") >= 0\n ? title.slice(0, title.indexOf(\"|\")).trim()\n : title;\n } catch (error) {\n console.error(\"Error fetching title:\", error);\n }\n};\n\nexport const separateSources = (\n sources,\n message,\n refOrderSource,\n isExternal = false\n) => {\n if (!sources?.length) {\n return [];\n }\n\n // Replace reference by element\n const sourcesIndexShown = [];\n let tempMessage = message;\n\n const templatePattern = isExternal\n ? REFERENCE_EXTERNAL_ELEMENT_PATTERN\n : REFERENCE_ELEMENT_PATTERN;\n\n while (templatePattern.test(tempMessage)) {\n const match = tempMessage.match(templatePattern);\n\n const sourceIndexOrdered = +match?.[1];\n\n if (!sourcesIndexShown.includes(refOrderSource[sourceIndexOrdered - 1])) {\n sourcesIndexShown.push(refOrderSource[sourceIndexOrdered - 1]);\n }\n\n tempMessage = tempMessage.replace(templatePattern, \"\");\n }\n\n const newSources = [];\n\n sourcesIndexShown.forEach((idxShow, idxS) => {\n const source = sources.find((s, idx) => idx === idxShow - 1);\n\n if (source) {\n newSources.push({\n ...source,\n order: idxS + 1,\n });\n }\n });\n\n return newSources;\n};\n\nexport const extractOnlyTextFromHTML = (html) => {\n const parser = new DOMParser();\n const doc = parser.parseFromString(html, \"text/html\");\n return doc.body.textContent || \"\";\n};\n\nexport const revertReference = (text, type = \"internal\") => {\n let newText = text;\n\n const htmlPattern =\n type === \"internal\"\n ? REFERENCE_ELEMENT_PATTERN\n : REFERENCE_EXTERNAL_ELEMENT_PATTERN;\n\n while (htmlPattern.test(newText)) {\n const match = newText.match(htmlPattern);\n\n newText = newText.replace(match[0], `[${match[1]}]`);\n }\n\n console.log(newText);\n\n return newText;\n};\n","// Should be no imports here!\n\n/**\n * The sentinel value returned by producers to replace the draft with undefined.\n */\nexport const NOTHING: unique symbol = Symbol.for(\"immer-nothing\")\n\n/**\n * To let Immer treat your class instances as plain immutable objects\n * (albeit with a custom prototype), you must define either an instance property\n * or a static property on each of your custom classes.\n *\n * Otherwise, your class instance will never be drafted, which means it won't be\n * safe to mutate in a produce callback.\n */\nexport const DRAFTABLE: unique symbol = Symbol.for(\"immer-draftable\")\n\nexport const DRAFT_STATE: unique symbol = Symbol.for(\"immer-state\")\n","export const errors =\n\tprocess.env.NODE_ENV !== \"production\"\n\t\t? [\n\t\t\t\t// All error codes, starting by 0:\n\t\t\t\tfunction(plugin: string) {\n\t\t\t\t\treturn `The plugin for '${plugin}' has not been loaded into Immer. To enable the plugin, import and call \\`enable${plugin}()\\` when initializing your application.`\n\t\t\t\t},\n\t\t\t\tfunction(thing: string) {\n\t\t\t\t\treturn `produce can only be called on things that are draftable: plain objects, arrays, Map, Set or classes that are marked with '[immerable]: true'. Got '${thing}'`\n\t\t\t\t},\n\t\t\t\t\"This object has been frozen and should not be mutated\",\n\t\t\t\tfunction(data: any) {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t\"Cannot use a proxy that has been revoked. Did you pass an object from inside an immer function to an async process? \" +\n\t\t\t\t\t\tdata\n\t\t\t\t\t)\n\t\t\t\t},\n\t\t\t\t\"An immer producer returned a new value *and* modified its draft. Either return a new value *or* modify the draft.\",\n\t\t\t\t\"Immer forbids circular references\",\n\t\t\t\t\"The first or second argument to `produce` must be a function\",\n\t\t\t\t\"The third argument to `produce` must be a function or undefined\",\n\t\t\t\t\"First argument to `createDraft` must be a plain object, an array, or an immerable object\",\n\t\t\t\t\"First argument to `finishDraft` must be a draft returned by `createDraft`\",\n\t\t\t\tfunction(thing: string) {\n\t\t\t\t\treturn `'current' expects a draft, got: ${thing}`\n\t\t\t\t},\n\t\t\t\t\"Object.defineProperty() cannot be used on an Immer draft\",\n\t\t\t\t\"Object.setPrototypeOf() cannot be used on an Immer draft\",\n\t\t\t\t\"Immer only supports deleting array indices\",\n\t\t\t\t\"Immer only supports setting array indices and the 'length' property\",\n\t\t\t\tfunction(thing: string) {\n\t\t\t\t\treturn `'original' expects a draft, got: ${thing}`\n\t\t\t\t}\n\t\t\t\t// Note: if more errors are added, the errorOffset in Patches.ts should be increased\n\t\t\t\t// See Patches.ts for additional errors\n\t\t ]\n\t\t: []\n\nexport function die(error: number, ...args: any[]): never {\n\tif (process.env.NODE_ENV !== \"production\") {\n\t\tconst e = errors[error]\n\t\tconst msg = typeof e === \"function\" ? e.apply(null, args as any) : e\n\t\tthrow new Error(`[Immer] ${msg}`)\n\t}\n\tthrow new Error(\n\t\t`[Immer] minified error nr: ${error}. Full error at: https://bit.ly/3cXEKWf`\n\t)\n}\n","import {\n\tDRAFT_STATE,\n\tDRAFTABLE,\n\tObjectish,\n\tDrafted,\n\tAnyObject,\n\tAnyMap,\n\tAnySet,\n\tImmerState,\n\tArchType,\n\tdie\n} from \"../internal\"\n\nexport const getPrototypeOf = Object.getPrototypeOf\n\n/** Returns true if the given value is an Immer draft */\n/*#__PURE__*/\nexport function isDraft(value: any): boolean {\n\treturn !!value && !!value[DRAFT_STATE]\n}\n\n/** Returns true if the given value can be drafted by Immer */\n/*#__PURE__*/\nexport function isDraftable(value: any): boolean {\n\tif (!value) return false\n\treturn (\n\t\tisPlainObject(value) ||\n\t\tArray.isArray(value) ||\n\t\t!!value[DRAFTABLE] ||\n\t\t!!value.constructor?.[DRAFTABLE] ||\n\t\tisMap(value) ||\n\t\tisSet(value)\n\t)\n}\n\nconst objectCtorString = Object.prototype.constructor.toString()\n/*#__PURE__*/\nexport function isPlainObject(value: any): boolean {\n\tif (!value || typeof value !== \"object\") return false\n\tconst proto = getPrototypeOf(value)\n\tif (proto === null) {\n\t\treturn true\n\t}\n\tconst Ctor =\n\t\tObject.hasOwnProperty.call(proto, \"constructor\") && proto.constructor\n\n\tif (Ctor === Object) return true\n\n\treturn (\n\t\ttypeof Ctor == \"function\" &&\n\t\tFunction.toString.call(Ctor) === objectCtorString\n\t)\n}\n\n/** Get the underlying object that is represented by the given draft */\n/*#__PURE__*/\nexport function original(value: T): T | undefined\nexport function original(value: Drafted): any {\n\tif (!isDraft(value)) die(15, value)\n\treturn value[DRAFT_STATE].base_\n}\n\nexport function each(\n\tobj: T,\n\titer: (key: string | number, value: any, source: T) => void,\n\tenumerableOnly?: boolean\n): void\nexport function each(obj: any, iter: any) {\n\tif (getArchtype(obj) === ArchType.Object) {\n\t\tObject.entries(obj).forEach(([key, value]) => {\n\t\t\titer(key, value, obj)\n\t\t})\n\t} else {\n\t\tobj.forEach((entry: any, index: any) => iter(index, entry, obj))\n\t}\n}\n\n/*#__PURE__*/\nexport function getArchtype(thing: any): ArchType {\n\tconst state: undefined | ImmerState = thing[DRAFT_STATE]\n\treturn state\n\t\t? state.type_\n\t\t: Array.isArray(thing)\n\t\t? ArchType.Array\n\t\t: isMap(thing)\n\t\t? ArchType.Map\n\t\t: isSet(thing)\n\t\t? ArchType.Set\n\t\t: ArchType.Object\n}\n\n/*#__PURE__*/\nexport function has(thing: any, prop: PropertyKey): boolean {\n\treturn getArchtype(thing) === ArchType.Map\n\t\t? thing.has(prop)\n\t\t: Object.prototype.hasOwnProperty.call(thing, prop)\n}\n\n/*#__PURE__*/\nexport function get(thing: AnyMap | AnyObject, prop: PropertyKey): any {\n\t// @ts-ignore\n\treturn getArchtype(thing) === ArchType.Map ? thing.get(prop) : thing[prop]\n}\n\n/*#__PURE__*/\nexport function set(thing: any, propOrOldValue: PropertyKey, value: any) {\n\tconst t = getArchtype(thing)\n\tif (t === ArchType.Map) thing.set(propOrOldValue, value)\n\telse if (t === ArchType.Set) {\n\t\tthing.add(value)\n\t} else thing[propOrOldValue] = value\n}\n\n/*#__PURE__*/\nexport function is(x: any, y: any): boolean {\n\t// From: https://github.com/facebook/fbjs/blob/c69904a511b900266935168223063dd8772dfc40/packages/fbjs/src/core/shallowEqual.js\n\tif (x === y) {\n\t\treturn x !== 0 || 1 / x === 1 / y\n\t} else {\n\t\treturn x !== x && y !== y\n\t}\n}\n\n/*#__PURE__*/\nexport function isMap(target: any): target is AnyMap {\n\treturn target instanceof Map\n}\n\n/*#__PURE__*/\nexport function isSet(target: any): target is AnySet {\n\treturn target instanceof Set\n}\n/*#__PURE__*/\nexport function latest(state: ImmerState): any {\n\treturn state.copy_ || state.base_\n}\n\n/*#__PURE__*/\nexport function shallowCopy(base: any, strict: boolean) {\n\tif (isMap(base)) {\n\t\treturn new Map(base)\n\t}\n\tif (isSet(base)) {\n\t\treturn new Set(base)\n\t}\n\tif (Array.isArray(base)) return Array.prototype.slice.call(base)\n\n\tif (!strict && isPlainObject(base)) {\n\t\tif (!getPrototypeOf(base)) {\n\t\t\tconst obj = Object.create(null)\n\t\t\treturn Object.assign(obj, base)\n\t\t}\n\t\treturn {...base}\n\t}\n\n\tconst descriptors = Object.getOwnPropertyDescriptors(base)\n\tdelete descriptors[DRAFT_STATE as any]\n\tlet keys = Reflect.ownKeys(descriptors)\n\tfor (let i = 0; i < keys.length; i++) {\n\t\tconst key: any = keys[i]\n\t\tconst desc = descriptors[key]\n\t\tif (desc.writable === false) {\n\t\t\tdesc.writable = true\n\t\t\tdesc.configurable = true\n\t\t}\n\t\t// like object.assign, we will read any _own_, get/set accessors. This helps in dealing\n\t\t// with libraries that trap values, like mobx or vue\n\t\t// unlike object.assign, non-enumerables will be copied as well\n\t\tif (desc.get || desc.set)\n\t\t\tdescriptors[key] = {\n\t\t\t\tconfigurable: true,\n\t\t\t\twritable: true, // could live with !!desc.set as well here...\n\t\t\t\tenumerable: desc.enumerable,\n\t\t\t\tvalue: base[key]\n\t\t\t}\n\t}\n\treturn Object.create(getPrototypeOf(base), descriptors)\n}\n\n/**\n * Freezes draftable objects. Returns the original object.\n * By default freezes shallowly, but if the second argument is `true` it will freeze recursively.\n *\n * @param obj\n * @param deep\n */\nexport function freeze(obj: T, deep?: boolean): T\nexport function freeze(obj: any, deep: boolean = false): T {\n\tif (isFrozen(obj) || isDraft(obj) || !isDraftable(obj)) return obj\n\tif (getArchtype(obj) > 1 /* Map or Set */) {\n\t\tobj.set = obj.add = obj.clear = obj.delete = dontMutateFrozenCollections as any\n\t}\n\tObject.freeze(obj)\n\tif (deep) each(obj, (_key, value) => freeze(value, true), true)\n\treturn obj\n}\n\nfunction dontMutateFrozenCollections() {\n\tdie(2)\n}\n\nexport function isFrozen(obj: any): boolean {\n\treturn Object.isFrozen(obj)\n}\n","import {\n\tImmerState,\n\tPatch,\n\tDrafted,\n\tImmerBaseState,\n\tAnyMap,\n\tAnySet,\n\tArchType,\n\tdie\n} from \"../internal\"\n\n/** Plugin utilities */\nconst plugins: {\n\tPatches?: {\n\t\tgeneratePatches_(\n\t\t\tstate: ImmerState,\n\t\t\tbasePath: PatchPath,\n\t\t\tpatches: Patch[],\n\t\t\tinversePatches: Patch[]\n\t\t): void\n\t\tgenerateReplacementPatches_(\n\t\t\tbase: any,\n\t\t\treplacement: any,\n\t\t\tpatches: Patch[],\n\t\t\tinversePatches: Patch[]\n\t\t): void\n\t\tapplyPatches_(draft: T, patches: Patch[]): T\n\t}\n\tMapSet?: {\n\t\tproxyMap_(target: T, parent?: ImmerState): T\n\t\tproxySet_(target: T, parent?: ImmerState): T\n\t}\n} = {}\n\ntype Plugins = typeof plugins\n\nexport function getPlugin(\n\tpluginKey: K\n): Exclude {\n\tconst plugin = plugins[pluginKey]\n\tif (!plugin) {\n\t\tdie(0, pluginKey)\n\t}\n\t// @ts-ignore\n\treturn plugin\n}\n\nexport function loadPlugin(\n\tpluginKey: K,\n\timplementation: Plugins[K]\n): void {\n\tif (!plugins[pluginKey]) plugins[pluginKey] = implementation\n}\n/** Map / Set plugin */\n\nexport interface MapState extends ImmerBaseState {\n\ttype_: ArchType.Map\n\tcopy_: AnyMap | undefined\n\tassigned_: Map | undefined\n\tbase_: AnyMap\n\trevoked_: boolean\n\tdraft_: Drafted\n}\n\nexport interface SetState extends ImmerBaseState {\n\ttype_: ArchType.Set\n\tcopy_: AnySet | undefined\n\tbase_: AnySet\n\tdrafts_: Map // maps the original value to the draft value in the new set\n\trevoked_: boolean\n\tdraft_: Drafted\n}\n\n/** Patches plugin */\n\nexport type PatchPath = (string | number)[]\n","import {\n\tPatch,\n\tPatchListener,\n\tDrafted,\n\tImmer,\n\tDRAFT_STATE,\n\tImmerState,\n\tArchType,\n\tgetPlugin\n} from \"../internal\"\n\n/** Each scope represents a `produce` call. */\n\nexport interface ImmerScope {\n\tpatches_?: Patch[]\n\tinversePatches_?: Patch[]\n\tcanAutoFreeze_: boolean\n\tdrafts_: any[]\n\tparent_?: ImmerScope\n\tpatchListener_?: PatchListener\n\timmer_: Immer\n\tunfinalizedDrafts_: number\n}\n\nlet currentScope: ImmerScope | undefined\n\nexport function getCurrentScope() {\n\treturn currentScope!\n}\n\nfunction createScope(\n\tparent_: ImmerScope | undefined,\n\timmer_: Immer\n): ImmerScope {\n\treturn {\n\t\tdrafts_: [],\n\t\tparent_,\n\t\timmer_,\n\t\t// Whenever the modified draft contains a draft from another scope, we\n\t\t// need to prevent auto-freezing so the unowned draft can be finalized.\n\t\tcanAutoFreeze_: true,\n\t\tunfinalizedDrafts_: 0\n\t}\n}\n\nexport function usePatchesInScope(\n\tscope: ImmerScope,\n\tpatchListener?: PatchListener\n) {\n\tif (patchListener) {\n\t\tgetPlugin(\"Patches\") // assert we have the plugin\n\t\tscope.patches_ = []\n\t\tscope.inversePatches_ = []\n\t\tscope.patchListener_ = patchListener\n\t}\n}\n\nexport function revokeScope(scope: ImmerScope) {\n\tleaveScope(scope)\n\tscope.drafts_.forEach(revokeDraft)\n\t// @ts-ignore\n\tscope.drafts_ = null\n}\n\nexport function leaveScope(scope: ImmerScope) {\n\tif (scope === currentScope) {\n\t\tcurrentScope = scope.parent_\n\t}\n}\n\nexport function enterScope(immer: Immer) {\n\treturn (currentScope = createScope(currentScope, immer))\n}\n\nfunction revokeDraft(draft: Drafted) {\n\tconst state: ImmerState = draft[DRAFT_STATE]\n\tif (state.type_ === ArchType.Object || state.type_ === ArchType.Array)\n\t\tstate.revoke_()\n\telse state.revoked_ = true\n}\n","import {\n\tImmerScope,\n\tDRAFT_STATE,\n\tisDraftable,\n\tNOTHING,\n\tPatchPath,\n\teach,\n\thas,\n\tfreeze,\n\tImmerState,\n\tisDraft,\n\tSetState,\n\tset,\n\tArchType,\n\tgetPlugin,\n\tdie,\n\trevokeScope,\n\tisFrozen\n} from \"../internal\"\n\nexport function processResult(result: any, scope: ImmerScope) {\n\tscope.unfinalizedDrafts_ = scope.drafts_.length\n\tconst baseDraft = scope.drafts_![0]\n\tconst isReplaced = result !== undefined && result !== baseDraft\n\tif (isReplaced) {\n\t\tif (baseDraft[DRAFT_STATE].modified_) {\n\t\t\trevokeScope(scope)\n\t\t\tdie(4)\n\t\t}\n\t\tif (isDraftable(result)) {\n\t\t\t// Finalize the result in case it contains (or is) a subset of the draft.\n\t\t\tresult = finalize(scope, result)\n\t\t\tif (!scope.parent_) maybeFreeze(scope, result)\n\t\t}\n\t\tif (scope.patches_) {\n\t\t\tgetPlugin(\"Patches\").generateReplacementPatches_(\n\t\t\t\tbaseDraft[DRAFT_STATE].base_,\n\t\t\t\tresult,\n\t\t\t\tscope.patches_,\n\t\t\t\tscope.inversePatches_!\n\t\t\t)\n\t\t}\n\t} else {\n\t\t// Finalize the base draft.\n\t\tresult = finalize(scope, baseDraft, [])\n\t}\n\trevokeScope(scope)\n\tif (scope.patches_) {\n\t\tscope.patchListener_!(scope.patches_, scope.inversePatches_!)\n\t}\n\treturn result !== NOTHING ? result : undefined\n}\n\nfunction finalize(rootScope: ImmerScope, value: any, path?: PatchPath) {\n\t// Don't recurse in tho recursive data structures\n\tif (isFrozen(value)) return value\n\n\tconst state: ImmerState = value[DRAFT_STATE]\n\t// A plain object, might need freezing, might contain drafts\n\tif (!state) {\n\t\teach(\n\t\t\tvalue,\n\t\t\t(key, childValue) =>\n\t\t\t\tfinalizeProperty(rootScope, state, value, key, childValue, path),\n\t\t\ttrue // See #590, don't recurse into non-enumerable of non drafted objects\n\t\t)\n\t\treturn value\n\t}\n\t// Never finalize drafts owned by another scope.\n\tif (state.scope_ !== rootScope) return value\n\t// Unmodified draft, return the (frozen) original\n\tif (!state.modified_) {\n\t\tmaybeFreeze(rootScope, state.base_, true)\n\t\treturn state.base_\n\t}\n\t// Not finalized yet, let's do that now\n\tif (!state.finalized_) {\n\t\tstate.finalized_ = true\n\t\tstate.scope_.unfinalizedDrafts_--\n\t\tconst result = state.copy_\n\t\t// Finalize all children of the copy\n\t\t// For sets we clone before iterating, otherwise we can get in endless loop due to modifying during iteration, see #628\n\t\t// To preserve insertion order in all cases we then clear the set\n\t\t// And we let finalizeProperty know it needs to re-add non-draft children back to the target\n\t\tlet resultEach = result\n\t\tlet isSet = false\n\t\tif (state.type_ === ArchType.Set) {\n\t\t\tresultEach = new Set(result)\n\t\t\tresult.clear()\n\t\t\tisSet = true\n\t\t}\n\t\teach(resultEach, (key, childValue) =>\n\t\t\tfinalizeProperty(rootScope, state, result, key, childValue, path, isSet)\n\t\t)\n\t\t// everything inside is frozen, we can freeze here\n\t\tmaybeFreeze(rootScope, result, false)\n\t\t// first time finalizing, let's create those patches\n\t\tif (path && rootScope.patches_) {\n\t\t\tgetPlugin(\"Patches\").generatePatches_(\n\t\t\t\tstate,\n\t\t\t\tpath,\n\t\t\t\trootScope.patches_,\n\t\t\t\trootScope.inversePatches_!\n\t\t\t)\n\t\t}\n\t}\n\treturn state.copy_\n}\n\nfunction finalizeProperty(\n\trootScope: ImmerScope,\n\tparentState: undefined | ImmerState,\n\ttargetObject: any,\n\tprop: string | number,\n\tchildValue: any,\n\trootPath?: PatchPath,\n\ttargetIsSet?: boolean\n) {\n\tif (process.env.NODE_ENV !== \"production\" && childValue === targetObject)\n\t\tdie(5)\n\tif (isDraft(childValue)) {\n\t\tconst path =\n\t\t\trootPath &&\n\t\t\tparentState &&\n\t\t\tparentState!.type_ !== ArchType.Set && // Set objects are atomic since they have no keys.\n\t\t\t!has((parentState as Exclude).assigned_!, prop) // Skip deep patches for assigned keys.\n\t\t\t\t? rootPath!.concat(prop)\n\t\t\t\t: undefined\n\t\t// Drafts owned by `scope` are finalized here.\n\t\tconst res = finalize(rootScope, childValue, path)\n\t\tset(targetObject, prop, res)\n\t\t// Drafts from another scope must prevented to be frozen\n\t\t// if we got a draft back from finalize, we're in a nested produce and shouldn't freeze\n\t\tif (isDraft(res)) {\n\t\t\trootScope.canAutoFreeze_ = false\n\t\t} else return\n\t} else if (targetIsSet) {\n\t\ttargetObject.add(childValue)\n\t}\n\t// Search new objects for unfinalized drafts. Frozen objects should never contain drafts.\n\tif (isDraftable(childValue) && !isFrozen(childValue)) {\n\t\tif (!rootScope.immer_.autoFreeze_ && rootScope.unfinalizedDrafts_ < 1) {\n\t\t\t// optimization: if an object is not a draft, and we don't have to\n\t\t\t// deepfreeze everything, and we are sure that no drafts are left in the remaining object\n\t\t\t// cause we saw and finalized all drafts already; we can stop visiting the rest of the tree.\n\t\t\t// This benefits especially adding large data tree's without further processing.\n\t\t\t// See add-data.js perf test\n\t\t\treturn\n\t\t}\n\t\tfinalize(rootScope, childValue)\n\t\t// immer deep freezes plain objects, so if there is no parent state, we freeze as well\n\t\tif (!parentState || !parentState.scope_.parent_)\n\t\t\tmaybeFreeze(rootScope, childValue)\n\t}\n}\n\nfunction maybeFreeze(scope: ImmerScope, value: any, deep = false) {\n\t// we never freeze for a non-root scope; as it would prevent pruning for drafts inside wrapping objects\n\tif (!scope.parent_ && scope.immer_.autoFreeze_ && scope.canAutoFreeze_) {\n\t\tfreeze(value, deep)\n\t}\n}\n","import {\n\teach,\n\thas,\n\tis,\n\tisDraftable,\n\tshallowCopy,\n\tlatest,\n\tImmerBaseState,\n\tImmerState,\n\tDrafted,\n\tAnyObject,\n\tAnyArray,\n\tObjectish,\n\tgetCurrentScope,\n\tgetPrototypeOf,\n\tDRAFT_STATE,\n\tdie,\n\tcreateProxy,\n\tArchType,\n\tImmerScope\n} from \"../internal\"\n\ninterface ProxyBaseState extends ImmerBaseState {\n\tassigned_: {\n\t\t[property: string]: boolean\n\t}\n\tparent_?: ImmerState\n\trevoke_(): void\n}\n\nexport interface ProxyObjectState extends ProxyBaseState {\n\ttype_: ArchType.Object\n\tbase_: any\n\tcopy_: any\n\tdraft_: Drafted\n}\n\nexport interface ProxyArrayState extends ProxyBaseState {\n\ttype_: ArchType.Array\n\tbase_: AnyArray\n\tcopy_: AnyArray | null\n\tdraft_: Drafted\n}\n\ntype ProxyState = ProxyObjectState | ProxyArrayState\n\n/**\n * Returns a new draft of the `base` object.\n *\n * The second argument is the parent draft-state (used internally).\n */\nexport function createProxyProxy(\n\tbase: T,\n\tparent?: ImmerState\n): Drafted {\n\tconst isArray = Array.isArray(base)\n\tconst state: ProxyState = {\n\t\ttype_: isArray ? ArchType.Array : (ArchType.Object as any),\n\t\t// Track which produce call this is associated with.\n\t\tscope_: parent ? parent.scope_ : getCurrentScope()!,\n\t\t// True for both shallow and deep changes.\n\t\tmodified_: false,\n\t\t// Used during finalization.\n\t\tfinalized_: false,\n\t\t// Track which properties have been assigned (true) or deleted (false).\n\t\tassigned_: {},\n\t\t// The parent draft state.\n\t\tparent_: parent,\n\t\t// The base state.\n\t\tbase_: base,\n\t\t// The base proxy.\n\t\tdraft_: null as any, // set below\n\t\t// The base copy with any updated values.\n\t\tcopy_: null,\n\t\t// Called by the `produce` function.\n\t\trevoke_: null as any,\n\t\tisManual_: false\n\t}\n\n\t// the traps must target something, a bit like the 'real' base.\n\t// but also, we need to be able to determine from the target what the relevant state is\n\t// (to avoid creating traps per instance to capture the state in closure,\n\t// and to avoid creating weird hidden properties as well)\n\t// So the trick is to use 'state' as the actual 'target'! (and make sure we intercept everything)\n\t// Note that in the case of an array, we put the state in an array to have better Reflect defaults ootb\n\tlet target: T = state as any\n\tlet traps: ProxyHandler> = objectTraps\n\tif (isArray) {\n\t\ttarget = [state] as any\n\t\ttraps = arrayTraps\n\t}\n\n\tconst {revoke, proxy} = Proxy.revocable(target, traps)\n\tstate.draft_ = proxy as any\n\tstate.revoke_ = revoke\n\treturn proxy as any\n}\n\n/**\n * Object drafts\n */\nexport const objectTraps: ProxyHandler = {\n\tget(state, prop) {\n\t\tif (prop === DRAFT_STATE) return state\n\n\t\tconst source = latest(state)\n\t\tif (!has(source, prop)) {\n\t\t\t// non-existing or non-own property...\n\t\t\treturn readPropFromProto(state, source, prop)\n\t\t}\n\t\tconst value = source[prop]\n\t\tif (state.finalized_ || !isDraftable(value)) {\n\t\t\treturn value\n\t\t}\n\t\t// Check for existing draft in modified state.\n\t\t// Assigned values are never drafted. This catches any drafts we created, too.\n\t\tif (value === peek(state.base_, prop)) {\n\t\t\tprepareCopy(state)\n\t\t\treturn (state.copy_![prop as any] = createProxy(value, state))\n\t\t}\n\t\treturn value\n\t},\n\thas(state, prop) {\n\t\treturn prop in latest(state)\n\t},\n\townKeys(state) {\n\t\treturn Reflect.ownKeys(latest(state))\n\t},\n\tset(\n\t\tstate: ProxyObjectState,\n\t\tprop: string /* strictly not, but helps TS */,\n\t\tvalue\n\t) {\n\t\tconst desc = getDescriptorFromProto(latest(state), prop)\n\t\tif (desc?.set) {\n\t\t\t// special case: if this write is captured by a setter, we have\n\t\t\t// to trigger it with the correct context\n\t\t\tdesc.set.call(state.draft_, value)\n\t\t\treturn true\n\t\t}\n\t\tif (!state.modified_) {\n\t\t\t// the last check is because we need to be able to distinguish setting a non-existing to undefined (which is a change)\n\t\t\t// from setting an existing property with value undefined to undefined (which is not a change)\n\t\t\tconst current = peek(latest(state), prop)\n\t\t\t// special case, if we assigning the original value to a draft, we can ignore the assignment\n\t\t\tconst currentState: ProxyObjectState = current?.[DRAFT_STATE]\n\t\t\tif (currentState && currentState.base_ === value) {\n\t\t\t\tstate.copy_![prop] = value\n\t\t\t\tstate.assigned_[prop] = false\n\t\t\t\treturn true\n\t\t\t}\n\t\t\tif (is(value, current) && (value !== undefined || has(state.base_, prop)))\n\t\t\t\treturn true\n\t\t\tprepareCopy(state)\n\t\t\tmarkChanged(state)\n\t\t}\n\n\t\tif (\n\t\t\t(state.copy_![prop] === value &&\n\t\t\t\t// special case: handle new props with value 'undefined'\n\t\t\t\t(value !== undefined || prop in state.copy_)) ||\n\t\t\t// special case: NaN\n\t\t\t(Number.isNaN(value) && Number.isNaN(state.copy_![prop]))\n\t\t)\n\t\t\treturn true\n\n\t\t// @ts-ignore\n\t\tstate.copy_![prop] = value\n\t\tstate.assigned_[prop] = true\n\t\treturn true\n\t},\n\tdeleteProperty(state, prop: string) {\n\t\t// The `undefined` check is a fast path for pre-existing keys.\n\t\tif (peek(state.base_, prop) !== undefined || prop in state.base_) {\n\t\t\tstate.assigned_[prop] = false\n\t\t\tprepareCopy(state)\n\t\t\tmarkChanged(state)\n\t\t} else {\n\t\t\t// if an originally not assigned property was deleted\n\t\t\tdelete state.assigned_[prop]\n\t\t}\n\t\tif (state.copy_) {\n\t\t\tdelete state.copy_[prop]\n\t\t}\n\t\treturn true\n\t},\n\t// Note: We never coerce `desc.value` into an Immer draft, because we can't make\n\t// the same guarantee in ES5 mode.\n\tgetOwnPropertyDescriptor(state, prop) {\n\t\tconst owner = latest(state)\n\t\tconst desc = Reflect.getOwnPropertyDescriptor(owner, prop)\n\t\tif (!desc) return desc\n\t\treturn {\n\t\t\twritable: true,\n\t\t\tconfigurable: state.type_ !== ArchType.Array || prop !== \"length\",\n\t\t\tenumerable: desc.enumerable,\n\t\t\tvalue: owner[prop]\n\t\t}\n\t},\n\tdefineProperty() {\n\t\tdie(11)\n\t},\n\tgetPrototypeOf(state) {\n\t\treturn getPrototypeOf(state.base_)\n\t},\n\tsetPrototypeOf() {\n\t\tdie(12)\n\t}\n}\n\n/**\n * Array drafts\n */\n\nconst arrayTraps: ProxyHandler<[ProxyArrayState]> = {}\neach(objectTraps, (key, fn) => {\n\t// @ts-ignore\n\tarrayTraps[key] = function() {\n\t\targuments[0] = arguments[0][0]\n\t\treturn fn.apply(this, arguments)\n\t}\n})\narrayTraps.deleteProperty = function(state, prop) {\n\tif (process.env.NODE_ENV !== \"production\" && isNaN(parseInt(prop as any)))\n\t\tdie(13)\n\t// @ts-ignore\n\treturn arrayTraps.set!.call(this, state, prop, undefined)\n}\narrayTraps.set = function(state, prop, value) {\n\tif (\n\t\tprocess.env.NODE_ENV !== \"production\" &&\n\t\tprop !== \"length\" &&\n\t\tisNaN(parseInt(prop as any))\n\t)\n\t\tdie(14)\n\treturn objectTraps.set!.call(this, state[0], prop, value, state[0])\n}\n\n// Access a property without creating an Immer draft.\nfunction peek(draft: Drafted, prop: PropertyKey) {\n\tconst state = draft[DRAFT_STATE]\n\tconst source = state ? latest(state) : draft\n\treturn source[prop]\n}\n\nfunction readPropFromProto(state: ImmerState, source: any, prop: PropertyKey) {\n\tconst desc = getDescriptorFromProto(source, prop)\n\treturn desc\n\t\t? `value` in desc\n\t\t\t? desc.value\n\t\t\t: // This is a very special case, if the prop is a getter defined by the\n\t\t\t // prototype, we should invoke it with the draft as context!\n\t\t\t desc.get?.call(state.draft_)\n\t\t: undefined\n}\n\nfunction getDescriptorFromProto(\n\tsource: any,\n\tprop: PropertyKey\n): PropertyDescriptor | undefined {\n\t// 'in' checks proto!\n\tif (!(prop in source)) return undefined\n\tlet proto = getPrototypeOf(source)\n\twhile (proto) {\n\t\tconst desc = Object.getOwnPropertyDescriptor(proto, prop)\n\t\tif (desc) return desc\n\t\tproto = getPrototypeOf(proto)\n\t}\n\treturn undefined\n}\n\nexport function markChanged(state: ImmerState) {\n\tif (!state.modified_) {\n\t\tstate.modified_ = true\n\t\tif (state.parent_) {\n\t\t\tmarkChanged(state.parent_)\n\t\t}\n\t}\n}\n\nexport function prepareCopy(state: {\n\tbase_: any\n\tcopy_: any\n\tscope_: ImmerScope\n}) {\n\tif (!state.copy_) {\n\t\tstate.copy_ = shallowCopy(\n\t\t\tstate.base_,\n\t\t\tstate.scope_.immer_.useStrictShallowCopy_\n\t\t)\n\t}\n}\n","import {\n\tIProduceWithPatches,\n\tIProduce,\n\tImmerState,\n\tDrafted,\n\tisDraftable,\n\tprocessResult,\n\tPatch,\n\tObjectish,\n\tDRAFT_STATE,\n\tDraft,\n\tPatchListener,\n\tisDraft,\n\tisMap,\n\tisSet,\n\tcreateProxyProxy,\n\tgetPlugin,\n\tdie,\n\tenterScope,\n\trevokeScope,\n\tleaveScope,\n\tusePatchesInScope,\n\tgetCurrentScope,\n\tNOTHING,\n\tfreeze,\n\tcurrent\n} from \"../internal\"\n\ninterface ProducersFns {\n\tproduce: IProduce\n\tproduceWithPatches: IProduceWithPatches\n}\n\nexport class Immer implements ProducersFns {\n\tautoFreeze_: boolean = true\n\tuseStrictShallowCopy_: boolean = false\n\n\tconstructor(config?: {autoFreeze?: boolean; useStrictShallowCopy?: boolean}) {\n\t\tif (typeof config?.autoFreeze === \"boolean\")\n\t\t\tthis.setAutoFreeze(config!.autoFreeze)\n\t\tif (typeof config?.useStrictShallowCopy === \"boolean\")\n\t\t\tthis.setUseStrictShallowCopy(config!.useStrictShallowCopy)\n\t}\n\n\t/**\n\t * The `produce` function takes a value and a \"recipe function\" (whose\n\t * return value often depends on the base state). The recipe function is\n\t * free to mutate its first argument however it wants. All mutations are\n\t * only ever applied to a __copy__ of the base state.\n\t *\n\t * Pass only a function to create a \"curried producer\" which relieves you\n\t * from passing the recipe function every time.\n\t *\n\t * Only plain objects and arrays are made mutable. All other objects are\n\t * considered uncopyable.\n\t *\n\t * Note: This function is __bound__ to its `Immer` instance.\n\t *\n\t * @param {any} base - the initial state\n\t * @param {Function} recipe - function that receives a proxy of the base state as first argument and which can be freely modified\n\t * @param {Function} patchListener - optional function that will be called with all the patches produced here\n\t * @returns {any} a new state, or the initial state if nothing was modified\n\t */\n\tproduce: IProduce = (base: any, recipe?: any, patchListener?: any) => {\n\t\t// curried invocation\n\t\tif (typeof base === \"function\" && typeof recipe !== \"function\") {\n\t\t\tconst defaultBase = recipe\n\t\t\trecipe = base\n\n\t\t\tconst self = this\n\t\t\treturn function curriedProduce(\n\t\t\t\tthis: any,\n\t\t\t\tbase = defaultBase,\n\t\t\t\t...args: any[]\n\t\t\t) {\n\t\t\t\treturn self.produce(base, (draft: Drafted) => recipe.call(this, draft, ...args)) // prettier-ignore\n\t\t\t}\n\t\t}\n\n\t\tif (typeof recipe !== \"function\") die(6)\n\t\tif (patchListener !== undefined && typeof patchListener !== \"function\")\n\t\t\tdie(7)\n\n\t\tlet result\n\n\t\t// Only plain objects, arrays, and \"immerable classes\" are drafted.\n\t\tif (isDraftable(base)) {\n\t\t\tconst scope = enterScope(this)\n\t\t\tconst proxy = createProxy(base, undefined)\n\t\t\tlet hasError = true\n\t\t\ttry {\n\t\t\t\tresult = recipe(proxy)\n\t\t\t\thasError = false\n\t\t\t} finally {\n\t\t\t\t// finally instead of catch + rethrow better preserves original stack\n\t\t\t\tif (hasError) revokeScope(scope)\n\t\t\t\telse leaveScope(scope)\n\t\t\t}\n\t\t\tusePatchesInScope(scope, patchListener)\n\t\t\treturn processResult(result, scope)\n\t\t} else if (!base || typeof base !== \"object\") {\n\t\t\tresult = recipe(base)\n\t\t\tif (result === undefined) result = base\n\t\t\tif (result === NOTHING) result = undefined\n\t\t\tif (this.autoFreeze_) freeze(result, true)\n\t\t\tif (patchListener) {\n\t\t\t\tconst p: Patch[] = []\n\t\t\t\tconst ip: Patch[] = []\n\t\t\t\tgetPlugin(\"Patches\").generateReplacementPatches_(base, result, p, ip)\n\t\t\t\tpatchListener(p, ip)\n\t\t\t}\n\t\t\treturn result\n\t\t} else die(1, base)\n\t}\n\n\tproduceWithPatches: IProduceWithPatches = (base: any, recipe?: any): any => {\n\t\t// curried invocation\n\t\tif (typeof base === \"function\") {\n\t\t\treturn (state: any, ...args: any[]) =>\n\t\t\t\tthis.produceWithPatches(state, (draft: any) => base(draft, ...args))\n\t\t}\n\n\t\tlet patches: Patch[], inversePatches: Patch[]\n\t\tconst result = this.produce(base, recipe, (p: Patch[], ip: Patch[]) => {\n\t\t\tpatches = p\n\t\t\tinversePatches = ip\n\t\t})\n\t\treturn [result, patches!, inversePatches!]\n\t}\n\n\tcreateDraft(base: T): Draft {\n\t\tif (!isDraftable(base)) die(8)\n\t\tif (isDraft(base)) base = current(base)\n\t\tconst scope = enterScope(this)\n\t\tconst proxy = createProxy(base, undefined)\n\t\tproxy[DRAFT_STATE].isManual_ = true\n\t\tleaveScope(scope)\n\t\treturn proxy as any\n\t}\n\n\tfinishDraft>(\n\t\tdraft: D,\n\t\tpatchListener?: PatchListener\n\t): D extends Draft ? T : never {\n\t\tconst state: ImmerState = draft && (draft as any)[DRAFT_STATE]\n\t\tif (!state || !state.isManual_) die(9)\n\t\tconst {scope_: scope} = state\n\t\tusePatchesInScope(scope, patchListener)\n\t\treturn processResult(undefined, scope)\n\t}\n\n\t/**\n\t * Pass true to automatically freeze all copies created by Immer.\n\t *\n\t * By default, auto-freezing is enabled.\n\t */\n\tsetAutoFreeze(value: boolean) {\n\t\tthis.autoFreeze_ = value\n\t}\n\n\t/**\n\t * Pass true to enable strict shallow copy.\n\t *\n\t * By default, immer does not copy the object descriptors such as getter, setter and non-enumrable properties.\n\t */\n\tsetUseStrictShallowCopy(value: boolean) {\n\t\tthis.useStrictShallowCopy_ = value\n\t}\n\n\tapplyPatches(base: T, patches: Patch[]): T {\n\t\t// If a patch replaces the entire state, take that replacement as base\n\t\t// before applying patches\n\t\tlet i: number\n\t\tfor (i = patches.length - 1; i >= 0; i--) {\n\t\t\tconst patch = patches[i]\n\t\t\tif (patch.path.length === 0 && patch.op === \"replace\") {\n\t\t\t\tbase = patch.value\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\t// If there was a patch that replaced the entire state, start from the\n\t\t// patch after that.\n\t\tif (i > -1) {\n\t\t\tpatches = patches.slice(i + 1)\n\t\t}\n\n\t\tconst applyPatchesImpl = getPlugin(\"Patches\").applyPatches_\n\t\tif (isDraft(base)) {\n\t\t\t// N.B: never hits if some patch a replacement, patches are never drafts\n\t\t\treturn applyPatchesImpl(base, patches)\n\t\t}\n\t\t// Otherwise, produce a copy of the base state.\n\t\treturn this.produce(base, (draft: Drafted) =>\n\t\t\tapplyPatchesImpl(draft, patches)\n\t\t)\n\t}\n}\n\nexport function createProxy(\n\tvalue: T,\n\tparent?: ImmerState\n): Drafted {\n\t// precondition: createProxy should be guarded by isDraftable, so we know we can safely draft\n\tconst draft: Drafted = isMap(value)\n\t\t? getPlugin(\"MapSet\").proxyMap_(value, parent)\n\t\t: isSet(value)\n\t\t? getPlugin(\"MapSet\").proxySet_(value, parent)\n\t\t: createProxyProxy(value, parent)\n\n\tconst scope = parent ? parent.scope_ : getCurrentScope()\n\tscope.drafts_.push(draft)\n\treturn draft\n}\n","import {\n\tdie,\n\tisDraft,\n\tshallowCopy,\n\teach,\n\tDRAFT_STATE,\n\tset,\n\tImmerState,\n\tisDraftable,\n\tisFrozen\n} from \"../internal\"\n\n/** Takes a snapshot of the current state of a draft and finalizes it (but without freezing). This is a great utility to print the current state during debugging (no Proxies in the way). The output of current can also be safely leaked outside the producer. */\nexport function current(value: T): T\nexport function current(value: any): any {\n\tif (!isDraft(value)) die(10, value)\n\treturn currentImpl(value)\n}\n\nfunction currentImpl(value: any): any {\n\tif (!isDraftable(value) || isFrozen(value)) return value\n\tconst state: ImmerState | undefined = value[DRAFT_STATE]\n\tlet copy: any\n\tif (state) {\n\t\tif (!state.modified_) return state.base_\n\t\t// Optimization: avoid generating new drafts during copying\n\t\tstate.finalized_ = true\n\t\tcopy = shallowCopy(value, state.scope_.immer_.useStrictShallowCopy_)\n\t} else {\n\t\tcopy = shallowCopy(value, true)\n\t}\n\t// recurse\n\teach(copy, (key, childValue) => {\n\t\tset(copy, key, currentImpl(childValue))\n\t})\n\tif (state) {\n\t\tstate.finalized_ = false\n\t}\n\treturn copy\n}\n","import {\n\tIProduce,\n\tIProduceWithPatches,\n\tImmer,\n\tDraft,\n\tImmutable\n} from \"./internal\"\n\nexport {\n\tDraft,\n\tImmutable,\n\tPatch,\n\tPatchListener,\n\toriginal,\n\tcurrent,\n\tisDraft,\n\tisDraftable,\n\tNOTHING as nothing,\n\tDRAFTABLE as immerable,\n\tfreeze,\n\tObjectish\n} from \"./internal\"\n\nconst immer = new Immer()\n\n/**\n * The `produce` function takes a value and a \"recipe function\" (whose\n * return value often depends on the base state). The recipe function is\n * free to mutate its first argument however it wants. All mutations are\n * only ever applied to a __copy__ of the base state.\n *\n * Pass only a function to create a \"curried producer\" which relieves you\n * from passing the recipe function every time.\n *\n * Only plain objects and arrays are made mutable. All other objects are\n * considered uncopyable.\n *\n * Note: This function is __bound__ to its `Immer` instance.\n *\n * @param {any} base - the initial state\n * @param {Function} producer - function that receives a proxy of the base state as first argument and which can be freely modified\n * @param {Function} patchListener - optional function that will be called with all the patches produced here\n * @returns {any} a new state, or the initial state if nothing was modified\n */\nexport const produce: IProduce = immer.produce\n\n/**\n * Like `produce`, but `produceWithPatches` always returns a tuple\n * [nextState, patches, inversePatches] (instead of just the next state)\n */\nexport const produceWithPatches: IProduceWithPatches = immer.produceWithPatches.bind(\n\timmer\n)\n\n/**\n * Pass true to automatically freeze all copies created by Immer.\n *\n * Always freeze by default, even in production mode\n */\nexport const setAutoFreeze = immer.setAutoFreeze.bind(immer)\n\n/**\n * Pass true to enable strict shallow copy.\n *\n * By default, immer does not copy the object descriptors such as getter, setter and non-enumrable properties.\n */\nexport const setUseStrictShallowCopy = immer.setUseStrictShallowCopy.bind(immer)\n\n/**\n * Apply an array of Immer patches to the first argument.\n *\n * This function is a producer, which means copy-on-write is in effect.\n */\nexport const applyPatches = immer.applyPatches.bind(immer)\n\n/**\n * Create an Immer draft from the given base state, which may be a draft itself.\n * The draft can be modified until you finalize it with the `finishDraft` function.\n */\nexport const createDraft = immer.createDraft.bind(immer)\n\n/**\n * Finalize an Immer draft from a `createDraft` call, returning the base state\n * (if no changes were made) or a modified copy. The draft must *not* be\n * mutated afterwards.\n *\n * Pass a function as the 2nd argument to generate Immer patches based on the\n * changes that were made.\n */\nexport const finishDraft = immer.finishDraft.bind(immer)\n\n/**\n * This function is actually a no-op, but can be used to cast an immutable type\n * to an draft type and make TypeScript happy\n *\n * @param value\n */\nexport function castDraft(value: T): Draft {\n\treturn value as any\n}\n\n/**\n * This function is actually a no-op, but can be used to cast a mutable type\n * to an immutable type and make TypeScript happy\n * @param value\n */\nexport function castImmutable(value: T): Immutable {\n\treturn value as any\n}\n\nexport {Immer}\n\nexport {enablePatches} from \"./plugins/patches\"\nexport {enableMapSet} from \"./plugins/mapset\"\n","import { runIdentityFunctionCheck } from './devModeChecks/identityFunctionCheck'\r\nimport { runInputStabilityCheck } from './devModeChecks/inputStabilityCheck'\r\nimport { globalDevModeChecks } from './devModeChecks/setGlobalDevModeChecks'\r\n// eslint-disable-next-line @typescript-eslint/consistent-type-imports\r\nimport type {\r\n DevModeChecks,\r\n Selector,\r\n SelectorArray,\r\n DevModeChecksExecutionInfo\r\n} from './types'\r\n\r\nexport const NOT_FOUND = 'NOT_FOUND'\r\nexport type NOT_FOUND_TYPE = typeof NOT_FOUND\r\n\r\n/**\r\n * Assert that the provided value is a function. If the assertion fails,\r\n * a `TypeError` is thrown with an optional custom error message.\r\n *\r\n * @param func - The value to be checked.\r\n * @param errorMessage - An optional custom error message to use if the assertion fails.\r\n * @throws A `TypeError` if the assertion fails.\r\n */\r\nexport function assertIsFunction(\r\n func: unknown,\r\n errorMessage = `expected a function, instead received ${typeof func}`\r\n): asserts func is FunctionType {\r\n if (typeof func !== 'function') {\r\n throw new TypeError(errorMessage)\r\n }\r\n}\r\n\r\n/**\r\n * Assert that the provided value is an object. If the assertion fails,\r\n * a `TypeError` is thrown with an optional custom error message.\r\n *\r\n * @param object - The value to be checked.\r\n * @param errorMessage - An optional custom error message to use if the assertion fails.\r\n * @throws A `TypeError` if the assertion fails.\r\n */\r\nexport function assertIsObject>(\r\n object: unknown,\r\n errorMessage = `expected an object, instead received ${typeof object}`\r\n): asserts object is ObjectType {\r\n if (typeof object !== 'object') {\r\n throw new TypeError(errorMessage)\r\n }\r\n}\r\n\r\n/**\r\n * Assert that the provided array is an array of functions. If the assertion fails,\r\n * a `TypeError` is thrown with an optional custom error message.\r\n *\r\n * @param array - The array to be checked.\r\n * @param errorMessage - An optional custom error message to use if the assertion fails.\r\n * @throws A `TypeError` if the assertion fails.\r\n */\r\nexport function assertIsArrayOfFunctions(\r\n array: unknown[],\r\n errorMessage = `expected all items to be functions, instead received the following types: `\r\n): asserts array is FunctionType[] {\r\n if (\r\n !array.every((item): item is FunctionType => typeof item === 'function')\r\n ) {\r\n const itemTypes = array\r\n .map(item =>\r\n typeof item === 'function'\r\n ? `function ${item.name || 'unnamed'}()`\r\n : typeof item\r\n )\r\n .join(', ')\r\n throw new TypeError(`${errorMessage}[${itemTypes}]`)\r\n }\r\n}\r\n\r\n/**\r\n * Ensure that the input is an array. If it's already an array, it's returned as is.\r\n * If it's not an array, it will be wrapped in a new array.\r\n *\r\n * @param item - The item to be checked.\r\n * @returns An array containing the input item. If the input is already an array, it's returned without modification.\r\n */\r\nexport const ensureIsArray = (item: unknown) => {\r\n return Array.isArray(item) ? item : [item]\r\n}\r\n\r\n/**\r\n * Extracts the \"dependencies\" / \"input selectors\" from the arguments of `createSelector`.\r\n *\r\n * @param createSelectorArgs - Arguments passed to `createSelector` as an array.\r\n * @returns An array of \"input selectors\" / \"dependencies\".\r\n * @throws A `TypeError` if any of the input selectors is not function.\r\n */\r\nexport function getDependencies(createSelectorArgs: unknown[]) {\r\n const dependencies = Array.isArray(createSelectorArgs[0])\r\n ? createSelectorArgs[0]\r\n : createSelectorArgs\r\n\r\n assertIsArrayOfFunctions(\r\n dependencies,\r\n `createSelector expects all input-selectors to be functions, but received the following types: `\r\n )\r\n\r\n return dependencies as SelectorArray\r\n}\r\n\r\n/**\r\n * Runs each input selector and returns their collective results as an array.\r\n *\r\n * @param dependencies - An array of \"dependencies\" or \"input selectors\".\r\n * @param inputSelectorArgs - An array of arguments being passed to the input selectors.\r\n * @returns An array of input selector results.\r\n */\r\nexport function collectInputSelectorResults(\r\n dependencies: SelectorArray,\r\n inputSelectorArgs: unknown[] | IArguments\r\n) {\r\n const inputSelectorResults = []\r\n const { length } = dependencies\r\n for (let i = 0; i < length; i++) {\r\n // @ts-ignore\r\n // apply arguments instead of spreading and mutate a local list of params for performance.\r\n inputSelectorResults.push(dependencies[i].apply(null, inputSelectorArgs))\r\n }\r\n return inputSelectorResults\r\n}\r\n\r\n/**\r\n * Retrieves execution information for development mode checks.\r\n *\r\n * @param devModeChecks - Custom Settings for development mode checks. These settings will override the global defaults.\r\n * @param firstRun - Indicates whether it is the first time the selector has run.\r\n * @returns An object containing the execution information for each development mode check.\r\n */\r\nexport const getDevModeChecksExecutionInfo = (\r\n firstRun: boolean,\r\n devModeChecks: Partial\r\n) => {\r\n const { identityFunctionCheck, inputStabilityCheck } = {\r\n ...globalDevModeChecks,\r\n ...devModeChecks\r\n }\r\n return {\r\n identityFunctionCheck: {\r\n shouldRun:\r\n identityFunctionCheck === 'always' ||\r\n (identityFunctionCheck === 'once' && firstRun),\r\n run: runIdentityFunctionCheck\r\n },\r\n inputStabilityCheck: {\r\n shouldRun:\r\n inputStabilityCheck === 'always' ||\r\n (inputStabilityCheck === 'once' && firstRun),\r\n run: runInputStabilityCheck\r\n }\r\n } satisfies DevModeChecksExecutionInfo\r\n}\r\n","// Original source:\r\n// - https://github.com/simonihmig/tracked-redux/blob/master/packages/tracked-redux/src/-private/proxy.ts\r\n\r\nimport type { Node, Tag } from './tracking'\r\nimport {\r\n consumeCollection,\r\n consumeTag,\r\n createTag,\r\n dirtyCollection,\r\n dirtyTag\r\n} from './tracking'\r\n\r\nexport const REDUX_PROXY_LABEL = Symbol()\r\n\r\nlet nextId = 0\r\n\r\nconst proto = Object.getPrototypeOf({})\r\n\r\nclass ObjectTreeNode> implements Node {\r\n proxy: T = new Proxy(this, objectProxyHandler) as unknown as T\r\n tag = createTag()\r\n tags = {} as Record\r\n children = {} as Record\r\n collectionTag = null\r\n id = nextId++\r\n\r\n constructor(public value: T) {\r\n this.value = value\r\n this.tag.value = value\r\n }\r\n}\r\n\r\nconst objectProxyHandler = {\r\n get(node: Node, key: string | symbol): unknown {\r\n function calculateResult() {\r\n const { value } = node\r\n\r\n const childValue = Reflect.get(value, key)\r\n\r\n if (typeof key === 'symbol') {\r\n return childValue\r\n }\r\n\r\n if (key in proto) {\r\n return childValue\r\n }\r\n\r\n if (typeof childValue === 'object' && childValue !== null) {\r\n let childNode = node.children[key]\r\n\r\n if (childNode === undefined) {\r\n childNode = node.children[key] = createNode(childValue)\r\n }\r\n\r\n if (childNode.tag) {\r\n consumeTag(childNode.tag)\r\n }\r\n\r\n return childNode.proxy\r\n } else {\r\n let tag = node.tags[key]\r\n\r\n if (tag === undefined) {\r\n tag = node.tags[key] = createTag()\r\n tag.value = childValue\r\n }\r\n\r\n consumeTag(tag)\r\n\r\n return childValue\r\n }\r\n }\r\n const res = calculateResult()\r\n return res\r\n },\r\n\r\n ownKeys(node: Node): ArrayLike {\r\n consumeCollection(node)\r\n return Reflect.ownKeys(node.value)\r\n },\r\n\r\n getOwnPropertyDescriptor(\r\n node: Node,\r\n prop: string | symbol\r\n ): PropertyDescriptor | undefined {\r\n return Reflect.getOwnPropertyDescriptor(node.value, prop)\r\n },\r\n\r\n has(node: Node, prop: string | symbol): boolean {\r\n return Reflect.has(node.value, prop)\r\n }\r\n}\r\n\r\nclass ArrayTreeNode> implements Node {\r\n proxy: T = new Proxy([this], arrayProxyHandler) as unknown as T\r\n tag = createTag()\r\n tags = {}\r\n children = {}\r\n collectionTag = null\r\n id = nextId++\r\n\r\n constructor(public value: T) {\r\n this.value = value\r\n this.tag.value = value\r\n }\r\n}\r\n\r\nconst arrayProxyHandler = {\r\n get([node]: [Node], key: string | symbol): unknown {\r\n if (key === 'length') {\r\n consumeCollection(node)\r\n }\r\n\r\n return objectProxyHandler.get(node, key)\r\n },\r\n\r\n ownKeys([node]: [Node]): ArrayLike {\r\n return objectProxyHandler.ownKeys(node)\r\n },\r\n\r\n getOwnPropertyDescriptor(\r\n [node]: [Node],\r\n prop: string | symbol\r\n ): PropertyDescriptor | undefined {\r\n return objectProxyHandler.getOwnPropertyDescriptor(node, prop)\r\n },\r\n\r\n has([node]: [Node], prop: string | symbol): boolean {\r\n return objectProxyHandler.has(node, prop)\r\n }\r\n}\r\n\r\nexport function createNode | Record>(\r\n value: T\r\n): Node {\r\n if (Array.isArray(value)) {\r\n return new ArrayTreeNode(value)\r\n }\r\n\r\n return new ObjectTreeNode(value) as Node\r\n}\r\n\r\nconst keysMap = new WeakMap<\r\n Array | Record,\r\n Set\r\n>()\r\n\r\nexport function updateNode | Record>(\r\n node: Node,\r\n newValue: T\r\n): void {\r\n const { value, tags, children } = node\r\n\r\n node.value = newValue\r\n\r\n if (\r\n Array.isArray(value) &&\r\n Array.isArray(newValue) &&\r\n value.length !== newValue.length\r\n ) {\r\n dirtyCollection(node)\r\n } else {\r\n if (value !== newValue) {\r\n let oldKeysSize = 0\r\n let newKeysSize = 0\r\n let anyKeysAdded = false\r\n\r\n for (const _key in value) {\r\n oldKeysSize++\r\n }\r\n\r\n for (const key in newValue) {\r\n newKeysSize++\r\n if (!(key in value)) {\r\n anyKeysAdded = true\r\n break\r\n }\r\n }\r\n\r\n const isDifferent = anyKeysAdded || oldKeysSize !== newKeysSize\r\n\r\n if (isDifferent) {\r\n dirtyCollection(node)\r\n }\r\n }\r\n }\r\n\r\n for (const key in tags) {\r\n const childValue = (value as Record)[key]\r\n const newChildValue = (newValue as Record)[key]\r\n\r\n if (childValue !== newChildValue) {\r\n dirtyCollection(node)\r\n dirtyTag(tags[key], newChildValue)\r\n }\r\n\r\n if (typeof newChildValue === 'object' && newChildValue !== null) {\r\n delete tags[key]\r\n }\r\n }\r\n\r\n for (const key in children) {\r\n const childNode = children[key]\r\n const newChildValue = (newValue as Record)[key]\r\n\r\n const childValue = childNode.value\r\n\r\n if (childValue === newChildValue) {\r\n continue\r\n } else if (typeof newChildValue === 'object' && newChildValue !== null) {\r\n updateNode(childNode, newChildValue as Record)\r\n } else {\r\n deleteNode(childNode)\r\n delete children[key]\r\n }\r\n }\r\n}\r\n\r\nfunction deleteNode(node: Node): void {\r\n if (node.tag) {\r\n dirtyTag(node.tag, null)\r\n }\r\n dirtyCollection(node)\r\n for (const key in node.tags) {\r\n dirtyTag(node.tags[key], null)\r\n }\r\n for (const key in node.children) {\r\n deleteNode(node.children[key])\r\n }\r\n}\r\n","// Original source:\r\n// - https://github.com/facebook/react/blob/0b974418c9a56f6c560298560265dcf4b65784bc/packages/react/src/ReactCache.js\r\n\r\nimport type {\r\n AnyFunction,\r\n DefaultMemoizeFields,\r\n EqualityFn,\r\n Simplify\r\n} from './types'\r\n\r\nclass StrongRef {\r\n constructor(private value: T) {}\r\n deref() {\r\n return this.value\r\n }\r\n}\r\n\r\nconst Ref =\r\n typeof WeakRef !== 'undefined'\r\n ? WeakRef\r\n : (StrongRef as unknown as typeof WeakRef)\r\n\r\nconst UNTERMINATED = 0\r\nconst TERMINATED = 1\r\n\r\ninterface UnterminatedCacheNode {\r\n /**\r\n * Status, represents whether the cached computation returned a value or threw an error.\r\n */\r\n s: 0\r\n /**\r\n * Value, either the cached result or an error, depending on status.\r\n */\r\n v: void\r\n /**\r\n * Object cache, a `WeakMap` where non-primitive arguments are stored.\r\n */\r\n o: null | WeakMap>\r\n /**\r\n * Primitive cache, a regular Map where primitive arguments are stored.\r\n */\r\n p: null | Map>\r\n}\r\n\r\ninterface TerminatedCacheNode {\r\n /**\r\n * Status, represents whether the cached computation returned a value or threw an error.\r\n */\r\n s: 1\r\n /**\r\n * Value, either the cached result or an error, depending on status.\r\n */\r\n v: T\r\n /**\r\n * Object cache, a `WeakMap` where non-primitive arguments are stored.\r\n */\r\n o: null | WeakMap>\r\n /**\r\n * Primitive cache, a regular `Map` where primitive arguments are stored.\r\n */\r\n p: null | Map>\r\n}\r\n\r\ntype CacheNode = TerminatedCacheNode | UnterminatedCacheNode\r\n\r\nfunction createCacheNode(): CacheNode {\r\n return {\r\n s: UNTERMINATED,\r\n v: undefined,\r\n o: null,\r\n p: null\r\n }\r\n}\r\n\r\n/**\r\n * Configuration options for a memoization function utilizing `WeakMap` for\r\n * its caching mechanism.\r\n *\r\n * @template Result - The type of the return value of the memoized function.\r\n *\r\n * @since 5.0.0\r\n * @public\r\n */\r\nexport interface WeakMapMemoizeOptions {\r\n /**\r\n * If provided, used to compare a newly generated output value against previous values in the cache.\r\n * If a match is found, the old value is returned. This addresses the common\r\n * ```ts\r\n * todos.map(todo => todo.id)\r\n * ```\r\n * use case, where an update to another field in the original data causes a recalculation\r\n * due to changed references, but the output is still effectively the same.\r\n *\r\n * @since 5.0.0\r\n */\r\n resultEqualityCheck?: EqualityFn\r\n}\r\n\r\n/**\r\n * Creates a tree of `WeakMap`-based cache nodes based on the identity of the\r\n * arguments it's been called with (in this case, the extracted values from your input selectors).\r\n * This allows `weakMapMemoize` to have an effectively infinite cache size.\r\n * Cache results will be kept in memory as long as references to the arguments still exist,\r\n * and then cleared out as the arguments are garbage-collected.\r\n *\r\n * __Design Tradeoffs for `weakMapMemoize`:__\r\n * - Pros:\r\n * - It has an effectively infinite cache size, but you have no control over\r\n * how long values are kept in cache as it's based on garbage collection and `WeakMap`s.\r\n * - Cons:\r\n * - There's currently no way to alter the argument comparisons.\r\n * They're based on strict reference equality.\r\n * - It's roughly the same speed as `lruMemoize`, although likely a fraction slower.\r\n *\r\n * __Use Cases for `weakMapMemoize`:__\r\n * - This memoizer is likely best used for cases where you need to call the\r\n * same selector instance with many different arguments, such as a single\r\n * selector instance that is used in a list item component and called with\r\n * item IDs like:\r\n * ```ts\r\n * useSelector(state => selectSomeData(state, props.category))\r\n * ```\r\n * @param func - The function to be memoized.\r\n * @returns A memoized function with a `.clearCache()` method attached.\r\n *\r\n * @example\r\n * Using `createSelector`\r\n * ```ts\r\n * import { createSelector, weakMapMemoize } from 'reselect'\r\n *\r\n * interface RootState {\r\n * items: { id: number; category: string; name: string }[]\r\n * }\r\n *\r\n * const selectItemsByCategory = createSelector(\r\n * [\r\n * (state: RootState) => state.items,\r\n * (state: RootState, category: string) => category\r\n * ],\r\n * (items, category) => items.filter(item => item.category === category),\r\n * {\r\n * memoize: weakMapMemoize,\r\n * argsMemoize: weakMapMemoize\r\n * }\r\n * )\r\n * ```\r\n *\r\n * @example\r\n * Using `createSelectorCreator`\r\n * ```ts\r\n * import { createSelectorCreator, weakMapMemoize } from 'reselect'\r\n *\r\n * const createSelectorWeakMap = createSelectorCreator({ memoize: weakMapMemoize, argsMemoize: weakMapMemoize })\r\n *\r\n * const selectItemsByCategory = createSelectorWeakMap(\r\n * [\r\n * (state: RootState) => state.items,\r\n * (state: RootState, category: string) => category\r\n * ],\r\n * (items, category) => items.filter(item => item.category === category)\r\n * )\r\n * ```\r\n *\r\n * @template Func - The type of the function that is memoized.\r\n *\r\n * @see {@link https://reselect.js.org/api/weakMapMemoize `weakMapMemoize`}\r\n *\r\n * @since 5.0.0\r\n * @public\r\n * @experimental\r\n */\r\nexport function weakMapMemoize(\r\n func: Func,\r\n options: WeakMapMemoizeOptions> = {}\r\n) {\r\n let fnNode = createCacheNode()\r\n const { resultEqualityCheck } = options\r\n\r\n let lastResult: WeakRef | undefined\r\n\r\n let resultsCount = 0\r\n\r\n function memoized() {\r\n let cacheNode = fnNode\r\n const { length } = arguments\r\n for (let i = 0, l = length; i < l; i++) {\r\n const arg = arguments[i]\r\n if (\r\n typeof arg === 'function' ||\r\n (typeof arg === 'object' && arg !== null)\r\n ) {\r\n // Objects go into a WeakMap\r\n let objectCache = cacheNode.o\r\n if (objectCache === null) {\r\n cacheNode.o = objectCache = new WeakMap()\r\n }\r\n const objectNode = objectCache.get(arg)\r\n if (objectNode === undefined) {\r\n cacheNode = createCacheNode()\r\n objectCache.set(arg, cacheNode)\r\n } else {\r\n cacheNode = objectNode\r\n }\r\n } else {\r\n // Primitives go into a regular Map\r\n let primitiveCache = cacheNode.p\r\n if (primitiveCache === null) {\r\n cacheNode.p = primitiveCache = new Map()\r\n }\r\n const primitiveNode = primitiveCache.get(arg)\r\n if (primitiveNode === undefined) {\r\n cacheNode = createCacheNode()\r\n primitiveCache.set(arg, cacheNode)\r\n } else {\r\n cacheNode = primitiveNode\r\n }\r\n }\r\n }\r\n\r\n const terminatedNode = cacheNode as unknown as TerminatedCacheNode\r\n\r\n let result\r\n\r\n if (cacheNode.s === TERMINATED) {\r\n result = cacheNode.v\r\n } else {\r\n // Allow errors to propagate\r\n result = func.apply(null, arguments as unknown as any[])\r\n resultsCount++\r\n }\r\n\r\n terminatedNode.s = TERMINATED\r\n\r\n if (resultEqualityCheck) {\r\n const lastResultValue = lastResult?.deref() ?? lastResult\r\n if (\r\n lastResultValue != null &&\r\n resultEqualityCheck(lastResultValue as ReturnType, result)\r\n ) {\r\n result = lastResultValue\r\n resultsCount !== 0 && resultsCount--\r\n }\r\n\r\n const needsWeakRef =\r\n (typeof result === 'object' && result !== null) ||\r\n typeof result === 'function'\r\n lastResult = needsWeakRef ? new Ref(result) : result\r\n }\r\n terminatedNode.v = result\r\n return result\r\n }\r\n\r\n memoized.clearCache = () => {\r\n fnNode = createCacheNode()\r\n memoized.resetResultsCount()\r\n }\r\n\r\n memoized.resultsCount = () => resultsCount\r\n\r\n memoized.resetResultsCount = () => {\r\n resultsCount = 0\r\n }\r\n\r\n return memoized as Func & Simplify\r\n}\r\n","import { weakMapMemoize } from './weakMapMemoize'\r\n\r\nimport type {\r\n Combiner,\r\n CreateSelectorOptions,\r\n DropFirstParameter,\r\n ExtractMemoizerFields,\r\n GetParamsFromSelectors,\r\n GetStateFromSelectors,\r\n InterruptRecursion,\r\n OutputSelector,\r\n Selector,\r\n SelectorArray,\r\n SetRequired,\r\n Simplify,\r\n UnknownMemoizer\r\n} from './types'\r\n\r\nimport {\r\n assertIsFunction,\r\n collectInputSelectorResults,\r\n ensureIsArray,\r\n getDependencies,\r\n getDevModeChecksExecutionInfo\r\n} from './utils'\r\n\r\n/**\r\n * An instance of `createSelector`, customized with a given memoize implementation.\r\n *\r\n * @template MemoizeFunction - The type of the memoize function that is used to memoize the `resultFunc` inside `createSelector` (e.g., `lruMemoize` or `weakMapMemoize`).\r\n * @template ArgsMemoizeFunction - The type of the optional memoize function that is used to memoize the arguments passed into the output selector generated by `createSelector` (e.g., `lruMemoize` or `weakMapMemoize`). If none is explicitly provided, `weakMapMemoize` will be used.\r\n *\r\n * @public\r\n */\r\nexport interface CreateSelectorFunction<\r\n MemoizeFunction extends UnknownMemoizer = typeof weakMapMemoize,\r\n ArgsMemoizeFunction extends UnknownMemoizer = typeof weakMapMemoize\r\n> {\r\n /**\r\n * Creates a memoized selector function.\r\n *\r\n * @param createSelectorArgs - An arbitrary number of input selectors as separate inline arguments and a `combiner` function.\r\n * @returns A memoized output selector.\r\n *\r\n * @template InputSelectors - The type of the input selectors as an array.\r\n * @template Result - The return type of the `combiner` as well as the output selector.\r\n * @template OverrideMemoizeFunction - The type of the optional `memoize` function that could be passed into the options object to override the original `memoize` function that was initially passed into `createSelectorCreator`.\r\n * @template OverrideArgsMemoizeFunction - The type of the optional `argsMemoize` function that could be passed into the options object to override the original `argsMemoize` function that was initially passed into `createSelectorCreator`.\r\n *\r\n * @see {@link https://github.com/reduxjs/reselect#createselectorinputselectors--inputselectors-resultfunc-createselectoroptions createSelector}\r\n */\r\n (\r\n ...createSelectorArgs: [\r\n ...inputSelectors: InputSelectors,\r\n combiner: Combiner\r\n ]\r\n ): OutputSelector<\r\n InputSelectors,\r\n Result,\r\n MemoizeFunction,\r\n ArgsMemoizeFunction\r\n > &\r\n InterruptRecursion\r\n\r\n /**\r\n * Creates a memoized selector function.\r\n *\r\n * @param createSelectorArgs - An arbitrary number of input selectors as separate inline arguments, a `combiner` function and an `options` object.\r\n * @returns A memoized output selector.\r\n *\r\n * @template InputSelectors - The type of the input selectors as an array.\r\n * @template Result - The return type of the `combiner` as well as the output selector.\r\n * @template OverrideMemoizeFunction - The type of the optional `memoize` function that could be passed into the options object to override the original `memoize` function that was initially passed into `createSelectorCreator`.\r\n * @template OverrideArgsMemoizeFunction - The type of the optional `argsMemoize` function that could be passed into the options object to override the original `argsMemoize` function that was initially passed into `createSelectorCreator`.\r\n *\r\n * @see {@link https://github.com/reduxjs/reselect#createselectorinputselectors--inputselectors-resultfunc-createselectoroptions createSelector}\r\n */\r\n <\r\n InputSelectors extends SelectorArray,\r\n Result,\r\n OverrideMemoizeFunction extends UnknownMemoizer = MemoizeFunction,\r\n OverrideArgsMemoizeFunction extends UnknownMemoizer = ArgsMemoizeFunction\r\n >(\r\n ...createSelectorArgs: [\r\n ...inputSelectors: InputSelectors,\r\n combiner: Combiner,\r\n createSelectorOptions: Simplify<\r\n CreateSelectorOptions<\r\n MemoizeFunction,\r\n ArgsMemoizeFunction,\r\n OverrideMemoizeFunction,\r\n OverrideArgsMemoizeFunction\r\n >\r\n >\r\n ]\r\n ): OutputSelector<\r\n InputSelectors,\r\n Result,\r\n OverrideMemoizeFunction,\r\n OverrideArgsMemoizeFunction\r\n > &\r\n InterruptRecursion\r\n\r\n /**\r\n * Creates a memoized selector function.\r\n *\r\n * @param inputSelectors - An array of input selectors.\r\n * @param combiner - A function that Combines the input selectors and returns an output selector. Otherwise known as the result function.\r\n * @param createSelectorOptions - An optional options object that allows for further customization per selector.\r\n * @returns A memoized output selector.\r\n *\r\n * @template InputSelectors - The type of the input selectors array.\r\n * @template Result - The return type of the `combiner` as well as the output selector.\r\n * @template OverrideMemoizeFunction - The type of the optional `memoize` function that could be passed into the options object to override the original `memoize` function that was initially passed into `createSelectorCreator`.\r\n * @template OverrideArgsMemoizeFunction - The type of the optional `argsMemoize` function that could be passed into the options object to override the original `argsMemoize` function that was initially passed into `createSelectorCreator`.\r\n *\r\n * @see {@link https://github.com/reduxjs/reselect#createselectorinputselectors--inputselectors-resultfunc-createselectoroptions createSelector}\r\n */\r\n <\r\n InputSelectors extends SelectorArray,\r\n Result,\r\n OverrideMemoizeFunction extends UnknownMemoizer = MemoizeFunction,\r\n OverrideArgsMemoizeFunction extends UnknownMemoizer = ArgsMemoizeFunction\r\n >(\r\n inputSelectors: [...InputSelectors],\r\n combiner: Combiner,\r\n createSelectorOptions?: Simplify<\r\n CreateSelectorOptions<\r\n MemoizeFunction,\r\n ArgsMemoizeFunction,\r\n OverrideMemoizeFunction,\r\n OverrideArgsMemoizeFunction\r\n >\r\n >\r\n ): OutputSelector<\r\n InputSelectors,\r\n Result,\r\n OverrideMemoizeFunction,\r\n OverrideArgsMemoizeFunction\r\n > &\r\n InterruptRecursion\r\n}\r\n\r\n/**\r\n * Creates a selector creator function with the specified memoization function\r\n * and options for customizing memoization behavior.\r\n *\r\n * @param options - An options object containing the `memoize` function responsible for memoizing the `resultFunc` inside `createSelector` (e.g., `lruMemoize` or `weakMapMemoize`). It also provides additional options for customizing memoization. While the `memoize` property is mandatory, the rest are optional.\r\n * @returns A customized `createSelector` function.\r\n *\r\n * @example\r\n * ```ts\r\n * const customCreateSelector = createSelectorCreator({\r\n * memoize: customMemoize, // Function to be used to memoize `resultFunc`\r\n * memoizeOptions: [memoizeOption1, memoizeOption2], // Options passed to `customMemoize` as the second argument onwards\r\n * argsMemoize: customArgsMemoize, // Function to be used to memoize the selector's arguments\r\n * argsMemoizeOptions: [argsMemoizeOption1, argsMemoizeOption2] // Options passed to `customArgsMemoize` as the second argument onwards\r\n * })\r\n *\r\n * const customSelector = customCreateSelector(\r\n * [inputSelector1, inputSelector2],\r\n * resultFunc // `resultFunc` will be passed as the first argument to `customMemoize`\r\n * )\r\n *\r\n * customSelector(\r\n * ...selectorArgs // Will be memoized by `customArgsMemoize`\r\n * )\r\n * ```\r\n *\r\n * @template MemoizeFunction - The type of the memoize function that is used to memoize the `resultFunc` inside `createSelector` (e.g., `lruMemoize` or `weakMapMemoize`).\r\n * @template ArgsMemoizeFunction - The type of the optional memoize function that is used to memoize the arguments passed into the output selector generated by `createSelector` (e.g., `lruMemoize` or `weakMapMemoize`). If none is explicitly provided, `weakMapMemoize` will be used.\r\n *\r\n * @see {@link https://reselect.js.org/api/createSelectorCreator#using-options-since-500 `createSelectorCreator`}\r\n *\r\n * @since 5.0.0\r\n * @public\r\n */\r\nexport function createSelectorCreator<\r\n MemoizeFunction extends UnknownMemoizer,\r\n ArgsMemoizeFunction extends UnknownMemoizer = typeof weakMapMemoize\r\n>(\r\n options: Simplify<\r\n SetRequired<\r\n CreateSelectorOptions<\r\n typeof weakMapMemoize,\r\n typeof weakMapMemoize,\r\n MemoizeFunction,\r\n ArgsMemoizeFunction\r\n >,\r\n 'memoize'\r\n >\r\n >\r\n): CreateSelectorFunction\r\n\r\n/**\r\n * Creates a selector creator function with the specified memoization function\r\n * and options for customizing memoization behavior.\r\n *\r\n * @param memoize - The `memoize` function responsible for memoizing the `resultFunc` inside `createSelector` (e.g., `lruMemoize` or `weakMapMemoize`).\r\n * @param memoizeOptionsFromArgs - Optional configuration options for the memoization function. These options are then passed to the memoize function as the second argument onwards.\r\n * @returns A customized `createSelector` function.\r\n *\r\n * @example\r\n * ```ts\r\n * const customCreateSelector = createSelectorCreator(customMemoize, // Function to be used to memoize `resultFunc`\r\n * option1, // Will be passed as second argument to `customMemoize`\r\n * option2, // Will be passed as third argument to `customMemoize`\r\n * option3 // Will be passed as fourth argument to `customMemoize`\r\n * )\r\n *\r\n * const customSelector = customCreateSelector(\r\n * [inputSelector1, inputSelector2],\r\n * resultFunc // `resultFunc` will be passed as the first argument to `customMemoize`\r\n * )\r\n * ```\r\n *\r\n * @template MemoizeFunction - The type of the memoize function that is used to memoize the `resultFunc` inside `createSelector` (e.g., `lruMemoize` or `weakMapMemoize`).\r\n *\r\n * @see {@link https://reselect.js.org/api/createSelectorCreator#using-memoize-and-memoizeoptions `createSelectorCreator`}\r\n *\r\n * @public\r\n */\r\nexport function createSelectorCreator(\r\n memoize: MemoizeFunction,\r\n ...memoizeOptionsFromArgs: DropFirstParameter\r\n): CreateSelectorFunction\r\n\r\n/**\r\n * Creates a selector creator function with the specified memoization function and options for customizing memoization behavior.\r\n *\r\n * @param memoizeOrOptions - Either A `memoize` function or an `options` object containing the `memoize` function.\r\n * @param memoizeOptionsFromArgs - Optional configuration options for the memoization function. These options are then passed to the memoize function as the second argument onwards.\r\n * @returns A customized `createSelector` function.\r\n *\r\n * @template MemoizeFunction - The type of the memoize function that is used to memoize the `resultFunc` inside `createSelector` (e.g., `lruMemoize` or `weakMapMemoize`).\r\n * @template ArgsMemoizeFunction - The type of the optional memoize function that is used to memoize the arguments passed into the output selector generated by `createSelector` (e.g., `lruMemoize` or `weakMapMemoize`). If none is explicitly provided, `weakMapMemoize` will be used.\r\n * @template MemoizeOrOptions - The type of the first argument. It can either be a `memoize` function or an `options` object containing the `memoize` function.\r\n */\r\nexport function createSelectorCreator<\r\n MemoizeFunction extends UnknownMemoizer,\r\n ArgsMemoizeFunction extends UnknownMemoizer,\r\n MemoizeOrOptions extends\r\n | MemoizeFunction\r\n | SetRequired<\r\n CreateSelectorOptions,\r\n 'memoize'\r\n >\r\n>(\r\n memoizeOrOptions: MemoizeOrOptions,\r\n ...memoizeOptionsFromArgs: MemoizeOrOptions extends SetRequired<\r\n CreateSelectorOptions,\r\n 'memoize'\r\n >\r\n ? never\r\n : DropFirstParameter\r\n) {\r\n /** options initially passed into `createSelectorCreator`. */\r\n const createSelectorCreatorOptions: SetRequired<\r\n CreateSelectorOptions,\r\n 'memoize'\r\n > = typeof memoizeOrOptions === 'function'\r\n ? {\r\n memoize: memoizeOrOptions as MemoizeFunction,\r\n memoizeOptions: memoizeOptionsFromArgs\r\n }\r\n : memoizeOrOptions\r\n\r\n const createSelector = <\r\n InputSelectors extends SelectorArray,\r\n Result,\r\n OverrideMemoizeFunction extends UnknownMemoizer = MemoizeFunction,\r\n OverrideArgsMemoizeFunction extends UnknownMemoizer = ArgsMemoizeFunction\r\n >(\r\n ...createSelectorArgs: [\r\n ...inputSelectors: [...InputSelectors],\r\n combiner: Combiner,\r\n createSelectorOptions?: CreateSelectorOptions<\r\n MemoizeFunction,\r\n ArgsMemoizeFunction,\r\n OverrideMemoizeFunction,\r\n OverrideArgsMemoizeFunction\r\n >\r\n ]\r\n ) => {\r\n let recomputations = 0\r\n let dependencyRecomputations = 0\r\n let lastResult: Result\r\n\r\n // Due to the intricacies of rest params, we can't do an optional arg after `...createSelectorArgs`.\r\n // So, start by declaring the default value here.\r\n // (And yes, the words 'memoize' and 'options' appear too many times in this next sequence.)\r\n let directlyPassedOptions: CreateSelectorOptions<\r\n MemoizeFunction,\r\n ArgsMemoizeFunction,\r\n OverrideMemoizeFunction,\r\n OverrideArgsMemoizeFunction\r\n > = {}\r\n\r\n // Normally, the result func or \"combiner\" is the last arg\r\n let resultFunc = createSelectorArgs.pop() as\r\n | Combiner\r\n | CreateSelectorOptions<\r\n MemoizeFunction,\r\n ArgsMemoizeFunction,\r\n OverrideMemoizeFunction,\r\n OverrideArgsMemoizeFunction\r\n >\r\n\r\n // If the result func is actually an _object_, assume it's our options object\r\n if (typeof resultFunc === 'object') {\r\n directlyPassedOptions = resultFunc\r\n // and pop the real result func off\r\n resultFunc = createSelectorArgs.pop() as Combiner\r\n }\r\n\r\n assertIsFunction(\r\n resultFunc,\r\n `createSelector expects an output function after the inputs, but received: [${typeof resultFunc}]`\r\n )\r\n\r\n // Determine which set of options we're using. Prefer options passed directly,\r\n // but fall back to options given to `createSelectorCreator`.\r\n const combinedOptions = {\r\n ...createSelectorCreatorOptions,\r\n ...directlyPassedOptions\r\n }\r\n\r\n const {\r\n memoize,\r\n memoizeOptions = [],\r\n argsMemoize = weakMapMemoize,\r\n argsMemoizeOptions = [],\r\n devModeChecks = {}\r\n } = combinedOptions\r\n\r\n // Simplifying assumption: it's unlikely that the first options arg of the provided memoizer\r\n // is an array. In most libs I've looked at, it's an equality function or options object.\r\n // Based on that, if `memoizeOptions` _is_ an array, we assume it's a full\r\n // user-provided array of options. Otherwise, it must be just the _first_ arg, and so\r\n // we wrap it in an array so we can apply it.\r\n const finalMemoizeOptions = ensureIsArray(memoizeOptions)\r\n const finalArgsMemoizeOptions = ensureIsArray(argsMemoizeOptions)\r\n const dependencies = getDependencies(createSelectorArgs) as InputSelectors\r\n\r\n const memoizedResultFunc = memoize(function recomputationWrapper() {\r\n recomputations++\r\n // apply arguments instead of spreading for performance.\r\n // @ts-ignore\r\n return (resultFunc as Combiner).apply(\r\n null,\r\n arguments\r\n )\r\n }, ...finalMemoizeOptions) as Combiner &\r\n ExtractMemoizerFields\r\n\r\n let firstRun = true\r\n\r\n // If a selector is called with the exact same arguments we don't need to traverse our dependencies again.\r\n const selector = argsMemoize(function dependenciesChecker() {\r\n dependencyRecomputations++\r\n /** Return values of input selectors which the `resultFunc` takes as arguments. */\r\n const inputSelectorResults = collectInputSelectorResults(\r\n dependencies,\r\n arguments\r\n )\r\n\r\n if (process.env.NODE_ENV !== 'production') {\r\n const { identityFunctionCheck, inputStabilityCheck } =\r\n getDevModeChecksExecutionInfo(firstRun, devModeChecks)\r\n if (identityFunctionCheck.shouldRun) {\r\n identityFunctionCheck.run(\r\n resultFunc as Combiner\r\n )\r\n }\r\n\r\n if (inputStabilityCheck.shouldRun) {\r\n // make a second copy of the params, to check if we got the same results\r\n const inputSelectorResultsCopy = collectInputSelectorResults(\r\n dependencies,\r\n arguments\r\n )\r\n\r\n inputStabilityCheck.run(\r\n { inputSelectorResults, inputSelectorResultsCopy },\r\n { memoize, memoizeOptions: finalMemoizeOptions },\r\n arguments\r\n )\r\n }\r\n\r\n if (firstRun) firstRun = false\r\n }\r\n\r\n // apply arguments instead of spreading for performance.\r\n // @ts-ignore\r\n lastResult = memoizedResultFunc.apply(null, inputSelectorResults)\r\n\r\n return lastResult\r\n }, ...finalArgsMemoizeOptions) as unknown as Selector<\r\n GetStateFromSelectors,\r\n Result,\r\n GetParamsFromSelectors\r\n > &\r\n ExtractMemoizerFields\r\n\r\n return Object.assign(selector, {\r\n resultFunc,\r\n memoizedResultFunc,\r\n dependencies,\r\n dependencyRecomputations: () => dependencyRecomputations,\r\n resetDependencyRecomputations: () => {\r\n dependencyRecomputations = 0\r\n },\r\n lastResult: () => lastResult,\r\n recomputations: () => recomputations,\r\n resetRecomputations: () => {\r\n recomputations = 0\r\n },\r\n memoize,\r\n argsMemoize\r\n }) as OutputSelector<\r\n InputSelectors,\r\n Result,\r\n OverrideMemoizeFunction,\r\n OverrideArgsMemoizeFunction\r\n >\r\n }\r\n return createSelector as CreateSelectorFunction<\r\n MemoizeFunction,\r\n ArgsMemoizeFunction\r\n >\r\n}\r\n\r\n/**\r\n * Accepts one or more \"input selectors\" (either as separate arguments or a single array),\r\n * a single \"result function\" / \"combiner\", and an optional options object, and\r\n * generates a memoized selector function.\r\n *\r\n * @see {@link https://reselect.js.org/api/createSelector `createSelector`}\r\n *\r\n * @public\r\n */\r\nexport const createSelector =\r\n /* #__PURE__ */ createSelectorCreator(weakMapMemoize)\r\n","/**\n * Adapted from React: https://github.com/facebook/react/blob/master/packages/shared/formatProdErrorMessage.js\n *\n * Do not require this module directly! Use normal throw error calls. These messages will be replaced with error codes\n * during build.\n * @param {number} code\n */\nexport function formatProdErrorMessage(code: number) {\n return `Minified Redux error #${code}; visit https://redux.js.org/Errors?code=${code} for the full message or ` + 'use the non-minified dev environment for full errors. ';\n}","declare global {\n interface SymbolConstructor {\n readonly observable: symbol;\n }\n}\nconst $$observable = /* #__PURE__ */(() => typeof Symbol === 'function' && Symbol.observable || '@@observable')();\nexport default $$observable;","/**\n * These are private action types reserved by Redux.\n * For any unknown actions, you must return the current state.\n * If the current state is undefined, you must return the initial state.\n * Do not reference these action types directly in your code.\n */\n\nconst randomString = () => Math.random().toString(36).substring(7).split('').join('.');\nconst ActionTypes = {\n INIT: `@@redux/INIT${/* #__PURE__ */randomString()}`,\n REPLACE: `@@redux/REPLACE${/* #__PURE__ */randomString()}`,\n PROBE_UNKNOWN_ACTION: () => `@@redux/PROBE_UNKNOWN_ACTION${randomString()}`\n};\nexport default ActionTypes;","/**\n * @param obj The object to inspect.\n * @returns True if the argument appears to be a plain object.\n */\nexport default function isPlainObject(obj: any): obj is object {\n if (typeof obj !== 'object' || obj === null) return false;\n let proto = obj;\n while (Object.getPrototypeOf(proto) !== null) {\n proto = Object.getPrototypeOf(proto);\n }\n return Object.getPrototypeOf(obj) === proto || Object.getPrototypeOf(obj) === null;\n}","import { formatProdErrorMessage as _formatProdErrorMessage13 } from \"src/utils/formatProdErrorMessage\";\nimport { formatProdErrorMessage as _formatProdErrorMessage12 } from \"src/utils/formatProdErrorMessage\";\nimport { formatProdErrorMessage as _formatProdErrorMessage11 } from \"src/utils/formatProdErrorMessage\";\nimport { formatProdErrorMessage as _formatProdErrorMessage10 } from \"src/utils/formatProdErrorMessage\";\nimport { formatProdErrorMessage as _formatProdErrorMessage9 } from \"src/utils/formatProdErrorMessage\";\nimport { formatProdErrorMessage as _formatProdErrorMessage8 } from \"src/utils/formatProdErrorMessage\";\nimport { formatProdErrorMessage as _formatProdErrorMessage7 } from \"src/utils/formatProdErrorMessage\";\nimport { formatProdErrorMessage as _formatProdErrorMessage6 } from \"src/utils/formatProdErrorMessage\";\nimport { formatProdErrorMessage as _formatProdErrorMessage5 } from \"src/utils/formatProdErrorMessage\";\nimport { formatProdErrorMessage as _formatProdErrorMessage4 } from \"src/utils/formatProdErrorMessage\";\nimport { formatProdErrorMessage as _formatProdErrorMessage3 } from \"src/utils/formatProdErrorMessage\";\nimport { formatProdErrorMessage as _formatProdErrorMessage2 } from \"src/utils/formatProdErrorMessage\";\nimport { formatProdErrorMessage as _formatProdErrorMessage } from \"src/utils/formatProdErrorMessage\";\nimport $$observable from './utils/symbol-observable';\nimport { Store, StoreEnhancer, Dispatch, Observer, ListenerCallback, UnknownIfNonSpecific } from './types/store';\nimport { Action } from './types/actions';\nimport { Reducer } from './types/reducers';\nimport ActionTypes from './utils/actionTypes';\nimport isPlainObject from './utils/isPlainObject';\nimport { kindOf } from './utils/kindOf';\n\n/**\n * @deprecated\n *\n * **We recommend using the `configureStore` method\n * of the `@reduxjs/toolkit` package**, which replaces `createStore`.\n *\n * Redux Toolkit is our recommended approach for writing Redux logic today,\n * including store setup, reducers, data fetching, and more.\n *\n * **For more details, please read this Redux docs page:**\n * **https://redux.js.org/introduction/why-rtk-is-redux-today**\n *\n * `configureStore` from Redux Toolkit is an improved version of `createStore` that\n * simplifies setup and helps avoid common bugs.\n *\n * You should not be using the `redux` core package by itself today, except for learning purposes.\n * The `createStore` method from the core `redux` package will not be removed, but we encourage\n * all users to migrate to using Redux Toolkit for all Redux code.\n *\n * If you want to use `createStore` without this visual deprecation warning, use\n * the `legacy_createStore` import instead:\n *\n * `import { legacy_createStore as createStore} from 'redux'`\n *\n */\nexport function createStore(reducer: Reducer, enhancer?: StoreEnhancer): Store> & Ext;\n/**\n * @deprecated\n *\n * **We recommend using the `configureStore` method\n * of the `@reduxjs/toolkit` package**, which replaces `createStore`.\n *\n * Redux Toolkit is our recommended approach for writing Redux logic today,\n * including store setup, reducers, data fetching, and more.\n *\n * **For more details, please read this Redux docs page:**\n * **https://redux.js.org/introduction/why-rtk-is-redux-today**\n *\n * `configureStore` from Redux Toolkit is an improved version of `createStore` that\n * simplifies setup and helps avoid common bugs.\n *\n * You should not be using the `redux` core package by itself today, except for learning purposes.\n * The `createStore` method from the core `redux` package will not be removed, but we encourage\n * all users to migrate to using Redux Toolkit for all Redux code.\n *\n * If you want to use `createStore` without this visual deprecation warning, use\n * the `legacy_createStore` import instead:\n *\n * `import { legacy_createStore as createStore} from 'redux'`\n *\n */\nexport function createStore(reducer: Reducer, preloadedState?: PreloadedState | undefined, enhancer?: StoreEnhancer): Store> & Ext;\nexport function createStore(reducer: Reducer, preloadedState?: PreloadedState | StoreEnhancer | undefined, enhancer?: StoreEnhancer): Store> & Ext {\n if (typeof reducer !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage(2) : `Expected the root reducer to be a function. Instead, received: '${kindOf(reducer)}'`);\n }\n if (typeof preloadedState === 'function' && typeof enhancer === 'function' || typeof enhancer === 'function' && typeof arguments[3] === 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage2(0) : 'It looks like you are passing several store enhancers to ' + 'createStore(). This is not supported. Instead, compose them ' + 'together to a single function. See https://redux.js.org/tutorials/fundamentals/part-4-store#creating-a-store-with-enhancers for an example.');\n }\n if (typeof preloadedState === 'function' && typeof enhancer === 'undefined') {\n enhancer = (preloadedState as StoreEnhancer);\n preloadedState = undefined;\n }\n if (typeof enhancer !== 'undefined') {\n if (typeof enhancer !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage3(1) : `Expected the enhancer to be a function. Instead, received: '${kindOf(enhancer)}'`);\n }\n return enhancer(createStore)(reducer, (preloadedState as PreloadedState | undefined));\n }\n let currentReducer = reducer;\n let currentState: S | PreloadedState | undefined = (preloadedState as PreloadedState | undefined);\n let currentListeners: Map | null = new Map();\n let nextListeners = currentListeners;\n let listenerIdCounter = 0;\n let isDispatching = false;\n\n /**\n * This makes a shallow copy of currentListeners so we can use\n * nextListeners as a temporary list while dispatching.\n *\n * This prevents any bugs around consumers calling\n * subscribe/unsubscribe in the middle of a dispatch.\n */\n function ensureCanMutateNextListeners() {\n if (nextListeners === currentListeners) {\n nextListeners = new Map();\n currentListeners.forEach((listener, key) => {\n nextListeners.set(key, listener);\n });\n }\n }\n\n /**\n * Reads the state tree managed by the store.\n *\n * @returns The current state tree of your application.\n */\n function getState(): S {\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage4(3) : 'You may not call store.getState() while the reducer is executing. ' + 'The reducer has already received the state as an argument. ' + 'Pass it down from the top reducer instead of reading it from the store.');\n }\n return (currentState as S);\n }\n\n /**\n * Adds a change listener. It will be called any time an action is dispatched,\n * and some part of the state tree may potentially have changed. You may then\n * call `getState()` to read the current state tree inside the callback.\n *\n * You may call `dispatch()` from a change listener, with the following\n * caveats:\n *\n * 1. The subscriptions are snapshotted just before every `dispatch()` call.\n * If you subscribe or unsubscribe while the listeners are being invoked, this\n * will not have any effect on the `dispatch()` that is currently in progress.\n * However, the next `dispatch()` call, whether nested or not, will use a more\n * recent snapshot of the subscription list.\n *\n * 2. The listener should not expect to see all state changes, as the state\n * might have been updated multiple times during a nested `dispatch()` before\n * the listener is called. It is, however, guaranteed that all subscribers\n * registered before the `dispatch()` started will be called with the latest\n * state by the time it exits.\n *\n * @param listener A callback to be invoked on every dispatch.\n * @returns A function to remove this change listener.\n */\n function subscribe(listener: () => void) {\n if (typeof listener !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage5(4) : `Expected the listener to be a function. Instead, received: '${kindOf(listener)}'`);\n }\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage6(5) : 'You may not call store.subscribe() while the reducer is executing. ' + 'If you would like to be notified after the store has been updated, subscribe from a ' + 'component and invoke store.getState() in the callback to access the latest state. ' + 'See https://redux.js.org/api/store#subscribelistener for more details.');\n }\n let isSubscribed = true;\n ensureCanMutateNextListeners();\n const listenerId = listenerIdCounter++;\n nextListeners.set(listenerId, listener);\n return function unsubscribe() {\n if (!isSubscribed) {\n return;\n }\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage7(6) : 'You may not unsubscribe from a store listener while the reducer is executing. ' + 'See https://redux.js.org/api/store#subscribelistener for more details.');\n }\n isSubscribed = false;\n ensureCanMutateNextListeners();\n nextListeners.delete(listenerId);\n currentListeners = null;\n };\n }\n\n /**\n * Dispatches an action. It is the only way to trigger a state change.\n *\n * The `reducer` function, used to create the store, will be called with the\n * current state tree and the given `action`. Its return value will\n * be considered the **next** state of the tree, and the change listeners\n * will be notified.\n *\n * The base implementation only supports plain object actions. If you want to\n * dispatch a Promise, an Observable, a thunk, or something else, you need to\n * wrap your store creating function into the corresponding middleware. For\n * example, see the documentation for the `redux-thunk` package. Even the\n * middleware will eventually dispatch plain object actions using this method.\n *\n * @param action A plain object representing “what changed”. It is\n * a good idea to keep actions serializable so you can record and replay user\n * sessions, or use the time travelling `redux-devtools`. An action must have\n * a `type` property which may not be `undefined`. It is a good idea to use\n * string constants for action types.\n *\n * @returns For convenience, the same action object you dispatched.\n *\n * Note that, if you use a custom middleware, it may wrap `dispatch()` to\n * return something else (for example, a Promise you can await).\n */\n function dispatch(action: A) {\n if (!isPlainObject(action)) {\n throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage8(7) : `Actions must be plain objects. Instead, the actual type was: '${kindOf(action)}'. You may need to add middleware to your store setup to handle dispatching other values, such as 'redux-thunk' to handle dispatching functions. See https://redux.js.org/tutorials/fundamentals/part-4-store#middleware and https://redux.js.org/tutorials/fundamentals/part-6-async-logic#using-the-redux-thunk-middleware for examples.`);\n }\n if (typeof action.type === 'undefined') {\n throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage9(8) : 'Actions may not have an undefined \"type\" property. You may have misspelled an action type string constant.');\n }\n if (typeof action.type !== 'string') {\n throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage10(17) : `Action \"type\" property must be a string. Instead, the actual type was: '${kindOf(action.type)}'. Value was: '${action.type}' (stringified)`);\n }\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage11(9) : 'Reducers may not dispatch actions.');\n }\n try {\n isDispatching = true;\n currentState = currentReducer(currentState, action);\n } finally {\n isDispatching = false;\n }\n const listeners = currentListeners = nextListeners;\n listeners.forEach(listener => {\n listener();\n });\n return action;\n }\n\n /**\n * Replaces the reducer currently used by the store to calculate the state.\n *\n * You might need this if your app implements code splitting and you want to\n * load some of the reducers dynamically. You might also need this if you\n * implement a hot reloading mechanism for Redux.\n *\n * @param nextReducer The reducer for the store to use instead.\n */\n function replaceReducer(nextReducer: Reducer): void {\n if (typeof nextReducer !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage12(10) : `Expected the nextReducer to be a function. Instead, received: '${kindOf(nextReducer)}`);\n }\n currentReducer = ((nextReducer as unknown) as Reducer);\n\n // This action has a similar effect to ActionTypes.INIT.\n // Any reducers that existed in both the new and old rootReducer\n // will receive the previous state. This effectively populates\n // the new state tree with any relevant data from the old one.\n dispatch(({\n type: ActionTypes.REPLACE\n } as A));\n }\n\n /**\n * Interoperability point for observable/reactive libraries.\n * @returns A minimal observable of state changes.\n * For more information, see the observable proposal:\n * https://github.com/tc39/proposal-observable\n */\n function observable() {\n const outerSubscribe = subscribe;\n return {\n /**\n * The minimal observable subscription method.\n * @param observer Any object that can be used as an observer.\n * The observer object should have a `next` method.\n * @returns An object with an `unsubscribe` method that can\n * be used to unsubscribe the observable from the store, and prevent further\n * emission of values from the observable.\n */\n subscribe(observer: unknown) {\n if (typeof observer !== 'object' || observer === null) {\n throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage13(11) : `Expected the observer to be an object. Instead, received: '${kindOf(observer)}'`);\n }\n function observeState() {\n const observerAsObserver = (observer as Observer);\n if (observerAsObserver.next) {\n observerAsObserver.next(getState());\n }\n }\n observeState();\n const unsubscribe = outerSubscribe(observeState);\n return {\n unsubscribe\n };\n },\n [$$observable]() {\n return this;\n }\n };\n }\n\n // When a store is created, an \"INIT\" action is dispatched so that every\n // reducer returns their initial state. This effectively populates\n // the initial state tree.\n dispatch(({\n type: ActionTypes.INIT\n } as A));\n const store = (({\n dispatch: (dispatch as Dispatch),\n subscribe,\n getState,\n replaceReducer,\n [$$observable]: observable\n } as unknown) as Store & Ext);\n return store;\n}\n\n/**\n * Creates a Redux store that holds the state tree.\n *\n * **We recommend using `configureStore` from the\n * `@reduxjs/toolkit` package**, which replaces `createStore`:\n * **https://redux.js.org/introduction/why-rtk-is-redux-today**\n *\n * The only way to change the data in the store is to call `dispatch()` on it.\n *\n * There should only be a single store in your app. To specify how different\n * parts of the state tree respond to actions, you may combine several reducers\n * into a single reducer function by using `combineReducers`.\n *\n * @param {Function} reducer A function that returns the next state tree, given\n * the current state tree and the action to handle.\n *\n * @param {any} [preloadedState] The initial state. You may optionally specify it\n * to hydrate the state from the server in universal apps, or to restore a\n * previously serialized user session.\n * If you use `combineReducers` to produce the root reducer function, this must be\n * an object with the same shape as `combineReducers` keys.\n *\n * @param {Function} [enhancer] The store enhancer. You may optionally specify it\n * to enhance the store with third-party capabilities such as middleware,\n * time travel, persistence, etc. The only store enhancer that ships with Redux\n * is `applyMiddleware()`.\n *\n * @returns {Store} A Redux store that lets you read the state, dispatch actions\n * and subscribe to changes.\n */\nexport function legacy_createStore(reducer: Reducer, enhancer?: StoreEnhancer): Store> & Ext;\n/**\n * Creates a Redux store that holds the state tree.\n *\n * **We recommend using `configureStore` from the\n * `@reduxjs/toolkit` package**, which replaces `createStore`:\n * **https://redux.js.org/introduction/why-rtk-is-redux-today**\n *\n * The only way to change the data in the store is to call `dispatch()` on it.\n *\n * There should only be a single store in your app. To specify how different\n * parts of the state tree respond to actions, you may combine several reducers\n * into a single reducer function by using `combineReducers`.\n *\n * @param {Function} reducer A function that returns the next state tree, given\n * the current state tree and the action to handle.\n *\n * @param {any} [preloadedState] The initial state. You may optionally specify it\n * to hydrate the state from the server in universal apps, or to restore a\n * previously serialized user session.\n * If you use `combineReducers` to produce the root reducer function, this must be\n * an object with the same shape as `combineReducers` keys.\n *\n * @param {Function} [enhancer] The store enhancer. You may optionally specify it\n * to enhance the store with third-party capabilities such as middleware,\n * time travel, persistence, etc. The only store enhancer that ships with Redux\n * is `applyMiddleware()`.\n *\n * @returns {Store} A Redux store that lets you read the state, dispatch actions\n * and subscribe to changes.\n */\nexport function legacy_createStore(reducer: Reducer, preloadedState?: PreloadedState | undefined, enhancer?: StoreEnhancer): Store> & Ext;\nexport function legacy_createStore(reducer: Reducer, preloadedState?: PreloadedState | StoreEnhancer | undefined, enhancer?: StoreEnhancer): Store> & Ext {\n return createStore(reducer, (preloadedState as any), enhancer);\n}","import { formatProdErrorMessage as _formatProdErrorMessage3 } from \"src/utils/formatProdErrorMessage\";\nimport { formatProdErrorMessage as _formatProdErrorMessage2 } from \"src/utils/formatProdErrorMessage\";\nimport { formatProdErrorMessage as _formatProdErrorMessage } from \"src/utils/formatProdErrorMessage\";\nimport { Action } from './types/actions';\nimport { ActionFromReducersMapObject, PreloadedStateShapeFromReducersMapObject, Reducer, StateFromReducersMapObject } from './types/reducers';\nimport ActionTypes from './utils/actionTypes';\nimport isPlainObject from './utils/isPlainObject';\nimport warning from './utils/warning';\nimport { kindOf } from './utils/kindOf';\nfunction getUnexpectedStateShapeWarningMessage(inputState: object, reducers: {\n [key: string]: Reducer;\n}, action: Action, unexpectedKeyCache: {\n [key: string]: true;\n}) {\n const reducerKeys = Object.keys(reducers);\n const argumentName = action && action.type === ActionTypes.INIT ? 'preloadedState argument passed to createStore' : 'previous state received by the reducer';\n if (reducerKeys.length === 0) {\n return 'Store does not have a valid reducer. Make sure the argument passed ' + 'to combineReducers is an object whose values are reducers.';\n }\n if (!isPlainObject(inputState)) {\n return `The ${argumentName} has unexpected type of \"${kindOf(inputState)}\". Expected argument to be an object with the following ` + `keys: \"${reducerKeys.join('\", \"')}\"`;\n }\n const unexpectedKeys = Object.keys(inputState).filter(key => !reducers.hasOwnProperty(key) && !unexpectedKeyCache[key]);\n unexpectedKeys.forEach(key => {\n unexpectedKeyCache[key] = true;\n });\n if (action && action.type === ActionTypes.REPLACE) return;\n if (unexpectedKeys.length > 0) {\n return `Unexpected ${unexpectedKeys.length > 1 ? 'keys' : 'key'} ` + `\"${unexpectedKeys.join('\", \"')}\" found in ${argumentName}. ` + `Expected to find one of the known reducer keys instead: ` + `\"${reducerKeys.join('\", \"')}\". Unexpected keys will be ignored.`;\n }\n}\nfunction assertReducerShape(reducers: {\n [key: string]: Reducer;\n}) {\n Object.keys(reducers).forEach(key => {\n const reducer = reducers[key];\n const initialState = reducer(undefined, {\n type: ActionTypes.INIT\n });\n if (typeof initialState === 'undefined') {\n throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage(12) : `The slice reducer for key \"${key}\" returned undefined during initialization. ` + `If the state passed to the reducer is undefined, you must ` + `explicitly return the initial state. The initial state may ` + `not be undefined. If you don't want to set a value for this reducer, ` + `you can use null instead of undefined.`);\n }\n if (typeof reducer(undefined, {\n type: ActionTypes.PROBE_UNKNOWN_ACTION()\n }) === 'undefined') {\n throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage2(13) : `The slice reducer for key \"${key}\" returned undefined when probed with a random type. ` + `Don't try to handle '${ActionTypes.INIT}' or other actions in \"redux/*\" ` + `namespace. They are considered private. Instead, you must return the ` + `current state for any unknown actions, unless it is undefined, ` + `in which case you must return the initial state, regardless of the ` + `action type. The initial state may not be undefined, but can be null.`);\n }\n });\n}\n\n/**\n * Turns an object whose values are different reducer functions, into a single\n * reducer function. It will call every child reducer, and gather their results\n * into a single state object, whose keys correspond to the keys of the passed\n * reducer functions.\n *\n * @template S Combined state object type.\n *\n * @param reducers An object whose values correspond to different reducer\n * functions that need to be combined into one. One handy way to obtain it\n * is to use `import * as reducers` syntax. The reducers may never\n * return undefined for any action. Instead, they should return their\n * initial state if the state passed to them was undefined, and the current\n * state for any unrecognized action.\n *\n * @returns A reducer function that invokes every reducer inside the passed\n * object, and builds a state object with the same shape.\n */\nexport default function combineReducers(reducers: M): M[keyof M] extends Reducer | undefined ? Reducer, ActionFromReducersMapObject, Partial>> : never;\nexport default function combineReducers(reducers: {\n [key: string]: Reducer;\n}) {\n const reducerKeys = Object.keys(reducers);\n const finalReducers: {\n [key: string]: Reducer;\n } = {};\n for (let i = 0; i < reducerKeys.length; i++) {\n const key = reducerKeys[i];\n if (process.env.NODE_ENV !== 'production') {\n if (typeof reducers[key] === 'undefined') {\n warning(`No reducer provided for key \"${key}\"`);\n }\n }\n if (typeof reducers[key] === 'function') {\n finalReducers[key] = reducers[key];\n }\n }\n const finalReducerKeys = Object.keys(finalReducers);\n\n // This is used to make sure we don't warn about the same\n // keys multiple times.\n let unexpectedKeyCache: {\n [key: string]: true;\n };\n if (process.env.NODE_ENV !== 'production') {\n unexpectedKeyCache = {};\n }\n let shapeAssertionError: unknown;\n try {\n assertReducerShape(finalReducers);\n } catch (e) {\n shapeAssertionError = e;\n }\n return function combination(state: StateFromReducersMapObject = {}, action: Action) {\n if (shapeAssertionError) {\n throw shapeAssertionError;\n }\n if (process.env.NODE_ENV !== 'production') {\n const warningMessage = getUnexpectedStateShapeWarningMessage(state, finalReducers, action, unexpectedKeyCache);\n if (warningMessage) {\n warning(warningMessage);\n }\n }\n let hasChanged = false;\n const nextState: StateFromReducersMapObject = {};\n for (let i = 0; i < finalReducerKeys.length; i++) {\n const key = finalReducerKeys[i];\n const reducer = finalReducers[key];\n const previousStateForKey = state[key];\n const nextStateForKey = reducer(previousStateForKey, action);\n if (typeof nextStateForKey === 'undefined') {\n const actionType = action && action.type;\n throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage3(14) : `When called with an action of type ${actionType ? `\"${String(actionType)}\"` : '(unknown type)'}, the slice reducer for key \"${key}\" returned undefined. ` + `To ignore an action, you must explicitly return the previous state. ` + `If you want this reducer to hold no value, you can return null instead of undefined.`);\n }\n nextState[key] = nextStateForKey;\n hasChanged = hasChanged || nextStateForKey !== previousStateForKey;\n }\n hasChanged = hasChanged || finalReducerKeys.length !== Object.keys(state).length;\n return hasChanged ? nextState : state;\n };\n}","type Func = (...a: T) => R;\n\n/**\n * Composes single-argument functions from right to left. The rightmost\n * function can take multiple arguments as it provides the signature for the\n * resulting composite function.\n *\n * @param funcs The functions to compose.\n * @returns A function obtained by composing the argument functions from right\n * to left. For example, `compose(f, g, h)` is identical to doing\n * `(...args) => f(g(h(...args)))`.\n */\nexport default function compose(): (a: R) => R;\nexport default function compose(f: F): F;\n\n/* two functions */\nexport default function compose(f1: (a: A) => R, f2: Func): Func;\n\n/* three functions */\nexport default function compose(f1: (b: B) => R, f2: (a: A) => B, f3: Func): Func;\n\n/* four functions */\nexport default function compose(f1: (c: C) => R, f2: (b: B) => C, f3: (a: A) => B, f4: Func): Func;\n\n/* rest */\nexport default function compose(f1: (a: any) => R, ...funcs: Function[]): (...args: any[]) => R;\nexport default function compose(...funcs: Function[]): (...args: any[]) => R;\nexport default function compose(...funcs: Function[]) {\n if (funcs.length === 0) {\n // infer the argument type so it is usable in inference down the line\n return (arg: T) => arg;\n }\n if (funcs.length === 1) {\n return funcs[0];\n }\n return funcs.reduce((a, b) => (...args: any) => a(b(...args)));\n}","// src/index.ts\nfunction createThunkMiddleware(extraArgument) {\n const middleware = ({ dispatch, getState }) => (next) => (action) => {\n if (typeof action === \"function\") {\n return action(dispatch, getState, extraArgument);\n }\n return next(action);\n };\n return middleware;\n}\nvar thunk = createThunkMiddleware();\nvar withExtraArgument = createThunkMiddleware;\nexport {\n thunk,\n withExtraArgument\n};\n","import type { Action, ActionCreator, StoreEnhancer } from 'redux';\nimport { compose } from 'redux';\n/**\r\n * @public\r\n */\n\nexport interface DevToolsEnhancerOptions {\n /**\r\n * the instance name to be showed on the monitor page. Default value is `document.title`.\r\n * If not specified and there's no document title, it will consist of `tabId` and `instanceId`.\r\n */\n name?: string;\n /**\r\n * action creators functions to be available in the Dispatcher.\r\n */\n\n actionCreators?: ActionCreator[] | {\n [key: string]: ActionCreator;\n };\n /**\r\n * if more than one action is dispatched in the indicated interval, all new actions will be collected and sent at once.\r\n * It is the joint between performance and speed. When set to `0`, all actions will be sent instantly.\r\n * Set it to a higher value when experiencing perf issues (also `maxAge` to a lower value).\r\n *\r\n * @default 500 ms.\r\n */\n\n latency?: number;\n /**\r\n * (> 1) - maximum allowed actions to be stored in the history tree. The oldest actions are removed once maxAge is reached. It's critical for performance.\r\n *\r\n * @default 50\r\n */\n\n maxAge?: number;\n /**\r\n * Customizes how actions and state are serialized and deserialized. Can be a boolean or object. If given a boolean, the behavior is the same as if you\r\n * were to pass an object and specify `options` as a boolean. Giving an object allows fine-grained customization using the `replacer` and `reviver`\r\n * functions.\r\n */\n\n serialize?: boolean | {\n /**\r\n * - `undefined` - will use regular `JSON.stringify` to send data (it's the fast mode).\r\n * - `false` - will handle also circular references.\r\n * - `true` - will handle also date, regex, undefined, error objects, symbols, maps, sets and functions.\r\n * - object, which contains `date`, `regex`, `undefined`, `error`, `symbol`, `map`, `set` and `function` keys.\r\n * For each of them you can indicate if to include (by setting as `true`).\r\n * For `function` key you can also specify a custom function which handles serialization.\r\n * See [`jsan`](https://github.com/kolodny/jsan) for more details.\r\n */\n options?: undefined | boolean | {\n date?: true;\n regex?: true;\n undefined?: true;\n error?: true;\n symbol?: true;\n map?: true;\n set?: true;\n function?: true | ((fn: (...args: any[]) => any) => string);\n };\n /**\r\n * [JSON replacer function](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify#The_replacer_parameter) used for both actions and states stringify.\r\n * In addition, you can specify a data type by adding a [`__serializedType__`](https://github.com/zalmoxisus/remotedev-serialize/blob/master/helpers/index.js#L4)\r\n * key. So you can deserialize it back while importing or persisting data.\r\n * Moreover, it will also [show a nice preview showing the provided custom type](https://cloud.githubusercontent.com/assets/7957859/21814330/a17d556a-d761-11e6-85ef-159dd12f36c5.png):\r\n */\n\n replacer?: (key: string, value: unknown) => any;\n /**\r\n * [JSON `reviver` function](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/JSON/parse#Using_the_reviver_parameter)\r\n * used for parsing the imported actions and states. See [`remotedev-serialize`](https://github.com/zalmoxisus/remotedev-serialize/blob/master/immutable/serialize.js#L8-L41)\r\n * as an example on how to serialize special data types and get them back.\r\n */\n\n reviver?: (key: string, value: unknown) => any;\n /**\r\n * Automatically serialize/deserialize immutablejs via [remotedev-serialize](https://github.com/zalmoxisus/remotedev-serialize).\r\n * Just pass the Immutable library. It will support all ImmutableJS structures. You can even export them into a file and get them back.\r\n * The only exception is `Record` class, for which you should pass this in addition the references to your classes in `refs`.\r\n */\n\n immutable?: any;\n /**\r\n * ImmutableJS `Record` classes used to make possible restore its instances back when importing, persisting...\r\n */\n\n refs?: any;\n };\n /**\r\n * function which takes `action` object and id number as arguments, and should return `action` object back.\r\n */\n\n actionSanitizer?: (action: A, id: number) => A;\n /**\r\n * function which takes `state` object and index as arguments, and should return `state` object back.\r\n */\n\n stateSanitizer?: (state: S, index: number) => S;\n /**\r\n * *string or array of strings as regex* - actions types to be hidden / shown in the monitors (while passed to the reducers).\r\n * If `actionsAllowlist` specified, `actionsDenylist` is ignored.\r\n */\n\n actionsDenylist?: string | string[];\n /**\r\n * *string or array of strings as regex* - actions types to be hidden / shown in the monitors (while passed to the reducers).\r\n * If `actionsAllowlist` specified, `actionsDenylist` is ignored.\r\n */\n\n actionsAllowlist?: string | string[];\n /**\r\n * called for every action before sending, takes `state` and `action` object, and returns `true` in case it allows sending the current data to the monitor.\r\n * Use it as a more advanced version of `actionsDenylist`/`actionsAllowlist` parameters.\r\n */\n\n predicate?: (state: S, action: A) => boolean;\n /**\r\n * if specified as `false`, it will not record the changes till clicking on `Start recording` button.\r\n * Available only for Redux enhancer, for others use `autoPause`.\r\n *\r\n * @default true\r\n */\n\n shouldRecordChanges?: boolean;\n /**\r\n * if specified, whenever clicking on `Pause recording` button and there are actions in the history log, will add this action type.\r\n * If not specified, will commit when paused. Available only for Redux enhancer.\r\n *\r\n * @default \"@@PAUSED\"\"\r\n */\n\n pauseActionType?: string;\n /**\r\n * auto pauses when the extension’s window is not opened, and so has zero impact on your app when not in use.\r\n * Not available for Redux enhancer (as it already does it but storing the data to be sent).\r\n *\r\n * @default false\r\n */\n\n autoPause?: boolean;\n /**\r\n * if specified as `true`, it will not allow any non-monitor actions to be dispatched till clicking on `Unlock changes` button.\r\n * Available only for Redux enhancer.\r\n *\r\n * @default false\r\n */\n\n shouldStartLocked?: boolean;\n /**\r\n * if set to `false`, will not recompute the states on hot reloading (or on replacing the reducers). Available only for Redux enhancer.\r\n *\r\n * @default true\r\n */\n\n shouldHotReload?: boolean;\n /**\r\n * if specified as `true`, whenever there's an exception in reducers, the monitors will show the error message, and next actions will not be dispatched.\r\n *\r\n * @default false\r\n */\n\n shouldCatchErrors?: boolean;\n /**\r\n * If you want to restrict the extension, specify the features you allow.\r\n * If not specified, all of the features are enabled. When set as an object, only those included as `true` will be allowed.\r\n * Note that except `true`/`false`, `import` and `export` can be set as `custom` (which is by default for Redux enhancer), meaning that the importing/exporting occurs on the client side.\r\n * Otherwise, you'll get/set the data right from the monitor part.\r\n */\n\n features?: {\n /**\r\n * start/pause recording of dispatched actions\r\n */\n pause?: boolean;\n /**\r\n * lock/unlock dispatching actions and side effects\r\n */\n\n lock?: boolean;\n /**\r\n * persist states on page reloading\r\n */\n\n persist?: boolean;\n /**\r\n * export history of actions in a file\r\n */\n\n export?: boolean | 'custom';\n /**\r\n * import history of actions from a file\r\n */\n\n import?: boolean | 'custom';\n /**\r\n * jump back and forth (time travelling)\r\n */\n\n jump?: boolean;\n /**\r\n * skip (cancel) actions\r\n */\n\n skip?: boolean;\n /**\r\n * drag and drop actions in the history list\r\n */\n\n reorder?: boolean;\n /**\r\n * dispatch custom actions or action creators\r\n */\n\n dispatch?: boolean;\n /**\r\n * generate tests for the selected actions\r\n */\n\n test?: boolean;\n };\n /**\r\n * Set to true or a stacktrace-returning function to record call stack traces for dispatched actions.\r\n * Defaults to false.\r\n */\n\n trace?: boolean | ((action: A) => string);\n /**\r\n * The maximum number of stack trace entries to record per action. Defaults to 10.\r\n */\n\n traceLimit?: number;\n}\ntype Compose = typeof compose;\ninterface ComposeWithDevTools {\n (options: DevToolsEnhancerOptions): Compose;\n (...funcs: StoreEnhancer[]): StoreEnhancer;\n}\n/**\r\n * @public\r\n */\n\nexport const composeWithDevTools: ComposeWithDevTools = typeof window !== 'undefined' && (window as any).__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ ? (window as any).__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ : function () {\n if (arguments.length === 0) return undefined;\n if (typeof arguments[0] === 'object') return compose;\n return compose.apply(null, ((arguments as any) as Function[]));\n};\n/**\r\n * @public\r\n */\n\nexport const devToolsEnhancer: {\n (options: DevToolsEnhancerOptions): StoreEnhancer;\n} = typeof window !== 'undefined' && (window as any).__REDUX_DEVTOOLS_EXTENSION__ ? (window as any).__REDUX_DEVTOOLS_EXTENSION__ : function () {\n return function (noop) {\n return noop;\n };\n};","import { current, isDraft } from 'immer';\nimport { createSelectorCreator, weakMapMemoize } from 'reselect';\nexport const createDraftSafeSelectorCreator: typeof createSelectorCreator = (...args: unknown[]) => {\n const createSelector = (createSelectorCreator as any)(...args);\n return (...args: unknown[]) => {\n const selector = createSelector(...args);\n\n const wrappedSelector = (value: unknown, ...rest: unknown[]) => selector(isDraft(value) ? current(value) : value, ...rest);\n\n Object.assign(wrappedSelector, selector);\n return (wrappedSelector as any);\n };\n};\n/**\r\n * \"Draft-Safe\" version of `reselect`'s `createSelector`:\r\n * If an `immer`-drafted object is passed into the resulting selector's first argument,\r\n * the selector will act on the current draft value, instead of returning a cached value\r\n * that might be possibly outdated if the draft has been modified since.\r\n * @public\r\n */\n\nexport const createDraftSafeSelector = createDraftSafeSelectorCreator(weakMapMemoize);","import { formatProdErrorMessage as _formatProdErrorMessage } from \"@reduxjs/toolkit\";\nimport { isAction } from 'redux';\nimport type { IsUnknownOrNonInferrable, IfMaybeUndefined, IfVoid, IsAny } from './tsHelpers';\nimport { hasMatchFunction } from './tsHelpers';\n/**\r\n * An action with a string type and an associated payload. This is the\r\n * type of action returned by `createAction()` action creators.\r\n *\r\n * @template P The type of the action's payload.\r\n * @template T the type used for the action type.\r\n * @template M The type of the action's meta (optional)\r\n * @template E The type of the action's error (optional)\r\n *\r\n * @public\r\n */\n\nexport type PayloadAction

= {\n payload: P;\n type: T;\n} & ([M] extends [never] ? {} : {\n meta: M;\n}) & ([E] extends [never] ? {} : {\n error: E;\n});\n/**\r\n * A \"prepare\" method to be used as the second parameter of `createAction`.\r\n * Takes any number of arguments and returns a Flux Standard Action without\r\n * type (will be added later) that *must* contain a payload (might be undefined).\r\n *\r\n * @public\r\n */\n\nexport type PrepareAction

= ((...args: any[]) => {\n payload: P;\n}) | ((...args: any[]) => {\n payload: P;\n meta: any;\n}) | ((...args: any[]) => {\n payload: P;\n error: any;\n}) | ((...args: any[]) => {\n payload: P;\n meta: any;\n error: any;\n});\n/**\r\n * Internal version of `ActionCreatorWithPreparedPayload`. Not to be used externally.\r\n *\r\n * @internal\r\n */\n\nexport type _ActionCreatorWithPreparedPayload | void, T extends string = string> = PA extends PrepareAction ? ActionCreatorWithPreparedPayload, P, T, ReturnType extends {\n error: infer E;\n} ? E : never, ReturnType extends {\n meta: infer M;\n} ? M : never> : void;\n/**\r\n * Basic type for all action creators.\r\n *\r\n * @inheritdoc {redux#ActionCreator}\r\n */\n\nexport interface BaseActionCreator {\n type: T;\n match: (action: unknown) => action is PayloadAction;\n}\n/**\r\n * An action creator that takes multiple arguments that are passed\r\n * to a `PrepareAction` method to create the final Action.\r\n * @typeParam Args arguments for the action creator function\r\n * @typeParam P `payload` type\r\n * @typeParam T `type` name\r\n * @typeParam E optional `error` type\r\n * @typeParam M optional `meta` type\r\n *\r\n * @inheritdoc {redux#ActionCreator}\r\n *\r\n * @public\r\n */\n\nexport interface ActionCreatorWithPreparedPayload extends BaseActionCreator {\n /**\r\n * Calling this {@link redux#ActionCreator} with `Args` will return\r\n * an Action with a payload of type `P` and (depending on the `PrepareAction`\r\n * method used) a `meta`- and `error` property of types `M` and `E` respectively.\r\n */\n (...args: Args): PayloadAction;\n}\n/**\r\n * An action creator of type `T` that takes an optional payload of type `P`.\r\n *\r\n * @inheritdoc {redux#ActionCreator}\r\n *\r\n * @public\r\n */\n\nexport interface ActionCreatorWithOptionalPayload extends BaseActionCreator {\n /**\r\n * Calling this {@link redux#ActionCreator} with an argument will\r\n * return a {@link PayloadAction} of type `T` with a payload of `P`.\r\n * Calling it without an argument will return a PayloadAction with a payload of `undefined`.\r\n */\n (payload?: P): PayloadAction;\n}\n/**\r\n * An action creator of type `T` that takes no payload.\r\n *\r\n * @inheritdoc {redux#ActionCreator}\r\n *\r\n * @public\r\n */\n\nexport interface ActionCreatorWithoutPayload extends BaseActionCreator {\n /**\r\n * Calling this {@link redux#ActionCreator} will\r\n * return a {@link PayloadAction} of type `T` with a payload of `undefined`\r\n */\n (noArgument: void): PayloadAction;\n}\n/**\r\n * An action creator of type `T` that requires a payload of type P.\r\n *\r\n * @inheritdoc {redux#ActionCreator}\r\n *\r\n * @public\r\n */\n\nexport interface ActionCreatorWithPayload extends BaseActionCreator {\n /**\r\n * Calling this {@link redux#ActionCreator} with an argument will\r\n * return a {@link PayloadAction} of type `T` with a payload of `P`\r\n */\n (payload: P): PayloadAction;\n}\n/**\r\n * An action creator of type `T` whose `payload` type could not be inferred. Accepts everything as `payload`.\r\n *\r\n * @inheritdoc {redux#ActionCreator}\r\n *\r\n * @public\r\n */\n\nexport interface ActionCreatorWithNonInferrablePayload extends BaseActionCreator {\n /**\r\n * Calling this {@link redux#ActionCreator} with an argument will\r\n * return a {@link PayloadAction} of type `T` with a payload\r\n * of exactly the type of the argument.\r\n */\n (payload: PT): PayloadAction;\n}\n/**\r\n * An action creator that produces actions with a `payload` attribute.\r\n *\r\n * @typeParam P the `payload` type\r\n * @typeParam T the `type` of the resulting action\r\n * @typeParam PA if the resulting action is preprocessed by a `prepare` method, the signature of said method.\r\n *\r\n * @public\r\n */\n\nexport type PayloadActionCreator

| void = void> = IfPrepareActionMethodProvided, // else\nIsAny, IsUnknownOrNonInferrable, // else\nIfVoid, // else\nIfMaybeUndefined, // else\nActionCreatorWithPayload>>>>>;\n/**\r\n * A utility function to create an action creator for the given action type\r\n * string. The action creator accepts a single argument, which will be included\r\n * in the action object as a field called payload. The action creator function\r\n * will also have its toString() overridden so that it returns the action type.\r\n *\r\n * @param type The action type to use for created actions.\r\n * @param prepare (optional) a method that takes any number of arguments and returns { payload } or { payload, meta }.\r\n * If this is given, the resulting action creator will pass its arguments to this method to calculate payload & meta.\r\n *\r\n * @public\r\n */\n\nexport function createAction

(type: T): PayloadActionCreator;\n/**\r\n * A utility function to create an action creator for the given action type\r\n * string. The action creator accepts a single argument, which will be included\r\n * in the action object as a field called payload. The action creator function\r\n * will also have its toString() overridden so that it returns the action type.\r\n *\r\n * @param type The action type to use for created actions.\r\n * @param prepare (optional) a method that takes any number of arguments and returns { payload } or { payload, meta }.\r\n * If this is given, the resulting action creator will pass its arguments to this method to calculate payload & meta.\r\n *\r\n * @public\r\n */\n\nexport function createAction, T extends string = string>(type: T, prepareAction: PA): PayloadActionCreator['payload'], T, PA>;\nexport function createAction(type: string, prepareAction?: Function): any {\n function actionCreator(...args: any[]) {\n if (prepareAction) {\n let prepared = prepareAction(...args);\n\n if (!prepared) {\n throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage(0) : 'prepareAction did not return an object');\n }\n\n return {\n type,\n payload: prepared.payload,\n ...('meta' in prepared && {\n meta: prepared.meta\n }),\n ...('error' in prepared && {\n error: prepared.error\n })\n };\n }\n\n return {\n type,\n payload: args[0]\n };\n }\n\n actionCreator.toString = () => `${type}`;\n\n actionCreator.type = type;\n\n actionCreator.match = (action: unknown): action is PayloadAction => isAction(action) && action.type === type;\n\n return actionCreator;\n}\n/**\r\n * Returns true if value is an RTK-like action creator, with a static type property and match method.\r\n */\n\nexport function isActionCreator(action: unknown): action is BaseActionCreator & Function {\n return typeof action === 'function' && 'type' in action && // hasMatchFunction only wants Matchers but I don't see the point in rewriting it\n hasMatchFunction((action as any));\n}\n/**\r\n * Returns true if value is an action with a string type and valid Flux Standard Action keys.\r\n */\n\nexport function isFSA(action: unknown): action is {\n type: string;\n payload?: unknown;\n error?: unknown;\n meta?: unknown;\n} {\n return isAction(action) && Object.keys(action).every(isValidKey);\n}\n\nfunction isValidKey(key: string) {\n return ['type', 'payload', 'error', 'meta'].indexOf(key) > -1;\n} // helper types for more readable typings\n\n\ntype IfPrepareActionMethodProvided | void, True, False> = PA extends (...args: any[]) => any ? True : False;","import { Action } from '../types/actions';\nimport isPlainObject from './isPlainObject';\nexport default function isAction(action: unknown): action is Action {\n return isPlainObject(action) && 'type' in action && typeof (action as Record<'type', unknown>).type === 'string';\n}","import { formatProdErrorMessage as _formatProdErrorMessage } from \"@reduxjs/toolkit\";\nimport { produce as createNextState, isDraftable } from 'immer';\nimport type { Middleware, StoreEnhancer } from 'redux';\nexport function getTimeMeasureUtils(maxDelay: number, fnName: string) {\n let elapsed = 0;\n return {\n measureTime(fn: () => T): T {\n const started = Date.now();\n\n try {\n return fn();\n } finally {\n const finished = Date.now();\n elapsed += finished - started;\n }\n },\n\n warnIfExceeded() {\n if (elapsed > maxDelay) {\n console.warn(`${fnName} took ${elapsed}ms, which is more than the warning threshold of ${maxDelay}ms. \nIf your state or actions are very large, you may want to disable the middleware as it might cause too much of a slowdown in development mode. See https://redux-toolkit.js.org/api/getDefaultMiddleware for instructions.\nIt is disabled in production builds, so you don't need to worry about that.`);\n }\n }\n\n };\n}\nexport function delay(ms: number) {\n return new Promise(resolve => setTimeout(resolve, ms));\n}\nexport function find(iterable: Iterable, comparator: (item: T) => boolean): T | undefined {\n for (const entry of iterable) {\n if (comparator(entry)) {\n return entry;\n }\n }\n\n return undefined;\n}\nexport class Tuple = []> extends Array {\n constructor(length: number);\n constructor(...items: Items);\n\n constructor(...items: any[]) {\n super(...items);\n Object.setPrototypeOf(this, Tuple.prototype);\n }\n\n static get [Symbol.species]() {\n return (Tuple as any);\n }\n\n concat>(items: Tuple): Tuple<[...Items, ...AdditionalItems]>;\n concat>(items: AdditionalItems): Tuple<[...Items, ...AdditionalItems]>;\n concat>(...items: AdditionalItems): Tuple<[...Items, ...AdditionalItems]>;\n\n concat(...arr: any[]) {\n return super.concat.apply(this, arr);\n }\n\n prepend>(items: Tuple): Tuple<[...AdditionalItems, ...Items]>;\n prepend>(items: AdditionalItems): Tuple<[...AdditionalItems, ...Items]>;\n prepend>(...items: AdditionalItems): Tuple<[...AdditionalItems, ...Items]>;\n\n prepend(...arr: any[]) {\n if (arr.length === 1 && Array.isArray(arr[0])) {\n return new Tuple(...arr[0].concat(this));\n }\n\n return new Tuple(...arr.concat(this));\n }\n\n}\nexport function freezeDraftable(val: T) {\n return isDraftable(val) ? createNextState(val, () => {}) : val;\n}\ninterface WeakMapEmplaceHandler {\n /**\r\n * Will be called to get value, if no value is currently in map.\r\n */\n insert?(key: K, map: WeakMap): V;\n /**\r\n * Will be called to update a value, if one exists already.\r\n */\n\n update?(previous: V, key: K, map: WeakMap): V;\n}\ninterface MapEmplaceHandler {\n /**\r\n * Will be called to get value, if no value is currently in map.\r\n */\n insert?(key: K, map: Map): V;\n /**\r\n * Will be called to update a value, if one exists already.\r\n */\n\n update?(previous: V, key: K, map: Map): V;\n}\nexport function emplace(map: Map, key: K, handler: MapEmplaceHandler): V;\nexport function emplace(map: WeakMap, key: K, handler: WeakMapEmplaceHandler): V;\n/**\r\n * Allow inserting a new value, or updating an existing one\r\n * @throws if called for a key with no current value and no `insert` handler is provided\r\n * @returns current value in map (after insertion/updating)\r\n * ```ts\r\n * // return current value if already in map, otherwise initialise to 0 and return that\r\n * const num = emplace(map, key, {\r\n * insert: () => 0\r\n * })\r\n *\r\n * // increase current value by one if already in map, otherwise initialise to 0\r\n * const num = emplace(map, key, {\r\n * update: (n) => n + 1,\r\n * insert: () => 0,\r\n * })\r\n *\r\n * // only update if value's already in the map - and increase it by one\r\n * if (map.has(key)) {\r\n * const num = emplace(map, key, {\r\n * update: (n) => n + 1,\r\n * })\r\n * }\r\n * ```\r\n *\r\n * @remarks\r\n * Based on https://github.com/tc39/proposal-upsert currently in Stage 2 - maybe in a few years we'll be able to replace this with direct method calls\r\n */\n\nexport function emplace(map: WeakMap, key: K, handler: WeakMapEmplaceHandler): V {\n if (map.has(key)) {\n let value = (map.get(key) as V);\n\n if (handler.update) {\n value = handler.update(value, key, map);\n map.set(key, value);\n }\n\n return value;\n }\n\n if (!handler.insert) throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage(10) : 'No insert provided for key not already in map');\n const inserted = handler.insert(key, map);\n map.set(key, inserted);\n return inserted;\n}","import type { Middleware, UnknownAction } from 'redux';\nimport type { ThunkMiddleware } from 'redux-thunk';\nimport { thunk as thunkMiddleware, withExtraArgument } from 'redux-thunk';\nimport type { ActionCreatorInvariantMiddlewareOptions } from './actionCreatorInvariantMiddleware';\nimport { createActionCreatorInvariantMiddleware } from './actionCreatorInvariantMiddleware';\nimport type { ImmutableStateInvariantMiddlewareOptions } from './immutableStateInvariantMiddleware';\n/* PROD_START_REMOVE_UMD */\n\nimport { createImmutableStateInvariantMiddleware } from './immutableStateInvariantMiddleware';\n/* PROD_STOP_REMOVE_UMD */\n\nimport type { SerializableStateInvariantMiddlewareOptions } from './serializableStateInvariantMiddleware';\nimport { createSerializableStateInvariantMiddleware } from './serializableStateInvariantMiddleware';\nimport type { ExcludeFromTuple } from './tsHelpers';\nimport { Tuple } from './utils';\n\nfunction isBoolean(x: any): x is boolean {\n return typeof x === 'boolean';\n}\n\ninterface ThunkOptions {\n extraArgument: E;\n}\ninterface GetDefaultMiddlewareOptions {\n thunk?: boolean | ThunkOptions;\n immutableCheck?: boolean | ImmutableStateInvariantMiddlewareOptions;\n serializableCheck?: boolean | SerializableStateInvariantMiddlewareOptions;\n actionCreatorCheck?: boolean | ActionCreatorInvariantMiddlewareOptions;\n}\nexport type ThunkMiddlewareFor = O extends {\n thunk: false;\n} ? never : O extends {\n thunk: {\n extraArgument: infer E;\n };\n} ? ThunkMiddleware : ThunkMiddleware;\nexport type GetDefaultMiddleware = (options?: O) => Tuple], never>>;\nexport const buildGetDefaultMiddleware = (): GetDefaultMiddleware => function getDefaultMiddleware(options) {\n const {\n thunk = true,\n immutableCheck = true,\n serializableCheck = true,\n actionCreatorCheck = true\n } = options ?? {};\n let middlewareArray = new Tuple();\n\n if (thunk) {\n if (isBoolean(thunk)) {\n middlewareArray.push(thunkMiddleware);\n } else {\n middlewareArray.push(withExtraArgument(thunk.extraArgument));\n }\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if (immutableCheck) {\n /* PROD_START_REMOVE_UMD */\n let immutableOptions: ImmutableStateInvariantMiddlewareOptions = {};\n\n if (!isBoolean(immutableCheck)) {\n immutableOptions = immutableCheck;\n }\n\n middlewareArray.unshift(createImmutableStateInvariantMiddleware(immutableOptions));\n /* PROD_STOP_REMOVE_UMD */\n }\n\n if (serializableCheck) {\n let serializableOptions: SerializableStateInvariantMiddlewareOptions = {};\n\n if (!isBoolean(serializableCheck)) {\n serializableOptions = serializableCheck;\n }\n\n middlewareArray.push(createSerializableStateInvariantMiddleware(serializableOptions));\n }\n\n if (actionCreatorCheck) {\n let actionCreatorOptions: ActionCreatorInvariantMiddlewareOptions = {};\n\n if (!isBoolean(actionCreatorCheck)) {\n actionCreatorOptions = actionCreatorCheck;\n }\n\n middlewareArray.unshift(createActionCreatorInvariantMiddleware(actionCreatorOptions));\n }\n }\n\n return (middlewareArray as any);\n};","import type { StoreEnhancer } from 'redux';\nexport const SHOULD_AUTOBATCH = 'RTK_autoBatch';\nexport const prepareAutoBatched = () => (payload: T): {\n payload: T;\n meta: unknown;\n} => ({\n payload,\n meta: {\n [SHOULD_AUTOBATCH]: true\n }\n});\n\nconst createQueueWithTimer = (timeout: number) => {\n return (notify: () => void) => {\n setTimeout(notify, timeout);\n };\n}; // requestAnimationFrame won't exist in SSR environments.\n// Fall back to a vague approximation just to keep from erroring.\n\n\nconst rAF = typeof window !== 'undefined' && window.requestAnimationFrame ? window.requestAnimationFrame : createQueueWithTimer(10);\nexport type AutoBatchOptions = {\n type: 'tick';\n} | {\n type: 'timer';\n timeout: number;\n} | {\n type: 'raf';\n} | {\n type: 'callback';\n queueNotification: (notify: () => void) => void;\n};\n/**\r\n * A Redux store enhancer that watches for \"low-priority\" actions, and delays\r\n * notifying subscribers until either the queued callback executes or the\r\n * next \"standard-priority\" action is dispatched.\r\n *\r\n * This allows dispatching multiple \"low-priority\" actions in a row with only\r\n * a single subscriber notification to the UI after the sequence of actions\r\n * is finished, thus improving UI re-render performance.\r\n *\r\n * Watches for actions with the `action.meta[SHOULD_AUTOBATCH]` attribute.\r\n * This can be added to `action.meta` manually, or by using the\r\n * `prepareAutoBatched` helper.\r\n *\r\n * By default, it will queue a notification for the end of the event loop tick.\r\n * However, you can pass several other options to configure the behavior:\r\n * - `{type: 'tick'}`: queues using `queueMicrotask`\r\n * - `{type: 'timer, timeout: number}`: queues using `setTimeout`\r\n * - `{type: 'raf'}`: queues using `requestAnimationFrame` (default)\r\n * - `{type: 'callback', queueNotification: (notify: () => void) => void}`: lets you provide your own callback\r\n *\r\n *\r\n */\n\nexport const autoBatchEnhancer = (options: AutoBatchOptions = {\n type: 'raf'\n}): StoreEnhancer => next => (...args) => {\n const store = next(...args);\n let notifying = true;\n let shouldNotifyAtEndOfTick = false;\n let notificationQueued = false;\n const listeners = new Set<() => void>();\n const queueCallback = options.type === 'tick' ? queueMicrotask : options.type === 'raf' ? rAF : options.type === 'callback' ? options.queueNotification : createQueueWithTimer(options.timeout);\n\n const notifyListeners = () => {\n // We're running at the end of the event loop tick.\n // Run the real listener callbacks to actually update the UI.\n notificationQueued = false;\n\n if (shouldNotifyAtEndOfTick) {\n shouldNotifyAtEndOfTick = false;\n listeners.forEach(l => l());\n }\n };\n\n return Object.assign({}, store, {\n // Override the base `store.subscribe` method to keep original listeners\n // from running if we're delaying notifications\n subscribe(listener: () => void) {\n // Each wrapped listener will only call the real listener if\n // the `notifying` flag is currently active when it's called.\n // This lets the base store work as normal, while the actual UI\n // update becomes controlled by this enhancer.\n const wrappedListener: typeof listener = () => notifying && listener();\n\n const unsubscribe = store.subscribe(wrappedListener);\n listeners.add(listener);\n return () => {\n unsubscribe();\n listeners.delete(listener);\n };\n },\n\n // Override the base `store.dispatch` method so that we can check actions\n // for the `shouldAutoBatch` flag and determine if batching is active\n dispatch(action: any) {\n try {\n // If the action does _not_ have the `shouldAutoBatch` flag,\n // we resume/continue normal notify-after-each-dispatch behavior\n notifying = !action?.meta?.[SHOULD_AUTOBATCH]; // If a `notifyListeners` microtask was queued, you can't cancel it.\n // Instead, we set a flag so that it's a no-op when it does run\n\n shouldNotifyAtEndOfTick = !notifying;\n\n if (shouldNotifyAtEndOfTick) {\n // We've seen at least 1 action with `SHOULD_AUTOBATCH`. Try to queue\n // a microtask to notify listeners at the end of the event loop tick.\n // Make sure we only enqueue this _once_ per tick.\n if (!notificationQueued) {\n notificationQueued = true;\n queueCallback(notifyListeners);\n }\n } // Go ahead and process the action as usual, including reducers.\n // If normal notification behavior is enabled, the store will notify\n // all of its own listeners, and the wrapper callbacks above will\n // see `notifying` is true and pass on to the real listener callbacks.\n // If we're \"batching\" behavior, then the wrapped callbacks will\n // bail out, causing the base store notification behavior to be no-ops.\n\n\n return store.dispatch(action);\n } finally {\n // Assume we're back to normal behavior after each action\n notifying = true;\n }\n }\n\n });\n};","import type { StoreEnhancer } from 'redux';\nimport type { AutoBatchOptions } from './autoBatchEnhancer';\nimport { autoBatchEnhancer } from './autoBatchEnhancer';\nimport { Tuple } from './utils';\nimport type { Middlewares } from './configureStore';\nimport type { ExtractDispatchExtensions } from './tsHelpers';\ntype GetDefaultEnhancersOptions = {\n autoBatch?: boolean | AutoBatchOptions;\n};\nexport type GetDefaultEnhancers> = (options?: GetDefaultEnhancersOptions) => Tuple<[StoreEnhancer<{\n dispatch: ExtractDispatchExtensions;\n}>]>;\nexport const buildGetDefaultEnhancers = ,>(middlewareEnhancer: StoreEnhancer<{\n dispatch: ExtractDispatchExtensions;\n}>): GetDefaultEnhancers => function getDefaultEnhancers(options) {\n const {\n autoBatch = true\n } = options ?? {};\n let enhancerArray = new Tuple(middlewareEnhancer);\n\n if (autoBatch) {\n enhancerArray.push(autoBatchEnhancer(typeof autoBatch === 'object' ? autoBatch : undefined));\n }\n\n return (enhancerArray as any);\n};","import { formatProdErrorMessage as _formatProdErrorMessage6 } from \"@reduxjs/toolkit\";\nimport { formatProdErrorMessage as _formatProdErrorMessage5 } from \"@reduxjs/toolkit\";\nimport { formatProdErrorMessage as _formatProdErrorMessage4 } from \"@reduxjs/toolkit\";\nimport { formatProdErrorMessage as _formatProdErrorMessage3 } from \"@reduxjs/toolkit\";\nimport { formatProdErrorMessage as _formatProdErrorMessage2 } from \"@reduxjs/toolkit\";\nimport { formatProdErrorMessage as _formatProdErrorMessage } from \"@reduxjs/toolkit\";\nimport type { Action } from 'redux';\nimport type { CaseReducer, CaseReducers, ActionMatcherDescriptionCollection } from './createReducer';\nimport type { TypeGuard } from './tsHelpers';\nexport interface TypedActionCreator {\n (...args: any[]): Action;\n type: Type;\n}\n/**\r\n * A builder for an action <-> reducer map.\r\n *\r\n * @public\r\n */\n\nexport interface ActionReducerMapBuilder {\n /**\r\n * Adds a case reducer to handle a single exact action type.\r\n * @remarks\r\n * All calls to `builder.addCase` must come before any calls to `builder.addMatcher` or `builder.addDefaultCase`.\r\n * @param actionCreator - Either a plain action type string, or an action creator generated by [`createAction`](./createAction) that can be used to determine the action type.\r\n * @param reducer - The actual case reducer function.\r\n */\n addCase>(actionCreator: ActionCreator, reducer: CaseReducer>): ActionReducerMapBuilder;\n /**\r\n * Adds a case reducer to handle a single exact action type.\r\n * @remarks\r\n * All calls to `builder.addCase` must come before any calls to `builder.addMatcher` or `builder.addDefaultCase`.\r\n * @param actionCreator - Either a plain action type string, or an action creator generated by [`createAction`](./createAction) that can be used to determine the action type.\r\n * @param reducer - The actual case reducer function.\r\n */\n\n addCase>(type: Type, reducer: CaseReducer): ActionReducerMapBuilder;\n /**\r\n * Allows you to match your incoming actions against your own filter function instead of only the `action.type` property.\r\n * @remarks\r\n * If multiple matcher reducers match, all of them will be executed in the order\r\n * they were defined in - even if a case reducer already matched.\r\n * All calls to `builder.addMatcher` must come after any calls to `builder.addCase` and before any calls to `builder.addDefaultCase`.\r\n * @param matcher - A matcher function. In TypeScript, this should be a [type predicate](https://www.typescriptlang.org/docs/handbook/2/narrowing.html#using-type-predicates)\r\n * function\r\n * @param reducer - The actual case reducer function.\r\n *\r\n * @example\r\n ```ts\r\n import {\r\n createAction,\r\n createReducer,\r\n AsyncThunk,\r\n UnknownAction,\r\n } from \"@reduxjs/toolkit\";\r\n type GenericAsyncThunk = AsyncThunk;\r\n type PendingAction = ReturnType;\r\n type RejectedAction = ReturnType;\r\n type FulfilledAction = ReturnType;\r\n const initialState: Record = {};\r\n const resetAction = createAction(\"reset-tracked-loading-state\");\r\n function isPendingAction(action: UnknownAction): action is PendingAction {\r\n return typeof action.type === \"string\" && action.type.endsWith(\"/pending\");\r\n }\r\n const reducer = createReducer(initialState, (builder) => {\r\n builder\r\n .addCase(resetAction, () => initialState)\r\n // matcher can be defined outside as a type predicate function\r\n .addMatcher(isPendingAction, (state, action) => {\r\n state[action.meta.requestId] = \"pending\";\r\n })\r\n .addMatcher(\r\n // matcher can be defined inline as a type predicate function\r\n (action): action is RejectedAction => action.type.endsWith(\"/rejected\"),\r\n (state, action) => {\r\n state[action.meta.requestId] = \"rejected\";\r\n }\r\n )\r\n // matcher can just return boolean and the matcher can receive a generic argument\r\n .addMatcher(\r\n (action) => action.type.endsWith(\"/fulfilled\"),\r\n (state, action) => {\r\n state[action.meta.requestId] = \"fulfilled\";\r\n }\r\n );\r\n });\r\n ```\r\n */\n\n addMatcher(matcher: TypeGuard | ((action: any) => boolean), reducer: CaseReducer): Omit, 'addCase'>;\n /**\r\n * Adds a \"default case\" reducer that is executed if no case reducer and no matcher\r\n * reducer was executed for this action.\r\n * @param reducer - The fallback \"default case\" reducer function.\r\n *\r\n * @example\r\n ```ts\r\n import { createReducer } from '@reduxjs/toolkit'\r\n const initialState = { otherActions: 0 }\r\n const reducer = createReducer(initialState, builder => {\r\n builder\r\n // .addCase(...)\r\n // .addMatcher(...)\r\n .addDefaultCase((state, action) => {\r\n state.otherActions++\r\n })\r\n })\r\n ```\r\n */\n\n addDefaultCase(reducer: CaseReducer): {};\n}\nexport function executeReducerBuilderCallback(builderCallback: (builder: ActionReducerMapBuilder) => void): [CaseReducers, ActionMatcherDescriptionCollection, CaseReducer | undefined] {\n const actionsMap: CaseReducers = {};\n const actionMatchers: ActionMatcherDescriptionCollection = [];\n let defaultCaseReducer: CaseReducer | undefined;\n const builder = {\n addCase(typeOrActionCreator: string | TypedActionCreator, reducer: CaseReducer) {\n if (process.env.NODE_ENV !== 'production') {\n /*\r\n to keep the definition by the user in line with actual behavior,\r\n we enforce `addCase` to always be called before calling `addMatcher`\r\n as matching cases take precedence over matchers\r\n */\n if (actionMatchers.length > 0) {\n throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage(26) : '`builder.addCase` should only be called before calling `builder.addMatcher`');\n }\n\n if (defaultCaseReducer) {\n throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage2(27) : '`builder.addCase` should only be called before calling `builder.addDefaultCase`');\n }\n }\n\n const type = typeof typeOrActionCreator === 'string' ? typeOrActionCreator : typeOrActionCreator.type;\n\n if (!type) {\n throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage3(28) : '`builder.addCase` cannot be called with an empty action type');\n }\n\n if (type in actionsMap) {\n throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage4(29) : '`builder.addCase` cannot be called with two reducers for the same action type ' + `'${type}'`);\n }\n\n actionsMap[type] = reducer;\n return builder;\n },\n\n addMatcher(matcher: TypeGuard, reducer: CaseReducer) {\n if (process.env.NODE_ENV !== 'production') {\n if (defaultCaseReducer) {\n throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage5(30) : '`builder.addMatcher` should only be called before calling `builder.addDefaultCase`');\n }\n }\n\n actionMatchers.push({\n matcher,\n reducer\n });\n return builder;\n },\n\n addDefaultCase(reducer: CaseReducer) {\n if (process.env.NODE_ENV !== 'production') {\n if (defaultCaseReducer) {\n throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage6(31) : '`builder.addDefaultCase` can only be called once');\n }\n }\n\n defaultCaseReducer = reducer;\n return builder;\n }\n\n };\n builderCallback(builder);\n return [actionsMap, actionMatchers, defaultCaseReducer];\n}","import { formatProdErrorMessage as _formatProdErrorMessage8 } from \"@reduxjs/toolkit\";\nimport { formatProdErrorMessage as _formatProdErrorMessage7 } from \"@reduxjs/toolkit\";\nimport { formatProdErrorMessage as _formatProdErrorMessage6 } from \"@reduxjs/toolkit\";\nimport { formatProdErrorMessage as _formatProdErrorMessage5 } from \"@reduxjs/toolkit\";\nimport { formatProdErrorMessage as _formatProdErrorMessage4 } from \"@reduxjs/toolkit\";\nimport { formatProdErrorMessage as _formatProdErrorMessage3 } from \"@reduxjs/toolkit\";\nimport { formatProdErrorMessage as _formatProdErrorMessage2 } from \"@reduxjs/toolkit\";\nimport { formatProdErrorMessage as _formatProdErrorMessage } from \"@reduxjs/toolkit\";\nimport type { Action, UnknownAction, Reducer } from 'redux';\nimport type { Selector } from 'reselect';\nimport type { ActionCreatorWithoutPayload, PayloadAction, PayloadActionCreator, PrepareAction, _ActionCreatorWithPreparedPayload } from './createAction';\nimport { createAction } from './createAction';\nimport type { ActionMatcherDescriptionCollection, CaseReducer, ReducerWithInitialState } from './createReducer';\nimport { createReducer } from './createReducer';\nimport type { ActionReducerMapBuilder, TypedActionCreator } from './mapBuilders';\nimport { executeReducerBuilderCallback } from './mapBuilders';\nimport type { Id, Tail, TypeGuard } from './tsHelpers';\nimport type { InjectConfig } from './combineSlices';\nimport type { AsyncThunk, AsyncThunkConfig, AsyncThunkOptions, AsyncThunkPayloadCreator, OverrideThunkApiConfigs } from './createAsyncThunk';\nimport { createAsyncThunk as _createAsyncThunk } from './createAsyncThunk';\nimport { emplace } from './utils';\nconst asyncThunkSymbol = Symbol.for('rtk-slice-createasyncthunk'); // type is annotated because it's too long to infer\n\nexport const asyncThunkCreator: {\n [asyncThunkSymbol]: typeof _createAsyncThunk;\n} = {\n [asyncThunkSymbol]: _createAsyncThunk\n};\ninterface InjectIntoConfig extends InjectConfig {\n reducerPath?: NewReducerPath;\n}\n/**\r\n * The return value of `createSlice`\r\n *\r\n * @public\r\n */\n\nexport interface Slice = SliceCaseReducers, Name extends string = string, ReducerPath extends string = Name, Selectors extends SliceSelectors = SliceSelectors> {\n /**\r\n * The slice name.\r\n */\n name: Name;\n /**\r\n * The slice reducer path.\r\n */\n\n reducerPath: ReducerPath;\n /**\r\n * The slice's reducer.\r\n */\n\n reducer: Reducer;\n /**\r\n * Action creators for the types of actions that are handled by the slice\r\n * reducer.\r\n */\n\n actions: CaseReducerActions;\n /**\r\n * The individual case reducer functions that were passed in the `reducers` parameter.\r\n * This enables reuse and testing if they were defined inline when calling `createSlice`.\r\n */\n\n caseReducers: SliceDefinedCaseReducers;\n /**\r\n * Provides access to the initial state value given to the slice.\r\n * If a lazy state initializer was provided, it will be called and a fresh value returned.\r\n */\n\n getInitialState: () => State;\n /**\r\n * Get localised slice selectors (expects to be called with *just* the slice's state as the first parameter)\r\n */\n\n getSelectors(this: this): Id>;\n /**\r\n * Get globalised slice selectors (`selectState` callback is expected to receive first parameter and return slice state)\r\n */\n\n getSelectors(this: this, selectState: (this: this, rootState: RootState) => State): Id>;\n /**\r\n * Selectors that assume the slice's state is `rootState[slice.reducerPath]` (which is usually the case)\r\n *\r\n * Equivalent to `slice.getSelectors((state: RootState) => state[slice.reducerPath])`.\r\n */\n\n selectors: Id>;\n /**\r\n * Inject slice into provided reducer (return value from `combineSlices`), and return injected slice.\r\n */\n\n injectInto(this: this, injectable: {\n inject: (slice: {\n reducerPath: string;\n reducer: Reducer;\n }, config?: InjectConfig) => void;\n }, config?: InjectIntoConfig): InjectedSlice;\n /**\r\n * Select the slice state, using the slice's current reducerPath.\r\n *\r\n * Will throw an error if slice is not found.\r\n */\n\n selectSlice(this: this, state: { [K in ReducerPath]: State }): State;\n}\n/**\r\n * A slice after being called with `injectInto(reducer)`.\r\n *\r\n * Selectors can now be called with an `undefined` value, in which case they use the slice's initial state.\r\n */\n\ninterface InjectedSlice = SliceCaseReducers, Name extends string = string, ReducerPath extends string = Name, Selectors extends SliceSelectors = SliceSelectors> extends Omit, 'getSelectors' | 'selectors'> {\n /**\r\n * Get localised slice selectors (expects to be called with *just* the slice's state as the first parameter)\r\n */\n getSelectors(): Id>;\n /**\r\n * Get globalised slice selectors (`selectState` callback is expected to receive first parameter and return slice state)\r\n */\n\n getSelectors(selectState: (this: this, rootState: RootState) => State | undefined): Id>;\n /**\r\n * Selectors that assume the slice's state is `rootState[slice.name]` (which is usually the case)\r\n *\r\n * Equivalent to `slice.getSelectors((state: RootState) => state[slice.name])`.\r\n */\n\n selectors: Id>;\n /**\r\n * Select the slice state, using the slice's current reducerPath.\r\n *\r\n * Returns initial state if slice is not found.\r\n */\n\n selectSlice(state: { [K in ReducerPath]?: State | undefined }): State;\n}\n/**\r\n * Options for `createSlice()`.\r\n *\r\n * @public\r\n */\n\nexport interface CreateSliceOptions = SliceCaseReducers, Name extends string = string, ReducerPath extends string = Name, Selectors extends SliceSelectors = SliceSelectors> {\n /**\r\n * The slice's name. Used to namespace the generated action types.\r\n */\n name: Name;\n /**\r\n * The slice's reducer path. Used when injecting into a combined slice reducer.\r\n */\n\n reducerPath?: ReducerPath;\n /**\r\n * The initial state that should be used when the reducer is called the first time. This may also be a \"lazy initializer\" function, which should return an initial state value when called. This will be used whenever the reducer is called with `undefined` as its state value, and is primarily useful for cases like reading initial state from `localStorage`.\r\n */\n\n initialState: State | (() => State);\n /**\r\n * A mapping from action types to action-type-specific *case reducer*\r\n * functions. For every action type, a matching action creator will be\r\n * generated using `createAction()`.\r\n */\n\n reducers: ValidateSliceCaseReducers | ((creators: ReducerCreators) => CR);\n /**\r\n * A callback that receives a *builder* object to define\r\n * case reducers via calls to `builder.addCase(actionCreatorOrType, reducer)`.\r\n * \r\n * \r\n * @example\r\n ```ts\r\n import { createAction, createSlice, Action } from '@reduxjs/toolkit'\r\n const incrementBy = createAction('incrementBy')\r\n const decrement = createAction('decrement')\r\n interface RejectedAction extends Action {\r\n error: Error\r\n }\r\n function isRejectedAction(action: Action): action is RejectedAction {\r\n return action.type.endsWith('rejected')\r\n }\r\n createSlice({\r\n name: 'counter',\r\n initialState: 0,\r\n reducers: {},\r\n extraReducers: builder => {\r\n builder\r\n .addCase(incrementBy, (state, action) => {\r\n // action is inferred correctly here if using TS\r\n })\r\n // You can chain calls, or have separate `builder.addCase()` lines each time\r\n .addCase(decrement, (state, action) => {})\r\n // You can match a range of action types\r\n .addMatcher(\r\n isRejectedAction,\r\n // `action` will be inferred as a RejectedAction due to isRejectedAction being defined as a type guard\r\n (state, action) => {}\r\n )\r\n // and provide a default case if no other handlers matched\r\n .addDefaultCase((state, action) => {})\r\n }\r\n })\r\n ```\r\n */\n\n extraReducers?: (builder: ActionReducerMapBuilder) => void;\n /**\r\n * A map of selectors that receive the slice's state and any additional arguments, and return a result.\r\n */\n\n selectors?: Selectors;\n}\nexport enum ReducerType {\n reducer = 'reducer',\n reducerWithPrepare = 'reducerWithPrepare',\n asyncThunk = 'asyncThunk',\n}\ninterface ReducerDefinition {\n _reducerDefinitionType: T;\n}\nexport interface CaseReducerDefinition extends CaseReducer, ReducerDefinition {}\n/**\r\n * A CaseReducer with a `prepare` method.\r\n *\r\n * @public\r\n */\n\nexport type CaseReducerWithPrepare = {\n reducer: CaseReducer;\n prepare: PrepareAction;\n};\nexport interface CaseReducerWithPrepareDefinition extends CaseReducerWithPrepare, ReducerDefinition {}\nexport interface AsyncThunkSliceReducerConfig {\n pending?: CaseReducer['pending']>>;\n rejected?: CaseReducer['rejected']>>;\n fulfilled?: CaseReducer['fulfilled']>>;\n settled?: CaseReducer['rejected' | 'fulfilled']>>;\n options?: AsyncThunkOptions;\n}\nexport interface AsyncThunkSliceReducerDefinition extends AsyncThunkSliceReducerConfig, ReducerDefinition {\n payloadCreator: AsyncThunkPayloadCreator;\n}\n/**\r\n * Providing these as part of the config would cause circular types, so we disallow passing them\r\n */\n\ntype PreventCircular = { [K in keyof ThunkApiConfig]: K extends 'state' | 'dispatch' ? never : ThunkApiConfig[K] };\ninterface AsyncThunkCreator = PreventCircular> {\n (payloadCreator: AsyncThunkPayloadCreator, config?: AsyncThunkSliceReducerConfig): AsyncThunkSliceReducerDefinition;\n = {}>(payloadCreator: AsyncThunkPayloadCreator, config?: AsyncThunkSliceReducerConfig): AsyncThunkSliceReducerDefinition;\n withTypes>(): AsyncThunkCreator>;\n}\nexport interface ReducerCreators {\n reducer(caseReducer: CaseReducer): CaseReducerDefinition;\n reducer(caseReducer: CaseReducer>): CaseReducerDefinition>;\n asyncThunk: AsyncThunkCreator;\n preparedReducer>(prepare: Prepare, reducer: CaseReducer>>): {\n _reducerDefinitionType: ReducerType.reducerWithPrepare;\n prepare: Prepare;\n reducer: CaseReducer>>;\n };\n}\n/**\r\n * The type describing a slice's `reducers` option.\r\n *\r\n * @public\r\n */\n\nexport type SliceCaseReducers = Record> | CaseReducerWithPrepareDefinition> | AsyncThunkSliceReducerDefinition> | Record> | CaseReducerWithPrepare>>;\n/**\r\n * The type describing a slice's `selectors` option.\r\n */\n\nexport type SliceSelectors = {\n [K: string]: (sliceState: State, ...args: any[]) => any;\n};\ntype SliceActionType = ActionName extends string | number ? `${SliceName}/${ActionName}` : string;\n/**\r\n * Derives the slice's `actions` property from the `reducers` options\r\n *\r\n * @public\r\n */\n\nexport type CaseReducerActions, SliceName extends string> = { [Type in keyof CaseReducers]: CaseReducers[Type] extends infer Definition ? Definition extends {\n prepare: any;\n} ? ActionCreatorForCaseReducerWithPrepare> : Definition extends AsyncThunkSliceReducerDefinition ? AsyncThunk : Definition extends {\n reducer: any;\n} ? ActionCreatorForCaseReducer> : ActionCreatorForCaseReducer> : never };\n/**\r\n * Get a `PayloadActionCreator` type for a passed `CaseReducerWithPrepare`\r\n *\r\n * @internal\r\n */\n\ntype ActionCreatorForCaseReducerWithPrepare = _ActionCreatorWithPreparedPayload;\n/**\r\n * Get a `PayloadActionCreator` type for a passed `CaseReducer`\r\n *\r\n * @internal\r\n */\n\ntype ActionCreatorForCaseReducer = CR extends (state: any, action: infer Action) => any ? Action extends {\n payload: infer P;\n} ? PayloadActionCreator : ActionCreatorWithoutPayload : ActionCreatorWithoutPayload;\n/**\r\n * Extracts the CaseReducers out of a `reducers` object, even if they are\r\n * tested into a `CaseReducerWithPrepare`.\r\n *\r\n * @internal\r\n */\n\ntype SliceDefinedCaseReducers> = { [Type in keyof CaseReducers]: CaseReducers[Type] extends infer Definition ? Definition extends AsyncThunkSliceReducerDefinition ? Id, 'fulfilled' | 'rejected' | 'pending' | 'settled'>> : Definition extends {\n reducer: infer Reducer;\n} ? Reducer : Definition : never };\ntype RemappedSelector = S extends Selector ? Selector & {\n unwrapped: S;\n} : never;\n/**\r\n * Extracts the final selector type from the `selectors` object.\r\n *\r\n * Removes the `string` index signature from the default value.\r\n */\n\ntype SliceDefinedSelectors, RootState> = { [K in keyof Selectors as string extends K ? never : K]: RemappedSelector };\n/**\r\n * Used on a SliceCaseReducers object.\r\n * Ensures that if a CaseReducer is a `CaseReducerWithPrepare`, that\r\n * the `reducer` and the `prepare` function use the same type of `payload`.\r\n *\r\n * Might do additional such checks in the future.\r\n *\r\n * This type is only ever useful if you want to write your own wrapper around\r\n * `createSlice`. Please don't use it otherwise!\r\n *\r\n * @public\r\n */\n\nexport type ValidateSliceCaseReducers> = ACR & { [T in keyof ACR]: ACR[T] extends {\n reducer(s: S, action?: infer A): any;\n} ? {\n prepare(...a: never[]): Omit;\n} : {} };\n\nfunction getType(slice: string, actionKey: string): string {\n return `${slice}/${actionKey}`;\n}\n\ninterface BuildCreateSliceConfig {\n creators?: {\n asyncThunk?: typeof asyncThunkCreator;\n };\n}\nexport function buildCreateSlice({\n creators\n}: BuildCreateSliceConfig = {}) {\n const cAT = creators?.asyncThunk?.[asyncThunkSymbol];\n return function createSlice, Name extends string, Selectors extends SliceSelectors, ReducerPath extends string = Name>(options: CreateSliceOptions): Slice {\n const {\n name,\n reducerPath = ((name as unknown) as ReducerPath)\n } = options;\n\n if (!name) {\n throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage(11) : '`name` is a required option for createSlice');\n }\n\n if (typeof process !== 'undefined' && process.env.NODE_ENV === 'development') {\n if (options.initialState === undefined) {\n console.error('You must provide an `initialState` value that is not `undefined`. You may have misspelled `initialState`');\n }\n }\n\n const reducers = (typeof options.reducers === 'function' ? options.reducers(buildReducerCreators()) : options.reducers) || {};\n const reducerNames = Object.keys(reducers);\n const context: ReducerHandlingContext = {\n sliceCaseReducersByName: {},\n sliceCaseReducersByType: {},\n actionCreators: {},\n sliceMatchers: []\n };\n const contextMethods: ReducerHandlingContextMethods = {\n addCase(typeOrActionCreator: string | TypedActionCreator, reducer: CaseReducer) {\n const type = typeof typeOrActionCreator === 'string' ? typeOrActionCreator : typeOrActionCreator.type;\n\n if (!type) {\n throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage2(12) : '`context.addCase` cannot be called with an empty action type');\n }\n\n if (type in context.sliceCaseReducersByType) {\n throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage3(13) : '`context.addCase` cannot be called with two reducers for the same action type: ' + type);\n }\n\n context.sliceCaseReducersByType[type] = reducer;\n return contextMethods;\n },\n\n addMatcher(matcher, reducer) {\n context.sliceMatchers.push({\n matcher,\n reducer\n });\n return contextMethods;\n },\n\n exposeAction(name, actionCreator) {\n context.actionCreators[name] = actionCreator;\n return contextMethods;\n },\n\n exposeCaseReducer(name, reducer) {\n context.sliceCaseReducersByName[name] = reducer;\n return contextMethods;\n }\n\n };\n reducerNames.forEach(reducerName => {\n const reducerDefinition = reducers[reducerName];\n const reducerDetails: ReducerDetails = {\n reducerName,\n type: getType(name, reducerName),\n createNotation: typeof options.reducers === 'function'\n };\n\n if (isAsyncThunkSliceReducerDefinition(reducerDefinition)) {\n handleThunkCaseReducerDefinition(reducerDetails, reducerDefinition, contextMethods, cAT);\n } else {\n handleNormalReducerDefinition(reducerDetails, reducerDefinition, contextMethods);\n }\n });\n\n function buildReducer() {\n if (process.env.NODE_ENV !== 'production') {\n if (typeof options.extraReducers === 'object') {\n throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage4(14) : \"The object notation for `createSlice.extraReducers` has been removed. Please use the 'builder callback' notation instead: https://redux-toolkit.js.org/api/createSlice\");\n }\n }\n\n const [extraReducers = {}, actionMatchers = [], defaultCaseReducer = undefined] = typeof options.extraReducers === 'function' ? executeReducerBuilderCallback(options.extraReducers) : [options.extraReducers];\n const finalCaseReducers = { ...extraReducers,\n ...context.sliceCaseReducersByType\n };\n return createReducer(options.initialState, builder => {\n for (let key in finalCaseReducers) {\n builder.addCase(key, (finalCaseReducers[key] as CaseReducer));\n }\n\n for (let sM of context.sliceMatchers) {\n builder.addMatcher(sM.matcher, sM.reducer);\n }\n\n for (let m of actionMatchers) {\n builder.addMatcher(m.matcher, m.reducer);\n }\n\n if (defaultCaseReducer) {\n builder.addDefaultCase(defaultCaseReducer);\n }\n });\n }\n\n const selectSelf = (state: State) => state;\n\n const injectedSelectorCache = new WeakMap, WeakMap<(rootState: any) => State | undefined, Record any>>>();\n\n let _reducer: ReducerWithInitialState;\n\n const slice: Slice = {\n name,\n reducerPath,\n\n reducer(state, action) {\n if (!_reducer) _reducer = buildReducer();\n return _reducer(state, action);\n },\n\n actions: (context.actionCreators as any),\n caseReducers: (context.sliceCaseReducersByName as any),\n\n getInitialState() {\n if (!_reducer) _reducer = buildReducer();\n return _reducer.getInitialState();\n },\n\n getSelectors(selectState: (rootState: any) => State = selectSelf) {\n const selectorCache = emplace(injectedSelectorCache, this, {\n insert: () => new WeakMap()\n });\n return (emplace(selectorCache, selectState, {\n insert: () => {\n const map: Record> = {};\n\n for (const [name, selector] of Object.entries(options.selectors ?? {})) {\n map[name] = wrapSelector(this, selector, selectState, this !== slice);\n }\n\n return map;\n }\n }) as any);\n },\n\n selectSlice(state) {\n let sliceState = state[this.reducerPath];\n\n if (typeof sliceState === 'undefined') {\n // check if injectInto has been called\n if (this !== slice) {\n sliceState = this.getInitialState();\n } else if (process.env.NODE_ENV !== 'production') {\n throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage5(15) : 'selectSlice returned undefined for an uninjected slice reducer');\n }\n }\n\n return sliceState;\n },\n\n get selectors() {\n return this.getSelectors(this.selectSlice);\n },\n\n injectInto(injectable, {\n reducerPath: pathOpt,\n ...config\n } = {}) {\n const reducerPath = pathOpt ?? this.reducerPath;\n injectable.inject({\n reducerPath,\n reducer: this.reducer\n }, config);\n return ({ ...this,\n reducerPath\n } as any);\n }\n\n };\n return slice;\n };\n}\n\nfunction wrapSelector>(slice: Slice, selector: S, selectState: Selector, injected?: boolean) {\n function wrapper(rootState: NewState, ...args: any[]) {\n let sliceState = selectState.call(slice, rootState);\n\n if (typeof sliceState === 'undefined') {\n if (injected) {\n sliceState = slice.getInitialState();\n } else if (process.env.NODE_ENV !== 'production') {\n throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage6(16) : 'selectState returned undefined for an uninjected slice reducer');\n }\n }\n\n return selector(sliceState, ...args);\n }\n\n wrapper.unwrapped = selector;\n return (wrapper as RemappedSelector);\n}\n/**\r\n * A function that accepts an initial state, an object full of reducer\r\n * functions, and a \"slice name\", and automatically generates\r\n * action creators and action types that correspond to the\r\n * reducers and state.\r\n *\r\n * @public\r\n */\n\n\nexport const createSlice = buildCreateSlice();\ninterface ReducerHandlingContext {\n sliceCaseReducersByName: Record | Pick, 'fulfilled' | 'rejected' | 'pending' | 'settled'>>;\n sliceCaseReducersByType: Record>;\n sliceMatchers: ActionMatcherDescriptionCollection;\n actionCreators: Record;\n}\ninterface ReducerHandlingContextMethods {\n /**\r\n * Adds a case reducer to handle a single action type.\r\n * @param actionCreator - Either a plain action type string, or an action creator generated by [`createAction`](./createAction) that can be used to determine the action type.\r\n * @param reducer - The actual case reducer function.\r\n */\n addCase>(actionCreator: ActionCreator, reducer: CaseReducer>): ReducerHandlingContextMethods;\n /**\r\n * Adds a case reducer to handle a single action type.\r\n * @param actionCreator - Either a plain action type string, or an action creator generated by [`createAction`](./createAction) that can be used to determine the action type.\r\n * @param reducer - The actual case reducer function.\r\n */\n\n addCase>(type: Type, reducer: CaseReducer): ReducerHandlingContextMethods;\n /**\r\n * Allows you to match incoming actions against your own filter function instead of only the `action.type` property.\r\n * @remarks\r\n * If multiple matcher reducers match, all of them will be executed in the order\r\n * they were defined in - even if a case reducer already matched.\r\n * All calls to `builder.addMatcher` must come after any calls to `builder.addCase` and before any calls to `builder.addDefaultCase`.\r\n * @param matcher - A matcher function. In TypeScript, this should be a [type predicate](https://www.typescriptlang.org/docs/handbook/2/narrowing.html#using-type-predicates)\r\n * function\r\n * @param reducer - The actual case reducer function.\r\n *\r\n */\n\n addMatcher(matcher: TypeGuard, reducer: CaseReducer): ReducerHandlingContextMethods;\n /**\r\n * Add an action to be exposed under the final `slice.actions` key.\r\n * @param name The key to be exposed as.\r\n * @param actionCreator The action to expose.\r\n * @example\r\n * context.exposeAction(\"addPost\", createAction(\"addPost\"));\r\n *\r\n * export const { addPost } = slice.actions\r\n *\r\n * dispatch(addPost(post))\r\n */\n\n exposeAction(name: string, actionCreator: Function): ReducerHandlingContextMethods;\n /**\r\n * Add a case reducer to be exposed under the final `slice.caseReducers` key.\r\n * @param name The key to be exposed as.\r\n * @param reducer The reducer to expose.\r\n * @example\r\n * context.exposeCaseReducer(\"addPost\", (state, action: PayloadAction) => {\r\n * state.push(action.payload)\r\n * })\r\n *\r\n * slice.caseReducers.addPost([], addPost(post))\r\n */\n\n exposeCaseReducer(name: string, reducer: CaseReducer | Pick, 'fulfilled' | 'rejected' | 'pending' | 'settled'>): ReducerHandlingContextMethods;\n}\ninterface ReducerDetails {\n /** The key the reducer was defined under */\n reducerName: string;\n /** The predefined action type, i.e. `${slice.name}/${reducerName}` */\n\n type: string;\n /** Whether create. notation was used when defining reducers */\n\n createNotation: boolean;\n}\n\nfunction buildReducerCreators(): ReducerCreators {\n function asyncThunk(payloadCreator: AsyncThunkPayloadCreator, config: AsyncThunkSliceReducerConfig): AsyncThunkSliceReducerDefinition {\n return {\n _reducerDefinitionType: ReducerType.asyncThunk,\n payloadCreator,\n ...config\n };\n }\n\n asyncThunk.withTypes = () => asyncThunk;\n\n return {\n reducer(caseReducer: CaseReducer) {\n return Object.assign({\n // hack so the wrapping function has the same name as the original\n // we need to create a wrapper so the `reducerDefinitionType` is not assigned to the original\n [caseReducer.name](...args: Parameters) {\n return caseReducer(...args);\n }\n\n }[caseReducer.name], ({\n _reducerDefinitionType: ReducerType.reducer\n } as const));\n },\n\n preparedReducer(prepare, reducer) {\n return {\n _reducerDefinitionType: ReducerType.reducerWithPrepare,\n prepare,\n reducer\n };\n },\n\n asyncThunk: (asyncThunk as any)\n };\n}\n\nfunction handleNormalReducerDefinition({\n type,\n reducerName,\n createNotation\n}: ReducerDetails, maybeReducerWithPrepare: CaseReducer | CaseReducerWithPrepare>, context: ReducerHandlingContextMethods) {\n let caseReducer: CaseReducer;\n let prepareCallback: PrepareAction | undefined;\n\n if ('reducer' in maybeReducerWithPrepare) {\n if (createNotation && !isCaseReducerWithPrepareDefinition(maybeReducerWithPrepare)) {\n throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage7(17) : 'Please use the `create.preparedReducer` notation for prepared action creators with the `create` notation.');\n }\n\n caseReducer = maybeReducerWithPrepare.reducer;\n prepareCallback = maybeReducerWithPrepare.prepare;\n } else {\n caseReducer = maybeReducerWithPrepare;\n }\n\n context.addCase(type, caseReducer).exposeCaseReducer(reducerName, caseReducer).exposeAction(reducerName, prepareCallback ? createAction(type, prepareCallback) : createAction(type));\n}\n\nfunction isAsyncThunkSliceReducerDefinition(reducerDefinition: any): reducerDefinition is AsyncThunkSliceReducerDefinition {\n return reducerDefinition._reducerDefinitionType === ReducerType.asyncThunk;\n}\n\nfunction isCaseReducerWithPrepareDefinition(reducerDefinition: any): reducerDefinition is CaseReducerWithPrepareDefinition {\n return reducerDefinition._reducerDefinitionType === ReducerType.reducerWithPrepare;\n}\n\nfunction handleThunkCaseReducerDefinition({\n type,\n reducerName\n}: ReducerDetails, reducerDefinition: AsyncThunkSliceReducerDefinition, context: ReducerHandlingContextMethods, cAT: typeof _createAsyncThunk | undefined) {\n if (!cAT) {\n throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage8(18) : 'Cannot use `create.asyncThunk` in the built-in `createSlice`. ' + 'Use `buildCreateSlice({ creators: { asyncThunk: asyncThunkCreator } })` to create a customised version of `createSlice`.');\n }\n\n const {\n payloadCreator,\n fulfilled,\n pending,\n rejected,\n settled,\n options\n } = reducerDefinition;\n const thunk = cAT(type, payloadCreator, (options as any));\n context.exposeAction(reducerName, thunk);\n\n if (fulfilled) {\n context.addCase(thunk.fulfilled, fulfilled);\n }\n\n if (pending) {\n context.addCase(thunk.pending, pending);\n }\n\n if (rejected) {\n context.addCase(thunk.rejected, rejected);\n }\n\n if (settled) {\n context.addMatcher(thunk.settled, settled);\n }\n\n context.exposeCaseReducer(reducerName, {\n fulfilled: fulfilled || noop,\n pending: pending || noop,\n rejected: rejected || noop,\n settled: settled || noop\n });\n}\n\nfunction noop() {}","import { formatProdErrorMessage as _formatProdErrorMessage2 } from \"@reduxjs/toolkit\";\nimport { formatProdErrorMessage as _formatProdErrorMessage } from \"@reduxjs/toolkit\";\nimport type { Draft } from 'immer';\nimport { produce as createNextState, isDraft, isDraftable } from 'immer';\nimport type { Action, Reducer, UnknownAction } from 'redux';\nimport type { ActionReducerMapBuilder } from './mapBuilders';\nimport { executeReducerBuilderCallback } from './mapBuilders';\nimport type { NoInfer, TypeGuard } from './tsHelpers';\nimport { freezeDraftable } from './utils';\n/**\r\n * Defines a mapping from action types to corresponding action object shapes.\r\n *\r\n * @deprecated This should not be used manually - it is only used for internal\r\n * inference purposes and should not have any further value.\r\n * It might be removed in the future.\r\n * @public\r\n */\n\nexport type Actions = Record;\nexport type ActionMatcherDescription = {\n matcher: TypeGuard;\n reducer: CaseReducer>;\n};\nexport type ReadonlyActionMatcherDescriptionCollection = ReadonlyArray>;\nexport type ActionMatcherDescriptionCollection = Array>;\n/**\r\n * A *case reducer* is a reducer function for a specific action type. Case\r\n * reducers can be composed to full reducers using `createReducer()`.\r\n *\r\n * Unlike a normal Redux reducer, a case reducer is never called with an\r\n * `undefined` state to determine the initial state. Instead, the initial\r\n * state is explicitly specified as an argument to `createReducer()`.\r\n *\r\n * In addition, a case reducer can choose to mutate the passed-in `state`\r\n * value directly instead of returning a new state. This does not actually\r\n * cause the store state to be mutated directly; instead, thanks to\r\n * [immer](https://github.com/mweststrate/immer), the mutations are\r\n * translated to copy operations that result in a new state.\r\n *\r\n * @public\r\n */\n\nexport type CaseReducer = (state: Draft, action: A) => NoInfer | void | Draft>;\n/**\r\n * A mapping from action types to case reducers for `createReducer()`.\r\n *\r\n * @deprecated This should not be used manually - it is only used\r\n * for internal inference purposes and using it manually\r\n * would lead to type erasure.\r\n * It might be removed in the future.\r\n * @public\r\n */\n\nexport type CaseReducers = { [T in keyof AS]: AS[T] extends Action ? CaseReducer : void };\nexport type NotFunction = T extends Function ? never : T;\n\nfunction isStateFunction(x: unknown): x is () => S {\n return typeof x === 'function';\n}\n\nexport type ReducerWithInitialState> = Reducer & {\n getInitialState: () => S;\n};\n/**\r\n * A utility function that allows defining a reducer as a mapping from action\r\n * type to *case reducer* functions that handle these action types. The\r\n * reducer's initial state is passed as the first argument.\r\n *\r\n * @remarks\r\n * The body of every case reducer is implicitly wrapped with a call to\r\n * `produce()` from the [immer](https://github.com/mweststrate/immer) library.\r\n * This means that rather than returning a new state object, you can also\r\n * mutate the passed-in state object directly; these mutations will then be\r\n * automatically and efficiently translated into copies, giving you both\r\n * convenience and immutability.\r\n *\r\n * @overloadSummary\r\n * This function accepts a callback that receives a `builder` object as its argument.\r\n * That builder provides `addCase`, `addMatcher` and `addDefaultCase` functions that may be\r\n * called to define what actions this reducer will handle.\r\n *\r\n * @param initialState - `State | (() => State)`: The initial state that should be used when the reducer is called the first time. This may also be a \"lazy initializer\" function, which should return an initial state value when called. This will be used whenever the reducer is called with `undefined` as its state value, and is primarily useful for cases like reading initial state from `localStorage`.\r\n * @param builderCallback - `(builder: Builder) => void` A callback that receives a *builder* object to define\r\n * case reducers via calls to `builder.addCase(actionCreatorOrType, reducer)`.\r\n * @example\r\n```ts\r\nimport {\r\n createAction,\r\n createReducer,\r\n UnknownAction,\r\n PayloadAction,\r\n} from \"@reduxjs/toolkit\";\r\n\r\nconst increment = createAction(\"increment\");\r\nconst decrement = createAction(\"decrement\");\r\n\r\nfunction isActionWithNumberPayload(\r\n action: UnknownAction\r\n): action is PayloadAction {\r\n return typeof action.payload === \"number\";\r\n}\r\n\r\nconst reducer = createReducer(\r\n {\r\n counter: 0,\r\n sumOfNumberPayloads: 0,\r\n unhandledActions: 0,\r\n },\r\n (builder) => {\r\n builder\r\n .addCase(increment, (state, action) => {\r\n // action is inferred correctly here\r\n state.counter += action.payload;\r\n })\r\n // You can chain calls, or have separate `builder.addCase()` lines each time\r\n .addCase(decrement, (state, action) => {\r\n state.counter -= action.payload;\r\n })\r\n // You can apply a \"matcher function\" to incoming actions\r\n .addMatcher(isActionWithNumberPayload, (state, action) => {})\r\n // and provide a default case if no other handlers matched\r\n .addDefaultCase((state, action) => {});\r\n }\r\n);\r\n```\r\n * @public\r\n */\n\nexport function createReducer>(initialState: S | (() => S), mapOrBuilderCallback: (builder: ActionReducerMapBuilder) => void): ReducerWithInitialState {\n if (process.env.NODE_ENV !== 'production') {\n if (typeof mapOrBuilderCallback === 'object') {\n throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage(8) : \"The object notation for `createReducer` has been removed. Please use the 'builder callback' notation instead: https://redux-toolkit.js.org/api/createReducer\");\n }\n }\n\n let [actionsMap, finalActionMatchers, finalDefaultCaseReducer] = executeReducerBuilderCallback(mapOrBuilderCallback); // Ensure the initial state gets frozen either way (if draftable)\n\n let getInitialState: () => S;\n\n if (isStateFunction(initialState)) {\n getInitialState = () => freezeDraftable(initialState());\n } else {\n const frozenInitialState = freezeDraftable(initialState);\n\n getInitialState = () => frozenInitialState;\n }\n\n function reducer(state = getInitialState(), action: any): S {\n let caseReducers = [actionsMap[action.type], ...finalActionMatchers.filter(({\n matcher\n }) => matcher(action)).map(({\n reducer\n }) => reducer)];\n\n if (caseReducers.filter(cr => !!cr).length === 0) {\n caseReducers = [finalDefaultCaseReducer];\n }\n\n return caseReducers.reduce((previousState, caseReducer): S => {\n if (caseReducer) {\n if (isDraft(previousState)) {\n // If it's already a draft, we must already be inside a `createNextState` call,\n // likely because this is being wrapped in `createReducer`, `createSlice`, or nested\n // inside an existing draft. It's safe to just pass the draft to the mutator.\n const draft = (previousState as Draft); // We can assume this is already a draft\n\n const result = caseReducer(draft, action);\n\n if (result === undefined) {\n return previousState;\n }\n\n return (result as S);\n } else if (!isDraftable(previousState)) {\n // If state is not draftable (ex: a primitive, such as 0), we want to directly\n // return the caseReducer func and not wrap it with produce.\n const result = caseReducer((previousState as any), action);\n\n if (result === undefined) {\n if (previousState === null) {\n return previousState;\n }\n\n throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage2(9) : 'A case reducer on a non-draftable value must not return undefined');\n }\n\n return (result as S);\n } else {\n // @ts-ignore createNextState() produces an Immutable> rather\n // than an Immutable, and TypeScript cannot find out how to reconcile\n // these two types.\n return createNextState(previousState, (draft: Draft) => {\n return caseReducer(draft, action);\n });\n }\n }\n\n return previousState;\n }, state);\n }\n\n reducer.getInitialState = getInitialState;\n return (reducer as ReducerWithInitialState);\n}","import { formatProdErrorMessage as _formatProdErrorMessage } from \"@reduxjs/toolkit\";\nimport type { AbortSignalWithReason } from './types';\nexport const assertFunction: (func: unknown, expected: string) => asserts func is (...args: unknown[]) => unknown = (func: unknown, expected: string) => {\n if (typeof func !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage(32) : `${expected} is not a function`);\n }\n};\nexport const noop = () => {};\nexport const catchRejection = (promise: Promise, onError = noop): Promise => {\n promise.catch(onError);\n return promise;\n};\nexport const addAbortSignalListener = (abortSignal: AbortSignal, callback: (evt: Event) => void) => {\n abortSignal.addEventListener('abort', callback, {\n once: true\n });\n return () => abortSignal.removeEventListener('abort', callback);\n};\n/**\r\n * Calls `abortController.abort(reason)` and patches `signal.reason`.\r\n * if it is not supported.\r\n *\r\n * At the time of writing `signal.reason` is available in FF chrome, edge node 17 and deno.\r\n * @param abortController\r\n * @param reason\r\n * @returns\r\n * @see https://developer.mozilla.org/en-US/docs/Web/API/AbortSignal/reason\r\n */\n\nexport const abortControllerWithReason = (abortController: AbortController, reason: T): void => {\n type Consumer = (val: T) => void;\n const signal = (abortController.signal as AbortSignalWithReason);\n\n if (signal.aborted) {\n return;\n } // Patch `reason` if necessary.\n // - We use defineProperty here because reason is a getter of `AbortSignal.__proto__`.\n // - We need to patch 'reason' before calling `.abort()` because listeners to the 'abort'\n // event are are notified immediately.\n\n\n if (!('reason' in signal)) {\n Object.defineProperty(signal, 'reason', {\n enumerable: true,\n value: reason,\n configurable: true,\n writable: true\n });\n }\n\n ;\n (abortController.abort as Consumer)(reason);\n};","import type { SerializedError } from '@reduxjs/toolkit';\nconst task = 'task';\nconst listener = 'listener';\nconst completed = 'completed';\nconst cancelled = 'cancelled';\n/* TaskAbortError error codes */\n\nexport const taskCancelled = (`task-${cancelled}` as const);\nexport const taskCompleted = (`task-${completed}` as const);\nexport const listenerCancelled = (`${listener}-${cancelled}` as const);\nexport const listenerCompleted = (`${listener}-${completed}` as const);\nexport class TaskAbortError implements SerializedError {\n name = 'TaskAbortError';\n message: string;\n\n constructor(public code: string | undefined) {\n this.message = `${task} ${cancelled} (reason: ${code})`;\n }\n\n}","import { TaskAbortError } from './exceptions';\nimport type { AbortSignalWithReason, TaskResult } from './types';\nimport { addAbortSignalListener, catchRejection, noop } from './utils';\n/**\r\n * Synchronously raises {@link TaskAbortError} if the task tied to the input `signal` has been cancelled.\r\n * @param signal\r\n * @param reason\r\n * @see {TaskAbortError}\r\n */\n\nexport const validateActive = (signal: AbortSignal): void => {\n if (signal.aborted) {\n const {\n reason\n } = (signal as AbortSignalWithReason);\n throw new TaskAbortError(reason);\n }\n};\n/**\r\n * Generates a race between the promise(s) and the AbortSignal\r\n * This avoids `Promise.race()`-related memory leaks:\r\n * https://github.com/nodejs/node/issues/17469#issuecomment-349794909\r\n */\n\nexport function raceWithSignal(signal: AbortSignalWithReason, promise: Promise): Promise {\n let cleanup = noop;\n return new Promise((resolve, reject) => {\n const notifyRejection = () => reject(new TaskAbortError(signal.reason));\n\n if (signal.aborted) {\n notifyRejection();\n return;\n }\n\n cleanup = addAbortSignalListener(signal, notifyRejection);\n promise.finally(() => cleanup()).then(resolve, reject);\n }).finally(() => {\n // after this point, replace `cleanup` with a noop, so there is no reference to `signal` any more\n cleanup = noop;\n });\n}\n/**\r\n * Runs a task and returns promise that resolves to {@link TaskResult}.\r\n * Second argument is an optional `cleanUp` function that always runs after task.\r\n *\r\n * **Note:** `runTask` runs the executor in the next microtask.\r\n * @returns\r\n */\n\nexport const runTask = async (task: () => Promise, cleanUp?: () => void): Promise> => {\n try {\n await Promise.resolve();\n const value = await task();\n return {\n status: 'ok',\n value\n };\n } catch (error: any) {\n return {\n status: error instanceof TaskAbortError ? 'cancelled' : 'rejected',\n error\n };\n } finally {\n cleanUp?.();\n }\n};\n/**\r\n * Given an input `AbortSignal` and a promise returns another promise that resolves\r\n * as soon the input promise is provided or rejects as soon as\r\n * `AbortSignal.abort` is `true`.\r\n * @param signal\r\n * @returns\r\n */\n\nexport const createPause = (signal: AbortSignal) => {\n return (promise: Promise): Promise => {\n return catchRejection(raceWithSignal(signal, promise).then(output => {\n validateActive(signal);\n return output;\n }));\n };\n};\n/**\r\n * Given an input `AbortSignal` and `timeoutMs` returns a promise that resolves\r\n * after `timeoutMs` or rejects as soon as `AbortSignal.abort` is `true`.\r\n * @param signal\r\n * @returns\r\n */\n\nexport const createDelay = (signal: AbortSignal) => {\n const pause = createPause(signal);\n return (timeoutMs: number): Promise => {\n return pause(new Promise(resolve => setTimeout(resolve, timeoutMs)));\n };\n};","import { formatProdErrorMessage as _formatProdErrorMessage3 } from \"@reduxjs/toolkit\";\nimport { formatProdErrorMessage as _formatProdErrorMessage2 } from \"@reduxjs/toolkit\";\nimport { formatProdErrorMessage as _formatProdErrorMessage } from \"@reduxjs/toolkit\";\nimport type { Action, Dispatch, MiddlewareAPI, UnknownAction } from 'redux';\nimport { isAction } from 'redux';\nimport type { ThunkDispatch } from 'redux-thunk';\nimport { createAction } from '../createAction';\nimport { nanoid } from '../nanoid';\nimport type { ListenerMiddleware, ListenerMiddlewareInstance, AddListenerOverloads, AnyListenerPredicate, CreateListenerMiddlewareOptions, TypedAddListener, TypedCreateListenerEntry, FallbackAddListenerOptions, ListenerEntry, ListenerErrorHandler, UnsubscribeListener, TakePattern, ListenerErrorInfo, ForkedTaskExecutor, ForkedTask, TypedRemoveListener, TaskResult, AbortSignalWithReason, UnsubscribeListenerOptions, ForkOptions } from './types';\nimport { abortControllerWithReason, addAbortSignalListener, assertFunction, catchRejection } from './utils';\nimport { listenerCancelled, listenerCompleted, TaskAbortError, taskCancelled, taskCompleted } from './exceptions';\nimport { runTask, validateActive, createPause, createDelay, raceWithSignal } from './task';\nimport { find } from '../utils';\nexport { TaskAbortError } from './exceptions';\nexport type { ListenerEffect, ListenerMiddleware, ListenerEffectAPI, ListenerMiddlewareInstance, CreateListenerMiddlewareOptions, ListenerErrorHandler, TypedStartListening, TypedAddListener, TypedStopListening, TypedRemoveListener, UnsubscribeListener, UnsubscribeListenerOptions, ForkedTaskExecutor, ForkedTask, ForkedTaskAPI, AsyncTaskExecutor, SyncTaskExecutor, TaskCancelled, TaskRejected, TaskResolved, TaskResult } from './types'; //Overly-aggressive byte-shaving\n\nconst {\n assign\n} = Object;\n/**\r\n * @internal\r\n */\n\nconst INTERNAL_NIL_TOKEN = ({} as const);\nconst alm = ('listenerMiddleware' as const);\n\nconst createFork = (parentAbortSignal: AbortSignalWithReason, parentBlockingPromises: Promise[]) => {\n const linkControllers = (controller: AbortController) => addAbortSignalListener(parentAbortSignal, () => abortControllerWithReason(controller, parentAbortSignal.reason));\n\n return (taskExecutor: ForkedTaskExecutor, opts?: ForkOptions): ForkedTask => {\n assertFunction(taskExecutor, 'taskExecutor');\n const childAbortController = new AbortController();\n linkControllers(childAbortController);\n const result = runTask(async (): Promise => {\n validateActive(parentAbortSignal);\n validateActive(childAbortController.signal);\n const result = (await taskExecutor({\n pause: createPause(childAbortController.signal),\n delay: createDelay(childAbortController.signal),\n signal: childAbortController.signal\n }) as T);\n validateActive(childAbortController.signal);\n return result;\n }, () => abortControllerWithReason(childAbortController, taskCompleted));\n\n if (opts?.autoJoin) {\n parentBlockingPromises.push(result);\n }\n\n return {\n result: createPause>(parentAbortSignal)(result),\n\n cancel() {\n abortControllerWithReason(childAbortController, taskCancelled);\n }\n\n };\n };\n};\n\nconst createTakePattern = (startListening: AddListenerOverloads, signal: AbortSignal): TakePattern => {\n /**\r\n * A function that takes a ListenerPredicate and an optional timeout,\r\n * and resolves when either the predicate returns `true` based on an action\r\n * state combination or when the timeout expires.\r\n * If the parent listener is canceled while waiting, this will throw a\r\n * TaskAbortError.\r\n */\n const take = async

,>(predicate: P, timeout: number | undefined) => {\n validateActive(signal); // Placeholder unsubscribe function until the listener is added\n\n let unsubscribe: UnsubscribeListener = () => {};\n\n const tuplePromise = new Promise<[Action, S, S]>((resolve, reject) => {\n // Inside the Promise, we synchronously add the listener.\n let stopListening = startListening({\n predicate: (predicate as any),\n effect: (action, listenerApi): void => {\n // One-shot listener that cleans up as soon as the predicate passes\n listenerApi.unsubscribe(); // Resolve the promise with the same arguments the predicate saw\n\n resolve([action, listenerApi.getState(), listenerApi.getOriginalState()]);\n }\n });\n\n unsubscribe = () => {\n stopListening();\n reject();\n };\n });\n const promises: (Promise | Promise<[Action, S, S]>)[] = [tuplePromise];\n\n if (timeout != null) {\n promises.push(new Promise(resolve => setTimeout(resolve, timeout, null)));\n }\n\n try {\n const output = await raceWithSignal(signal, Promise.race(promises));\n validateActive(signal);\n return output;\n } finally {\n // Always clean up the listener\n unsubscribe();\n }\n };\n\n return (((predicate: AnyListenerPredicate, timeout: number | undefined) => catchRejection(take(predicate, timeout))) as TakePattern);\n};\n\nconst getListenerEntryPropsFrom = (options: FallbackAddListenerOptions) => {\n let {\n type,\n actionCreator,\n matcher,\n predicate,\n effect\n } = options;\n\n if (type) {\n predicate = createAction(type).match;\n } else if (actionCreator) {\n type = actionCreator!.type;\n predicate = actionCreator.match;\n } else if (matcher) {\n predicate = matcher;\n } else if (predicate) {// pass\n } else {\n throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage(21) : 'Creating or removing a listener requires one of the known fields for matching an action');\n }\n\n assertFunction(effect, 'options.listener');\n return {\n predicate,\n type,\n effect\n };\n};\n/** Accepts the possible options for creating a listener, and returns a formatted listener entry */\n\n\nexport const createListenerEntry: TypedCreateListenerEntry = (options: FallbackAddListenerOptions) => {\n const {\n type,\n predicate,\n effect\n } = getListenerEntryPropsFrom(options);\n const id = nanoid();\n const entry: ListenerEntry = {\n id,\n effect,\n type,\n predicate,\n pending: new Set(),\n unsubscribe: () => {\n throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage2(22) : 'Unsubscribe not initialized');\n }\n };\n return entry;\n};\n\nconst cancelActiveListeners = (entry: ListenerEntry>) => {\n entry.pending.forEach(controller => {\n abortControllerWithReason(controller, listenerCancelled);\n });\n};\n\nconst createClearListenerMiddleware = (listenerMap: Map) => {\n return () => {\n listenerMap.forEach(cancelActiveListeners);\n listenerMap.clear();\n };\n};\n/**\r\n * Safely reports errors to the `errorHandler` provided.\r\n * Errors that occur inside `errorHandler` are notified in a new task.\r\n * Inspired by [rxjs reportUnhandledError](https://github.com/ReactiveX/rxjs/blob/6fafcf53dc9e557439b25debaeadfd224b245a66/src/internal/util/reportUnhandledError.ts)\r\n * @param errorHandler\r\n * @param errorToNotify\r\n */\n\n\nconst safelyNotifyError = (errorHandler: ListenerErrorHandler, errorToNotify: unknown, errorInfo: ListenerErrorInfo): void => {\n try {\n errorHandler(errorToNotify, errorInfo);\n } catch (errorHandlerError) {\n // We cannot let an error raised here block the listener queue.\n // The error raised here will be picked up by `window.onerror`, `process.on('error')` etc...\n setTimeout(() => {\n throw errorHandlerError;\n }, 0);\n }\n};\n/**\r\n * @public\r\n */\n\n\nexport const addListener = (createAction(`${alm}/add`) as TypedAddListener);\n/**\r\n * @public\r\n */\n\nexport const clearAllListeners = createAction(`${alm}/removeAll`);\n/**\r\n * @public\r\n */\n\nexport const removeListener = (createAction(`${alm}/remove`) as TypedRemoveListener);\n\nconst defaultErrorHandler: ListenerErrorHandler = (...args: unknown[]) => {\n console.error(`${alm}/error`, ...args);\n};\n/**\r\n * @public\r\n */\n\n\nexport function createListenerMiddleware = ThunkDispatch, ExtraArgument = unknown>(middlewareOptions: CreateListenerMiddlewareOptions = {}) {\n const listenerMap = new Map();\n const {\n extra,\n onError = defaultErrorHandler\n } = middlewareOptions;\n assertFunction(onError, 'onError');\n\n const insertEntry = (entry: ListenerEntry) => {\n entry.unsubscribe = () => listenerMap.delete(entry!.id);\n\n listenerMap.set(entry.id, entry);\n return (cancelOptions?: UnsubscribeListenerOptions) => {\n entry.unsubscribe();\n\n if (cancelOptions?.cancelActive) {\n cancelActiveListeners(entry);\n }\n };\n };\n\n const startListening = (options: FallbackAddListenerOptions) => {\n let entry = find(Array.from(listenerMap.values()), existingEntry => existingEntry.effect === options.effect);\n\n if (!entry) {\n entry = createListenerEntry((options as any));\n }\n\n return insertEntry(entry);\n };\n\n const stopListening = (options: FallbackAddListenerOptions & UnsubscribeListenerOptions): boolean => {\n const {\n type,\n effect,\n predicate\n } = getListenerEntryPropsFrom(options);\n const entry = find(Array.from(listenerMap.values()), entry => {\n const matchPredicateOrType = typeof type === 'string' ? entry.type === type : entry.predicate === predicate;\n return matchPredicateOrType && entry.effect === effect;\n });\n\n if (entry) {\n entry.unsubscribe();\n\n if (options.cancelActive) {\n cancelActiveListeners(entry);\n }\n }\n\n return !!entry;\n };\n\n const notifyListener = async (entry: ListenerEntry>, action: unknown, api: MiddlewareAPI, getOriginalState: () => S) => {\n const internalTaskController = new AbortController();\n const take = createTakePattern(startListening, internalTaskController.signal);\n const autoJoinPromises: Promise[] = [];\n\n try {\n entry.pending.add(internalTaskController);\n await Promise.resolve(entry.effect(action, // Use assign() rather than ... to avoid extra helper functions added to bundle\n assign({}, api, {\n getOriginalState,\n condition: (predicate: AnyListenerPredicate, timeout?: number) => take(predicate, timeout).then(Boolean),\n take,\n delay: createDelay(internalTaskController.signal),\n pause: createPause(internalTaskController.signal),\n extra,\n signal: internalTaskController.signal,\n fork: createFork(internalTaskController.signal, autoJoinPromises),\n unsubscribe: entry.unsubscribe,\n subscribe: () => {\n listenerMap.set(entry.id, entry);\n },\n cancelActiveListeners: () => {\n entry.pending.forEach((controller, _, set) => {\n if (controller !== internalTaskController) {\n abortControllerWithReason(controller, listenerCancelled);\n set.delete(controller);\n }\n });\n },\n cancel: () => {\n abortControllerWithReason(internalTaskController, listenerCancelled);\n entry.pending.delete(internalTaskController);\n },\n throwIfCancelled: () => {\n validateActive(internalTaskController.signal);\n }\n })));\n } catch (listenerError) {\n if (!(listenerError instanceof TaskAbortError)) {\n safelyNotifyError(onError, listenerError, {\n raisedBy: 'effect'\n });\n }\n } finally {\n await Promise.allSettled(autoJoinPromises);\n abortControllerWithReason(internalTaskController, listenerCompleted); // Notify that the task has completed\n\n entry.pending.delete(internalTaskController);\n }\n };\n\n const clearListenerMiddleware = createClearListenerMiddleware(listenerMap);\n\n const middleware: ListenerMiddleware = api => next => action => {\n if (!isAction(action)) {\n // we only want to notify listeners for action objects\n return next(action);\n }\n\n if (addListener.match(action)) {\n return startListening(action.payload);\n }\n\n if (clearAllListeners.match(action)) {\n clearListenerMiddleware();\n return;\n }\n\n if (removeListener.match(action)) {\n return stopListening(action.payload);\n } // Need to get this state _before_ the reducer processes the action\n\n\n let originalState: S | typeof INTERNAL_NIL_TOKEN = api.getState(); // `getOriginalState` can only be called synchronously.\n // @see https://github.com/reduxjs/redux-toolkit/discussions/1648#discussioncomment-1932820\n\n const getOriginalState = (): S => {\n if (originalState === INTERNAL_NIL_TOKEN) {\n throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage3(23) : `${alm}: getOriginalState can only be called synchronously`);\n }\n\n return (originalState as S);\n };\n\n let result: unknown;\n\n try {\n // Actually forward the action to the reducer before we handle listeners\n result = next(action);\n\n if (listenerMap.size > 0) {\n let currentState = api.getState(); // Work around ESBuild+TS transpilation issue\n\n const listenerEntries = Array.from(listenerMap.values());\n\n for (let entry of listenerEntries) {\n let runListener = false;\n\n try {\n runListener = entry.predicate(action, currentState, originalState);\n } catch (predicateError) {\n runListener = false;\n safelyNotifyError(onError, predicateError, {\n raisedBy: 'predicate'\n });\n }\n\n if (!runListener) {\n continue;\n }\n\n notifyListener(entry, action, api, getOriginalState);\n }\n }\n } finally {\n // Remove `originalState` store from this scope.\n originalState = INTERNAL_NIL_TOKEN;\n }\n\n return result;\n };\n\n return ({\n middleware,\n startListening,\n stopListening,\n clearListeners: clearListenerMiddleware\n } as ListenerMiddlewareInstance);\n}","import { formatProdErrorMessage as _formatProdErrorMessage2 } from \"@reduxjs/toolkit\";\nimport { formatProdErrorMessage as _formatProdErrorMessage } from \"@reduxjs/toolkit\";\nimport type { UnknownAction, Reducer, StateFromReducersMapObject } from 'redux';\nimport { combineReducers } from 'redux';\nimport { nanoid } from './nanoid';\nimport type { Id, NonUndefined, Tail, UnionToIntersection, WithOptionalProp } from './tsHelpers';\nimport { emplace } from './utils';\ntype SliceLike = {\n reducerPath: ReducerPath;\n reducer: Reducer;\n};\ntype AnySliceLike = SliceLike;\ntype SliceLikeReducerPath = A extends SliceLike ? ReducerPath : never;\ntype SliceLikeState = A extends SliceLike ? State : never;\nexport type WithSlice = { [Path in SliceLikeReducerPath]: SliceLikeState };\ntype ReducerMap = Record;\ntype ExistingSliceLike = { [ReducerPath in keyof DeclaredState]: SliceLike> }[keyof DeclaredState];\nexport type InjectConfig = {\n /**\r\n * Allow replacing reducer with a different reference. Normally, an error will be thrown if a different reducer instance to the one already injected is used.\r\n */\n overrideExisting?: boolean;\n};\n/**\r\n * A reducer that allows for slices/reducers to be injected after initialisation.\r\n */\n\nexport interface CombinedSliceReducer extends Reducer> {\n /**\r\n * Provide a type for slices that will be injected lazily.\r\n *\r\n * One way to do this would be with interface merging:\r\n * ```ts\r\n *\r\n * export interface LazyLoadedSlices {}\r\n *\r\n * export const rootReducer = combineSlices(stringSlice).withLazyLoadedSlices();\r\n *\r\n * // elsewhere\r\n *\r\n * declare module './reducer' {\r\n * export interface LazyLoadedSlices extends WithSlice {}\r\n * }\r\n *\r\n * const withBoolean = rootReducer.inject(booleanSlice);\r\n *\r\n * // elsewhere again\r\n *\r\n * declare module './reducer' {\r\n * export interface LazyLoadedSlices {\r\n * customName: CustomState\r\n * }\r\n * }\r\n *\r\n * const withCustom = rootReducer.inject({ reducerPath: \"customName\", reducer: customSlice.reducer })\r\n * ```\r\n */\n withLazyLoadedSlices(): CombinedSliceReducer>>;\n /**\r\n * Inject a slice.\r\n *\r\n * Accepts an individual slice, RTKQ API instance, or a \"slice-like\" { reducerPath, reducer } object.\r\n *\r\n * ```ts\r\n * rootReducer.inject(booleanSlice)\r\n * rootReducer.inject(baseApi)\r\n * rootReducer.inject({ reducerPath: 'boolean' as const, reducer: newReducer }, { overrideExisting: true })\r\n * ```\r\n *\r\n */\n\n inject>>(slice: Sl, config?: InjectConfig): CombinedSliceReducer>>;\n /**\r\n * Inject a slice.\r\n *\r\n * Accepts an individual slice, RTKQ API instance, or a \"slice-like\" { reducerPath, reducer } object.\r\n *\r\n * ```ts\r\n * rootReducer.inject(booleanSlice)\r\n * rootReducer.inject(baseApi)\r\n * rootReducer.inject({ reducerPath: 'boolean' as const, reducer: newReducer }, { overrideExisting: true })\r\n * ```\r\n *\r\n */\n\n inject(slice: SliceLike, config?: InjectConfig): CombinedSliceReducer>>>;\n /**\r\n * Create a selector that guarantees that the slices injected will have a defined value when selector is run.\r\n *\r\n * ```ts\r\n * const selectBooleanWithoutInjection = (state: RootState) => state.boolean;\r\n * // ^? boolean | undefined\r\n *\r\n * const selectBoolean = rootReducer.inject(booleanSlice).selector((state) => {\r\n * // if action hasn't been dispatched since slice was injected, this would usually be undefined\r\n * // however selector() uses a Proxy around the first parameter to ensure that it evaluates to the initial state instead, if undefined\r\n * return state.boolean;\r\n * // ^? boolean\r\n * })\r\n * ```\r\n *\r\n * If the reducer is nested inside the root state, a selectState callback can be passed to retrieve the reducer's state.\r\n *\r\n * ```ts\r\n *\r\n * export interface LazyLoadedSlices {};\r\n *\r\n * export const innerReducer = combineSlices(stringSlice).withLazyLoadedSlices();\r\n *\r\n * export const rootReducer = combineSlices({ inner: innerReducer });\r\n *\r\n * export type RootState = ReturnType;\r\n *\r\n * // elsewhere\r\n *\r\n * declare module \"./reducer.ts\" {\r\n * export interface LazyLoadedSlices extends WithSlice {}\r\n * }\r\n *\r\n * const withBool = innerReducer.inject(booleanSlice);\r\n *\r\n * const selectBoolean = withBool.selector(\r\n * (state) => state.boolean,\r\n * (rootState: RootState) => state.inner\r\n * );\r\n * // now expects to be passed RootState instead of innerReducer state\r\n *\r\n * ```\r\n *\r\n * Value passed to selectorFn will be a Proxy - use selector.original(proxy) to get original state value (useful for debugging)\r\n *\r\n * ```ts\r\n * const injectedReducer = rootReducer.inject(booleanSlice);\r\n * const selectBoolean = injectedReducer.selector((state) => {\r\n * console.log(injectedReducer.selector.original(state).boolean) // possibly undefined\r\n * return state.boolean\r\n * })\r\n * ```\r\n */\n\n selector: {\n /**\r\n * Create a selector that guarantees that the slices injected will have a defined value when selector is run.\r\n *\r\n * ```ts\r\n * const selectBooleanWithoutInjection = (state: RootState) => state.boolean;\r\n * // ^? boolean | undefined\r\n *\r\n * const selectBoolean = rootReducer.inject(booleanSlice).selector((state) => {\r\n * // if action hasn't been dispatched since slice was injected, this would usually be undefined\r\n * // however selector() uses a Proxy around the first parameter to ensure that it evaluates to the initial state instead, if undefined\r\n * return state.boolean;\r\n * // ^? boolean\r\n * })\r\n * ```\r\n *\r\n * Value passed to selectorFn will be a Proxy - use selector.original(proxy) to get original state value (useful for debugging)\r\n *\r\n * ```ts\r\n * const injectedReducer = rootReducer.inject(booleanSlice);\r\n * const selectBoolean = injectedReducer.selector((state) => {\r\n * console.log(injectedReducer.selector.original(state).boolean) // undefined\r\n * return state.boolean\r\n * })\r\n * ```\r\n */\n unknown>(selectorFn: Selector): (state: WithOptionalProp[0], Exclude>, ...args: Tail>) => ReturnType;\n /**\r\n * Create a selector that guarantees that the slices injected will have a defined value when selector is run.\r\n *\r\n * ```ts\r\n * const selectBooleanWithoutInjection = (state: RootState) => state.boolean;\r\n * // ^? boolean | undefined\r\n *\r\n * const selectBoolean = rootReducer.inject(booleanSlice).selector((state) => {\r\n * // if action hasn't been dispatched since slice was injected, this would usually be undefined\r\n * // however selector() uses a Proxy around the first parameter to ensure that it evaluates to the initial state instead, if undefined\r\n * return state.boolean;\r\n * // ^? boolean\r\n * })\r\n * ```\r\n *\r\n * If the reducer is nested inside the root state, a selectState callback can be passed to retrieve the reducer's state.\r\n *\r\n * ```ts\r\n *\r\n * interface LazyLoadedSlices {};\r\n *\r\n * const innerReducer = combineSlices(stringSlice).withLazyLoadedSlices();\r\n *\r\n * const rootReducer = combineSlices({ inner: innerReducer });\r\n *\r\n * type RootState = ReturnType;\r\n *\r\n * // elsewhere\r\n *\r\n * declare module \"./reducer.ts\" {\r\n * interface LazyLoadedSlices extends WithSlice {}\r\n * }\r\n *\r\n * const withBool = innerReducer.inject(booleanSlice);\r\n *\r\n * const selectBoolean = withBool.selector(\r\n * (state) => state.boolean,\r\n * (rootState: RootState) => state.inner\r\n * );\r\n * // now expects to be passed RootState instead of innerReducer state\r\n *\r\n * ```\r\n *\r\n * Value passed to selectorFn will be a Proxy - use selector.original(proxy) to get original state value (useful for debugging)\r\n *\r\n * ```ts\r\n * const injectedReducer = rootReducer.inject(booleanSlice);\r\n * const selectBoolean = injectedReducer.selector((state) => {\r\n * console.log(injectedReducer.selector.original(state).boolean) // possibly undefined\r\n * return state.boolean\r\n * })\r\n * ```\r\n */\n\n unknown, RootState>(selectorFn: Selector, selectState: (rootState: RootState, ...args: Tail>) => WithOptionalProp[0], Exclude>): (state: RootState, ...args: Tail>) => ReturnType;\n /**\r\n * Returns the unproxied state. Useful for debugging.\r\n * @param state state Proxy, that ensures injected reducers have value\r\n * @returns original, unproxied state\r\n * @throws if value passed is not a state Proxy\r\n */\n\n original: (state: DeclaredState) => InitialState & Partial;\n };\n}\ntype InitialState> = UnionToIntersection : StateFromReducersMapObject : never>;\n\nconst isSliceLike = (maybeSliceLike: AnySliceLike | ReducerMap): maybeSliceLike is AnySliceLike => 'reducerPath' in maybeSliceLike && typeof maybeSliceLike.reducerPath === 'string';\n\nconst getReducers = (slices: Array) => slices.flatMap(sliceOrMap => isSliceLike(sliceOrMap) ? [([sliceOrMap.reducerPath, sliceOrMap.reducer] as const)] : Object.entries(sliceOrMap));\n\nconst ORIGINAL_STATE = Symbol.for('rtk-state-proxy-original');\n\nconst isStateProxy = (value: any) => !!value && !!value[ORIGINAL_STATE];\n\nconst stateProxyMap = new WeakMap();\n\nconst createStateProxy = (state: State, reducerMap: Partial>) => (emplace(stateProxyMap, state, {\n insert: () => new Proxy(state, {\n get: (target, prop, receiver) => {\n if (prop === ORIGINAL_STATE) return target;\n const result = Reflect.get(target, prop, receiver);\n\n if (typeof result === 'undefined') {\n const reducer = reducerMap[prop.toString()];\n\n if (reducer) {\n // ensure action type is random, to prevent reducer treating it differently\n const reducerResult = reducer(undefined, {\n type: nanoid()\n });\n\n if (typeof reducerResult === 'undefined') {\n throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage(24) : `The slice reducer for key \"${prop.toString()}\" returned undefined when called for selector(). ` + `If the state passed to the reducer is undefined, you must ` + `explicitly return the initial state. The initial state may ` + `not be undefined. If you don't want to set a value for this reducer, ` + `you can use null instead of undefined.`);\n }\n\n return reducerResult;\n }\n }\n\n return result;\n }\n })\n}) as State);\n\nconst original = (state: any) => {\n if (!isStateProxy(state)) {\n throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage2(25) : 'original must be used on state Proxy');\n }\n\n return state[ORIGINAL_STATE];\n};\n\nexport function combineSlices]>(...slices: Slices): CombinedSliceReducer>> {\n const reducerMap = Object.fromEntries(getReducers(slices));\n\n const getReducer = () => combineReducers(reducerMap);\n\n let reducer = getReducer();\n\n function combinedReducer(state: Record, action: UnknownAction) {\n return reducer(state, action);\n }\n\n combinedReducer.withLazyLoadedSlices = () => combinedReducer;\n\n const inject = (slice: AnySliceLike, config: InjectConfig = {}): typeof combinedReducer => {\n const {\n reducerPath,\n reducer: reducerToInject\n } = slice;\n const currentReducer = reducerMap[reducerPath];\n\n if (!config.overrideExisting && currentReducer && currentReducer !== reducerToInject) {\n if (typeof process !== 'undefined' && process.env.NODE_ENV === 'development') {\n console.error(`called \\`inject\\` to override already-existing reducer ${reducerPath} without specifying \\`overrideExisting: true\\``);\n }\n\n return combinedReducer;\n }\n\n reducerMap[reducerPath] = reducerToInject;\n reducer = getReducer();\n return combinedReducer;\n };\n\n const selector = Object.assign(function makeSelector(selectorFn: (state: State, ...args: Args) => any, selectState?: (rootState: RootState, ...args: Args) => State) {\n return function selector(state: State, ...args: Args) {\n return selectorFn(createStateProxy(selectState ? selectState((state as any), ...args) : state, reducerMap), ...args);\n };\n }, {\n original\n });\n return (Object.assign(combinedReducer, {\n inject,\n selector\n }) as any);\n}","/**\r\n * Adapted from React: https://github.com/facebook/react/blob/master/packages/shared/formatProdErrorMessage.js\r\n *\r\n * Do not require this module directly! Use normal throw error calls. These messages will be replaced with error codes\r\n * during build.\r\n * @param {number} code\r\n */\nexport function formatProdErrorMessage(code: number) {\n return `Minified Redux Toolkit error #${code}; visit https://redux-toolkit.js.org/Errors?code=${code} for the full message or ` + 'use the non-minified dev environment for full errors. ';\n}","import { createSlice } from \"@reduxjs/toolkit\";\n\nconst initialState = {\n activeId: \"\",\n isActive: false,\n sourcePopover: undefined,\n};\n\nconst sourcesSlice = createSlice({\n name: \"sources\",\n initialState,\n reducers: {\n setActiveId: (state, action) => {\n state.activeId = `${action.payload}`;\n },\n setIsSourcesActive: (state, action) => {\n state.isActive = action.payload;\n },\n setSourcePopover: (state, action) => {\n state.sourcePopover = action.payload;\n },\n },\n});\n\nexport const { setActiveId, setIsSourcesActive, setSourcePopover } =\n sourcesSlice.actions;\n\nexport default sourcesSlice.reducer;\n","import { createSlice } from \"@reduxjs/toolkit\";\n\n// interface UiState {\nconst initialState = {\n loading: false,\n isIncludeExternalTrade: false,\n featureActivated: \"\",\n // conversation: window.ai?.api?.conversation || undefined,\n // integration: window.ai?.api?.integration || undefined,\n conversation: \"\",\n onlyExternalConversation: \"\",\n integration: \"\",\n input: \"\",\n userFeedback: [],\n glossary: {},\n responseTemplate: {},\n prevPath: {},\n};\n\nconst uiSlice = createSlice({\n name: \"ui\",\n initialState,\n reducers: {\n setLoading: (state, action) => {\n state.loading = action.payload;\n },\n setConversation: (state, action) => {\n state.conversation = action.payload;\n },\n setOnlyExternalConversation: (state, action) => {\n state.onlyExternalConversation = action.payload;\n },\n setIntegration: (state, action) => {\n state.integration = action.payload;\n },\n setInput: (state, action) => {\n if (typeof action.payload === \"string\") {\n const { input, prevPath } = state;\n\n // if (\n // input &&\n // prevPath.metaTitle &&\n // action.payload.length < input.length\n // ) {\n // const metaIndex = input.indexOf(prevPath.metaTitle);\n // state.input = input.slice(0, metaIndex);\n // state.prevPath = {};\n\n // return;\n // }\n\n if (\n input &&\n prevPath.metaTitle &&\n action.payload &&\n action.payload.indexOf(prevPath.metaTitle) < 0\n ) {\n state.prevPath = {};\n }\n\n if (action.payload === \"\") {\n state.featureActivated = \"\";\n }\n\n state.input = action.payload;\n\n return;\n }\n\n const { feature } = action.payload;\n\n const newText = state.prevPath.metaTitle\n ? `${feature.prefixMetaTitle ? feature.prefixMetaTitle + \" \" : \"\"}${\n state.prevPath.metaTitle\n }${feature.suffixMetaTitle ? \" \" + feature.suffixMetaTitle : \"\"}`\n : feature.desc;\n\n state.input = newText;\n state.featureActivated = feature.title;\n },\n setUserFeedback: (state, action) => {\n state.userFeedback = action.payload;\n },\n setGlossary: (state, action) => {\n state.glossary = action.payload;\n },\n setResponseTemplate: (state, action) => {\n state.responseTemplate = action.payload;\n },\n setIsIncludeExternalTrade: (state, action) => {\n state.isIncludeExternalTrade = action.payload;\n },\n setPrevPath: (state, action) => {\n state.prevPath = action.payload;\n },\n setFeatureActivated: (state, action) => {\n state.featureActivated = action.payload;\n },\n },\n});\n\nexport const {\n setLoading,\n setConversation,\n setIntegration,\n setInput,\n setUserFeedback,\n setGlossary,\n setResponseTemplate,\n setPrevPath,\n setFeatureActivated,\n setIsIncludeExternalTrade,\n setOnlyExternalConversation,\n} = uiSlice.actions;\n\nexport default uiSlice.reducer;\n","import { createSlice } from \"@reduxjs/toolkit\";\n\nconst initialState = {\n isShowPromptLibrary: false,\n sample: [],\n tips: [],\n features: []\n};\n\nconst promptSlice = createSlice({\n name: \"prompt\",\n initialState,\n reducers: {\n setSamplePrompt: (state, action) => {\n state.sample = action.payload\n },\n setStatusPromptLibrary: (state, action) => {\n state.isShowPromptLibrary = action.payload\n },\n setTipsPrompt: (state, action) => {\n state.tips = action.payload\n },\n setFeaturesPrompt: (state, action) => {\n state.features = action.payload\n },\n },\n});\n\nexport const { setStatusPromptLibrary, setSamplePrompt, setTipsPrompt, setFeaturesPrompt } =\n promptSlice.actions;\n\nexport default promptSlice.reducer;\n","'use strict';\n\nexport default function bind(fn, thisArg) {\n return function wrap() {\n return fn.apply(thisArg, arguments);\n };\n}\n","'use strict';\n\nimport bind from './helpers/bind.js';\n\n// utils is a library of generic helper functions non-specific to axios\n\nconst {toString} = Object.prototype;\nconst {getPrototypeOf} = Object;\n\nconst kindOf = (cache => thing => {\n const str = toString.call(thing);\n return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());\n})(Object.create(null));\n\nconst kindOfTest = (type) => {\n type = type.toLowerCase();\n return (thing) => kindOf(thing) === type\n}\n\nconst typeOfTest = type => thing => typeof thing === type;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n *\n * @returns {boolean} True if value is an Array, otherwise false\n */\nconst {isArray} = Array;\n\n/**\n * Determine if a value is undefined\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nconst isUndefined = typeOfTest('undefined');\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && isFunction(val.constructor.isBuffer) && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nconst isArrayBuffer = kindOfTest('ArrayBuffer');\n\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n let result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (isArrayBuffer(val.buffer));\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a String, otherwise false\n */\nconst isString = typeOfTest('string');\n\n/**\n * Determine if a value is a Function\n *\n * @param {*} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nconst isFunction = typeOfTest('function');\n\n/**\n * Determine if a value is a Number\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Number, otherwise false\n */\nconst isNumber = typeOfTest('number');\n\n/**\n * Determine if a value is an Object\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an Object, otherwise false\n */\nconst isObject = (thing) => thing !== null && typeof thing === 'object';\n\n/**\n * Determine if a value is a Boolean\n *\n * @param {*} thing The value to test\n * @returns {boolean} True if value is a Boolean, otherwise false\n */\nconst isBoolean = thing => thing === true || thing === false;\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a plain Object, otherwise false\n */\nconst isPlainObject = (val) => {\n if (kindOf(val) !== 'object') {\n return false;\n }\n\n const prototype = getPrototypeOf(val);\n return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in val) && !(Symbol.iterator in val);\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Date, otherwise false\n */\nconst isDate = kindOfTest('Date');\n\n/**\n * Determine if a value is a File\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFile = kindOfTest('File');\n\n/**\n * Determine if a value is a Blob\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nconst isBlob = kindOfTest('Blob');\n\n/**\n * Determine if a value is a FileList\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFileList = kindOfTest('FileList');\n\n/**\n * Determine if a value is a Stream\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nconst isStream = (val) => isObject(val) && isFunction(val.pipe);\n\n/**\n * Determine if a value is a FormData\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nconst isFormData = (thing) => {\n let kind;\n return thing && (\n (typeof FormData === 'function' && thing instanceof FormData) || (\n isFunction(thing.append) && (\n (kind = kindOf(thing)) === 'formdata' ||\n // detect form-data instance\n (kind === 'object' && isFunction(thing.toString) && thing.toString() === '[object FormData]')\n )\n )\n )\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nconst isURLSearchParams = kindOfTest('URLSearchParams');\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n *\n * @returns {String} The String freed of excess whitespace\n */\nconst trim = (str) => str.trim ?\n str.trim() : str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n *\n * @param {Boolean} [allOwnKeys = false]\n * @returns {any}\n */\nfunction forEach(obj, fn, {allOwnKeys = false} = {}) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n let i;\n let l;\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n const keys = allOwnKeys ? Object.getOwnPropertyNames(obj) : Object.keys(obj);\n const len = keys.length;\n let key;\n\n for (i = 0; i < len; i++) {\n key = keys[i];\n fn.call(null, obj[key], key, obj);\n }\n }\n}\n\nfunction findKey(obj, key) {\n key = key.toLowerCase();\n const keys = Object.keys(obj);\n let i = keys.length;\n let _key;\n while (i-- > 0) {\n _key = keys[i];\n if (key === _key.toLowerCase()) {\n return _key;\n }\n }\n return null;\n}\n\nconst _global = (() => {\n /*eslint no-undef:0*/\n if (typeof globalThis !== \"undefined\") return globalThis;\n return typeof self !== \"undefined\" ? self : (typeof window !== 'undefined' ? window : global)\n})();\n\nconst isContextDefined = (context) => !isUndefined(context) && context !== _global;\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n *\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n const {caseless} = isContextDefined(this) && this || {};\n const result = {};\n const assignValue = (val, key) => {\n const targetKey = caseless && findKey(result, key) || key;\n if (isPlainObject(result[targetKey]) && isPlainObject(val)) {\n result[targetKey] = merge(result[targetKey], val);\n } else if (isPlainObject(val)) {\n result[targetKey] = merge({}, val);\n } else if (isArray(val)) {\n result[targetKey] = val.slice();\n } else {\n result[targetKey] = val;\n }\n }\n\n for (let i = 0, l = arguments.length; i < l; i++) {\n arguments[i] && forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n *\n * @param {Boolean} [allOwnKeys]\n * @returns {Object} The resulting value of object a\n */\nconst extend = (a, b, thisArg, {allOwnKeys}= {}) => {\n forEach(b, (val, key) => {\n if (thisArg && isFunction(val)) {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n }, {allOwnKeys});\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n *\n * @returns {string} content value without BOM\n */\nconst stripBOM = (content) => {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\n/**\n * Inherit the prototype methods from one constructor into another\n * @param {function} constructor\n * @param {function} superConstructor\n * @param {object} [props]\n * @param {object} [descriptors]\n *\n * @returns {void}\n */\nconst inherits = (constructor, superConstructor, props, descriptors) => {\n constructor.prototype = Object.create(superConstructor.prototype, descriptors);\n constructor.prototype.constructor = constructor;\n Object.defineProperty(constructor, 'super', {\n value: superConstructor.prototype\n });\n props && Object.assign(constructor.prototype, props);\n}\n\n/**\n * Resolve object with deep prototype chain to a flat object\n * @param {Object} sourceObj source object\n * @param {Object} [destObj]\n * @param {Function|Boolean} [filter]\n * @param {Function} [propFilter]\n *\n * @returns {Object}\n */\nconst toFlatObject = (sourceObj, destObj, filter, propFilter) => {\n let props;\n let i;\n let prop;\n const merged = {};\n\n destObj = destObj || {};\n // eslint-disable-next-line no-eq-null,eqeqeq\n if (sourceObj == null) return destObj;\n\n do {\n props = Object.getOwnPropertyNames(sourceObj);\n i = props.length;\n while (i-- > 0) {\n prop = props[i];\n if ((!propFilter || propFilter(prop, sourceObj, destObj)) && !merged[prop]) {\n destObj[prop] = sourceObj[prop];\n merged[prop] = true;\n }\n }\n sourceObj = filter !== false && getPrototypeOf(sourceObj);\n } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype);\n\n return destObj;\n}\n\n/**\n * Determines whether a string ends with the characters of a specified string\n *\n * @param {String} str\n * @param {String} searchString\n * @param {Number} [position= 0]\n *\n * @returns {boolean}\n */\nconst endsWith = (str, searchString, position) => {\n str = String(str);\n if (position === undefined || position > str.length) {\n position = str.length;\n }\n position -= searchString.length;\n const lastIndex = str.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n}\n\n\n/**\n * Returns new array from array like object or null if failed\n *\n * @param {*} [thing]\n *\n * @returns {?Array}\n */\nconst toArray = (thing) => {\n if (!thing) return null;\n if (isArray(thing)) return thing;\n let i = thing.length;\n if (!isNumber(i)) return null;\n const arr = new Array(i);\n while (i-- > 0) {\n arr[i] = thing[i];\n }\n return arr;\n}\n\n/**\n * Checking if the Uint8Array exists and if it does, it returns a function that checks if the\n * thing passed in is an instance of Uint8Array\n *\n * @param {TypedArray}\n *\n * @returns {Array}\n */\n// eslint-disable-next-line func-names\nconst isTypedArray = (TypedArray => {\n // eslint-disable-next-line func-names\n return thing => {\n return TypedArray && thing instanceof TypedArray;\n };\n})(typeof Uint8Array !== 'undefined' && getPrototypeOf(Uint8Array));\n\n/**\n * For each entry in the object, call the function with the key and value.\n *\n * @param {Object} obj - The object to iterate over.\n * @param {Function} fn - The function to call for each entry.\n *\n * @returns {void}\n */\nconst forEachEntry = (obj, fn) => {\n const generator = obj && obj[Symbol.iterator];\n\n const iterator = generator.call(obj);\n\n let result;\n\n while ((result = iterator.next()) && !result.done) {\n const pair = result.value;\n fn.call(obj, pair[0], pair[1]);\n }\n}\n\n/**\n * It takes a regular expression and a string, and returns an array of all the matches\n *\n * @param {string} regExp - The regular expression to match against.\n * @param {string} str - The string to search.\n *\n * @returns {Array}\n */\nconst matchAll = (regExp, str) => {\n let matches;\n const arr = [];\n\n while ((matches = regExp.exec(str)) !== null) {\n arr.push(matches);\n }\n\n return arr;\n}\n\n/* Checking if the kindOfTest function returns true when passed an HTMLFormElement. */\nconst isHTMLForm = kindOfTest('HTMLFormElement');\n\nconst toCamelCase = str => {\n return str.toLowerCase().replace(/[-_\\s]([a-z\\d])(\\w*)/g,\n function replacer(m, p1, p2) {\n return p1.toUpperCase() + p2;\n }\n );\n};\n\n/* Creating a function that will check if an object has a property. */\nconst hasOwnProperty = (({hasOwnProperty}) => (obj, prop) => hasOwnProperty.call(obj, prop))(Object.prototype);\n\n/**\n * Determine if a value is a RegExp object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a RegExp object, otherwise false\n */\nconst isRegExp = kindOfTest('RegExp');\n\nconst reduceDescriptors = (obj, reducer) => {\n const descriptors = Object.getOwnPropertyDescriptors(obj);\n const reducedDescriptors = {};\n\n forEach(descriptors, (descriptor, name) => {\n let ret;\n if ((ret = reducer(descriptor, name, obj)) !== false) {\n reducedDescriptors[name] = ret || descriptor;\n }\n });\n\n Object.defineProperties(obj, reducedDescriptors);\n}\n\n/**\n * Makes all methods read-only\n * @param {Object} obj\n */\n\nconst freezeMethods = (obj) => {\n reduceDescriptors(obj, (descriptor, name) => {\n // skip restricted props in strict mode\n if (isFunction(obj) && ['arguments', 'caller', 'callee'].indexOf(name) !== -1) {\n return false;\n }\n\n const value = obj[name];\n\n if (!isFunction(value)) return;\n\n descriptor.enumerable = false;\n\n if ('writable' in descriptor) {\n descriptor.writable = false;\n return;\n }\n\n if (!descriptor.set) {\n descriptor.set = () => {\n throw Error('Can not rewrite read-only method \\'' + name + '\\'');\n };\n }\n });\n}\n\nconst toObjectSet = (arrayOrString, delimiter) => {\n const obj = {};\n\n const define = (arr) => {\n arr.forEach(value => {\n obj[value] = true;\n });\n }\n\n isArray(arrayOrString) ? define(arrayOrString) : define(String(arrayOrString).split(delimiter));\n\n return obj;\n}\n\nconst noop = () => {}\n\nconst toFiniteNumber = (value, defaultValue) => {\n value = +value;\n return Number.isFinite(value) ? value : defaultValue;\n}\n\nconst ALPHA = 'abcdefghijklmnopqrstuvwxyz'\n\nconst DIGIT = '0123456789';\n\nconst ALPHABET = {\n DIGIT,\n ALPHA,\n ALPHA_DIGIT: ALPHA + ALPHA.toUpperCase() + DIGIT\n}\n\nconst generateString = (size = 16, alphabet = ALPHABET.ALPHA_DIGIT) => {\n let str = '';\n const {length} = alphabet;\n while (size--) {\n str += alphabet[Math.random() * length|0]\n }\n\n return str;\n}\n\n/**\n * If the thing is a FormData object, return true, otherwise return false.\n *\n * @param {unknown} thing - The thing to check.\n *\n * @returns {boolean}\n */\nfunction isSpecCompliantForm(thing) {\n return !!(thing && isFunction(thing.append) && thing[Symbol.toStringTag] === 'FormData' && thing[Symbol.iterator]);\n}\n\nconst toJSONObject = (obj) => {\n const stack = new Array(10);\n\n const visit = (source, i) => {\n\n if (isObject(source)) {\n if (stack.indexOf(source) >= 0) {\n return;\n }\n\n if(!('toJSON' in source)) {\n stack[i] = source;\n const target = isArray(source) ? [] : {};\n\n forEach(source, (value, key) => {\n const reducedValue = visit(value, i + 1);\n !isUndefined(reducedValue) && (target[key] = reducedValue);\n });\n\n stack[i] = undefined;\n\n return target;\n }\n }\n\n return source;\n }\n\n return visit(obj, 0);\n}\n\nconst isAsyncFn = kindOfTest('AsyncFunction');\n\nconst isThenable = (thing) =>\n thing && (isObject(thing) || isFunction(thing)) && isFunction(thing.then) && isFunction(thing.catch);\n\nexport default {\n isArray,\n isArrayBuffer,\n isBuffer,\n isFormData,\n isArrayBufferView,\n isString,\n isNumber,\n isBoolean,\n isObject,\n isPlainObject,\n isUndefined,\n isDate,\n isFile,\n isBlob,\n isRegExp,\n isFunction,\n isStream,\n isURLSearchParams,\n isTypedArray,\n isFileList,\n forEach,\n merge,\n extend,\n trim,\n stripBOM,\n inherits,\n toFlatObject,\n kindOf,\n kindOfTest,\n endsWith,\n toArray,\n forEachEntry,\n matchAll,\n isHTMLForm,\n hasOwnProperty,\n hasOwnProp: hasOwnProperty, // an alias to avoid ESLint no-prototype-builtins detection\n reduceDescriptors,\n freezeMethods,\n toObjectSet,\n toCamelCase,\n noop,\n toFiniteNumber,\n findKey,\n global: _global,\n isContextDefined,\n ALPHABET,\n generateString,\n isSpecCompliantForm,\n toJSONObject,\n isAsyncFn,\n isThenable\n};\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [config] The config.\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n *\n * @returns {Error} The created error.\n */\nfunction AxiosError(message, code, config, request, response) {\n Error.call(this);\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n } else {\n this.stack = (new Error()).stack;\n }\n\n this.message = message;\n this.name = 'AxiosError';\n code && (this.code = code);\n config && (this.config = config);\n request && (this.request = request);\n response && (this.response = response);\n}\n\nutils.inherits(AxiosError, Error, {\n toJSON: function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: utils.toJSONObject(this.config),\n code: this.code,\n status: this.response && this.response.status ? this.response.status : null\n };\n }\n});\n\nconst prototype = AxiosError.prototype;\nconst descriptors = {};\n\n[\n 'ERR_BAD_OPTION_VALUE',\n 'ERR_BAD_OPTION',\n 'ECONNABORTED',\n 'ETIMEDOUT',\n 'ERR_NETWORK',\n 'ERR_FR_TOO_MANY_REDIRECTS',\n 'ERR_DEPRECATED',\n 'ERR_BAD_RESPONSE',\n 'ERR_BAD_REQUEST',\n 'ERR_CANCELED',\n 'ERR_NOT_SUPPORT',\n 'ERR_INVALID_URL'\n// eslint-disable-next-line func-names\n].forEach(code => {\n descriptors[code] = {value: code};\n});\n\nObject.defineProperties(AxiosError, descriptors);\nObject.defineProperty(prototype, 'isAxiosError', {value: true});\n\n// eslint-disable-next-line func-names\nAxiosError.from = (error, code, config, request, response, customProps) => {\n const axiosError = Object.create(prototype);\n\n utils.toFlatObject(error, axiosError, function filter(obj) {\n return obj !== Error.prototype;\n }, prop => {\n return prop !== 'isAxiosError';\n });\n\n AxiosError.call(axiosError, error.message, code, config, request, response);\n\n axiosError.cause = error;\n\n axiosError.name = error.name;\n\n customProps && Object.assign(axiosError, customProps);\n\n return axiosError;\n};\n\nexport default AxiosError;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\n// temporary hotfix to avoid circular references until AxiosURLSearchParams is refactored\nimport PlatformFormData from '../platform/node/classes/FormData.js';\n\n/**\n * Determines if the given thing is a array or js object.\n *\n * @param {string} thing - The object or array to be visited.\n *\n * @returns {boolean}\n */\nfunction isVisitable(thing) {\n return utils.isPlainObject(thing) || utils.isArray(thing);\n}\n\n/**\n * It removes the brackets from the end of a string\n *\n * @param {string} key - The key of the parameter.\n *\n * @returns {string} the key without the brackets.\n */\nfunction removeBrackets(key) {\n return utils.endsWith(key, '[]') ? key.slice(0, -2) : key;\n}\n\n/**\n * It takes a path, a key, and a boolean, and returns a string\n *\n * @param {string} path - The path to the current key.\n * @param {string} key - The key of the current object being iterated over.\n * @param {string} dots - If true, the key will be rendered with dots instead of brackets.\n *\n * @returns {string} The path to the current key.\n */\nfunction renderKey(path, key, dots) {\n if (!path) return key;\n return path.concat(key).map(function each(token, i) {\n // eslint-disable-next-line no-param-reassign\n token = removeBrackets(token);\n return !dots && i ? '[' + token + ']' : token;\n }).join(dots ? '.' : '');\n}\n\n/**\n * If the array is an array and none of its elements are visitable, then it's a flat array.\n *\n * @param {Array} arr - The array to check\n *\n * @returns {boolean}\n */\nfunction isFlatArray(arr) {\n return utils.isArray(arr) && !arr.some(isVisitable);\n}\n\nconst predicates = utils.toFlatObject(utils, {}, null, function filter(prop) {\n return /^is[A-Z]/.test(prop);\n});\n\n/**\n * Convert a data object to FormData\n *\n * @param {Object} obj\n * @param {?Object} [formData]\n * @param {?Object} [options]\n * @param {Function} [options.visitor]\n * @param {Boolean} [options.metaTokens = true]\n * @param {Boolean} [options.dots = false]\n * @param {?Boolean} [options.indexes = false]\n *\n * @returns {Object}\n **/\n\n/**\n * It converts an object into a FormData object\n *\n * @param {Object} obj - The object to convert to form data.\n * @param {string} formData - The FormData object to append to.\n * @param {Object} options\n *\n * @returns\n */\nfunction toFormData(obj, formData, options) {\n if (!utils.isObject(obj)) {\n throw new TypeError('target must be an object');\n }\n\n // eslint-disable-next-line no-param-reassign\n formData = formData || new (PlatformFormData || FormData)();\n\n // eslint-disable-next-line no-param-reassign\n options = utils.toFlatObject(options, {\n metaTokens: true,\n dots: false,\n indexes: false\n }, false, function defined(option, source) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n return !utils.isUndefined(source[option]);\n });\n\n const metaTokens = options.metaTokens;\n // eslint-disable-next-line no-use-before-define\n const visitor = options.visitor || defaultVisitor;\n const dots = options.dots;\n const indexes = options.indexes;\n const _Blob = options.Blob || typeof Blob !== 'undefined' && Blob;\n const useBlob = _Blob && utils.isSpecCompliantForm(formData);\n\n if (!utils.isFunction(visitor)) {\n throw new TypeError('visitor must be a function');\n }\n\n function convertValue(value) {\n if (value === null) return '';\n\n if (utils.isDate(value)) {\n return value.toISOString();\n }\n\n if (!useBlob && utils.isBlob(value)) {\n throw new AxiosError('Blob is not supported. Use a Buffer instead.');\n }\n\n if (utils.isArrayBuffer(value) || utils.isTypedArray(value)) {\n return useBlob && typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value);\n }\n\n return value;\n }\n\n /**\n * Default visitor.\n *\n * @param {*} value\n * @param {String|Number} key\n * @param {Array} path\n * @this {FormData}\n *\n * @returns {boolean} return true to visit the each prop of the value recursively\n */\n function defaultVisitor(value, key, path) {\n let arr = value;\n\n if (value && !path && typeof value === 'object') {\n if (utils.endsWith(key, '{}')) {\n // eslint-disable-next-line no-param-reassign\n key = metaTokens ? key : key.slice(0, -2);\n // eslint-disable-next-line no-param-reassign\n value = JSON.stringify(value);\n } else if (\n (utils.isArray(value) && isFlatArray(value)) ||\n ((utils.isFileList(value) || utils.endsWith(key, '[]')) && (arr = utils.toArray(value))\n )) {\n // eslint-disable-next-line no-param-reassign\n key = removeBrackets(key);\n\n arr.forEach(function each(el, index) {\n !(utils.isUndefined(el) || el === null) && formData.append(\n // eslint-disable-next-line no-nested-ternary\n indexes === true ? renderKey([key], index, dots) : (indexes === null ? key : key + '[]'),\n convertValue(el)\n );\n });\n return false;\n }\n }\n\n if (isVisitable(value)) {\n return true;\n }\n\n formData.append(renderKey(path, key, dots), convertValue(value));\n\n return false;\n }\n\n const stack = [];\n\n const exposedHelpers = Object.assign(predicates, {\n defaultVisitor,\n convertValue,\n isVisitable\n });\n\n function build(value, path) {\n if (utils.isUndefined(value)) return;\n\n if (stack.indexOf(value) !== -1) {\n throw Error('Circular reference detected in ' + path.join('.'));\n }\n\n stack.push(value);\n\n utils.forEach(value, function each(el, key) {\n const result = !(utils.isUndefined(el) || el === null) && visitor.call(\n formData, el, utils.isString(key) ? key.trim() : key, path, exposedHelpers\n );\n\n if (result === true) {\n build(el, path ? path.concat(key) : [key]);\n }\n });\n\n stack.pop();\n }\n\n if (!utils.isObject(obj)) {\n throw new TypeError('data must be an object');\n }\n\n build(obj);\n\n return formData;\n}\n\nexport default toFormData;\n","'use strict';\n\nimport toFormData from './toFormData.js';\n\n/**\n * It encodes a string by replacing all characters that are not in the unreserved set with\n * their percent-encoded equivalents\n *\n * @param {string} str - The string to encode.\n *\n * @returns {string} The encoded string.\n */\nfunction encode(str) {\n const charMap = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+',\n '%00': '\\x00'\n };\n return encodeURIComponent(str).replace(/[!'()~]|%20|%00/g, function replacer(match) {\n return charMap[match];\n });\n}\n\n/**\n * It takes a params object and converts it to a FormData object\n *\n * @param {Object} params - The parameters to be converted to a FormData object.\n * @param {Object} options - The options object passed to the Axios constructor.\n *\n * @returns {void}\n */\nfunction AxiosURLSearchParams(params, options) {\n this._pairs = [];\n\n params && toFormData(params, this, options);\n}\n\nconst prototype = AxiosURLSearchParams.prototype;\n\nprototype.append = function append(name, value) {\n this._pairs.push([name, value]);\n};\n\nprototype.toString = function toString(encoder) {\n const _encode = encoder ? function(value) {\n return encoder.call(this, value, encode);\n } : encode;\n\n return this._pairs.map(function each(pair) {\n return _encode(pair[0]) + '=' + _encode(pair[1]);\n }, '').join('&');\n};\n\nexport default AxiosURLSearchParams;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosURLSearchParams from '../helpers/AxiosURLSearchParams.js';\n\n/**\n * It replaces all instances of the characters `:`, `$`, `,`, `+`, `[`, and `]` with their\n * URI encoded counterparts\n *\n * @param {string} val The value to be encoded.\n *\n * @returns {string} The encoded value.\n */\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @param {?object} options\n *\n * @returns {string} The formatted url\n */\nexport default function buildURL(url, params, options) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n \n const _encode = options && options.encode || encode;\n\n const serializeFn = options && options.serialize;\n\n let serializedParams;\n\n if (serializeFn) {\n serializedParams = serializeFn(params, options);\n } else {\n serializedParams = utils.isURLSearchParams(params) ?\n params.toString() :\n new AxiosURLSearchParams(params, options).toString(_encode);\n }\n\n if (serializedParams) {\n const hashmarkIndex = url.indexOf(\"#\");\n\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\nclass InterceptorManager {\n constructor() {\n this.handlers = [];\n }\n\n /**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\n use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled,\n rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n }\n\n /**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n *\n * @returns {Boolean} `true` if the interceptor was removed, `false` otherwise\n */\n eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n }\n\n /**\n * Clear all interceptors from the stack\n *\n * @returns {void}\n */\n clear() {\n if (this.handlers) {\n this.handlers = [];\n }\n }\n\n /**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n *\n * @returns {void}\n */\n forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n }\n}\n\nexport default InterceptorManager;\n","'use strict';\n\nexport default {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n};\n","import URLSearchParams from './classes/URLSearchParams.js'\nimport FormData from './classes/FormData.js'\nimport Blob from './classes/Blob.js'\n\nexport default {\n isBrowser: true,\n classes: {\n URLSearchParams,\n FormData,\n Blob\n },\n protocols: ['http', 'https', 'file', 'blob', 'url', 'data']\n};\n","'use strict';\n\nimport AxiosURLSearchParams from '../../../helpers/AxiosURLSearchParams.js';\nexport default typeof URLSearchParams !== 'undefined' ? URLSearchParams : AxiosURLSearchParams;\n","'use strict';\n\nexport default typeof FormData !== 'undefined' ? FormData : null;\n","'use strict'\n\nexport default typeof Blob !== 'undefined' ? Blob : null\n","const hasBrowserEnv = typeof window !== 'undefined' && typeof document !== 'undefined';\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n *\n * @returns {boolean}\n */\nconst hasStandardBrowserEnv = (\n (product) => {\n return hasBrowserEnv && ['ReactNative', 'NativeScript', 'NS'].indexOf(product) < 0\n })(typeof navigator !== 'undefined' && navigator.product);\n\n/**\n * Determine if we're running in a standard browser webWorker environment\n *\n * Although the `isStandardBrowserEnv` method indicates that\n * `allows axios to run in a web worker`, the WebWorker will still be\n * filtered out due to its judgment standard\n * `typeof window !== 'undefined' && typeof document !== 'undefined'`.\n * This leads to a problem when axios post `FormData` in webWorker\n */\nconst hasStandardBrowserWebWorkerEnv = (() => {\n return (\n typeof WorkerGlobalScope !== 'undefined' &&\n // eslint-disable-next-line no-undef\n self instanceof WorkerGlobalScope &&\n typeof self.importScripts === 'function'\n );\n})();\n\nexport {\n hasBrowserEnv,\n hasStandardBrowserWebWorkerEnv,\n hasStandardBrowserEnv\n}\n","import platform from './node/index.js';\nimport * as utils from './common/utils.js';\n\nexport default {\n ...utils,\n ...platform\n}\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * It takes a string like `foo[x][y][z]` and returns an array like `['foo', 'x', 'y', 'z']\n *\n * @param {string} name - The name of the property to get.\n *\n * @returns An array of strings.\n */\nfunction parsePropPath(name) {\n // foo[x][y][z]\n // foo.x.y.z\n // foo-x-y-z\n // foo x y z\n return utils.matchAll(/\\w+|\\[(\\w*)]/g, name).map(match => {\n return match[0] === '[]' ? '' : match[1] || match[0];\n });\n}\n\n/**\n * Convert an array to an object.\n *\n * @param {Array} arr - The array to convert to an object.\n *\n * @returns An object with the same keys and values as the array.\n */\nfunction arrayToObject(arr) {\n const obj = {};\n const keys = Object.keys(arr);\n let i;\n const len = keys.length;\n let key;\n for (i = 0; i < len; i++) {\n key = keys[i];\n obj[key] = arr[key];\n }\n return obj;\n}\n\n/**\n * It takes a FormData object and returns a JavaScript object\n *\n * @param {string} formData The FormData object to convert to JSON.\n *\n * @returns {Object | null} The converted object.\n */\nfunction formDataToJSON(formData) {\n function buildPath(path, value, target, index) {\n let name = path[index++];\n\n if (name === '__proto__') return true;\n\n const isNumericKey = Number.isFinite(+name);\n const isLast = index >= path.length;\n name = !name && utils.isArray(target) ? target.length : name;\n\n if (isLast) {\n if (utils.hasOwnProp(target, name)) {\n target[name] = [target[name], value];\n } else {\n target[name] = value;\n }\n\n return !isNumericKey;\n }\n\n if (!target[name] || !utils.isObject(target[name])) {\n target[name] = [];\n }\n\n const result = buildPath(path, value, target[name], index);\n\n if (result && utils.isArray(target[name])) {\n target[name] = arrayToObject(target[name]);\n }\n\n return !isNumericKey;\n }\n\n if (utils.isFormData(formData) && utils.isFunction(formData.entries)) {\n const obj = {};\n\n utils.forEachEntry(formData, (name, value) => {\n buildPath(parsePropPath(name), value, obj, 0);\n });\n\n return obj;\n }\n\n return null;\n}\n\nexport default formDataToJSON;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\nimport transitionalDefaults from './transitional.js';\nimport toFormData from '../helpers/toFormData.js';\nimport toURLEncodedForm from '../helpers/toURLEncodedForm.js';\nimport platform from '../platform/index.js';\nimport formDataToJSON from '../helpers/formDataToJSON.js';\n\n/**\n * It takes a string, tries to parse it, and if it fails, it returns the stringified version\n * of the input\n *\n * @param {any} rawValue - The value to be stringified.\n * @param {Function} parser - A function that parses a string into a JavaScript object.\n * @param {Function} encoder - A function that takes a value and returns a string.\n *\n * @returns {string} A stringified version of the rawValue.\n */\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nconst defaults = {\n\n transitional: transitionalDefaults,\n\n adapter: ['xhr', 'http'],\n\n transformRequest: [function transformRequest(data, headers) {\n const contentType = headers.getContentType() || '';\n const hasJSONContentType = contentType.indexOf('application/json') > -1;\n const isObjectPayload = utils.isObject(data);\n\n if (isObjectPayload && utils.isHTMLForm(data)) {\n data = new FormData(data);\n }\n\n const isFormData = utils.isFormData(data);\n\n if (isFormData) {\n if (!hasJSONContentType) {\n return data;\n }\n return hasJSONContentType ? JSON.stringify(formDataToJSON(data)) : data;\n }\n\n if (utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n headers.setContentType('application/x-www-form-urlencoded;charset=utf-8', false);\n return data.toString();\n }\n\n let isFileList;\n\n if (isObjectPayload) {\n if (contentType.indexOf('application/x-www-form-urlencoded') > -1) {\n return toURLEncodedForm(data, this.formSerializer).toString();\n }\n\n if ((isFileList = utils.isFileList(data)) || contentType.indexOf('multipart/form-data') > -1) {\n const _FormData = this.env && this.env.FormData;\n\n return toFormData(\n isFileList ? {'files[]': data} : data,\n _FormData && new _FormData(),\n this.formSerializer\n );\n }\n }\n\n if (isObjectPayload || hasJSONContentType ) {\n headers.setContentType('application/json', false);\n return stringifySafely(data);\n }\n\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n const transitional = this.transitional || defaults.transitional;\n const forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n const JSONRequested = this.responseType === 'json';\n\n if (data && utils.isString(data) && ((forcedJSONParsing && !this.responseType) || JSONRequested)) {\n const silentJSONParsing = transitional && transitional.silentJSONParsing;\n const strictJSONParsing = !silentJSONParsing && JSONRequested;\n\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, this.response);\n }\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n env: {\n FormData: platform.classes.FormData,\n Blob: platform.classes.Blob\n },\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n 'Accept': 'application/json, text/plain, */*',\n 'Content-Type': undefined\n }\n }\n};\n\nutils.forEach(['delete', 'get', 'head', 'post', 'put', 'patch'], (method) => {\n defaults.headers[method] = {};\n});\n\nexport default defaults;\n","'use strict';\n\nimport utils from '../utils.js';\nimport toFormData from './toFormData.js';\nimport platform from '../platform/index.js';\n\nexport default function toURLEncodedForm(data, options) {\n return toFormData(data, new platform.classes.URLSearchParams(), Object.assign({\n visitor: function(value, key, path, helpers) {\n if (platform.isNode && utils.isBuffer(value)) {\n this.append(key, value.toString('base64'));\n return false;\n }\n\n return helpers.defaultVisitor.apply(this, arguments);\n }\n }, options));\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\n// RawAxiosHeaders whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nconst ignoreDuplicateOf = utils.toObjectSet([\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n]);\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} rawHeaders Headers needing to be parsed\n *\n * @returns {Object} Headers parsed into an object\n */\nexport default rawHeaders => {\n const parsed = {};\n let key;\n let val;\n let i;\n\n rawHeaders && rawHeaders.split('\\n').forEach(function parser(line) {\n i = line.indexOf(':');\n key = line.substring(0, i).trim().toLowerCase();\n val = line.substring(i + 1).trim();\n\n if (!key || (parsed[key] && ignoreDuplicateOf[key])) {\n return;\n }\n\n if (key === 'set-cookie') {\n if (parsed[key]) {\n parsed[key].push(val);\n } else {\n parsed[key] = [val];\n }\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n });\n\n return parsed;\n};\n","'use strict';\n\nimport utils from '../utils.js';\nimport parseHeaders from '../helpers/parseHeaders.js';\n\nconst $internals = Symbol('internals');\n\nfunction normalizeHeader(header) {\n return header && String(header).trim().toLowerCase();\n}\n\nfunction normalizeValue(value) {\n if (value === false || value == null) {\n return value;\n }\n\n return utils.isArray(value) ? value.map(normalizeValue) : String(value);\n}\n\nfunction parseTokens(str) {\n const tokens = Object.create(null);\n const tokensRE = /([^\\s,;=]+)\\s*(?:=\\s*([^,;]+))?/g;\n let match;\n\n while ((match = tokensRE.exec(str))) {\n tokens[match[1]] = match[2];\n }\n\n return tokens;\n}\n\nconst isValidHeaderName = (str) => /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(str.trim());\n\nfunction matchHeaderValue(context, value, header, filter, isHeaderNameFilter) {\n if (utils.isFunction(filter)) {\n return filter.call(this, value, header);\n }\n\n if (isHeaderNameFilter) {\n value = header;\n }\n\n if (!utils.isString(value)) return;\n\n if (utils.isString(filter)) {\n return value.indexOf(filter) !== -1;\n }\n\n if (utils.isRegExp(filter)) {\n return filter.test(value);\n }\n}\n\nfunction formatHeader(header) {\n return header.trim()\n .toLowerCase().replace(/([a-z\\d])(\\w*)/g, (w, char, str) => {\n return char.toUpperCase() + str;\n });\n}\n\nfunction buildAccessors(obj, header) {\n const accessorName = utils.toCamelCase(' ' + header);\n\n ['get', 'set', 'has'].forEach(methodName => {\n Object.defineProperty(obj, methodName + accessorName, {\n value: function(arg1, arg2, arg3) {\n return this[methodName].call(this, header, arg1, arg2, arg3);\n },\n configurable: true\n });\n });\n}\n\nclass AxiosHeaders {\n constructor(headers) {\n headers && this.set(headers);\n }\n\n set(header, valueOrRewrite, rewrite) {\n const self = this;\n\n function setHeader(_value, _header, _rewrite) {\n const lHeader = normalizeHeader(_header);\n\n if (!lHeader) {\n throw new Error('header name must be a non-empty string');\n }\n\n const key = utils.findKey(self, lHeader);\n\n if(!key || self[key] === undefined || _rewrite === true || (_rewrite === undefined && self[key] !== false)) {\n self[key || _header] = normalizeValue(_value);\n }\n }\n\n const setHeaders = (headers, _rewrite) =>\n utils.forEach(headers, (_value, _header) => setHeader(_value, _header, _rewrite));\n\n if (utils.isPlainObject(header) || header instanceof this.constructor) {\n setHeaders(header, valueOrRewrite)\n } else if(utils.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) {\n setHeaders(parseHeaders(header), valueOrRewrite);\n } else {\n header != null && setHeader(valueOrRewrite, header, rewrite);\n }\n\n return this;\n }\n\n get(header, parser) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n if (key) {\n const value = this[key];\n\n if (!parser) {\n return value;\n }\n\n if (parser === true) {\n return parseTokens(value);\n }\n\n if (utils.isFunction(parser)) {\n return parser.call(this, value, key);\n }\n\n if (utils.isRegExp(parser)) {\n return parser.exec(value);\n }\n\n throw new TypeError('parser must be boolean|regexp|function');\n }\n }\n }\n\n has(header, matcher) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n return !!(key && this[key] !== undefined && (!matcher || matchHeaderValue(this, this[key], key, matcher)));\n }\n\n return false;\n }\n\n delete(header, matcher) {\n const self = this;\n let deleted = false;\n\n function deleteHeader(_header) {\n _header = normalizeHeader(_header);\n\n if (_header) {\n const key = utils.findKey(self, _header);\n\n if (key && (!matcher || matchHeaderValue(self, self[key], key, matcher))) {\n delete self[key];\n\n deleted = true;\n }\n }\n }\n\n if (utils.isArray(header)) {\n header.forEach(deleteHeader);\n } else {\n deleteHeader(header);\n }\n\n return deleted;\n }\n\n clear(matcher) {\n const keys = Object.keys(this);\n let i = keys.length;\n let deleted = false;\n\n while (i--) {\n const key = keys[i];\n if(!matcher || matchHeaderValue(this, this[key], key, matcher, true)) {\n delete this[key];\n deleted = true;\n }\n }\n\n return deleted;\n }\n\n normalize(format) {\n const self = this;\n const headers = {};\n\n utils.forEach(this, (value, header) => {\n const key = utils.findKey(headers, header);\n\n if (key) {\n self[key] = normalizeValue(value);\n delete self[header];\n return;\n }\n\n const normalized = format ? formatHeader(header) : String(header).trim();\n\n if (normalized !== header) {\n delete self[header];\n }\n\n self[normalized] = normalizeValue(value);\n\n headers[normalized] = true;\n });\n\n return this;\n }\n\n concat(...targets) {\n return this.constructor.concat(this, ...targets);\n }\n\n toJSON(asStrings) {\n const obj = Object.create(null);\n\n utils.forEach(this, (value, header) => {\n value != null && value !== false && (obj[header] = asStrings && utils.isArray(value) ? value.join(', ') : value);\n });\n\n return obj;\n }\n\n [Symbol.iterator]() {\n return Object.entries(this.toJSON())[Symbol.iterator]();\n }\n\n toString() {\n return Object.entries(this.toJSON()).map(([header, value]) => header + ': ' + value).join('\\n');\n }\n\n get [Symbol.toStringTag]() {\n return 'AxiosHeaders';\n }\n\n static from(thing) {\n return thing instanceof this ? thing : new this(thing);\n }\n\n static concat(first, ...targets) {\n const computed = new this(first);\n\n targets.forEach((target) => computed.set(target));\n\n return computed;\n }\n\n static accessor(header) {\n const internals = this[$internals] = (this[$internals] = {\n accessors: {}\n });\n\n const accessors = internals.accessors;\n const prototype = this.prototype;\n\n function defineAccessor(_header) {\n const lHeader = normalizeHeader(_header);\n\n if (!accessors[lHeader]) {\n buildAccessors(prototype, _header);\n accessors[lHeader] = true;\n }\n }\n\n utils.isArray(header) ? header.forEach(defineAccessor) : defineAccessor(header);\n\n return this;\n }\n}\n\nAxiosHeaders.accessor(['Content-Type', 'Content-Length', 'Accept', 'Accept-Encoding', 'User-Agent', 'Authorization']);\n\n// reserved names hotfix\nutils.reduceDescriptors(AxiosHeaders.prototype, ({value}, key) => {\n let mapped = key[0].toUpperCase() + key.slice(1); // map `set` => `Set`\n return {\n get: () => value,\n set(headerValue) {\n this[mapped] = headerValue;\n }\n }\n});\n\nutils.freezeMethods(AxiosHeaders);\n\nexport default AxiosHeaders;\n","'use strict';\n\nimport utils from './../utils.js';\nimport defaults from '../defaults/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Array|Function} fns A single function or Array of functions\n * @param {?Object} response The response object\n *\n * @returns {*} The resulting transformed data\n */\nexport default function transformData(fns, response) {\n const config = this || defaults;\n const context = response || config;\n const headers = AxiosHeaders.from(context.headers);\n let data = context.data;\n\n utils.forEach(fns, function transform(fn) {\n data = fn.call(config, data, headers.normalize(), response ? response.status : undefined);\n });\n\n headers.normalize();\n\n return data;\n}\n","'use strict';\n\nexport default function isCancel(value) {\n return !!(value && value.__CANCEL__);\n}\n","'use strict';\n\nimport AxiosError from '../core/AxiosError.js';\nimport utils from '../utils.js';\n\n/**\n * A `CanceledError` is an object that is thrown when an operation is canceled.\n *\n * @param {string=} message The message.\n * @param {Object=} config The config.\n * @param {Object=} request The request.\n *\n * @returns {CanceledError} The created error.\n */\nfunction CanceledError(message, config, request) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n AxiosError.call(this, message == null ? 'canceled' : message, AxiosError.ERR_CANCELED, config, request);\n this.name = 'CanceledError';\n}\n\nutils.inherits(CanceledError, AxiosError, {\n __CANCEL__: true\n});\n\nexport default CanceledError;\n","import utils from './../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv ?\n\n // Standard browser envs support document.cookie\n {\n write(name, value, expires, path, domain, secure) {\n const cookie = [name + '=' + encodeURIComponent(value)];\n\n utils.isNumber(expires) && cookie.push('expires=' + new Date(expires).toGMTString());\n\n utils.isString(path) && cookie.push('path=' + path);\n\n utils.isString(domain) && cookie.push('domain=' + domain);\n\n secure === true && cookie.push('secure');\n\n document.cookie = cookie.join('; ');\n },\n\n read(name) {\n const match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n }\n\n :\n\n // Non-standard browser env (web workers, react-native) lack needed support.\n {\n write() {},\n read() {\n return null;\n },\n remove() {}\n };\n\n","'use strict';\n\nimport isAbsoluteURL from '../helpers/isAbsoluteURL.js';\nimport combineURLs from '../helpers/combineURLs.js';\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n *\n * @returns {string} The combined full path\n */\nexport default function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n}\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n *\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nexport default function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n}\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n *\n * @returns {string} The combined URL\n */\nexport default function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/?\\/$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n}\n","'use strict';\n\nimport utils from './../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv ?\n\n// Standard browser envs have full support of the APIs needed to test\n// whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n const msie = /(msie|trident)/i.test(navigator.userAgent);\n const urlParsingNode = document.createElement('a');\n let originURL;\n\n /**\n * Parse a URL to discover its components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n let href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n const parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })();\n","'use strict';\n\n/**\n * Calculate data maxRate\n * @param {Number} [samplesCount= 10]\n * @param {Number} [min= 1000]\n * @returns {Function}\n */\nfunction speedometer(samplesCount, min) {\n samplesCount = samplesCount || 10;\n const bytes = new Array(samplesCount);\n const timestamps = new Array(samplesCount);\n let head = 0;\n let tail = 0;\n let firstSampleTS;\n\n min = min !== undefined ? min : 1000;\n\n return function push(chunkLength) {\n const now = Date.now();\n\n const startedAt = timestamps[tail];\n\n if (!firstSampleTS) {\n firstSampleTS = now;\n }\n\n bytes[head] = chunkLength;\n timestamps[head] = now;\n\n let i = tail;\n let bytesCount = 0;\n\n while (i !== head) {\n bytesCount += bytes[i++];\n i = i % samplesCount;\n }\n\n head = (head + 1) % samplesCount;\n\n if (head === tail) {\n tail = (tail + 1) % samplesCount;\n }\n\n if (now - firstSampleTS < min) {\n return;\n }\n\n const passed = startedAt && now - startedAt;\n\n return passed ? Math.round(bytesCount * 1000 / passed) : undefined;\n };\n}\n\nexport default speedometer;\n","'use strict';\n\nimport utils from './../utils.js';\nimport settle from './../core/settle.js';\nimport cookies from './../helpers/cookies.js';\nimport buildURL from './../helpers/buildURL.js';\nimport buildFullPath from '../core/buildFullPath.js';\nimport isURLSameOrigin from './../helpers/isURLSameOrigin.js';\nimport transitionalDefaults from '../defaults/transitional.js';\nimport AxiosError from '../core/AxiosError.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport parseProtocol from '../helpers/parseProtocol.js';\nimport platform from '../platform/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport speedometer from '../helpers/speedometer.js';\n\nfunction progressEventReducer(listener, isDownloadStream) {\n let bytesNotified = 0;\n const _speedometer = speedometer(50, 250);\n\n return e => {\n const loaded = e.loaded;\n const total = e.lengthComputable ? e.total : undefined;\n const progressBytes = loaded - bytesNotified;\n const rate = _speedometer(progressBytes);\n const inRange = loaded <= total;\n\n bytesNotified = loaded;\n\n const data = {\n loaded,\n total,\n progress: total ? (loaded / total) : undefined,\n bytes: progressBytes,\n rate: rate ? rate : undefined,\n estimated: rate && total && inRange ? (total - loaded) / rate : undefined,\n event: e\n };\n\n data[isDownloadStream ? 'download' : 'upload'] = true;\n\n listener(data);\n };\n}\n\nconst isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined';\n\nexport default isXHRAdapterSupported && function (config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n let requestData = config.data;\n const requestHeaders = AxiosHeaders.from(config.headers).normalize();\n let {responseType, withXSRFToken} = config;\n let onCanceled;\n function done() {\n if (config.cancelToken) {\n config.cancelToken.unsubscribe(onCanceled);\n }\n\n if (config.signal) {\n config.signal.removeEventListener('abort', onCanceled);\n }\n }\n\n let contentType;\n\n if (utils.isFormData(requestData)) {\n if (platform.hasStandardBrowserEnv || platform.hasStandardBrowserWebWorkerEnv) {\n requestHeaders.setContentType(false); // Let the browser set it\n } else if ((contentType = requestHeaders.getContentType()) !== false) {\n // fix semicolon duplication issue for ReactNative FormData implementation\n const [type, ...tokens] = contentType ? contentType.split(';').map(token => token.trim()).filter(Boolean) : [];\n requestHeaders.setContentType([type || 'multipart/form-data', ...tokens].join('; '));\n }\n }\n\n let request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n const username = config.auth.username || '';\n const password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n requestHeaders.set('Authorization', 'Basic ' + btoa(username + ':' + password));\n }\n\n const fullPath = buildFullPath(config.baseURL, config.url);\n\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n const responseHeaders = AxiosHeaders.from(\n 'getAllResponseHeaders' in request && request.getAllResponseHeaders()\n );\n const responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n const response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config,\n request\n };\n\n settle(function _resolve(value) {\n resolve(value);\n done();\n }, function _reject(err) {\n reject(err);\n done();\n }, response);\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(new AxiosError('Request aborted', AxiosError.ECONNABORTED, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n let timeoutErrorMessage = config.timeout ? 'timeout of ' + config.timeout + 'ms exceeded' : 'timeout exceeded';\n const transitional = config.transitional || transitionalDefaults;\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(new AxiosError(\n timeoutErrorMessage,\n transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,\n config,\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if(platform.hasStandardBrowserEnv) {\n withXSRFToken && utils.isFunction(withXSRFToken) && (withXSRFToken = withXSRFToken(config));\n\n if (withXSRFToken || (withXSRFToken !== false && isURLSameOrigin(fullPath))) {\n // Add xsrf header\n const xsrfValue = config.xsrfHeaderName && config.xsrfCookieName && cookies.read(config.xsrfCookieName);\n\n if (xsrfValue) {\n requestHeaders.set(config.xsrfHeaderName, xsrfValue);\n }\n }\n }\n\n // Remove Content-Type if data is undefined\n requestData === undefined && requestHeaders.setContentType(null);\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders.toJSON(), function setRequestHeader(val, key) {\n request.setRequestHeader(key, val);\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = config.responseType;\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', progressEventReducer(config.onDownloadProgress, true));\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', progressEventReducer(config.onUploadProgress));\n }\n\n if (config.cancelToken || config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = cancel => {\n if (!request) {\n return;\n }\n reject(!cancel || cancel.type ? new CanceledError(null, config, request) : cancel);\n request.abort();\n request = null;\n };\n\n config.cancelToken && config.cancelToken.subscribe(onCanceled);\n if (config.signal) {\n config.signal.aborted ? onCanceled() : config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n const protocol = parseProtocol(fullPath);\n\n if (protocol && platform.protocols.indexOf(protocol) === -1) {\n reject(new AxiosError('Unsupported protocol ' + protocol + ':', AxiosError.ERR_BAD_REQUEST, config));\n return;\n }\n\n\n // Send the request\n request.send(requestData || null);\n });\n}\n","'use strict';\n\nimport AxiosError from './AxiosError.js';\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n *\n * @returns {object} The response.\n */\nexport default function settle(resolve, reject, response) {\n const validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(new AxiosError(\n 'Request failed with status code ' + response.status,\n [AxiosError.ERR_BAD_REQUEST, AxiosError.ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4],\n response.config,\n response.request,\n response\n ));\n }\n}\n","'use strict';\n\nexport default function parseProtocol(url) {\n const match = /^([-+\\w]{1,25})(:?\\/\\/|:)/.exec(url);\n return match && match[1] || '';\n}\n","import utils from '../utils.js';\nimport httpAdapter from './http.js';\nimport xhrAdapter from './xhr.js';\nimport AxiosError from \"../core/AxiosError.js\";\n\nconst knownAdapters = {\n http: httpAdapter,\n xhr: xhrAdapter\n}\n\nutils.forEach(knownAdapters, (fn, value) => {\n if (fn) {\n try {\n Object.defineProperty(fn, 'name', {value});\n } catch (e) {\n // eslint-disable-next-line no-empty\n }\n Object.defineProperty(fn, 'adapterName', {value});\n }\n});\n\nconst renderReason = (reason) => `- ${reason}`;\n\nconst isResolvedHandle = (adapter) => utils.isFunction(adapter) || adapter === null || adapter === false;\n\nexport default {\n getAdapter: (adapters) => {\n adapters = utils.isArray(adapters) ? adapters : [adapters];\n\n const {length} = adapters;\n let nameOrAdapter;\n let adapter;\n\n const rejectedReasons = {};\n\n for (let i = 0; i < length; i++) {\n nameOrAdapter = adapters[i];\n let id;\n\n adapter = nameOrAdapter;\n\n if (!isResolvedHandle(nameOrAdapter)) {\n adapter = knownAdapters[(id = String(nameOrAdapter)).toLowerCase()];\n\n if (adapter === undefined) {\n throw new AxiosError(`Unknown adapter '${id}'`);\n }\n }\n\n if (adapter) {\n break;\n }\n\n rejectedReasons[id || '#' + i] = adapter;\n }\n\n if (!adapter) {\n\n const reasons = Object.entries(rejectedReasons)\n .map(([id, state]) => `adapter ${id} ` +\n (state === false ? 'is not supported by the environment' : 'is not available in the build')\n );\n\n let s = length ?\n (reasons.length > 1 ? 'since :\\n' + reasons.map(renderReason).join('\\n') : ' ' + renderReason(reasons[0])) :\n 'as no adapter specified';\n\n throw new AxiosError(\n `There is no suitable adapter to dispatch the request ` + s,\n 'ERR_NOT_SUPPORT'\n );\n }\n\n return adapter;\n },\n adapters: knownAdapters\n}\n","// eslint-disable-next-line strict\nexport default null;\n","'use strict';\n\nimport transformData from './transformData.js';\nimport isCancel from '../cancel/isCancel.js';\nimport defaults from '../defaults/index.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport adapters from \"../adapters/adapters.js\";\n\n/**\n * Throws a `CanceledError` if cancellation has been requested.\n *\n * @param {Object} config The config that is to be used for the request\n *\n * @returns {void}\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new CanceledError(null, config);\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n *\n * @returns {Promise} The Promise to be fulfilled\n */\nexport default function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n config.headers = AxiosHeaders.from(config.headers);\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.transformRequest\n );\n\n if (['post', 'put', 'patch'].indexOf(config.method) !== -1) {\n config.headers.setContentType('application/x-www-form-urlencoded', false);\n }\n\n const adapter = adapters.getAdapter(config.adapter || defaults.adapter);\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n config.transformResponse,\n response\n );\n\n response.headers = AxiosHeaders.from(response.headers);\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n config.transformResponse,\n reason.response\n );\n reason.response.headers = AxiosHeaders.from(reason.response.headers);\n }\n }\n\n return Promise.reject(reason);\n });\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosHeaders from \"./AxiosHeaders.js\";\n\nconst headersToObject = (thing) => thing instanceof AxiosHeaders ? thing.toJSON() : thing;\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n *\n * @returns {Object} New object resulting from merging config2 to config1\n */\nexport default function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n const config = {};\n\n function getMergedValue(target, source, caseless) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge.call({caseless}, target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDeepProperties(a, b, caseless) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(a, b, caseless);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a, caseless);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(a, b, prop) {\n if (prop in config2) {\n return getMergedValue(a, b);\n } else if (prop in config1) {\n return getMergedValue(undefined, a);\n }\n }\n\n const mergeMap = {\n url: valueFromConfig2,\n method: valueFromConfig2,\n data: valueFromConfig2,\n baseURL: defaultToConfig2,\n transformRequest: defaultToConfig2,\n transformResponse: defaultToConfig2,\n paramsSerializer: defaultToConfig2,\n timeout: defaultToConfig2,\n timeoutMessage: defaultToConfig2,\n withCredentials: defaultToConfig2,\n withXSRFToken: defaultToConfig2,\n adapter: defaultToConfig2,\n responseType: defaultToConfig2,\n xsrfCookieName: defaultToConfig2,\n xsrfHeaderName: defaultToConfig2,\n onUploadProgress: defaultToConfig2,\n onDownloadProgress: defaultToConfig2,\n decompress: defaultToConfig2,\n maxContentLength: defaultToConfig2,\n maxBodyLength: defaultToConfig2,\n beforeRedirect: defaultToConfig2,\n transport: defaultToConfig2,\n httpAgent: defaultToConfig2,\n httpsAgent: defaultToConfig2,\n cancelToken: defaultToConfig2,\n socketPath: defaultToConfig2,\n responseEncoding: defaultToConfig2,\n validateStatus: mergeDirectKeys,\n headers: (a, b) => mergeDeepProperties(headersToObject(a), headersToObject(b), true)\n };\n\n utils.forEach(Object.keys(Object.assign({}, config1, config2)), function computeConfigValue(prop) {\n const merge = mergeMap[prop] || mergeDeepProperties;\n const configValue = merge(config1[prop], config2[prop], prop);\n (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n}\n","export const VERSION = \"1.6.5\";","'use strict';\n\nimport {VERSION} from '../env/data.js';\nimport AxiosError from '../core/AxiosError.js';\n\nconst validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach((type, i) => {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nconst deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n *\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n *\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return '[Axios v' + VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return (value, opt, opts) => {\n if (validator === false) {\n throw new AxiosError(\n formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')),\n AxiosError.ERR_DEPRECATED\n );\n }\n\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\n/**\n * Assert object's properties type\n *\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n *\n * @returns {object}\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new AxiosError('options must be an object', AxiosError.ERR_BAD_OPTION_VALUE);\n }\n const keys = Object.keys(options);\n let i = keys.length;\n while (i-- > 0) {\n const opt = keys[i];\n const validator = schema[opt];\n if (validator) {\n const value = options[opt];\n const result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new AxiosError('option ' + opt + ' must be ' + result, AxiosError.ERR_BAD_OPTION_VALUE);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw new AxiosError('Unknown option ' + opt, AxiosError.ERR_BAD_OPTION);\n }\n }\n}\n\nexport default {\n assertOptions,\n validators\n};\n","'use strict';\n\nimport utils from './../utils.js';\nimport buildURL from '../helpers/buildURL.js';\nimport InterceptorManager from './InterceptorManager.js';\nimport dispatchRequest from './dispatchRequest.js';\nimport mergeConfig from './mergeConfig.js';\nimport buildFullPath from './buildFullPath.js';\nimport validator from '../helpers/validator.js';\nimport AxiosHeaders from './AxiosHeaders.js';\n\nconst validators = validator.validators;\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n *\n * @return {Axios} A new instance of Axios\n */\nclass Axios {\n constructor(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n }\n\n /**\n * Dispatch a request\n *\n * @param {String|Object} configOrUrl The config specific for this request (merged with this.defaults)\n * @param {?Object} config\n *\n * @returns {Promise} The Promise to be fulfilled\n */\n request(configOrUrl, config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof configOrUrl === 'string') {\n config = config || {};\n config.url = configOrUrl;\n } else {\n config = configOrUrl || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n const {transitional, paramsSerializer, headers} = config;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean)\n }, false);\n }\n\n if (paramsSerializer != null) {\n if (utils.isFunction(paramsSerializer)) {\n config.paramsSerializer = {\n serialize: paramsSerializer\n }\n } else {\n validator.assertOptions(paramsSerializer, {\n encode: validators.function,\n serialize: validators.function\n }, true);\n }\n }\n\n // Set config.method\n config.method = (config.method || this.defaults.method || 'get').toLowerCase();\n\n // Flatten headers\n let contextHeaders = headers && utils.merge(\n headers.common,\n headers[config.method]\n );\n\n headers && utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n (method) => {\n delete headers[method];\n }\n );\n\n config.headers = AxiosHeaders.concat(contextHeaders, headers);\n\n // filter out skipped interceptors\n const requestInterceptorChain = [];\n let synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n const responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n let promise;\n let i = 0;\n let len;\n\n if (!synchronousRequestInterceptors) {\n const chain = [dispatchRequest.bind(this), undefined];\n chain.unshift.apply(chain, requestInterceptorChain);\n chain.push.apply(chain, responseInterceptorChain);\n len = chain.length;\n\n promise = Promise.resolve(config);\n\n while (i < len) {\n promise = promise.then(chain[i++], chain[i++]);\n }\n\n return promise;\n }\n\n len = requestInterceptorChain.length;\n\n let newConfig = config;\n\n i = 0;\n\n while (i < len) {\n const onFulfilled = requestInterceptorChain[i++];\n const onRejected = requestInterceptorChain[i++];\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected.call(this, error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest.call(this, newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n i = 0;\n len = responseInterceptorChain.length;\n\n while (i < len) {\n promise = promise.then(responseInterceptorChain[i++], responseInterceptorChain[i++]);\n }\n\n return promise;\n }\n\n getUri(config) {\n config = mergeConfig(this.defaults, config);\n const fullPath = buildFullPath(config.baseURL, config.url);\n return buildURL(fullPath, config.params, config.paramsSerializer);\n }\n}\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n\n function generateHTTPMethod(isForm) {\n return function httpMethod(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n headers: isForm ? {\n 'Content-Type': 'multipart/form-data'\n } : {},\n url,\n data\n }));\n };\n }\n\n Axios.prototype[method] = generateHTTPMethod();\n\n Axios.prototype[method + 'Form'] = generateHTTPMethod(true);\n});\n\nexport default Axios;\n","'use strict';\n\nimport CanceledError from './CanceledError.js';\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @param {Function} executor The executor function.\n *\n * @returns {CancelToken}\n */\nclass CancelToken {\n constructor(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n let resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n const token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then(cancel => {\n if (!token._listeners) return;\n\n let i = token._listeners.length;\n\n while (i-- > 0) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = onfulfilled => {\n let _resolve;\n // eslint-disable-next-line func-names\n const promise = new Promise(resolve => {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n\n return promise;\n };\n\n executor(function cancel(message, config, request) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new CanceledError(message, config, request);\n resolvePromise(token.reason);\n });\n }\n\n /**\n * Throws a `CanceledError` if cancellation has been requested.\n */\n throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n }\n\n /**\n * Subscribe to the cancel signal\n */\n\n subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n }\n\n /**\n * Unsubscribe from the cancel signal\n */\n\n unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n const index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n }\n\n /**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\n static source() {\n let cancel;\n const token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token,\n cancel\n };\n }\n}\n\nexport default CancelToken;\n","const HttpStatusCode = {\n Continue: 100,\n SwitchingProtocols: 101,\n Processing: 102,\n EarlyHints: 103,\n Ok: 200,\n Created: 201,\n Accepted: 202,\n NonAuthoritativeInformation: 203,\n NoContent: 204,\n ResetContent: 205,\n PartialContent: 206,\n MultiStatus: 207,\n AlreadyReported: 208,\n ImUsed: 226,\n MultipleChoices: 300,\n MovedPermanently: 301,\n Found: 302,\n SeeOther: 303,\n NotModified: 304,\n UseProxy: 305,\n Unused: 306,\n TemporaryRedirect: 307,\n PermanentRedirect: 308,\n BadRequest: 400,\n Unauthorized: 401,\n PaymentRequired: 402,\n Forbidden: 403,\n NotFound: 404,\n MethodNotAllowed: 405,\n NotAcceptable: 406,\n ProxyAuthenticationRequired: 407,\n RequestTimeout: 408,\n Conflict: 409,\n Gone: 410,\n LengthRequired: 411,\n PreconditionFailed: 412,\n PayloadTooLarge: 413,\n UriTooLong: 414,\n UnsupportedMediaType: 415,\n RangeNotSatisfiable: 416,\n ExpectationFailed: 417,\n ImATeapot: 418,\n MisdirectedRequest: 421,\n UnprocessableEntity: 422,\n Locked: 423,\n FailedDependency: 424,\n TooEarly: 425,\n UpgradeRequired: 426,\n PreconditionRequired: 428,\n TooManyRequests: 429,\n RequestHeaderFieldsTooLarge: 431,\n UnavailableForLegalReasons: 451,\n InternalServerError: 500,\n NotImplemented: 501,\n BadGateway: 502,\n ServiceUnavailable: 503,\n GatewayTimeout: 504,\n HttpVersionNotSupported: 505,\n VariantAlsoNegotiates: 506,\n InsufficientStorage: 507,\n LoopDetected: 508,\n NotExtended: 510,\n NetworkAuthenticationRequired: 511,\n};\n\nObject.entries(HttpStatusCode).forEach(([key, value]) => {\n HttpStatusCode[value] = key;\n});\n\nexport default HttpStatusCode;\n","'use strict';\n\nimport utils from './utils.js';\nimport bind from './helpers/bind.js';\nimport Axios from './core/Axios.js';\nimport mergeConfig from './core/mergeConfig.js';\nimport defaults from './defaults/index.js';\nimport formDataToJSON from './helpers/formDataToJSON.js';\nimport CanceledError from './cancel/CanceledError.js';\nimport CancelToken from './cancel/CancelToken.js';\nimport isCancel from './cancel/isCancel.js';\nimport {VERSION} from './env/data.js';\nimport toFormData from './helpers/toFormData.js';\nimport AxiosError from './core/AxiosError.js';\nimport spread from './helpers/spread.js';\nimport isAxiosError from './helpers/isAxiosError.js';\nimport AxiosHeaders from \"./core/AxiosHeaders.js\";\nimport adapters from './adapters/adapters.js';\nimport HttpStatusCode from './helpers/HttpStatusCode.js';\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n *\n * @returns {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n const context = new Axios(defaultConfig);\n const instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context, {allOwnKeys: true});\n\n // Copy context to instance\n utils.extend(instance, context, null, {allOwnKeys: true});\n\n // Factory for creating new instances\n instance.create = function create(instanceConfig) {\n return createInstance(mergeConfig(defaultConfig, instanceConfig));\n };\n\n return instance;\n}\n\n// Create the default instance to be exported\nconst axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Expose Cancel & CancelToken\naxios.CanceledError = CanceledError;\naxios.CancelToken = CancelToken;\naxios.isCancel = isCancel;\naxios.VERSION = VERSION;\naxios.toFormData = toFormData;\n\n// Expose AxiosError class\naxios.AxiosError = AxiosError;\n\n// alias for CanceledError for backward compatibility\naxios.Cancel = axios.CanceledError;\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\n\naxios.spread = spread;\n\n// Expose isAxiosError\naxios.isAxiosError = isAxiosError;\n\n// Expose mergeConfig\naxios.mergeConfig = mergeConfig;\n\naxios.AxiosHeaders = AxiosHeaders;\n\naxios.formToJSON = thing => formDataToJSON(utils.isHTMLForm(thing) ? new FormData(thing) : thing);\n\naxios.getAdapter = adapters.getAdapter;\n\naxios.HttpStatusCode = HttpStatusCode;\n\naxios.default = axios;\n\n// this module should only have a default export\nexport default axios\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n *\n * @returns {Function}\n */\nexport default function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n *\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nexport default function isAxiosError(payload) {\n return utils.isObject(payload) && (payload.isAxiosError === true);\n}\n","import axios from \"axios\";\nimport { getCookie } from \"./util\";\nimport { setCookie } from \"./util\";\n\n/**\n *\n * @param {Object} body\n * @param {\"link_click\"|\"button_click\"|\"heartbeat\"} body.interaction_type - Required\n * @param {string} body.interaction_content - Required\n * @param {GUID} body.message_id\n */\nasync function trackInteraction(body) {\n try {\n // const headerConfig = window?.ai?.api?.headerConfig || {};\n\n const headers = {\n \"Content-Type\": \"application/json\",\n \"Ocp-Apim-Subscription-Key\": getCookie(\"Ocp-Apim-Subscription-Key\"),\n };\n\n const sessionId = getCookie(\"hfAIChatSession\") || \"\";\n\n const data = {\n ...body,\n interaction_type: body[\"interaction_type\"],\n interaction_content: body[\"interaction_content\"],\n message_id: body[\"message_id\"],\n reference_url: body?.[\"reference_url\"] || document.referrer,\n ...(sessionId ? { session_id: sessionId } : {}),\n };\n\n const response = await axios.post(window.ai?.api?.integration, data, {\n headers,\n });\n\n if (response.data.session_id) {\n setCookie(\"hfAIChatSession\", response.data.session_id);\n }\n } catch (error) {}\n}\n\nexport async function trackHeartbeat() {\n await trackInteraction({\n interaction_type: \"heartbeat\",\n interaction_content: new Date().toISOString(),\n });\n}\n\nexport async function trackButton(\n { label, message_id, ...body },\n interaction_type = \"button_click\"\n) {\n await trackInteraction({\n interaction_content: label,\n message_id: message_id,\n interaction_type,\n ...body,\n });\n}\n\nexport async function trackLink({ link, message_id, ...body }) {\n await trackInteraction({\n interaction_content: link,\n interaction_type: \"link_click\",\n message_id: message_id,\n ...body,\n });\n}\n","import * as ReactOriginal from 'react'\r\nimport type * as ReactNamespace from 'react'\r\n\r\nexport const React: typeof ReactNamespace =\r\n // prettier-ignore\r\n // @ts-ignore\r\n 'default' in ReactOriginal ? ReactOriginal['default'] : ReactOriginal as any\r\n","import type { Context } from 'react'\r\nimport { React } from '../utils/react'\r\nimport type { Action, Store, UnknownAction } from 'redux'\r\nimport type { Subscription } from '../utils/Subscription'\r\nimport type { ProviderProps } from './Provider'\r\n\r\nexport interface ReactReduxContextValue<\r\n SS = any,\r\n A extends Action = UnknownAction\r\n> extends Pick {\r\n store: Store\r\n subscription: Subscription\r\n getServerState?: () => SS\r\n}\r\n\r\nconst ContextKey = Symbol.for(`react-redux-context`)\r\nconst gT: {\r\n [ContextKey]?: Map<\r\n typeof React.createContext,\r\n Context\r\n >\r\n} = (\r\n typeof globalThis !== 'undefined'\r\n ? globalThis\r\n : /* fall back to a per-module scope (pre-8.1 behaviour) if `globalThis` is not available */ {}\r\n) as any\r\n\r\nfunction getContext(): Context {\r\n if (!React.createContext) return {} as any\r\n\r\n const contextMap = (gT[ContextKey] ??= new Map<\r\n typeof React.createContext,\r\n Context\r\n >())\r\n let realContext = contextMap.get(React.createContext)\r\n if (!realContext) {\r\n realContext = React.createContext(\r\n null as any\r\n )\r\n if (process.env.NODE_ENV !== 'production') {\r\n realContext.displayName = 'ReactRedux'\r\n }\r\n contextMap.set(React.createContext, realContext)\r\n }\r\n return realContext\r\n}\r\n\r\nexport const ReactReduxContext = /*#__PURE__*/ getContext()\r\n\r\nexport type ReactReduxContextInstance = typeof ReactReduxContext\r\n\r\nexport default ReactReduxContext\r\n","import type { useSyncExternalStore } from 'use-sync-external-store'\r\nimport type { useSyncExternalStoreWithSelector } from 'use-sync-external-store/with-selector'\r\n\r\nexport const notInitialized = () => {\r\n throw new Error('uSES not initialized!')\r\n}\r\n\r\nexport type uSES = typeof useSyncExternalStore\r\nexport type uSESWS = typeof useSyncExternalStoreWithSelector\r\n","import { React } from '../utils/react'\r\nimport { ReactReduxContext } from '../components/Context'\r\nimport type { ReactReduxContextValue } from '../components/Context'\r\n\r\n/**\r\n * Hook factory, which creates a `useReduxContext` hook bound to a given context. This is a low-level\r\n * hook that you should usually not need to call directly.\r\n *\r\n * @param {React.Context} [context=ReactReduxContext] Context passed to your ``.\r\n * @returns {Function} A `useReduxContext` hook bound to the specified context.\r\n */\r\nexport function createReduxContextHook(context = ReactReduxContext) {\r\n return function useReduxContext(): ReactReduxContextValue {\r\n const contextValue = React.useContext(context)\r\n\r\n if (process.env.NODE_ENV !== 'production' && !contextValue) {\r\n throw new Error(\r\n 'could not find react-redux context value; please ensure the component is wrapped in a '\r\n )\r\n }\r\n\r\n return contextValue!\r\n }\r\n}\r\n\r\n/**\r\n * A hook to access the value of the `ReactReduxContext`. This is a low-level\r\n * hook that you should usually not need to call directly.\r\n *\r\n * @returns {any} the value of the `ReactReduxContext`\r\n *\r\n * @example\r\n *\r\n * import React from 'react'\r\n * import { useReduxContext } from 'react-redux'\r\n *\r\n * export const CounterComponent = () => {\r\n * const { store } = useReduxContext()\r\n * return

\r\n * }\r\n */\r\nexport const useReduxContext = /*#__PURE__*/ createReduxContextHook()\r\n","//import * as React from 'react'\r\nimport { React } from '../utils/react'\r\n\r\nimport type { ReactReduxContextValue } from '../components/Context'\r\nimport { ReactReduxContext } from '../components/Context'\r\nimport type { EqualityFn, NoInfer } from '../types'\r\nimport type { uSESWS } from '../utils/useSyncExternalStore'\r\nimport { notInitialized } from '../utils/useSyncExternalStore'\r\nimport {\r\n createReduxContextHook,\r\n useReduxContext as useDefaultReduxContext,\r\n} from './useReduxContext'\r\n\r\n/**\r\n * The frequency of development mode checks.\r\n *\r\n * @since 8.1.0\r\n * @internal\r\n */\r\nexport type DevModeCheckFrequency = 'never' | 'once' | 'always'\r\n\r\n/**\r\n * Represents the configuration for development mode checks.\r\n *\r\n * @since 9.0.0\r\n * @internal\r\n */\r\nexport interface DevModeChecks {\r\n /**\r\n * Overrides the global stability check for the selector.\r\n * - `once` - Run only the first time the selector is called.\r\n * - `always` - Run every time the selector is called.\r\n * - `never` - Never run the stability check.\r\n *\r\n * @default 'once'\r\n *\r\n * @since 8.1.0\r\n */\r\n stabilityCheck: DevModeCheckFrequency\r\n\r\n /**\r\n * Overrides the global identity function check for the selector.\r\n * - `once` - Run only the first time the selector is called.\r\n * - `always` - Run every time the selector is called.\r\n * - `never` - Never run the identity function check.\r\n *\r\n * **Note**: Previously referred to as `noopCheck`.\r\n *\r\n * @default 'once'\r\n *\r\n * @since 9.0.0\r\n */\r\n identityFunctionCheck: DevModeCheckFrequency\r\n}\r\n\r\nexport interface UseSelectorOptions {\r\n equalityFn?: EqualityFn\r\n\r\n /**\r\n * `useSelector` performs additional checks in development mode to help\r\n * identify and warn about potential issues in selector behavior. This\r\n * option allows you to customize the behavior of these checks per selector.\r\n *\r\n * @since 9.0.0\r\n */\r\n devModeChecks?: Partial\r\n}\r\n\r\nexport interface UseSelector {\r\n (\r\n selector: (state: TState) => Selected,\r\n equalityFn?: EqualityFn\r\n ): Selected\r\n (\r\n selector: (state: TState) => Selected,\r\n options?: UseSelectorOptions\r\n ): Selected\r\n}\r\n\r\nlet useSyncExternalStoreWithSelector = notInitialized as uSESWS\r\nexport const initializeUseSelector = (fn: uSESWS) => {\r\n useSyncExternalStoreWithSelector = fn\r\n}\r\n\r\nconst refEquality: EqualityFn = (a, b) => a === b\r\n\r\n/**\r\n * Hook factory, which creates a `useSelector` hook bound to a given context.\r\n *\r\n * @param {React.Context} [context=ReactReduxContext] Context passed to your ``.\r\n * @returns {Function} A `useSelector` hook bound to the specified context.\r\n */\r\nexport function createSelectorHook(\r\n context: React.Context | null> = ReactReduxContext\r\n): UseSelector {\r\n const useReduxContext =\r\n context === ReactReduxContext\r\n ? useDefaultReduxContext\r\n : createReduxContextHook(context)\r\n\r\n return function useSelector(\r\n selector: (state: TState) => Selected,\r\n equalityFnOrOptions:\r\n | EqualityFn>\r\n | UseSelectorOptions> = {}\r\n ): Selected {\r\n const { equalityFn = refEquality, devModeChecks = {} } =\r\n typeof equalityFnOrOptions === 'function'\r\n ? { equalityFn: equalityFnOrOptions }\r\n : equalityFnOrOptions\r\n if (process.env.NODE_ENV !== 'production') {\r\n if (!selector) {\r\n throw new Error(`You must pass a selector to useSelector`)\r\n }\r\n if (typeof selector !== 'function') {\r\n throw new Error(`You must pass a function as a selector to useSelector`)\r\n }\r\n if (typeof equalityFn !== 'function') {\r\n throw new Error(\r\n `You must pass a function as an equality function to useSelector`\r\n )\r\n }\r\n }\r\n\r\n const {\r\n store,\r\n subscription,\r\n getServerState,\r\n stabilityCheck,\r\n identityFunctionCheck,\r\n } = useReduxContext()\r\n\r\n const firstRun = React.useRef(true)\r\n\r\n const wrappedSelector = React.useCallback(\r\n {\r\n [selector.name](state: TState) {\r\n const selected = selector(state)\r\n if (process.env.NODE_ENV !== 'production') {\r\n const {\r\n identityFunctionCheck: finalIdentityFunctionCheck,\r\n stabilityCheck: finalStabilityCheck,\r\n } = {\r\n stabilityCheck,\r\n identityFunctionCheck,\r\n ...devModeChecks,\r\n }\r\n if (\r\n finalStabilityCheck === 'always' ||\r\n (finalStabilityCheck === 'once' && firstRun.current)\r\n ) {\r\n const toCompare = selector(state)\r\n if (!equalityFn(selected, toCompare)) {\r\n let stack: string | undefined = undefined\r\n try {\r\n throw new Error()\r\n } catch (e) {\r\n ;({ stack } = e as Error)\r\n }\r\n console.warn(\r\n 'Selector ' +\r\n (selector.name || 'unknown') +\r\n ' returned a different result when called with the same parameters. This can lead to unnecessary rerenders.' +\r\n '\\nSelectors that return a new reference (such as an object or an array) should be memoized: https://redux.js.org/usage/deriving-data-selectors#optimizing-selectors-with-memoization',\r\n {\r\n state,\r\n selected,\r\n selected2: toCompare,\r\n stack,\r\n }\r\n )\r\n }\r\n }\r\n if (\r\n finalIdentityFunctionCheck === 'always' ||\r\n (finalIdentityFunctionCheck === 'once' && firstRun.current)\r\n ) {\r\n // @ts-ignore\r\n if (selected === state) {\r\n let stack: string | undefined = undefined\r\n try {\r\n throw new Error()\r\n } catch (e) {\r\n ;({ stack } = e as Error)\r\n }\r\n console.warn(\r\n 'Selector ' +\r\n (selector.name || 'unknown') +\r\n ' returned the root state when called. This can lead to unnecessary rerenders.' +\r\n '\\nSelectors that return the entire state are almost certainly a mistake, as they will cause a rerender whenever *anything* in state changes.',\r\n { stack }\r\n )\r\n }\r\n }\r\n if (firstRun.current) firstRun.current = false\r\n }\r\n return selected\r\n },\r\n }[selector.name],\r\n [selector, stabilityCheck, devModeChecks.stabilityCheck]\r\n )\r\n\r\n const selectedState = useSyncExternalStoreWithSelector(\r\n subscription.addNestedSub,\r\n store.getState,\r\n getServerState || store.getState,\r\n wrappedSelector,\r\n equalityFn\r\n )\r\n\r\n React.useDebugValue(selectedState)\r\n\r\n return selectedState\r\n }\r\n}\r\n\r\n/**\r\n * A hook to access the redux store's state. This hook takes a selector function\r\n * as an argument. The selector is called with the store state.\r\n *\r\n * This hook takes an optional equality comparison function as the second parameter\r\n * that allows you to customize the way the selected state is compared to determine\r\n * whether the component needs to be re-rendered.\r\n *\r\n * @param {Function} selector the selector function\r\n * @param {Function=} equalityFn the function that will be used to determine equality\r\n *\r\n * @returns {any} the selected state\r\n *\r\n * @example\r\n *\r\n * import React from 'react'\r\n * import { useSelector } from 'react-redux'\r\n *\r\n * export const CounterComponent = () => {\r\n * const counter = useSelector(state => state.counter)\r\n * return
{counter}
\r\n * }\r\n */\r\nexport const useSelector = /*#__PURE__*/ createSelectorHook()\r\n","import type { ElementType, MemoExoticComponent, ReactElement } from 'react'\r\n\r\n// Directly ported from:\r\n// https://unpkg.com/browse/react-is@18.3.0-canary-ee68446ff-20231115/cjs/react-is.production.js\r\n// It's very possible this could change in the future, but given that\r\n// we only use these in `connect`, this is a low priority.\r\n\r\nconst REACT_ELEMENT_TYPE = Symbol.for('react.element')\r\nconst REACT_PORTAL_TYPE = Symbol.for('react.portal')\r\nconst REACT_FRAGMENT_TYPE = Symbol.for('react.fragment')\r\nconst REACT_STRICT_MODE_TYPE = Symbol.for('react.strict_mode')\r\nconst REACT_PROFILER_TYPE = Symbol.for('react.profiler')\r\nconst REACT_PROVIDER_TYPE = Symbol.for('react.provider')\r\nconst REACT_CONTEXT_TYPE = Symbol.for('react.context')\r\nconst REACT_SERVER_CONTEXT_TYPE = Symbol.for('react.server_context')\r\nconst REACT_FORWARD_REF_TYPE = Symbol.for('react.forward_ref')\r\nconst REACT_SUSPENSE_TYPE = Symbol.for('react.suspense')\r\nconst REACT_SUSPENSE_LIST_TYPE = Symbol.for('react.suspense_list')\r\nconst REACT_MEMO_TYPE = Symbol.for('react.memo')\r\nconst REACT_LAZY_TYPE = Symbol.for('react.lazy')\r\nconst REACT_OFFSCREEN_TYPE = Symbol.for('react.offscreen')\r\nconst REACT_CLIENT_REFERENCE = Symbol.for('react.client.reference')\r\n\r\nexport const ForwardRef = REACT_FORWARD_REF_TYPE\r\nexport const Memo = REACT_MEMO_TYPE\r\n\r\nexport function isValidElementType(type: any): type is ElementType {\r\n if (typeof type === 'string' || typeof type === 'function') {\r\n return true\r\n } // Note: typeof might be other than 'symbol' or 'number' (e.g. if it's a polyfill).\r\n\r\n if (\r\n type === REACT_FRAGMENT_TYPE ||\r\n type === REACT_PROFILER_TYPE ||\r\n type === REACT_STRICT_MODE_TYPE ||\r\n type === REACT_SUSPENSE_TYPE ||\r\n type === REACT_SUSPENSE_LIST_TYPE ||\r\n type === REACT_OFFSCREEN_TYPE\r\n ) {\r\n return true\r\n }\r\n\r\n if (typeof type === 'object' && type !== null) {\r\n if (\r\n type.$$typeof === REACT_LAZY_TYPE ||\r\n type.$$typeof === REACT_MEMO_TYPE ||\r\n type.$$typeof === REACT_PROVIDER_TYPE ||\r\n type.$$typeof === REACT_CONTEXT_TYPE ||\r\n type.$$typeof === REACT_FORWARD_REF_TYPE || // This needs to include all possible module reference object\r\n // types supported by any Flight configuration anywhere since\r\n // we don't know which Flight build this will end up being used\r\n // with.\r\n type.$$typeof === REACT_CLIENT_REFERENCE ||\r\n type.getModuleId !== undefined\r\n ) {\r\n return true\r\n }\r\n }\r\n\r\n return false\r\n}\r\n\r\nfunction typeOf(object: any): symbol | undefined {\r\n if (typeof object === 'object' && object !== null) {\r\n const $$typeof = object.$$typeof\r\n\r\n switch ($$typeof) {\r\n case REACT_ELEMENT_TYPE: {\r\n const type = object.type\r\n\r\n switch (type) {\r\n case REACT_FRAGMENT_TYPE:\r\n case REACT_PROFILER_TYPE:\r\n case REACT_STRICT_MODE_TYPE:\r\n case REACT_SUSPENSE_TYPE:\r\n case REACT_SUSPENSE_LIST_TYPE:\r\n return type\r\n\r\n default: {\r\n const $$typeofType = type && type.$$typeof\r\n\r\n switch ($$typeofType) {\r\n case REACT_SERVER_CONTEXT_TYPE:\r\n case REACT_CONTEXT_TYPE:\r\n case REACT_FORWARD_REF_TYPE:\r\n case REACT_LAZY_TYPE:\r\n case REACT_MEMO_TYPE:\r\n case REACT_PROVIDER_TYPE:\r\n return $$typeofType\r\n\r\n default:\r\n return $$typeof\r\n }\r\n }\r\n }\r\n }\r\n\r\n case REACT_PORTAL_TYPE: {\r\n return $$typeof\r\n }\r\n }\r\n }\r\n\r\n return undefined\r\n}\r\n\r\nexport function isContextConsumer(object: any): object is ReactElement {\r\n return typeOf(object) === REACT_CONTEXT_TYPE\r\n}\r\n\r\nexport function isMemo(object: any): object is MemoExoticComponent {\r\n return typeOf(object) === REACT_MEMO_TYPE\r\n}\r\n","// Default to a dummy \"batch\" implementation that just runs the callback\r\nexport function defaultNoopBatch(callback: () => void) {\r\n callback()\r\n}\r\n","import { defaultNoopBatch as batch } from './batch'\r\n\r\n// encapsulates the subscription logic for connecting a component to the redux store, as\r\n// well as nesting subscriptions of descendant components, so that we can ensure the\r\n// ancestor components re-render before descendants\r\n\r\ntype VoidFunc = () => void\r\n\r\ntype Listener = {\r\n callback: VoidFunc\r\n next: Listener | null\r\n prev: Listener | null\r\n}\r\n\r\nfunction createListenerCollection() {\r\n let first: Listener | null = null\r\n let last: Listener | null = null\r\n\r\n return {\r\n clear() {\r\n first = null\r\n last = null\r\n },\r\n\r\n notify() {\r\n batch(() => {\r\n let listener = first\r\n while (listener) {\r\n listener.callback()\r\n listener = listener.next\r\n }\r\n })\r\n },\r\n\r\n get() {\r\n let listeners: Listener[] = []\r\n let listener = first\r\n while (listener) {\r\n listeners.push(listener)\r\n listener = listener.next\r\n }\r\n return listeners\r\n },\r\n\r\n subscribe(callback: () => void) {\r\n let isSubscribed = true\r\n\r\n let listener: Listener = (last = {\r\n callback,\r\n next: null,\r\n prev: last,\r\n })\r\n\r\n if (listener.prev) {\r\n listener.prev.next = listener\r\n } else {\r\n first = listener\r\n }\r\n\r\n return function unsubscribe() {\r\n if (!isSubscribed || first === null) return\r\n isSubscribed = false\r\n\r\n if (listener.next) {\r\n listener.next.prev = listener.prev\r\n } else {\r\n last = listener.prev\r\n }\r\n if (listener.prev) {\r\n listener.prev.next = listener.next\r\n } else {\r\n first = listener.next\r\n }\r\n }\r\n },\r\n }\r\n}\r\n\r\ntype ListenerCollection = ReturnType\r\n\r\nexport interface Subscription {\r\n addNestedSub: (listener: VoidFunc) => VoidFunc\r\n notifyNestedSubs: VoidFunc\r\n handleChangeWrapper: VoidFunc\r\n isSubscribed: () => boolean\r\n onStateChange?: VoidFunc | null\r\n trySubscribe: VoidFunc\r\n tryUnsubscribe: VoidFunc\r\n getListeners: () => ListenerCollection\r\n}\r\n\r\nconst nullListeners = {\r\n notify() {},\r\n get: () => [],\r\n} as unknown as ListenerCollection\r\n\r\nexport function createSubscription(store: any, parentSub?: Subscription) {\r\n let unsubscribe: VoidFunc | undefined\r\n let listeners: ListenerCollection = nullListeners\r\n\r\n // Reasons to keep the subscription active\r\n let subscriptionsAmount = 0\r\n\r\n // Is this specific subscription subscribed (or only nested ones?)\r\n let selfSubscribed = false\r\n\r\n function addNestedSub(listener: () => void) {\r\n trySubscribe()\r\n\r\n const cleanupListener = listeners.subscribe(listener)\r\n\r\n // cleanup nested sub\r\n let removed = false\r\n return () => {\r\n if (!removed) {\r\n removed = true\r\n cleanupListener()\r\n tryUnsubscribe()\r\n }\r\n }\r\n }\r\n\r\n function notifyNestedSubs() {\r\n listeners.notify()\r\n }\r\n\r\n function handleChangeWrapper() {\r\n if (subscription.onStateChange) {\r\n subscription.onStateChange()\r\n }\r\n }\r\n\r\n function isSubscribed() {\r\n return selfSubscribed\r\n }\r\n\r\n function trySubscribe() {\r\n subscriptionsAmount++\r\n if (!unsubscribe) {\r\n unsubscribe = parentSub\r\n ? parentSub.addNestedSub(handleChangeWrapper)\r\n : store.subscribe(handleChangeWrapper)\r\n\r\n listeners = createListenerCollection()\r\n }\r\n }\r\n\r\n function tryUnsubscribe() {\r\n subscriptionsAmount--\r\n if (unsubscribe && subscriptionsAmount === 0) {\r\n unsubscribe()\r\n unsubscribe = undefined\r\n listeners.clear()\r\n listeners = nullListeners\r\n }\r\n }\r\n\r\n function trySubscribeSelf() {\r\n if (!selfSubscribed) {\r\n selfSubscribed = true\r\n trySubscribe()\r\n }\r\n }\r\n\r\n function tryUnsubscribeSelf() {\r\n if (selfSubscribed) {\r\n selfSubscribed = false\r\n tryUnsubscribe()\r\n }\r\n }\r\n\r\n const subscription: Subscription = {\r\n addNestedSub,\r\n notifyNestedSubs,\r\n handleChangeWrapper,\r\n isSubscribed,\r\n trySubscribe: trySubscribeSelf,\r\n tryUnsubscribe: tryUnsubscribeSelf,\r\n getListeners: () => listeners,\r\n }\r\n\r\n return subscription\r\n}\r\n","import { React } from '../utils/react'\r\n\r\n// React currently throws a warning when using useLayoutEffect on the server.\r\n// To get around it, we can conditionally useEffect on the server (no-op) and\r\n// useLayoutEffect in the browser. We need useLayoutEffect to ensure the store\r\n// subscription callback always has the selector from the latest render commit\r\n// available, otherwise a store update may happen between render and the effect,\r\n// which may cause missed updates; we also must ensure the store subscription\r\n// is created synchronously, otherwise a store update may occur before the\r\n// subscription is created and an inconsistent state may be observed\r\n\r\n// Matches logic in React's `shared/ExecutionEnvironment` file\r\nexport const canUseDOM = !!(\r\n typeof window !== 'undefined' &&\r\n typeof window.document !== 'undefined' &&\r\n typeof window.document.createElement !== 'undefined'\r\n)\r\n\r\nexport const useIsomorphicLayoutEffect = canUseDOM\r\n ? React.useLayoutEffect\r\n : React.useEffect\r\n","// Copied directly from:\r\n// https://github.com/mridgway/hoist-non-react-statics/blob/main/src/index.js\r\n// https://unpkg.com/browse/@types/hoist-non-react-statics@3.3.1/index.d.ts\r\n\r\n/**\r\n * Copyright 2015, Yahoo! Inc.\r\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\r\n */\r\nimport type * as React from 'react'\r\nimport { ForwardRef, Memo, isMemo } from '../utils/react-is'\r\n\r\nconst REACT_STATICS = {\r\n childContextTypes: true,\r\n contextType: true,\r\n contextTypes: true,\r\n defaultProps: true,\r\n displayName: true,\r\n getDefaultProps: true,\r\n getDerivedStateFromError: true,\r\n getDerivedStateFromProps: true,\r\n mixins: true,\r\n propTypes: true,\r\n type: true,\r\n} as const\r\n\r\nconst KNOWN_STATICS = {\r\n name: true,\r\n length: true,\r\n prototype: true,\r\n caller: true,\r\n callee: true,\r\n arguments: true,\r\n arity: true,\r\n} as const\r\n\r\nconst FORWARD_REF_STATICS = {\r\n $$typeof: true,\r\n render: true,\r\n defaultProps: true,\r\n displayName: true,\r\n propTypes: true,\r\n} as const\r\n\r\nconst MEMO_STATICS = {\r\n $$typeof: true,\r\n compare: true,\r\n defaultProps: true,\r\n displayName: true,\r\n propTypes: true,\r\n type: true,\r\n} as const\r\n\r\nconst TYPE_STATICS = {\r\n [ForwardRef]: FORWARD_REF_STATICS,\r\n [Memo]: MEMO_STATICS,\r\n} as const\r\n\r\nfunction getStatics(component: any) {\r\n // React v16.11 and below\r\n if (isMemo(component)) {\r\n return MEMO_STATICS\r\n }\r\n\r\n // React v16.12 and above\r\n return TYPE_STATICS[component['$$typeof']] || REACT_STATICS\r\n}\r\n\r\nexport type NonReactStatics<\r\n S extends React.ComponentType,\r\n C extends {\r\n [key: string]: true\r\n } = {}\r\n> = {\r\n [key in Exclude<\r\n keyof S,\r\n S extends React.MemoExoticComponent\r\n ? keyof typeof MEMO_STATICS | keyof C\r\n : S extends React.ForwardRefExoticComponent\r\n ? keyof typeof FORWARD_REF_STATICS | keyof C\r\n : keyof typeof REACT_STATICS | keyof typeof KNOWN_STATICS | keyof C\r\n >]: S[key]\r\n}\r\n\r\nconst defineProperty = Object.defineProperty\r\nconst getOwnPropertyNames = Object.getOwnPropertyNames\r\nconst getOwnPropertySymbols = Object.getOwnPropertySymbols\r\nconst getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor\r\nconst getPrototypeOf = Object.getPrototypeOf\r\nconst objectPrototype = Object.prototype\r\n\r\nexport default function hoistNonReactStatics<\r\n T extends React.ComponentType,\r\n S extends React.ComponentType,\r\n C extends {\r\n [key: string]: true\r\n } = {}\r\n>(targetComponent: T, sourceComponent: S): T & NonReactStatics {\r\n if (typeof sourceComponent !== 'string') {\r\n // don't hoist over string (html) components\r\n\r\n if (objectPrototype) {\r\n const inheritedComponent = getPrototypeOf(sourceComponent)\r\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\r\n hoistNonReactStatics(targetComponent, inheritedComponent)\r\n }\r\n }\r\n\r\n let keys: (string | symbol)[] = getOwnPropertyNames(sourceComponent)\r\n\r\n if (getOwnPropertySymbols) {\r\n keys = keys.concat(getOwnPropertySymbols(sourceComponent))\r\n }\r\n\r\n const targetStatics = getStatics(targetComponent)\r\n const sourceStatics = getStatics(sourceComponent)\r\n\r\n for (let i = 0; i < keys.length; ++i) {\r\n const key = keys[i]\r\n if (\r\n !KNOWN_STATICS[key as keyof typeof KNOWN_STATICS] &&\r\n !(sourceStatics && sourceStatics[key as keyof typeof sourceStatics]) &&\r\n !(targetStatics && targetStatics[key as keyof typeof targetStatics])\r\n ) {\r\n const descriptor = getOwnPropertyDescriptor(sourceComponent, key)\r\n try {\r\n // Avoid failures from read-only properties\r\n defineProperty(targetComponent, key, descriptor!)\r\n } catch (e) {\r\n // ignore\r\n }\r\n }\r\n }\r\n }\r\n\r\n return targetComponent as any\r\n}\r\n","import type { Context, ReactNode } from 'react'\r\nimport { React } from '../utils/react'\r\nimport type { Action, Store, UnknownAction } from 'redux'\r\nimport type { DevModeCheckFrequency } from '../hooks/useSelector'\r\nimport { createSubscription } from '../utils/Subscription'\r\nimport { useIsomorphicLayoutEffect } from '../utils/useIsomorphicLayoutEffect'\r\nimport type { ReactReduxContextValue } from './Context'\r\nimport { ReactReduxContext } from './Context'\r\n\r\nexport interface ProviderProps<\r\n A extends Action = UnknownAction,\r\n S = unknown\r\n> {\r\n /**\r\n * The single Redux store in your application.\r\n */\r\n store: Store\r\n\r\n /**\r\n * An optional server state snapshot. Will be used during initial hydration render if available, to ensure that the UI output is consistent with the HTML generated on the server.\r\n */\r\n serverState?: S\r\n\r\n /**\r\n * Optional context to be used internally in react-redux. Use React.createContext() to create a context to be used.\r\n * If this is used, you'll need to customize `connect` by supplying the same context provided to the Provider.\r\n * Set the initial value to null, and the hooks will error\r\n * if this is not overwritten by Provider.\r\n */\r\n context?: Context | null>\r\n\r\n /**\r\n * Determines the frequency of stability checks for all selectors.\r\n * This setting overrides the global configuration for\r\n * the `useSelector` stability check, allowing you to specify how often\r\n * these checks should occur in development mode.\r\n *\r\n * @since 8.1.0\r\n */\r\n stabilityCheck?: DevModeCheckFrequency\r\n\r\n /**\r\n * Determines the frequency of identity function checks for all selectors.\r\n * This setting overrides the global configuration for\r\n * the `useSelector` identity function check, allowing you to specify how often\r\n * these checks should occur in development mode.\r\n *\r\n * **Note**: Previously referred to as `noopCheck`.\r\n *\r\n * @since 9.0.0\r\n */\r\n identityFunctionCheck?: DevModeCheckFrequency\r\n\r\n children: ReactNode\r\n}\r\n\r\nfunction Provider
= UnknownAction, S = unknown>({\r\n store,\r\n context,\r\n children,\r\n serverState,\r\n stabilityCheck = 'once',\r\n identityFunctionCheck = 'once',\r\n}: ProviderProps) {\r\n const contextValue = React.useMemo(() => {\r\n const subscription = createSubscription(store)\r\n return {\r\n store,\r\n subscription,\r\n getServerState: serverState ? () => serverState : undefined,\r\n stabilityCheck,\r\n identityFunctionCheck,\r\n }\r\n }, [store, serverState, stabilityCheck, identityFunctionCheck])\r\n\r\n const previousState = React.useMemo(() => store.getState(), [store])\r\n\r\n useIsomorphicLayoutEffect(() => {\r\n const { subscription } = contextValue\r\n subscription.onStateChange = subscription.notifyNestedSubs\r\n subscription.trySubscribe()\r\n\r\n if (previousState !== store.getState()) {\r\n subscription.notifyNestedSubs()\r\n }\r\n return () => {\r\n subscription.tryUnsubscribe()\r\n subscription.onStateChange = undefined\r\n }\r\n }, [contextValue, previousState])\r\n\r\n const Context = context || ReactReduxContext\r\n\r\n // @ts-ignore 'AnyAction' is assignable to the constraint of type 'A', but 'A' could be instantiated with a different subtype\r\n return {children}\r\n}\r\n\r\nexport default Provider\r\n","import type { Context } from 'react'\r\nimport type { Action as BasicAction, UnknownAction, Store } from 'redux'\r\nimport type { ReactReduxContextValue } from '../components/Context'\r\nimport { ReactReduxContext } from '../components/Context'\r\nimport {\r\n useReduxContext as useDefaultReduxContext,\r\n createReduxContextHook,\r\n} from './useReduxContext'\r\n\r\n/**\r\n * Hook factory, which creates a `useStore` hook bound to a given context.\r\n *\r\n * @param {React.Context} [context=ReactReduxContext] Context passed to your ``.\r\n * @returns {Function} A `useStore` hook bound to the specified context.\r\n */\r\nexport function createStoreHook<\r\n S = unknown,\r\n A extends BasicAction = UnknownAction\r\n // @ts-ignore\r\n>(context?: Context | null> = ReactReduxContext) {\r\n const useReduxContext =\r\n // @ts-ignore\r\n context === ReactReduxContext\r\n ? useDefaultReduxContext\r\n : // @ts-ignore\r\n createReduxContextHook(context)\r\n return function useStore<\r\n State = S,\r\n Action2 extends BasicAction = A\r\n // @ts-ignore\r\n >() {\r\n const { store } = useReduxContext()\r\n // @ts-ignore\r\n return store as Store\r\n }\r\n}\r\n\r\n/**\r\n * A hook to access the redux store.\r\n *\r\n * @returns {any} the redux store\r\n *\r\n * @example\r\n *\r\n * import React from 'react'\r\n * import { useStore } from 'react-redux'\r\n *\r\n * export const ExampleComponent = () => {\r\n * const store = useStore()\r\n * return
{store.getState()}
\r\n * }\r\n */\r\nexport const useStore = /*#__PURE__*/ createStoreHook()\r\n","import type { Action, Dispatch, UnknownAction } from 'redux'\r\nimport type { Context } from 'react'\r\n\r\nimport type { ReactReduxContextValue } from '../components/Context'\r\nimport { ReactReduxContext } from '../components/Context'\r\nimport { useStore as useDefaultStore, createStoreHook } from './useStore'\r\n\r\n/**\r\n * Hook factory, which creates a `useDispatch` hook bound to a given context.\r\n *\r\n * @param {React.Context} [context=ReactReduxContext] Context passed to your ``.\r\n * @returns {Function} A `useDispatch` hook bound to the specified context.\r\n */\r\nexport function createDispatchHook<\r\n S = unknown,\r\n A extends Action = UnknownAction\r\n // @ts-ignore\r\n>(context?: Context | null> = ReactReduxContext) {\r\n const useStore =\r\n // @ts-ignore\r\n context === ReactReduxContext ? useDefaultStore : createStoreHook(context)\r\n\r\n return function useDispatch<\r\n AppDispatch extends Dispatch
= Dispatch\r\n >(): AppDispatch {\r\n const store = useStore()\r\n // @ts-ignore\r\n return store.dispatch\r\n }\r\n}\r\n\r\n/**\r\n * A hook to access the redux `dispatch` function.\r\n *\r\n * @returns {any|function} redux store's `dispatch` function\r\n *\r\n * @example\r\n *\r\n * import React, { useCallback } from 'react'\r\n * import { useDispatch } from 'react-redux'\r\n *\r\n * export const CounterComponent = ({ value }) => {\r\n * const dispatch = useDispatch()\r\n * const increaseCounter = useCallback(() => dispatch({ type: 'increase-counter' }), [])\r\n * return (\r\n *
\r\n * {value}\r\n * \r\n *
\r\n * )\r\n * }\r\n */\r\nexport const useDispatch = /*#__PURE__*/ createDispatchHook()\r\n","export default function AvatarAnswerIcon() {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n}\n","export default function ArrowDownIcon() {\n return (\n \n \n \n );\n}\n","export default function ArrowUpIcon() {\n return (\n \n \n \n );\n}\n","export default function LargeTextIcon() {\n return (\n \n \n \n );\n}\n","export default function MediumTextIcon() {\n return (\n \n \n \n );\n}\n","export default function ShortTextIcon() {\n return (\n \n \n \n );\n}\n","import { useEffect, useState } from \"react\";\n\nexport default function useMobile(maxWidth = 1023) {\n const [isMobile, setMobile] = useState(false);\n\n useEffect(() => {\n function handleResize() {\n setMobile(window.innerWidth < maxWidth);\n }\n\n handleResize();\n\n document.addEventListener(\"resize\", handleResize);\n\n return () => {\n document.removeEventListener(\"resize\", handleResize);\n };\n }, [maxWidth]);\n\n return isMobile;\n}\n","// The primary entry point assumes we are working with React 18, and thus have\r\n// useSyncExternalStore available. We can import that directly from React itself.\r\n// The useSyncExternalStoreWithSelector has to be imported, but we can use the\r\n// non-shim version. This shaves off the byte size of the shim.\r\n\r\nimport * as React from 'react'\r\nimport { useSyncExternalStoreWithSelector } from 'use-sync-external-store/with-selector.js'\r\n\r\nimport { initializeUseSelector } from './hooks/useSelector'\r\nimport { initializeConnect } from './components/connect'\r\n\r\ninitializeUseSelector(useSyncExternalStoreWithSelector)\r\ninitializeConnect(React.useSyncExternalStore)\r\n\r\nexport * from './exports'\r\n","/* eslint-disable valid-jsdoc, @typescript-eslint/no-unused-vars */\r\nimport type { ComponentType } from 'react'\r\nimport { React } from '../utils/react'\r\nimport { isValidElementType, isContextConsumer } from '../utils/react-is'\r\n\r\nimport type { Store } from 'redux'\r\n\r\nimport type {\r\n ConnectedComponent,\r\n InferableComponentEnhancer,\r\n InferableComponentEnhancerWithProps,\r\n ResolveThunks,\r\n DispatchProp,\r\n ConnectPropsMaybeWithoutContext,\r\n} from '../types'\r\n\r\nimport type {\r\n MapStateToPropsParam,\r\n MapDispatchToPropsParam,\r\n MergeProps,\r\n MapDispatchToPropsNonObject,\r\n SelectorFactoryOptions,\r\n} from '../connect/selectorFactory'\r\nimport defaultSelectorFactory from '../connect/selectorFactory'\r\nimport { mapDispatchToPropsFactory } from '../connect/mapDispatchToProps'\r\nimport { mapStateToPropsFactory } from '../connect/mapStateToProps'\r\nimport { mergePropsFactory } from '../connect/mergeProps'\r\n\r\nimport type { Subscription } from '../utils/Subscription'\r\nimport { createSubscription } from '../utils/Subscription'\r\nimport { useIsomorphicLayoutEffect } from '../utils/useIsomorphicLayoutEffect'\r\nimport shallowEqual from '../utils/shallowEqual'\r\nimport hoistStatics from '../utils/hoistStatics'\r\nimport warning from '../utils/warning'\r\n\r\nimport type {\r\n ReactReduxContextValue,\r\n ReactReduxContextInstance,\r\n} from './Context'\r\nimport { ReactReduxContext } from './Context'\r\n\r\nimport type { uSES } from '../utils/useSyncExternalStore'\r\nimport { notInitialized } from '../utils/useSyncExternalStore'\r\n\r\nlet useSyncExternalStore = notInitialized as uSES\r\nexport const initializeConnect = (fn: uSES) => {\r\n useSyncExternalStore = fn\r\n}\r\n\r\n// Define some constant arrays just to avoid re-creating these\r\nconst EMPTY_ARRAY: [unknown, number] = [null, 0]\r\nconst NO_SUBSCRIPTION_ARRAY = [null, null]\r\n\r\n// Attempts to stringify whatever not-really-a-component value we were given\r\n// for logging in an error message\r\nconst stringifyComponent = (Comp: unknown) => {\r\n try {\r\n return JSON.stringify(Comp)\r\n } catch (err) {\r\n return String(Comp)\r\n }\r\n}\r\n\r\ntype EffectFunc = (...args: any[]) => void | ReturnType\r\n\r\n// This is \"just\" a `useLayoutEffect`, but with two modifications:\r\n// - we need to fall back to `useEffect` in SSR to avoid annoying warnings\r\n// - we extract this to a separate function to avoid closing over values\r\n// and causing memory leaks\r\nfunction useIsomorphicLayoutEffectWithArgs(\r\n effectFunc: EffectFunc,\r\n effectArgs: any[],\r\n dependencies?: React.DependencyList\r\n) {\r\n useIsomorphicLayoutEffect(() => effectFunc(...effectArgs), dependencies)\r\n}\r\n\r\n// Effect callback, extracted: assign the latest props values to refs for later usage\r\nfunction captureWrapperProps(\r\n lastWrapperProps: React.MutableRefObject,\r\n lastChildProps: React.MutableRefObject,\r\n renderIsScheduled: React.MutableRefObject,\r\n wrapperProps: unknown,\r\n // actualChildProps: unknown,\r\n childPropsFromStoreUpdate: React.MutableRefObject,\r\n notifyNestedSubs: () => void\r\n) {\r\n // We want to capture the wrapper props and child props we used for later comparisons\r\n lastWrapperProps.current = wrapperProps\r\n renderIsScheduled.current = false\r\n\r\n // If the render was from a store update, clear out that reference and cascade the subscriber update\r\n if (childPropsFromStoreUpdate.current) {\r\n childPropsFromStoreUpdate.current = null\r\n notifyNestedSubs()\r\n }\r\n}\r\n\r\n// Effect callback, extracted: subscribe to the Redux store or nearest connected ancestor,\r\n// check for updates after dispatched actions, and trigger re-renders.\r\nfunction subscribeUpdates(\r\n shouldHandleStateChanges: boolean,\r\n store: Store,\r\n subscription: Subscription,\r\n childPropsSelector: (state: unknown, props: unknown) => unknown,\r\n lastWrapperProps: React.MutableRefObject,\r\n lastChildProps: React.MutableRefObject,\r\n renderIsScheduled: React.MutableRefObject,\r\n isMounted: React.MutableRefObject,\r\n childPropsFromStoreUpdate: React.MutableRefObject,\r\n notifyNestedSubs: () => void,\r\n // forceComponentUpdateDispatch: React.Dispatch,\r\n additionalSubscribeListener: () => void\r\n) {\r\n // If we're not subscribed to the store, nothing to do here\r\n if (!shouldHandleStateChanges) return () => {}\r\n\r\n // Capture values for checking if and when this component unmounts\r\n let didUnsubscribe = false\r\n let lastThrownError: Error | null = null\r\n\r\n // We'll run this callback every time a store subscription update propagates to this component\r\n const checkForUpdates = () => {\r\n if (didUnsubscribe || !isMounted.current) {\r\n // Don't run stale listeners.\r\n // Redux doesn't guarantee unsubscriptions happen until next dispatch.\r\n return\r\n }\r\n\r\n // TODO We're currently calling getState ourselves here, rather than letting `uSES` do it\r\n const latestStoreState = store.getState()\r\n\r\n let newChildProps, error\r\n try {\r\n // Actually run the selector with the most recent store state and wrapper props\r\n // to determine what the child props should be\r\n newChildProps = childPropsSelector(\r\n latestStoreState,\r\n lastWrapperProps.current\r\n )\r\n } catch (e) {\r\n error = e\r\n lastThrownError = e as Error | null\r\n }\r\n\r\n if (!error) {\r\n lastThrownError = null\r\n }\r\n\r\n // If the child props haven't changed, nothing to do here - cascade the subscription update\r\n if (newChildProps === lastChildProps.current) {\r\n if (!renderIsScheduled.current) {\r\n notifyNestedSubs()\r\n }\r\n } else {\r\n // Save references to the new child props. Note that we track the \"child props from store update\"\r\n // as a ref instead of a useState/useReducer because we need a way to determine if that value has\r\n // been processed. If this went into useState/useReducer, we couldn't clear out the value without\r\n // forcing another re-render, which we don't want.\r\n lastChildProps.current = newChildProps\r\n childPropsFromStoreUpdate.current = newChildProps\r\n renderIsScheduled.current = true\r\n\r\n // TODO This is hacky and not how `uSES` is meant to be used\r\n // Trigger the React `useSyncExternalStore` subscriber\r\n additionalSubscribeListener()\r\n }\r\n }\r\n\r\n // Actually subscribe to the nearest connected ancestor (or store)\r\n subscription.onStateChange = checkForUpdates\r\n subscription.trySubscribe()\r\n\r\n // Pull data from the store after first render in case the store has\r\n // changed since we began.\r\n checkForUpdates()\r\n\r\n const unsubscribeWrapper = () => {\r\n didUnsubscribe = true\r\n subscription.tryUnsubscribe()\r\n subscription.onStateChange = null\r\n\r\n if (lastThrownError) {\r\n // It's possible that we caught an error due to a bad mapState function, but the\r\n // parent re-rendered without this component and we're about to unmount.\r\n // This shouldn't happen as long as we do top-down subscriptions correctly, but\r\n // if we ever do those wrong, this throw will surface the error in our tests.\r\n // In that case, throw the error from here so it doesn't get lost.\r\n throw lastThrownError\r\n }\r\n }\r\n\r\n return unsubscribeWrapper\r\n}\r\n\r\n// Reducer initial state creation for our update reducer\r\nconst initStateUpdates = () => EMPTY_ARRAY\r\n\r\nexport interface ConnectProps {\r\n /** A custom Context instance that the component can use to access the store from an alternate Provider using that same Context instance */\r\n context?: ReactReduxContextInstance\r\n /** A Redux store instance to be used for subscriptions instead of the store from a Provider */\r\n store?: Store\r\n}\r\n\r\ninterface InternalConnectProps extends ConnectProps {\r\n reactReduxForwardedRef?: React.ForwardedRef\r\n}\r\n\r\nfunction strictEqual(a: unknown, b: unknown) {\r\n return a === b\r\n}\r\n\r\n/**\r\n * Infers the type of props that a connector will inject into a component.\r\n */\r\nexport type ConnectedProps =\r\n TConnector extends InferableComponentEnhancerWithProps<\r\n infer TInjectedProps,\r\n any\r\n >\r\n ? unknown extends TInjectedProps\r\n ? TConnector extends InferableComponentEnhancer\r\n ? TInjectedProps\r\n : never\r\n : TInjectedProps\r\n : never\r\n\r\nexport interface ConnectOptions<\r\n State = unknown,\r\n TStateProps = {},\r\n TOwnProps = {},\r\n TMergedProps = {}\r\n> {\r\n forwardRef?: boolean\r\n context?: typeof ReactReduxContext\r\n areStatesEqual?: (\r\n nextState: State,\r\n prevState: State,\r\n nextOwnProps: TOwnProps,\r\n prevOwnProps: TOwnProps\r\n ) => boolean\r\n\r\n areOwnPropsEqual?: (\r\n nextOwnProps: TOwnProps,\r\n prevOwnProps: TOwnProps\r\n ) => boolean\r\n\r\n areStatePropsEqual?: (\r\n nextStateProps: TStateProps,\r\n prevStateProps: TStateProps\r\n ) => boolean\r\n areMergedPropsEqual?: (\r\n nextMergedProps: TMergedProps,\r\n prevMergedProps: TMergedProps\r\n ) => boolean\r\n}\r\n\r\n/**\r\n * Connects a React component to a Redux store.\r\n *\r\n * - Without arguments, just wraps the component, without changing the behavior / props\r\n *\r\n * - If 2 params are passed (3rd param, mergeProps, is skipped), default behavior\r\n * is to override ownProps (as stated in the docs), so what remains is everything that's\r\n * not a state or dispatch prop\r\n *\r\n * - When 3rd param is passed, we don't know if ownProps propagate and whether they\r\n * should be valid component props, because it depends on mergeProps implementation.\r\n * As such, it is the user's responsibility to extend ownProps interface from state or\r\n * dispatch props or both when applicable\r\n *\r\n * @param mapStateToProps\r\n * @param mapDispatchToProps\r\n * @param mergeProps\r\n * @param options\r\n */\r\nexport interface Connect {\r\n // tslint:disable:no-unnecessary-generics\r\n (): InferableComponentEnhancer\r\n\r\n /** mapState only */\r\n (\r\n mapStateToProps: MapStateToPropsParam\r\n ): InferableComponentEnhancerWithProps\r\n\r\n /** mapDispatch only (as a function) */\r\n (\r\n mapStateToProps: null | undefined,\r\n mapDispatchToProps: MapDispatchToPropsNonObject\r\n ): InferableComponentEnhancerWithProps\r\n\r\n /** mapDispatch only (as an object) */\r\n (\r\n mapStateToProps: null | undefined,\r\n mapDispatchToProps: MapDispatchToPropsParam\r\n ): InferableComponentEnhancerWithProps<\r\n ResolveThunks,\r\n TOwnProps\r\n >\r\n\r\n /** mapState and mapDispatch (as a function)*/\r\n (\r\n mapStateToProps: MapStateToPropsParam,\r\n mapDispatchToProps: MapDispatchToPropsNonObject\r\n ): InferableComponentEnhancerWithProps<\r\n TStateProps & TDispatchProps,\r\n TOwnProps\r\n >\r\n\r\n /** mapState and mapDispatch (nullish) */\r\n (\r\n mapStateToProps: MapStateToPropsParam,\r\n mapDispatchToProps: null | undefined\r\n ): InferableComponentEnhancerWithProps\r\n\r\n /** mapState and mapDispatch (as an object) */\r\n (\r\n mapStateToProps: MapStateToPropsParam,\r\n mapDispatchToProps: MapDispatchToPropsParam\r\n ): InferableComponentEnhancerWithProps<\r\n TStateProps & ResolveThunks,\r\n TOwnProps\r\n >\r\n\r\n /** mergeProps only */\r\n (\r\n mapStateToProps: null | undefined,\r\n mapDispatchToProps: null | undefined,\r\n mergeProps: MergeProps\r\n ): InferableComponentEnhancerWithProps\r\n\r\n /** mapState and mergeProps */\r\n <\r\n TStateProps = {},\r\n no_dispatch = {},\r\n TOwnProps = {},\r\n TMergedProps = {},\r\n State = DefaultState\r\n >(\r\n mapStateToProps: MapStateToPropsParam,\r\n mapDispatchToProps: null | undefined,\r\n mergeProps: MergeProps\r\n ): InferableComponentEnhancerWithProps\r\n\r\n /** mapDispatch (as a object) and mergeProps */\r\n (\r\n mapStateToProps: null | undefined,\r\n mapDispatchToProps: MapDispatchToPropsParam,\r\n mergeProps: MergeProps\r\n ): InferableComponentEnhancerWithProps\r\n\r\n /** mapState and options */\r\n (\r\n mapStateToProps: MapStateToPropsParam,\r\n mapDispatchToProps: null | undefined,\r\n mergeProps: null | undefined,\r\n options: ConnectOptions\r\n ): InferableComponentEnhancerWithProps\r\n\r\n /** mapDispatch (as a function) and options */\r\n (\r\n mapStateToProps: null | undefined,\r\n mapDispatchToProps: MapDispatchToPropsNonObject,\r\n mergeProps: null | undefined,\r\n options: ConnectOptions<{}, TStateProps, TOwnProps>\r\n ): InferableComponentEnhancerWithProps\r\n\r\n /** mapDispatch (as an object) and options*/\r\n (\r\n mapStateToProps: null | undefined,\r\n mapDispatchToProps: MapDispatchToPropsParam,\r\n mergeProps: null | undefined,\r\n options: ConnectOptions<{}, TStateProps, TOwnProps>\r\n ): InferableComponentEnhancerWithProps<\r\n ResolveThunks,\r\n TOwnProps\r\n >\r\n\r\n /** mapState, mapDispatch (as a function), and options */\r\n (\r\n mapStateToProps: MapStateToPropsParam,\r\n mapDispatchToProps: MapDispatchToPropsNonObject,\r\n mergeProps: null | undefined,\r\n options: ConnectOptions\r\n ): InferableComponentEnhancerWithProps<\r\n TStateProps & TDispatchProps,\r\n TOwnProps\r\n >\r\n\r\n /** mapState, mapDispatch (as an object), and options */\r\n (\r\n mapStateToProps: MapStateToPropsParam,\r\n mapDispatchToProps: MapDispatchToPropsParam,\r\n mergeProps: null | undefined,\r\n options: ConnectOptions\r\n ): InferableComponentEnhancerWithProps<\r\n TStateProps & ResolveThunks,\r\n TOwnProps\r\n >\r\n\r\n /** mapState, mapDispatch, mergeProps, and options */\r\n <\r\n TStateProps = {},\r\n TDispatchProps = {},\r\n TOwnProps = {},\r\n TMergedProps = {},\r\n State = DefaultState\r\n >(\r\n mapStateToProps: MapStateToPropsParam,\r\n mapDispatchToProps: MapDispatchToPropsParam,\r\n mergeProps: MergeProps<\r\n TStateProps,\r\n TDispatchProps,\r\n TOwnProps,\r\n TMergedProps\r\n >,\r\n options?: ConnectOptions\r\n ): InferableComponentEnhancerWithProps\r\n // tslint:enable:no-unnecessary-generics\r\n}\r\n\r\nlet hasWarnedAboutDeprecatedPureOption = false\r\n\r\n/**\r\n * Connects a React component to a Redux store.\r\n *\r\n * - Without arguments, just wraps the component, without changing the behavior / props\r\n *\r\n * - If 2 params are passed (3rd param, mergeProps, is skipped), default behavior\r\n * is to override ownProps (as stated in the docs), so what remains is everything that's\r\n * not a state or dispatch prop\r\n *\r\n * - When 3rd param is passed, we don't know if ownProps propagate and whether they\r\n * should be valid component props, because it depends on mergeProps implementation.\r\n * As such, it is the user's responsibility to extend ownProps interface from state or\r\n * dispatch props or both when applicable\r\n *\r\n * @param mapStateToProps A function that extracts values from state\r\n * @param mapDispatchToProps Setup for dispatching actions\r\n * @param mergeProps Optional callback to merge state and dispatch props together\r\n * @param options Options for configuring the connection\r\n *\r\n */\r\nfunction connect<\r\n TStateProps = {},\r\n TDispatchProps = {},\r\n TOwnProps = {},\r\n TMergedProps = {},\r\n State = unknown\r\n>(\r\n mapStateToProps?: MapStateToPropsParam,\r\n mapDispatchToProps?: MapDispatchToPropsParam,\r\n mergeProps?: MergeProps,\r\n {\r\n // The `pure` option has been removed, so TS doesn't like us destructuring this to check its existence.\r\n // @ts-ignore\r\n pure,\r\n areStatesEqual = strictEqual,\r\n areOwnPropsEqual = shallowEqual,\r\n areStatePropsEqual = shallowEqual,\r\n areMergedPropsEqual = shallowEqual,\r\n\r\n // use React's forwardRef to expose a ref of the wrapped component\r\n forwardRef = false,\r\n\r\n // the context consumer to use\r\n context = ReactReduxContext,\r\n }: ConnectOptions = {}\r\n): unknown {\r\n if (process.env.NODE_ENV !== 'production') {\r\n if (pure !== undefined && !hasWarnedAboutDeprecatedPureOption) {\r\n hasWarnedAboutDeprecatedPureOption = true\r\n warning(\r\n 'The `pure` option has been removed. `connect` is now always a \"pure/memoized\" component'\r\n )\r\n }\r\n }\r\n\r\n const Context = context\r\n\r\n const initMapStateToProps = mapStateToPropsFactory(mapStateToProps)\r\n const initMapDispatchToProps = mapDispatchToPropsFactory(mapDispatchToProps)\r\n const initMergeProps = mergePropsFactory(mergeProps)\r\n\r\n const shouldHandleStateChanges = Boolean(mapStateToProps)\r\n\r\n const wrapWithConnect = (\r\n WrappedComponent: ComponentType\r\n ) => {\r\n type WrappedComponentProps = TProps &\r\n ConnectPropsMaybeWithoutContext\r\n\r\n if (process.env.NODE_ENV !== 'production') {\r\n const isValid = /*#__PURE__*/ isValidElementType(WrappedComponent)\r\n if (!isValid)\r\n throw new Error(\r\n `You must pass a component to the function returned by connect. Instead received ${stringifyComponent(\r\n WrappedComponent\r\n )}`\r\n )\r\n }\r\n\r\n const wrappedComponentName =\r\n WrappedComponent.displayName || WrappedComponent.name || 'Component'\r\n\r\n const displayName = `Connect(${wrappedComponentName})`\r\n\r\n const selectorFactoryOptions: SelectorFactoryOptions<\r\n any,\r\n any,\r\n any,\r\n any,\r\n State\r\n > = {\r\n shouldHandleStateChanges,\r\n displayName,\r\n wrappedComponentName,\r\n WrappedComponent,\r\n // @ts-ignore\r\n initMapStateToProps,\r\n // @ts-ignore\r\n initMapDispatchToProps,\r\n initMergeProps,\r\n areStatesEqual,\r\n areStatePropsEqual,\r\n areOwnPropsEqual,\r\n areMergedPropsEqual,\r\n }\r\n\r\n function ConnectFunction(\r\n props: InternalConnectProps & TOwnProps\r\n ) {\r\n const [propsContext, reactReduxForwardedRef, wrapperProps] =\r\n React.useMemo(() => {\r\n // Distinguish between actual \"data\" props that were passed to the wrapper component,\r\n // and values needed to control behavior (forwarded refs, alternate context instances).\r\n // To maintain the wrapperProps object reference, memoize this destructuring.\r\n const { reactReduxForwardedRef, ...wrapperProps } = props\r\n return [props.context, reactReduxForwardedRef, wrapperProps]\r\n }, [props])\r\n\r\n const ContextToUse: ReactReduxContextInstance = React.useMemo(() => {\r\n // Users may optionally pass in a custom context instance to use instead of our ReactReduxContext.\r\n // Memoize the check that determines which context instance we should use.\r\n let ResultContext = Context\r\n if (propsContext?.Consumer) {\r\n if (process.env.NODE_ENV !== 'production') {\r\n const isValid = /*#__PURE__*/ isContextConsumer(\r\n // @ts-ignore\r\n \r\n )\r\n if (!isValid) {\r\n throw new Error(\r\n 'You must pass a valid React context consumer as `props.context`'\r\n )\r\n }\r\n ResultContext = propsContext\r\n }\r\n }\r\n return ResultContext\r\n }, [propsContext, Context])\r\n\r\n // Retrieve the store and ancestor subscription via context, if available\r\n const contextValue = React.useContext(ContextToUse)\r\n\r\n // The store _must_ exist as either a prop or in context.\r\n // We'll check to see if it _looks_ like a Redux store first.\r\n // This allows us to pass through a `store` prop that is just a plain value.\r\n const didStoreComeFromProps =\r\n Boolean(props.store) &&\r\n Boolean(props.store!.getState) &&\r\n Boolean(props.store!.dispatch)\r\n const didStoreComeFromContext =\r\n Boolean(contextValue) && Boolean(contextValue!.store)\r\n\r\n if (\r\n process.env.NODE_ENV !== 'production' &&\r\n !didStoreComeFromProps &&\r\n !didStoreComeFromContext\r\n ) {\r\n throw new Error(\r\n `Could not find \"store\" in the context of ` +\r\n `\"${displayName}\". Either wrap the root component in a , ` +\r\n `or pass a custom React context provider to and the corresponding ` +\r\n `React context consumer to ${displayName} in connect options.`\r\n )\r\n }\r\n\r\n // Based on the previous check, one of these must be true\r\n const store: Store = didStoreComeFromProps\r\n ? props.store!\r\n : contextValue!.store\r\n\r\n const getServerState = didStoreComeFromContext\r\n ? contextValue!.getServerState\r\n : store.getState\r\n\r\n const childPropsSelector = React.useMemo(() => {\r\n // The child props selector needs the store reference as an input.\r\n // Re-create this selector whenever the store changes.\r\n return defaultSelectorFactory(store.dispatch, selectorFactoryOptions)\r\n }, [store])\r\n\r\n const [subscription, notifyNestedSubs] = React.useMemo(() => {\r\n if (!shouldHandleStateChanges) return NO_SUBSCRIPTION_ARRAY\r\n\r\n // This Subscription's source should match where store came from: props vs. context. A component\r\n // connected to the store via props shouldn't use subscription from context, or vice versa.\r\n const subscription = createSubscription(\r\n store,\r\n didStoreComeFromProps ? undefined : contextValue!.subscription\r\n )\r\n\r\n // `notifyNestedSubs` is duplicated to handle the case where the component is unmounted in\r\n // the middle of the notification loop, where `subscription` will then be null. This can\r\n // probably be avoided if Subscription's listeners logic is changed to not call listeners\r\n // that have been unsubscribed in the middle of the notification loop.\r\n const notifyNestedSubs =\r\n subscription.notifyNestedSubs.bind(subscription)\r\n\r\n return [subscription, notifyNestedSubs]\r\n }, [store, didStoreComeFromProps, contextValue])\r\n\r\n // Determine what {store, subscription} value should be put into nested context, if necessary,\r\n // and memoize that value to avoid unnecessary context updates.\r\n const overriddenContextValue = React.useMemo(() => {\r\n if (didStoreComeFromProps) {\r\n // This component is directly subscribed to a store from props.\r\n // We don't want descendants reading from this store - pass down whatever\r\n // the existing context value is from the nearest connected ancestor.\r\n return contextValue!\r\n }\r\n\r\n // Otherwise, put this component's subscription instance into context, so that\r\n // connected descendants won't update until after this component is done\r\n return {\r\n ...contextValue,\r\n subscription,\r\n } as ReactReduxContextValue\r\n }, [didStoreComeFromProps, contextValue, subscription])\r\n\r\n // Set up refs to coordinate values between the subscription effect and the render logic\r\n const lastChildProps = React.useRef()\r\n const lastWrapperProps = React.useRef(wrapperProps)\r\n const childPropsFromStoreUpdate = React.useRef()\r\n const renderIsScheduled = React.useRef(false)\r\n const isProcessingDispatch = React.useRef(false)\r\n const isMounted = React.useRef(false)\r\n\r\n const latestSubscriptionCallbackError = React.useRef()\r\n\r\n useIsomorphicLayoutEffect(() => {\r\n isMounted.current = true\r\n return () => {\r\n isMounted.current = false\r\n }\r\n }, [])\r\n\r\n const actualChildPropsSelector = React.useMemo(() => {\r\n const selector = () => {\r\n // Tricky logic here:\r\n // - This render may have been triggered by a Redux store update that produced new child props\r\n // - However, we may have gotten new wrapper props after that\r\n // If we have new child props, and the same wrapper props, we know we should use the new child props as-is.\r\n // But, if we have new wrapper props, those might change the child props, so we have to recalculate things.\r\n // So, we'll use the child props from store update only if the wrapper props are the same as last time.\r\n if (\r\n childPropsFromStoreUpdate.current &&\r\n wrapperProps === lastWrapperProps.current\r\n ) {\r\n return childPropsFromStoreUpdate.current\r\n }\r\n\r\n // TODO We're reading the store directly in render() here. Bad idea?\r\n // This will likely cause Bad Things (TM) to happen in Concurrent Mode.\r\n // Note that we do this because on renders _not_ caused by store updates, we need the latest store state\r\n // to determine what the child props should be.\r\n return childPropsSelector(store.getState(), wrapperProps)\r\n }\r\n return selector\r\n }, [store, wrapperProps])\r\n\r\n // We need this to execute synchronously every time we re-render. However, React warns\r\n // about useLayoutEffect in SSR, so we try to detect environment and fall back to\r\n // just useEffect instead to avoid the warning, since neither will run anyway.\r\n\r\n const subscribeForReact = React.useMemo(() => {\r\n const subscribe = (reactListener: () => void) => {\r\n if (!subscription) {\r\n return () => {}\r\n }\r\n\r\n return subscribeUpdates(\r\n shouldHandleStateChanges,\r\n store,\r\n subscription,\r\n // @ts-ignore\r\n childPropsSelector,\r\n lastWrapperProps,\r\n lastChildProps,\r\n renderIsScheduled,\r\n isMounted,\r\n childPropsFromStoreUpdate,\r\n notifyNestedSubs,\r\n reactListener\r\n )\r\n }\r\n\r\n return subscribe\r\n }, [subscription])\r\n\r\n useIsomorphicLayoutEffectWithArgs(captureWrapperProps, [\r\n lastWrapperProps,\r\n lastChildProps,\r\n renderIsScheduled,\r\n wrapperProps,\r\n childPropsFromStoreUpdate,\r\n notifyNestedSubs,\r\n ])\r\n\r\n let actualChildProps: Record\r\n\r\n try {\r\n actualChildProps = useSyncExternalStore(\r\n // TODO We're passing through a big wrapper that does a bunch of extra side effects besides subscribing\r\n subscribeForReact,\r\n // TODO This is incredibly hacky. We've already processed the store update and calculated new child props,\r\n // TODO and we're just passing that through so it triggers a re-render for us rather than relying on `uSES`.\r\n actualChildPropsSelector,\r\n getServerState\r\n ? () => childPropsSelector(getServerState(), wrapperProps)\r\n : actualChildPropsSelector\r\n )\r\n } catch (err) {\r\n if (latestSubscriptionCallbackError.current) {\r\n ;(\r\n err as Error\r\n ).message += `\\nThe error may be correlated with this previous error:\\n${latestSubscriptionCallbackError.current.stack}\\n\\n`\r\n }\r\n\r\n throw err\r\n }\r\n\r\n useIsomorphicLayoutEffect(() => {\r\n latestSubscriptionCallbackError.current = undefined\r\n childPropsFromStoreUpdate.current = undefined\r\n lastChildProps.current = actualChildProps\r\n })\r\n\r\n // Now that all that's done, we can finally try to actually render the child component.\r\n // We memoize the elements for the rendered child component as an optimization.\r\n const renderedWrappedComponent = React.useMemo(() => {\r\n return (\r\n // @ts-ignore\r\n \r\n )\r\n }, [reactReduxForwardedRef, WrappedComponent, actualChildProps])\r\n\r\n // If React sees the exact same element reference as last time, it bails out of re-rendering\r\n // that child, same as if it was wrapped in React.memo() or returned false from shouldComponentUpdate.\r\n const renderedChild = React.useMemo(() => {\r\n if (shouldHandleStateChanges) {\r\n // If this component is subscribed to store updates, we need to pass its own\r\n // subscription instance down to our descendants. That means rendering the same\r\n // Context instance, and putting a different value into the context.\r\n return (\r\n \r\n {renderedWrappedComponent}\r\n \r\n )\r\n }\r\n\r\n return renderedWrappedComponent\r\n }, [ContextToUse, renderedWrappedComponent, overriddenContextValue])\r\n\r\n return renderedChild\r\n }\r\n\r\n const _Connect = React.memo(ConnectFunction)\r\n\r\n type ConnectedWrapperComponent = typeof _Connect & {\r\n WrappedComponent: typeof WrappedComponent\r\n }\r\n\r\n // Add a hacky cast to get the right output type\r\n const Connect = _Connect as unknown as ConnectedComponent<\r\n typeof WrappedComponent,\r\n WrappedComponentProps\r\n >\r\n Connect.WrappedComponent = WrappedComponent\r\n Connect.displayName = ConnectFunction.displayName = displayName\r\n\r\n if (forwardRef) {\r\n const _forwarded = React.forwardRef(function forwardConnectRef(\r\n props,\r\n ref\r\n ) {\r\n // @ts-ignore\r\n return \r\n })\r\n\r\n const forwarded = _forwarded as ConnectedWrapperComponent\r\n forwarded.displayName = displayName\r\n forwarded.WrappedComponent = WrappedComponent\r\n return /*#__PURE__*/ hoistStatics(forwarded, WrappedComponent)\r\n }\r\n\r\n return /*#__PURE__*/ hoistStatics(Connect, WrappedComponent)\r\n }\r\n\r\n return wrapWithConnect\r\n}\r\n\r\nexport default connect as Connect\r\n","import React, { memo, useCallback, useEffect, useRef, useState } from \"react\";\n\nimport ArrowDownIcon from \"components/icons/ArrowDownIcon\";\nimport ArrowUpIcon from \"components/icons/ArrowUpIcon\";\nimport LargeTextIcon from \"components/icons/LargeTextIcon\";\nimport MediumTextIcon from \"components/icons/MediumTextIcon\";\n// Icons\nimport ShortTextIcon from \"components/icons/ShortTextIcon\";\nimport { trackButton } from \"util/tracking\";\nimport useMobile from \"hook/useMobile\";\nimport { useSelector } from \"react-redux\";\n\nconst LENGTH_CONTENT = [\n { label: window.ai?.glossary?.concise, icon: },\n { label: window.ai?.glossary?.average, icon: },\n { label: window.ai?.glossary?.detailed, icon: },\n];\n\nconst LengthButton = memo(\n ({ isDropdown = false, handleLengthChange, selectedLength }) => {\n const loading = useSelector((state) => state.ui.loading);\n\n return LENGTH_CONTENT.map(({ label, icon }, index) => (\n \n {icon} {isDropdown && label}\n \n ));\n }\n);\n\nconst ContentLength = ({ onSelect, value, message_id, isPrevent = false }) => {\n const dropdownRef = useRef(null);\n const menuMobileRef = useRef(null);\n\n const loading = useSelector((state) => state.ui.loading);\n const glossary = useSelector((state) => state.ui.glossary);\n\n const [showLengthTooltip, setShowLengthTooltip] = useState(false);\n const [selectedLength, setSelectedLength] = useState(LENGTH_CONTENT[1].label);\n\n const isMobile = useMobile();\n\n const onToggleDropdown = (e) => {\n e.stopPropagation();\n setShowLengthTooltip((is) => !is);\n };\n\n const handleLengthChange = useCallback(\n (label) => () => {\n if (selectedLength === label) {\n return;\n }\n\n onSelect?.(label);\n\n setShowLengthTooltip(false);\n\n if (!isPrevent) {\n setSelectedLength(label);\n }\n\n trackButton(\n {\n label: label,\n message_id,\n },\n \"response_tweak\"\n );\n },\n [isPrevent, message_id, onSelect, selectedLength]\n );\n\n useEffect(() => {\n if (value !== undefined) {\n setSelectedLength(value);\n }\n }, [value]);\n\n // Handle click outside\n useEffect(() => {\n function onClickOutside(e) {\n if (dropdownRef.current?.style.display !== \"none\") {\n const $target = e.target;\n\n if (!dropdownRef.current.contains($target)) {\n setShowLengthTooltip(false);\n }\n }\n }\n\n if (isMobile) {\n document.addEventListener(\"click\", onClickOutside);\n } else {\n document.removeEventListener(\"click\", onClickOutside);\n }\n\n return () => {\n document.removeEventListener(\"click\", onClickOutside);\n };\n }, [isMobile]);\n\n // Handle position for dropdown\n useEffect(() => {\n if (!isMobile) {\n return;\n }\n\n if (showLengthTooltip) {\n const buttonRect = dropdownRef.current.getBoundingClientRect();\n const menuMobileRect = menuMobileRef.current.getBoundingClientRect();\n const isOverflowingX = menuMobileRect.right > window.innerWidth;\n const isOverflowingY = menuMobileRect.bottom + 40 > window.innerHeight;\n\n const transformValue = `translate(-${\n isOverflowingX ? menuMobileRect.width - buttonRect.width : 0\n }px, -${\n isOverflowingY ? menuMobileRect.height + buttonRect.height + 15 : 0\n }px)`;\n\n menuMobileRef.current.style.transform = transformValue;\n }\n }, [isMobile, showLengthTooltip]);\n\n return (\n
\n {/* Desktop Layout */}\n
\n
\n {glossary.responseLength}\n
\n
\n \n
\n
\n\n {/* Mobile Layout */}\n \n
\n {LENGTH_CONTENT.find((item) => item.label === selectedLength)?.icon}\n
\n
\n {glossary.responseLength}\n
\n
\n {showLengthTooltip ? : }\n
\n \n {showLengthTooltip && (\n \n \n
\n )}\n \n );\n};\n\nexport default ContentLength;\n","export default function CopeIcon() {\n return (\n \n \n \n \n );\n}\n","export default function DislikeIcon() {\n return (\n \n \n \n \n \n \n \n \n \n \n );\n}\n","export default function LikeIcon() {\n return (\n \n \n \n \n \n \n \n \n \n \n );\n}\n","export default function RefreshIcon() {\n return (\n \n \n \n );\n}\n","export default function TickIcon() {\n return (\n \n \n \n \n );\n}\n","function extend (destination) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (source.hasOwnProperty(key)) destination[key] = source[key];\n }\n }\n return destination\n}\n\nfunction repeat (character, count) {\n return Array(count + 1).join(character)\n}\n\nfunction trimLeadingNewlines (string) {\n return string.replace(/^\\n*/, '')\n}\n\nfunction trimTrailingNewlines (string) {\n // avoid match-at-end regexp bottleneck, see #370\n var indexEnd = string.length;\n while (indexEnd > 0 && string[indexEnd - 1] === '\\n') indexEnd--;\n return string.substring(0, indexEnd)\n}\n\nvar blockElements = [\n 'ADDRESS', 'ARTICLE', 'ASIDE', 'AUDIO', 'BLOCKQUOTE', 'BODY', 'CANVAS',\n 'CENTER', 'DD', 'DIR', 'DIV', 'DL', 'DT', 'FIELDSET', 'FIGCAPTION', 'FIGURE',\n 'FOOTER', 'FORM', 'FRAMESET', 'H1', 'H2', 'H3', 'H4', 'H5', 'H6', 'HEADER',\n 'HGROUP', 'HR', 'HTML', 'ISINDEX', 'LI', 'MAIN', 'MENU', 'NAV', 'NOFRAMES',\n 'NOSCRIPT', 'OL', 'OUTPUT', 'P', 'PRE', 'SECTION', 'TABLE', 'TBODY', 'TD',\n 'TFOOT', 'TH', 'THEAD', 'TR', 'UL'\n];\n\nfunction isBlock (node) {\n return is(node, blockElements)\n}\n\nvar voidElements = [\n 'AREA', 'BASE', 'BR', 'COL', 'COMMAND', 'EMBED', 'HR', 'IMG', 'INPUT',\n 'KEYGEN', 'LINK', 'META', 'PARAM', 'SOURCE', 'TRACK', 'WBR'\n];\n\nfunction isVoid (node) {\n return is(node, voidElements)\n}\n\nfunction hasVoid (node) {\n return has(node, voidElements)\n}\n\nvar meaningfulWhenBlankElements = [\n 'A', 'TABLE', 'THEAD', 'TBODY', 'TFOOT', 'TH', 'TD', 'IFRAME', 'SCRIPT',\n 'AUDIO', 'VIDEO'\n];\n\nfunction isMeaningfulWhenBlank (node) {\n return is(node, meaningfulWhenBlankElements)\n}\n\nfunction hasMeaningfulWhenBlank (node) {\n return has(node, meaningfulWhenBlankElements)\n}\n\nfunction is (node, tagNames) {\n return tagNames.indexOf(node.nodeName) >= 0\n}\n\nfunction has (node, tagNames) {\n return (\n node.getElementsByTagName &&\n tagNames.some(function (tagName) {\n return node.getElementsByTagName(tagName).length\n })\n )\n}\n\nvar rules = {};\n\nrules.paragraph = {\n filter: 'p',\n\n replacement: function (content) {\n return '\\n\\n' + content + '\\n\\n'\n }\n};\n\nrules.lineBreak = {\n filter: 'br',\n\n replacement: function (content, node, options) {\n return options.br + '\\n'\n }\n};\n\nrules.heading = {\n filter: ['h1', 'h2', 'h3', 'h4', 'h5', 'h6'],\n\n replacement: function (content, node, options) {\n var hLevel = Number(node.nodeName.charAt(1));\n\n if (options.headingStyle === 'setext' && hLevel < 3) {\n var underline = repeat((hLevel === 1 ? '=' : '-'), content.length);\n return (\n '\\n\\n' + content + '\\n' + underline + '\\n\\n'\n )\n } else {\n return '\\n\\n' + repeat('#', hLevel) + ' ' + content + '\\n\\n'\n }\n }\n};\n\nrules.blockquote = {\n filter: 'blockquote',\n\n replacement: function (content) {\n content = content.replace(/^\\n+|\\n+$/g, '');\n content = content.replace(/^/gm, '> ');\n return '\\n\\n' + content + '\\n\\n'\n }\n};\n\nrules.list = {\n filter: ['ul', 'ol'],\n\n replacement: function (content, node) {\n var parent = node.parentNode;\n if (parent.nodeName === 'LI' && parent.lastElementChild === node) {\n return '\\n' + content\n } else {\n return '\\n\\n' + content + '\\n\\n'\n }\n }\n};\n\nrules.listItem = {\n filter: 'li',\n\n replacement: function (content, node, options) {\n content = content\n .replace(/^\\n+/, '') // remove leading newlines\n .replace(/\\n+$/, '\\n') // replace trailing newlines with just a single one\n .replace(/\\n/gm, '\\n '); // indent\n var prefix = options.bulletListMarker + ' ';\n var parent = node.parentNode;\n if (parent.nodeName === 'OL') {\n var start = parent.getAttribute('start');\n var index = Array.prototype.indexOf.call(parent.children, node);\n prefix = (start ? Number(start) + index : index + 1) + '. ';\n }\n return (\n prefix + content + (node.nextSibling && !/\\n$/.test(content) ? '\\n' : '')\n )\n }\n};\n\nrules.indentedCodeBlock = {\n filter: function (node, options) {\n return (\n options.codeBlockStyle === 'indented' &&\n node.nodeName === 'PRE' &&\n node.firstChild &&\n node.firstChild.nodeName === 'CODE'\n )\n },\n\n replacement: function (content, node, options) {\n return (\n '\\n\\n ' +\n node.firstChild.textContent.replace(/\\n/g, '\\n ') +\n '\\n\\n'\n )\n }\n};\n\nrules.fencedCodeBlock = {\n filter: function (node, options) {\n return (\n options.codeBlockStyle === 'fenced' &&\n node.nodeName === 'PRE' &&\n node.firstChild &&\n node.firstChild.nodeName === 'CODE'\n )\n },\n\n replacement: function (content, node, options) {\n var className = node.firstChild.getAttribute('class') || '';\n var language = (className.match(/language-(\\S+)/) || [null, ''])[1];\n var code = node.firstChild.textContent;\n\n var fenceChar = options.fence.charAt(0);\n var fenceSize = 3;\n var fenceInCodeRegex = new RegExp('^' + fenceChar + '{3,}', 'gm');\n\n var match;\n while ((match = fenceInCodeRegex.exec(code))) {\n if (match[0].length >= fenceSize) {\n fenceSize = match[0].length + 1;\n }\n }\n\n var fence = repeat(fenceChar, fenceSize);\n\n return (\n '\\n\\n' + fence + language + '\\n' +\n code.replace(/\\n$/, '') +\n '\\n' + fence + '\\n\\n'\n )\n }\n};\n\nrules.horizontalRule = {\n filter: 'hr',\n\n replacement: function (content, node, options) {\n return '\\n\\n' + options.hr + '\\n\\n'\n }\n};\n\nrules.inlineLink = {\n filter: function (node, options) {\n return (\n options.linkStyle === 'inlined' &&\n node.nodeName === 'A' &&\n node.getAttribute('href')\n )\n },\n\n replacement: function (content, node) {\n var href = node.getAttribute('href');\n if (href) href = href.replace(/([()])/g, '\\\\$1');\n var title = cleanAttribute(node.getAttribute('title'));\n if (title) title = ' \"' + title.replace(/\"/g, '\\\\\"') + '\"';\n return '[' + content + '](' + href + title + ')'\n }\n};\n\nrules.referenceLink = {\n filter: function (node, options) {\n return (\n options.linkStyle === 'referenced' &&\n node.nodeName === 'A' &&\n node.getAttribute('href')\n )\n },\n\n replacement: function (content, node, options) {\n var href = node.getAttribute('href');\n var title = cleanAttribute(node.getAttribute('title'));\n if (title) title = ' \"' + title + '\"';\n var replacement;\n var reference;\n\n switch (options.linkReferenceStyle) {\n case 'collapsed':\n replacement = '[' + content + '][]';\n reference = '[' + content + ']: ' + href + title;\n break\n case 'shortcut':\n replacement = '[' + content + ']';\n reference = '[' + content + ']: ' + href + title;\n break\n default:\n var id = this.references.length + 1;\n replacement = '[' + content + '][' + id + ']';\n reference = '[' + id + ']: ' + href + title;\n }\n\n this.references.push(reference);\n return replacement\n },\n\n references: [],\n\n append: function (options) {\n var references = '';\n if (this.references.length) {\n references = '\\n\\n' + this.references.join('\\n') + '\\n\\n';\n this.references = []; // Reset references\n }\n return references\n }\n};\n\nrules.emphasis = {\n filter: ['em', 'i'],\n\n replacement: function (content, node, options) {\n if (!content.trim()) return ''\n return options.emDelimiter + content + options.emDelimiter\n }\n};\n\nrules.strong = {\n filter: ['strong', 'b'],\n\n replacement: function (content, node, options) {\n if (!content.trim()) return ''\n return options.strongDelimiter + content + options.strongDelimiter\n }\n};\n\nrules.code = {\n filter: function (node) {\n var hasSiblings = node.previousSibling || node.nextSibling;\n var isCodeBlock = node.parentNode.nodeName === 'PRE' && !hasSiblings;\n\n return node.nodeName === 'CODE' && !isCodeBlock\n },\n\n replacement: function (content) {\n if (!content) return ''\n content = content.replace(/\\r?\\n|\\r/g, ' ');\n\n var extraSpace = /^`|^ .*?[^ ].* $|`$/.test(content) ? ' ' : '';\n var delimiter = '`';\n var matches = content.match(/`+/gm) || [];\n while (matches.indexOf(delimiter) !== -1) delimiter = delimiter + '`';\n\n return delimiter + extraSpace + content + extraSpace + delimiter\n }\n};\n\nrules.image = {\n filter: 'img',\n\n replacement: function (content, node) {\n var alt = cleanAttribute(node.getAttribute('alt'));\n var src = node.getAttribute('src') || '';\n var title = cleanAttribute(node.getAttribute('title'));\n var titlePart = title ? ' \"' + title + '\"' : '';\n return src ? '![' + alt + ']' + '(' + src + titlePart + ')' : ''\n }\n};\n\nfunction cleanAttribute (attribute) {\n return attribute ? attribute.replace(/(\\n+\\s*)+/g, '\\n') : ''\n}\n\n/**\n * Manages a collection of rules used to convert HTML to Markdown\n */\n\nfunction Rules (options) {\n this.options = options;\n this._keep = [];\n this._remove = [];\n\n this.blankRule = {\n replacement: options.blankReplacement\n };\n\n this.keepReplacement = options.keepReplacement;\n\n this.defaultRule = {\n replacement: options.defaultReplacement\n };\n\n this.array = [];\n for (var key in options.rules) this.array.push(options.rules[key]);\n}\n\nRules.prototype = {\n add: function (key, rule) {\n this.array.unshift(rule);\n },\n\n keep: function (filter) {\n this._keep.unshift({\n filter: filter,\n replacement: this.keepReplacement\n });\n },\n\n remove: function (filter) {\n this._remove.unshift({\n filter: filter,\n replacement: function () {\n return ''\n }\n });\n },\n\n forNode: function (node) {\n if (node.isBlank) return this.blankRule\n var rule;\n\n if ((rule = findRule(this.array, node, this.options))) return rule\n if ((rule = findRule(this._keep, node, this.options))) return rule\n if ((rule = findRule(this._remove, node, this.options))) return rule\n\n return this.defaultRule\n },\n\n forEach: function (fn) {\n for (var i = 0; i < this.array.length; i++) fn(this.array[i], i);\n }\n};\n\nfunction findRule (rules, node, options) {\n for (var i = 0; i < rules.length; i++) {\n var rule = rules[i];\n if (filterValue(rule, node, options)) return rule\n }\n return void 0\n}\n\nfunction filterValue (rule, node, options) {\n var filter = rule.filter;\n if (typeof filter === 'string') {\n if (filter === node.nodeName.toLowerCase()) return true\n } else if (Array.isArray(filter)) {\n if (filter.indexOf(node.nodeName.toLowerCase()) > -1) return true\n } else if (typeof filter === 'function') {\n if (filter.call(rule, node, options)) return true\n } else {\n throw new TypeError('`filter` needs to be a string, array, or function')\n }\n}\n\n/**\n * The collapseWhitespace function is adapted from collapse-whitespace\n * by Luc Thevenard.\n *\n * The MIT License (MIT)\n *\n * Copyright (c) 2014 Luc Thevenard \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all 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,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\n/**\n * collapseWhitespace(options) removes extraneous whitespace from an the given element.\n *\n * @param {Object} options\n */\nfunction collapseWhitespace (options) {\n var element = options.element;\n var isBlock = options.isBlock;\n var isVoid = options.isVoid;\n var isPre = options.isPre || function (node) {\n return node.nodeName === 'PRE'\n };\n\n if (!element.firstChild || isPre(element)) return\n\n var prevText = null;\n var keepLeadingWs = false;\n\n var prev = null;\n var node = next(prev, element, isPre);\n\n while (node !== element) {\n if (node.nodeType === 3 || node.nodeType === 4) { // Node.TEXT_NODE or Node.CDATA_SECTION_NODE\n var text = node.data.replace(/[ \\r\\n\\t]+/g, ' ');\n\n if ((!prevText || / $/.test(prevText.data)) &&\n !keepLeadingWs && text[0] === ' ') {\n text = text.substr(1);\n }\n\n // `text` might be empty at this point.\n if (!text) {\n node = remove(node);\n continue\n }\n\n node.data = text;\n\n prevText = node;\n } else if (node.nodeType === 1) { // Node.ELEMENT_NODE\n if (isBlock(node) || node.nodeName === 'BR') {\n if (prevText) {\n prevText.data = prevText.data.replace(/ $/, '');\n }\n\n prevText = null;\n keepLeadingWs = false;\n } else if (isVoid(node) || isPre(node)) {\n // Avoid trimming space around non-block, non-BR void elements and inline PRE.\n prevText = null;\n keepLeadingWs = true;\n } else if (prevText) {\n // Drop protection if set previously.\n keepLeadingWs = false;\n }\n } else {\n node = remove(node);\n continue\n }\n\n var nextNode = next(prev, node, isPre);\n prev = node;\n node = nextNode;\n }\n\n if (prevText) {\n prevText.data = prevText.data.replace(/ $/, '');\n if (!prevText.data) {\n remove(prevText);\n }\n }\n}\n\n/**\n * remove(node) removes the given node from the DOM and returns the\n * next node in the sequence.\n *\n * @param {Node} node\n * @return {Node} node\n */\nfunction remove (node) {\n var next = node.nextSibling || node.parentNode;\n\n node.parentNode.removeChild(node);\n\n return next\n}\n\n/**\n * next(prev, current, isPre) returns the next node in the sequence, given the\n * current and previous nodes.\n *\n * @param {Node} prev\n * @param {Node} current\n * @param {Function} isPre\n * @return {Node}\n */\nfunction next (prev, current, isPre) {\n if ((prev && prev.parentNode === current) || isPre(current)) {\n return current.nextSibling || current.parentNode\n }\n\n return current.firstChild || current.nextSibling || current.parentNode\n}\n\n/*\n * Set up window for Node.js\n */\n\nvar root = (typeof window !== 'undefined' ? window : {});\n\n/*\n * Parsing HTML strings\n */\n\nfunction canParseHTMLNatively () {\n var Parser = root.DOMParser;\n var canParse = false;\n\n // Adapted from https://gist.github.com/1129031\n // Firefox/Opera/IE throw errors on unsupported types\n try {\n // WebKit returns null on unsupported types\n if (new Parser().parseFromString('', 'text/html')) {\n canParse = true;\n }\n } catch (e) {}\n\n return canParse\n}\n\nfunction createHTMLParser () {\n var Parser = function () {};\n\n {\n if (shouldUseActiveX()) {\n Parser.prototype.parseFromString = function (string) {\n var doc = new window.ActiveXObject('htmlfile');\n doc.designMode = 'on'; // disable on-page scripts\n doc.open();\n doc.write(string);\n doc.close();\n return doc\n };\n } else {\n Parser.prototype.parseFromString = function (string) {\n var doc = document.implementation.createHTMLDocument('');\n doc.open();\n doc.write(string);\n doc.close();\n return doc\n };\n }\n }\n return Parser\n}\n\nfunction shouldUseActiveX () {\n var useActiveX = false;\n try {\n document.implementation.createHTMLDocument('').open();\n } catch (e) {\n if (root.ActiveXObject) useActiveX = true;\n }\n return useActiveX\n}\n\nvar HTMLParser = canParseHTMLNatively() ? root.DOMParser : createHTMLParser();\n\nfunction RootNode (input, options) {\n var root;\n if (typeof input === 'string') {\n var doc = htmlParser().parseFromString(\n // DOM parsers arrange elements in the and .\n // Wrapping in a custom element ensures elements are reliably arranged in\n // a single element.\n '' + input + '',\n 'text/html'\n );\n root = doc.getElementById('turndown-root');\n } else {\n root = input.cloneNode(true);\n }\n collapseWhitespace({\n element: root,\n isBlock: isBlock,\n isVoid: isVoid,\n isPre: options.preformattedCode ? isPreOrCode : null\n });\n\n return root\n}\n\nvar _htmlParser;\nfunction htmlParser () {\n _htmlParser = _htmlParser || new HTMLParser();\n return _htmlParser\n}\n\nfunction isPreOrCode (node) {\n return node.nodeName === 'PRE' || node.nodeName === 'CODE'\n}\n\nfunction Node (node, options) {\n node.isBlock = isBlock(node);\n node.isCode = node.nodeName === 'CODE' || node.parentNode.isCode;\n node.isBlank = isBlank(node);\n node.flankingWhitespace = flankingWhitespace(node, options);\n return node\n}\n\nfunction isBlank (node) {\n return (\n !isVoid(node) &&\n !isMeaningfulWhenBlank(node) &&\n /^\\s*$/i.test(node.textContent) &&\n !hasVoid(node) &&\n !hasMeaningfulWhenBlank(node)\n )\n}\n\nfunction flankingWhitespace (node, options) {\n if (node.isBlock || (options.preformattedCode && node.isCode)) {\n return { leading: '', trailing: '' }\n }\n\n var edges = edgeWhitespace(node.textContent);\n\n // abandon leading ASCII WS if left-flanked by ASCII WS\n if (edges.leadingAscii && isFlankedByWhitespace('left', node, options)) {\n edges.leading = edges.leadingNonAscii;\n }\n\n // abandon trailing ASCII WS if right-flanked by ASCII WS\n if (edges.trailingAscii && isFlankedByWhitespace('right', node, options)) {\n edges.trailing = edges.trailingNonAscii;\n }\n\n return { leading: edges.leading, trailing: edges.trailing }\n}\n\nfunction edgeWhitespace (string) {\n var m = string.match(/^(([ \\t\\r\\n]*)(\\s*))(?:(?=\\S)[\\s\\S]*\\S)?((\\s*?)([ \\t\\r\\n]*))$/);\n return {\n leading: m[1], // whole string for whitespace-only strings\n leadingAscii: m[2],\n leadingNonAscii: m[3],\n trailing: m[4], // empty for whitespace-only strings\n trailingNonAscii: m[5],\n trailingAscii: m[6]\n }\n}\n\nfunction isFlankedByWhitespace (side, node, options) {\n var sibling;\n var regExp;\n var isFlanked;\n\n if (side === 'left') {\n sibling = node.previousSibling;\n regExp = / $/;\n } else {\n sibling = node.nextSibling;\n regExp = /^ /;\n }\n\n if (sibling) {\n if (sibling.nodeType === 3) {\n isFlanked = regExp.test(sibling.nodeValue);\n } else if (options.preformattedCode && sibling.nodeName === 'CODE') {\n isFlanked = false;\n } else if (sibling.nodeType === 1 && !isBlock(sibling)) {\n isFlanked = regExp.test(sibling.textContent);\n }\n }\n return isFlanked\n}\n\nvar reduce = Array.prototype.reduce;\nvar escapes = [\n [/\\\\/g, '\\\\\\\\'],\n [/\\*/g, '\\\\*'],\n [/^-/g, '\\\\-'],\n [/^\\+ /g, '\\\\+ '],\n [/^(=+)/g, '\\\\$1'],\n [/^(#{1,6}) /g, '\\\\$1 '],\n [/`/g, '\\\\`'],\n [/^~~~/g, '\\\\~~~'],\n [/\\[/g, '\\\\['],\n [/\\]/g, '\\\\]'],\n [/^>/g, '\\\\>'],\n [/_/g, '\\\\_'],\n [/^(\\d+)\\. /g, '$1\\\\. ']\n];\n\nfunction TurndownService (options) {\n if (!(this instanceof TurndownService)) return new TurndownService(options)\n\n var defaults = {\n rules: rules,\n headingStyle: 'setext',\n hr: '* * *',\n bulletListMarker: '*',\n codeBlockStyle: 'indented',\n fence: '```',\n emDelimiter: '_',\n strongDelimiter: '**',\n linkStyle: 'inlined',\n linkReferenceStyle: 'full',\n br: ' ',\n preformattedCode: false,\n blankReplacement: function (content, node) {\n return node.isBlock ? '\\n\\n' : ''\n },\n keepReplacement: function (content, node) {\n return node.isBlock ? '\\n\\n' + node.outerHTML + '\\n\\n' : node.outerHTML\n },\n defaultReplacement: function (content, node) {\n return node.isBlock ? '\\n\\n' + content + '\\n\\n' : content\n }\n };\n this.options = extend({}, defaults, options);\n this.rules = new Rules(this.options);\n}\n\nTurndownService.prototype = {\n /**\n * The entry point for converting a string or DOM node to Markdown\n * @public\n * @param {String|HTMLElement} input The string or DOM node to convert\n * @returns A Markdown representation of the input\n * @type String\n */\n\n turndown: function (input) {\n if (!canConvert(input)) {\n throw new TypeError(\n input + ' is not a string, or an element/document/fragment node.'\n )\n }\n\n if (input === '') return ''\n\n var output = process.call(this, new RootNode(input, this.options));\n return postProcess.call(this, output)\n },\n\n /**\n * Add one or more plugins\n * @public\n * @param {Function|Array} plugin The plugin or array of plugins to add\n * @returns The Turndown instance for chaining\n * @type Object\n */\n\n use: function (plugin) {\n if (Array.isArray(plugin)) {\n for (var i = 0; i < plugin.length; i++) this.use(plugin[i]);\n } else if (typeof plugin === 'function') {\n plugin(this);\n } else {\n throw new TypeError('plugin must be a Function or an Array of Functions')\n }\n return this\n },\n\n /**\n * Adds a rule\n * @public\n * @param {String} key The unique key of the rule\n * @param {Object} rule The rule\n * @returns The Turndown instance for chaining\n * @type Object\n */\n\n addRule: function (key, rule) {\n this.rules.add(key, rule);\n return this\n },\n\n /**\n * Keep a node (as HTML) that matches the filter\n * @public\n * @param {String|Array|Function} filter The unique key of the rule\n * @returns The Turndown instance for chaining\n * @type Object\n */\n\n keep: function (filter) {\n this.rules.keep(filter);\n return this\n },\n\n /**\n * Remove a node that matches the filter\n * @public\n * @param {String|Array|Function} filter The unique key of the rule\n * @returns The Turndown instance for chaining\n * @type Object\n */\n\n remove: function (filter) {\n this.rules.remove(filter);\n return this\n },\n\n /**\n * Escapes Markdown syntax\n * @public\n * @param {String} string The string to escape\n * @returns A string with Markdown syntax escaped\n * @type String\n */\n\n escape: function (string) {\n return escapes.reduce(function (accumulator, escape) {\n return accumulator.replace(escape[0], escape[1])\n }, string)\n }\n};\n\n/**\n * Reduces a DOM node down to its Markdown string equivalent\n * @private\n * @param {HTMLElement} parentNode The node to convert\n * @returns A Markdown representation of the node\n * @type String\n */\n\nfunction process (parentNode) {\n var self = this;\n return reduce.call(parentNode.childNodes, function (output, node) {\n node = new Node(node, self.options);\n\n var replacement = '';\n if (node.nodeType === 3) {\n replacement = node.isCode ? node.nodeValue : self.escape(node.nodeValue);\n } else if (node.nodeType === 1) {\n replacement = replacementForNode.call(self, node);\n }\n\n return join(output, replacement)\n }, '')\n}\n\n/**\n * Appends strings as each rule requires and trims the output\n * @private\n * @param {String} output The conversion output\n * @returns A trimmed version of the ouput\n * @type String\n */\n\nfunction postProcess (output) {\n var self = this;\n this.rules.forEach(function (rule) {\n if (typeof rule.append === 'function') {\n output = join(output, rule.append(self.options));\n }\n });\n\n return output.replace(/^[\\t\\r\\n]+/, '').replace(/[\\t\\r\\n\\s]+$/, '')\n}\n\n/**\n * Converts an element node to its Markdown equivalent\n * @private\n * @param {HTMLElement} node The node to convert\n * @returns A Markdown representation of the node\n * @type String\n */\n\nfunction replacementForNode (node) {\n var rule = this.rules.forNode(node);\n var content = process.call(this, node);\n var whitespace = node.flankingWhitespace;\n if (whitespace.leading || whitespace.trailing) content = content.trim();\n return (\n whitespace.leading +\n rule.replacement(content, node, this.options) +\n whitespace.trailing\n )\n}\n\n/**\n * Joins replacement to the current output with appropriate number of new lines\n * @private\n * @param {String} output The current conversion output\n * @param {String} replacement The string to append to the output\n * @returns Joined output\n * @type String\n */\n\nfunction join (output, replacement) {\n var s1 = trimTrailingNewlines(output);\n var s2 = trimLeadingNewlines(replacement);\n var nls = Math.max(output.length - s1.length, replacement.length - s2.length);\n var separator = '\\n\\n'.substring(0, nls);\n\n return s1 + separator + s2\n}\n\n/**\n * Determines whether an input can be converted\n * @private\n * @param {String|HTMLElement} input Describe this parameter\n * @returns Describe what it returns\n * @type String|Object|Array|Boolean|Number\n */\n\nfunction canConvert (input) {\n return (\n input != null && (\n typeof input === 'string' ||\n (input.nodeType && (\n input.nodeType === 1 || input.nodeType === 9 || input.nodeType === 11\n ))\n )\n )\n}\n\nexport default TurndownService;\n","import {\n REFERENCE_ELEMENT_PATTERN,\n REFERENCE_EXTERNAL_ELEMENT_PATTERN,\n} from \"constants/pattern\";\nimport { TrackEvent, ignoreSource } from \"util/util\";\nimport { trackButton, trackLink } from \"util/tracking\";\nimport { useCallback, useEffect, useState } from \"react\";\nimport { useDispatch, useSelector } from \"react-redux\";\n\nimport ContentLengthComponent from \"components/ContentLength\";\nimport CopeIcon from \"components/icons/CopeIcon\";\nimport DislikeIcon from \"components/icons/DislikeIcon\";\nimport LikeIcon from \"components/icons/LikeIcon\";\nimport RefreshIcon from \"components/icons/RefreshIcon\";\nimport TickIcon from \"components/icons/TickIcon\";\nimport TurndownService from \"turndown\";\nimport { setActiveId } from \"state/sources/sourcesSlice\";\nimport useToggleSource from \"hook/useToggleSource\";\n\nexport default function ChatBubbleAction({\n reloadCallback,\n chat,\n onToggleUserFeedback,\n onCollapseExternal,\n isShowUserFeedback,\n}) {\n const {\n answerFromAPI,\n id,\n isLiked: isLikedDefault,\n isDisliked: isDislikedDefault,\n isReloaded: isReloadedDefault,\n answerGoogleFromAPI,\n answerStatistaFromAPI,\n isShowExternal,\n } = chat;\n\n const dispatch = useDispatch();\n const currentSourcesId = useSelector((state) => state.sources.activeId);\n const isActive = useSelector((state) => state.sources.isActive);\n const apiLog = useSelector((state) => state.ui.integration);\n const loading = useSelector((state) => state.ui.loading);\n const glossary = useSelector((state) => state.ui.glossary);\n const responseTemplate = useSelector((state) => state.ui.responseTemplate);\n const activeId = useSelector((state) => state.sources.activeId);\n\n const [isCopied, setIsCopied] = useState(false);\n const [isLiked, setIsLiked] = useState(isLikedDefault);\n const [isReloaded, setIsReloaded] = useState(isReloadedDefault);\n\n const onToggleSource = useToggleSource();\n\n const rateChat = (flag) => (e) => {\n e.preventDefault();\n\n if (!flag) {\n onToggleUserFeedback();\n\n return;\n }\n\n if (isShowUserFeedback) {\n onToggleUserFeedback();\n }\n\n setIsLiked(flag);\n\n trackButton({\n label: \"Like\",\n message_id: id,\n });\n };\n\n const copyResponse = async (e) => {\n e.preventDefault();\n\n const turndownService = new TurndownService();\n\n let text =\n turndownService.turndown(responseTemplate.internal) +\n \"\\n\\n\" +\n answerFromAPI;\n\n let html = ignoreSource(\n document\n .querySelector(\n `.chatbot__dialog__bubble__content div[data-id=\"${chat.id}\"] .chatbot__dialog__bubble__content--internal`\n )\n .innerHTML.replace(/\\sstyle=(\"|')(.*?)(\"|')/g, \"\"),\n REFERENCE_ELEMENT_PATTERN\n );\n\n if (answerGoogleFromAPI) {\n text +=\n \"\\n\\n\\n\" +\n turndownService.turndown(\n responseTemplate.google.replace(/\\sstyle=(\"|')(.*?)(\"|')/g, \"\")\n ) +\n \"\\n\\n\" +\n answerGoogleFromAPI;\n\n html +=\n \"


\" +\n ignoreSource(\n document\n .querySelector(\n `.chatbot__dialog__bubble__content div[data-id=\"${chat.id}\"] .chatbot__dialog__bubble__content--external`\n )\n .innerHTML.replace(/\\sstyle=(\"|')(.*?)(\"|')/g, \"\"),\n REFERENCE_EXTERNAL_ELEMENT_PATTERN\n );\n }\n\n if (answerStatistaFromAPI) {\n text +=\n \"\\n\\n\\n\" +\n turndownService.turndown(\n responseTemplate.statista.replace(/\\sstyle=(\"|')(.*?)(\"|')/g, \"\")\n ) +\n \"\\n\\n\" +\n answerStatistaFromAPI;\n\n html +=\n \"


\" +\n ignoreSource(\n document\n .querySelector(\n `.chatbot__dialog__bubble__content div[data-id=\"${chat.id}\"] .chatbot__dialog__bubble__content--external`\n )\n .innerHTML.replace(/\\sstyle=(\"|')(.*?)(\"|')/g, \"\"),\n REFERENCE_EXTERNAL_ELEMENT_PATTERN\n );\n }\n\n // ${answerGoogleFromAPI ? responseTemplate.google + \"
\" : \"\"}\n // ${answerStatistaFromAPI ? responseTemplate.statista + \"
\" : \"\"}\n\n trackButton({ label: \"Copy\", message_id: id, event_type: \"interaction\" });\n TrackEvent(apiLog, \"chatbot_response_copy\", {\n label: \"copy\",\n value: id,\n });\n await copyTextToClipboard({ text, html });\n\n setIsCopied(true);\n setTimeout(() => {\n setIsCopied(false);\n }, 1500);\n };\n\n function linkClickHandler(url) {\n trackLink({\n link: url,\n message_id: activeId,\n });\n TrackEvent(apiLog, \"chatbot_citation_click\", {\n label: url,\n });\n }\n\n // This is the function we wrote earlier\n const copyTextToClipboard = async ({ text, html }) => {\n if (\"clipboard\" in navigator) {\n const clipboardItem = new ClipboardItem({\n \"text/plain\": new Blob([text], { type: \"text/plain\" }),\n \"text/html\": new Blob([html], { type: \"text/html\" }),\n });\n\n return await navigator.clipboard.write([clipboardItem]);\n } else {\n return document.execCommand(\"copy\", true, text);\n }\n };\n\n const reloadHandler = (e) => {\n if (typeof reloadCallback === \"function\") {\n e.preventDefault();\n\n reloadCallback(chat?.question, {\n length: chat?.contentLength,\n isIncludeExternal: chat?.isIncludeExternal,\n prevPath: chat?.prevPath,\n });\n \n setIsReloaded(true);\n trackButton({\n label: \"Refresh\",\n message_id: id,\n });\n }\n };\n\n const onSourceClick = () => {\n dispatch(setActiveId(id));\n onToggleSource();\n };\n\n const onChangeContentLength = useCallback(\n (contentLength) => {\n reloadCallback(chat?.question, {\n length: contentLength,\n isIncludeExternal: chat?.isIncludeExternal,\n prevPath: chat?.prevPath,\n });\n\n trackButton({\n label: \"ContentLength\",\n message_id: chat?.id,\n });\n },\n [chat, reloadCallback]\n );\n\n useEffect(() => {\n if (isDislikedDefault) {\n setIsLiked(false);\n }\n }, [isDislikedDefault, chat]);\n\n return (\n <>\n {chat.sources?.length || chat.external_sources?.length ? (\n
\n ) : null}\n\n
\n
\n \n {isShowExternal\n ? glossary.excludeExternalTradeData\n : glossary.includeExternalTradeData}\n \n\n \n
\n
\n
\n \n {isCopied ? : }\n \n \n \n \n \n \n \n \n \n \n
\n {chat.sources?.length || chat.external_sources?.length ? (\n \n {glossary.sources}\n \n ) : null}\n
\n
\n \n );\n}\n","import { setIsSourcesActive } from \"state/sources/sourcesSlice\";\nimport { setStatusPromptLibrary } from \"state/prompt/promptSlice\";\nimport { useCallback } from \"react\";\nimport { useDispatch } from \"react-redux\";\n\nexport default function useToggleSource() {\n const dispatch = useDispatch();\n\n const onToggleSource = useCallback(() => {\n dispatch(setIsSourcesActive(true));\n dispatch(setStatusPromptLibrary(false));\n }, [dispatch]);\n\n return onToggleSource;\n}\n","export default function PauseIcon() {\n return (\n \n \n \n );\n}\n","import PauseIcon from \"components/icons/PauseIcon\";\nimport { revertReference } from \"util/util\";\nimport { trackButton } from \"util/tracking\";\nimport { useSelector } from \"react-redux\";\n\nconst ChatBubbleCancel = ({ chat }) => {\n const glossary = useSelector((state) => state.ui.glossary);\n\n const onCancel = () => {\n try {\n window.chatbotController?.abort();\n window.isCancel = true;\n\n trackButton({\n label: \"Cancel\",\n message_id: chat.id,\n external_id: chat.external_message_id,\n interaction_message: {\n internal: revertReference(chat.response),\n external:\n (chat.google_response &&\n typeof chat.google_response === \"string\") ||\n (chat.statista_response &&\n typeof chat.statista_response === \"string\")\n ? revertReference(\n chat.google_response || chat.statista_response,\n chat.google_response ? \"google\" : \"statista\"\n )\n : \"\",\n },\n });\n } catch (error) {\n console.log({ error });\n }\n };\n\n return (\n \n );\n};\n\nexport default ChatBubbleCancel;\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 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\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","/**\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 =\n tail && tail[1].type === 'linePrefix'\n ? tail[2].sliceSerialize(tail[1], true).length\n : 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)\n ? factorySpace(effects, infoBefore, 'whitespace')(code)\n : 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\n ? ok(code)\n : 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)\n ? factorySpace(\n effects,\n beforeContentChunk,\n 'linePrefix',\n initialPrefix + 1\n )(code)\n : 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)\n ? factorySpace(\n effects,\n beforeSequenceClose,\n 'linePrefix',\n self.parser.constructs.disable.null.includes('codeIndented')\n ? undefined\n : 4\n )(code)\n : 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)\n ? factorySpace(effects, sequenceCloseAfter, 'whitespace')(code)\n : 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\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 {\n asciiAlphanumeric,\n asciiDigit,\n asciiHexDigit\n} 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 (\n test === asciiAlphanumeric &&\n !decodeNamedCharacterReference(self.sliceSerialize(token))\n ) {\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","/**\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","/**\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","/**\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 (\n token.type === 'labelImage' ||\n token.type === 'labelLink' ||\n token.type === 'labelEnd'\n ) {\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 (\n token.type === 'link' ||\n (token.type === 'labelLink' && token._inactive)\n ) {\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 (\n events[index][0] === 'enter' &&\n (token.type === 'labelImage' || token.type === 'labelLink') &&\n !token._balanced\n ) {\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 = [\n ['enter', group, context],\n ['enter', label, context]\n ]\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(\n media,\n resolveAll(\n context.parser.constructs.insideSpan.null,\n events.slice(open + offset + 4, close - 3),\n context\n )\n )\n\n // Text close, marker close, label close.\n media = push(media, [\n ['exit', text, context],\n events[close - 2],\n events[close - 1],\n ['exit', label, context]\n ])\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 (\n (self.events[index][1].type === 'labelImage' ||\n self.events[index][1].type === 'labelLink') &&\n !self.events[index][1]._balanced\n ) {\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(\n normalizeIdentifier(\n self.sliceSerialize({\n start: labelStart.end,\n end: self.now()\n })\n )\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(\n resourceConstruct,\n labelEndOk,\n defined ? labelEndOk : labelEndNok\n )(code)\n }\n\n // Full (`[asd][fgh]`) or collapsed (`[asd][]`) reference?\n if (code === 91) {\n return effects.attempt(\n referenceFullConstruct,\n labelEndOk,\n defined ? referenceNotFull : labelEndNok\n )(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(\n referenceCollapsedConstruct,\n labelEndOk,\n labelEndNok\n )(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)\n ? factoryWhitespace(effects, resourceOpen)(code)\n : 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(\n effects,\n resourceDestinationAfter,\n resourceDestinationMissing,\n 'resourceDestination',\n 'resourceDestinationLiteral',\n 'resourceDestinationLiteralMarker',\n 'resourceDestinationRaw',\n 'resourceDestinationString',\n 32\n )(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)\n ? factoryWhitespace(effects, resourceBetween)(code)\n : 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(\n effects,\n resourceTitleAfter,\n nok,\n 'resourceTitle',\n 'resourceTitleMarker',\n 'resourceTitleString'\n )(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)\n ? factoryWhitespace(effects, resourceEnd)(code)\n : 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(\n self,\n effects,\n referenceFullAfter,\n referenceFullMissing,\n 'reference',\n 'referenceMarker',\n 'referenceString'\n )(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(\n normalizeIdentifier(\n self.sliceSerialize(self.events[self.events.length - 1][1]).slice(1, -1)\n )\n )\n ? ok(code)\n : 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","/**\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\n ? nok(code)\n : ok(code)\n }\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').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 (\n events[index][0] === 'enter' &&\n events[index][1].type === 'attentionSequence' &&\n events[index][1]._close\n ) {\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 (\n events[open][0] === 'exit' &&\n events[open][1].type === 'attentionSequence' &&\n events[open][1]._open &&\n // If the markers are the same:\n context.sliceSerialize(events[open][1]).charCodeAt(0) ===\n context.sliceSerialize(events[index][1]).charCodeAt(0)\n ) {\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 (\n (events[open][1]._close || events[index][1]._open) &&\n (events[index][1].end.offset - events[index][1].start.offset) % 3 &&\n !(\n (events[open][1].end.offset -\n events[open][1].start.offset +\n events[index][1].end.offset -\n events[index][1].start.offset) %\n 3\n )\n ) {\n continue\n }\n\n // Number of markers to use from the sequence.\n use =\n events[open][1].end.offset - events[open][1].start.offset > 1 &&\n events[index][1].end.offset - events[index][1].start.offset > 1\n ? 2\n : 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, [\n ['enter', events[open][1], context],\n ['exit', events[open][1], context]\n ])\n }\n\n // Opening.\n nextEvents = push(nextEvents, [\n ['enter', group, context],\n ['enter', openingSequence, context],\n ['exit', openingSequence, context],\n ['enter', text, context]\n ])\n\n // Always populated by defaults.\n\n // Between.\n nextEvents = push(\n nextEvents,\n resolveAll(\n context.parser.constructs.insideSpan.null,\n events.slice(open + 1, index),\n context\n )\n )\n\n // Closing.\n nextEvents = push(nextEvents, [\n ['exit', text, context],\n ['enter', closingSequence, context],\n ['exit', closingSequence, context],\n ['exit', group, context]\n ])\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, [\n ['enter', events[index][1], context],\n ['exit', events[index][1], context]\n ])\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 =\n !after || (after === 2 && before) || attentionMarkers.includes(code)\n const close =\n !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","/**\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 {\n asciiAlpha,\n asciiAlphanumeric,\n asciiAtext,\n asciiControl\n} 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 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 (\n (code === 43 || code === 45 || code === 46 || asciiAlphanumeric(code)) &&\n size++ < 32\n ) {\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","/**\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 {\n asciiAlpha,\n asciiAlphanumeric,\n markdownLineEnding,\n markdownLineEndingOrSpace,\n markdownSpace\n} 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\n ? end(code)\n : code === 45\n ? commentClose(code)\n : 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 (\n code === 45 ||\n code === 46 ||\n code === 58 ||\n code === 95 ||\n asciiAlphanumeric(code)\n ) {\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 (\n code === null ||\n code === 60 ||\n code === 61 ||\n code === 62 ||\n code === 96\n ) {\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 (\n code === null ||\n code === 34 ||\n code === 39 ||\n code === 60 ||\n code === 61 ||\n code === 96\n ) {\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)\n ? factorySpace(\n effects,\n lineEndingAfterPrefix,\n 'linePrefix',\n self.parser.constructs.disable.null.includes('codeIndented')\n ? undefined\n : 4\n )(code)\n : 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","/**\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\n ? nok(code)\n : ok(code)\n }\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","/**\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 (\n (events[headEnterIndex][1].type === 'lineEnding' ||\n events[headEnterIndex][1].type === 'space') &&\n (events[tailExitIndex][1].type === 'lineEnding' ||\n events[tailExitIndex][1].type === 'space')\n ) {\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 (\n index === tailExitIndex ||\n events[index][1].type === 'lineEnding'\n ) {\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 (\n code !== 96 ||\n this.events[this.events.length - 1][1].type === 'characterEscape'\n )\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 (\n code === null ||\n code === 32 ||\n code === 96 ||\n markdownLineEnding(code)\n ) {\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","/**\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').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)(\n postprocess(\n parse(options).document().write(preprocess()(value, encoding, true))\n )\n )\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 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 (\n events[index][1].type === 'listOrdered' ||\n events[index][1].type === 'listUnordered'\n ) {\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(\n Object.assign(\n {\n sliceSerialize: events[index][2].sliceSerialize\n },\n context\n ),\n events[index][1]\n )\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(\n events.length > 0\n ? events[0][1].start\n : {\n line: 1,\n column: 1,\n offset: 0\n }\n ),\n end: point(\n events.length > 0\n ? events[events.length - 2][1].end\n : {\n line: 1,\n column: 1,\n offset: 0\n }\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 if (event[0] === 'enter') {\n containerBalance++\n } else {\n containerBalance--\n }\n atMarker = undefined\n break\n }\n case 'lineEndingBlank': {\n if (event[0] === 'enter') {\n if (\n listItem &&\n !atMarker &&\n !containerBalance &&\n !firstBlankLineIndex\n ) {\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 // Empty.\n\n break\n }\n default: {\n atMarker = undefined\n }\n }\n if (\n (!containerBalance &&\n event[0] === 'enter' &&\n event[1].type === 'listItemPrefix') ||\n (containerBalance === -1 &&\n event[0] === 'exit' &&\n (event[1].type === 'listUnordered' ||\n event[1].type === 'listOrdered'))\n ) {\n if (listItem) {\n let tailIndex = index\n lineIndex = undefined\n while (tailIndex--) {\n const tailEvent = events[tailIndex]\n if (\n tailEvent[1].type === 'lineEnding' ||\n tailEvent[1].type === 'lineEndingBlank'\n ) {\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 (\n tailEvent[1].type === 'linePrefix' ||\n tailEvent[1].type === 'blockQuotePrefix' ||\n tailEvent[1].type === 'blockQuotePrefixWhitespace' ||\n tailEvent[1].type === 'blockQuoteMarker' ||\n tailEvent[1].type === 'listItemIndent'\n ) {\n // Empty\n } else {\n break\n }\n }\n if (\n firstBlankLineIndex &&\n (!lineIndex || firstBlankLineIndex < lineIndex)\n ) {\n listItem._spread = true\n }\n\n // Fix position.\n listItem.end = Object.assign(\n {},\n lineIndex ? events[lineIndex][1].start : event[1].end\n )\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(\n 'Cannot close `' +\n token.type +\n '` (' +\n stringifyPosition({\n start: token.start,\n end: token.end\n }) +\n '): it’s not open'\n )\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(\n this.sliceSerialize(token)\n ).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 (\n !this.data.setextHeadingSlurpLineEnding &&\n config.canContainEols.includes(context.type)\n ) {\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 // 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 // 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(\n this.sliceSerialize(token)\n ).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(\n data,\n type === 'characterReferenceMarkerNumeric' ? 10 : 16\n )\n this.data.characterReferenceType = undefined\n } else {\n const result = decodeNamedCharacterReference(data)\n value = result\n }\n const tail = this.stack.pop()\n tail.value += value\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 const right = extension[key]\n if (right) {\n combined[key].push(...right)\n }\n break\n }\n case 'transforms': {\n const right = extension[key]\n if (right) {\n combined[key].push(...right)\n }\n break\n }\n case 'enter':\n case 'exit': {\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(\n 'Cannot close `' +\n left.type +\n '` (' +\n stringifyPosition({\n start: left.start,\n end: left.end\n }) +\n '): a different token (`' +\n right.type +\n '`, ' +\n stringifyPosition({\n start: right.start,\n end: right.end\n }) +\n ') is open'\n )\n } else {\n throw new Error(\n 'Cannot close document, a token (`' +\n right.type +\n '`, ' +\n stringifyPosition({\n start: right.start,\n end: right.end\n }) +\n ') is still open'\n )\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Event} Event\n */\n\nimport {subtokenize} from 'micromark-util-subtokenize'\n\n/**\n * @param {Array} events\n * @returns {Array}\n */\nexport function postprocess(events) {\n while (!subtokenize(events)) {\n // Empty\n }\n return events\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('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 def = state.footnoteById.get(state.footnoteOrder[referenceIndex])\n\n if (!def) {\n continue\n }\n\n const content = state.all(def)\n const id = String(def.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(def, 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('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 * @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","/**\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').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","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","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} 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').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 def = state.definitionById.get(id)\n\n  if (!def) {\n    return revert(state, node)\n  }\n\n  /** @type {Properties} */\n  const properties = {src: normalizeUri(def.url || ''), alt: node.alt}\n\n  if (def.title !== null && def.title !== undefined) {\n    properties.title = def.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 def = state.definitionById.get(id)\n\n  if (!def) {\n    return revert(state, node)\n  }\n\n  /** @type {Properties} */\n  const properties = {href: normalizeUri(def.url || '')}\n\n  if (def.title !== null && def.title !== undefined) {\n    properties.title = def.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').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('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","/**\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} 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","/**\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 path = {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} [ext]\n * Extension to strip.\n * @returns {string}\n * Stem or basename.\n */\nfunction basename(path, ext) {\n if (ext !== undefined && typeof ext !== '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 (ext === undefined || ext.length === 0 || ext.length > path.length) {\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 (ext === path) {\n return ''\n }\n\n let firstNonSlashEnd = -1\n let extIndex = ext.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 (extIndex > -1) {\n // Try to match the explicit extension.\n if (path.codePointAt(index) === ext.codePointAt(extIndex--)) {\n if (extIndex < 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 extIndex = -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 proc = {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 * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Point} Point\n * @typedef {import('unist').Position} Position\n * @typedef {import('vfile-message').Options} MessageOptions\n * @typedef {import('../index.js').Data} Data\n * @typedef {import('../index.js').Value} Value\n */\n\n/**\n * @typedef {object & {type: string, position?: Position | undefined}} NodeLike\n *\n * @typedef {Options | URL | VFile | Value} Compatible\n * Things that can be passed to the constructor.\n *\n * @typedef VFileCoreOptions\n * Set multiple values.\n * @property {string | null | undefined} [basename]\n * Set `basename` (name).\n * @property {string | null | undefined} [cwd]\n * Set `cwd` (working directory).\n * @property {Data | null | undefined} [data]\n * Set `data` (associated info).\n * @property {string | null | undefined} [dirname]\n * Set `dirname` (path w/o basename).\n * @property {string | null | undefined} [extname]\n * Set `extname` (extension with dot).\n * @property {Array | null | undefined} [history]\n * Set `history` (paths the file moved between).\n * @property {URL | string | null | undefined} [path]\n * Set `path` (current path).\n * @property {string | null | undefined} [stem]\n * Set `stem` (name without extension).\n * @property {Value | null | undefined} [value]\n * Set `value` (the contents of the file).\n *\n * @typedef Map\n * Raw source map.\n *\n * See:\n * .\n * @property {number} version\n * Which version of the source map spec this map is following.\n * @property {Array} sources\n * An array of URLs to the original source files.\n * @property {Array} names\n * An array of identifiers which can be referenced by individual mappings.\n * @property {string | undefined} [sourceRoot]\n * The URL root from which all sources are relative.\n * @property {Array | undefined} [sourcesContent]\n * An array of contents of the original source files.\n * @property {string} mappings\n * A string of base64 VLQs which contain the actual mappings.\n * @property {string} file\n * The generated file this source map is associated with.\n *\n * @typedef {Record & VFileCoreOptions} Options\n * Configuration.\n *\n * A bunch of keys that will be shallow copied over to the new file.\n *\n * @typedef {Record} ReporterSettings\n * Configuration for reporters.\n */\n\n/**\n * @template [Settings=ReporterSettings]\n * Options type.\n * @callback Reporter\n * Type for a reporter.\n * @param {Array} files\n * Files to report.\n * @param {Settings} options\n * Configuration.\n * @returns {string}\n * Report.\n */\n\nimport {VFileMessage} from 'vfile-message'\nimport {path} from 'vfile/do-not-use-conditional-minpath'\nimport {proc} from 'vfile/do-not-use-conditional-minproc'\nimport {urlToPath, isUrl} from 'vfile/do-not-use-conditional-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 this.cwd = proc.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 prop = order[index]\n\n // Note: we specifically use `in` instead of `hasOwnProperty` to accept\n // `vfile`s too.\n if (\n prop in options &&\n options[prop] !== undefined &&\n options[prop] !== null\n ) {\n // @ts-expect-error: TS doesn’t understand basic reality.\n this[prop] = prop === 'history' ? [...options[prop]] : options[prop]\n }\n }\n\n /** @type {string} */\n let prop\n\n // Set non-path related properties.\n for (prop in options) {\n // @ts-expect-error: fine to set other things.\n if (!order.includes(prop)) {\n // @ts-expect-error: fine to set other things.\n this[prop] = options[prop]\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' ? path.basename(this.path) : 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 = path.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' ? path.dirname(this.path) : 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 = path.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' ? path.extname(this.path) : 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 = path.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 ? path.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 = path.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(path.sep)) {\n throw new Error(\n '`' + name + '` cannot be a path: did not expect `' + path.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 func = proto[property]\n /** @type {(...parameters: Array) => unknown} */\n const apply = function () {\n return func.apply(apply, arguments)\n }\n\n Object.setPrototypeOf(apply, proto)\n\n const names = Object.getOwnPropertyNames(func)\n\n for (const p of names) {\n const descriptor = Object.getOwnPropertyDescriptor(func, 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 * {@link CompileResultMap `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 {@link Node `Node`}\n * and {@link VFile `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 * > {@link CompileResultMap `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 * {@link VFile `VFile`} of the document to parse.\n * It must return the syntax tree representation of the given file\n * ({@link Node `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 {@link Transformer `Transformer`}, this\n * should be the node it expects.\n * * If the plugin sets a {@link Parser `Parser`}, this should be\n * `string`.\n * * If the plugin sets a {@link Compiler `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 {@link Transformer `Transformer`}, this\n * should be the node that that yields.\n * * If the plugin sets a {@link Parser `Parser`}, this should be the\n * node that it yields.\n * * If the plugin sets a {@link Compiler `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 {@link Transformer `Transformer`}, this\n * should be the node it expects.\n * * If the plugin sets a {@link Parser `Parser`}, this should be\n * `string`.\n * * If the plugin sets a {@link Compiler `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 {@link Transformer `Transformer`}, this\n * should be the node that that yields.\n * * If the plugin sets a {@link Parser `Parser`}, this should be the\n * node that it yields.\n * * If the plugin sets a {@link Compiler `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 {@link VFile `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 {@link VFile `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 ({@link Processor `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 * > {@link Data `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 * > {@link CompileResultMap `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 * > {@link CompileResultMap `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 * > {@link CompileResultMap `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 * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Properties} Properties\n */\n\n/**\n * @template {string} SimpleSelector\n * Selector type.\n * @template {string} DefaultTagName\n * Default tag name.\n * @typedef {(\n * SimpleSelector extends ''\n * ? DefaultTagName\n * : SimpleSelector extends `${infer TagName}.${infer Rest}`\n * ? ExtractTagName\n * : SimpleSelector extends `${infer TagName}#${infer Rest}`\n * ? ExtractTagName\n * : SimpleSelector extends string\n * ? SimpleSelector\n * : DefaultTagName\n * )} ExtractTagName\n * Extract tag name from a simple selector.\n */\n\nconst search = /[#.]/g\n\n/**\n * Create a hast element from a simple CSS selector.\n *\n * @template {string} Selector\n * Type of selector.\n * @template {string} [DefaultTagName='div']\n * Type of default tag name (default: `'div'`).\n * @param {Selector | null | undefined} [selector]\n * Simple CSS selector (optional).\n *\n * Can contain a tag name (`foo`), classes (`.bar`), and an ID (`#baz`).\n * Multiple classes are allowed.\n * Uses the last ID if multiple IDs are found.\n * @param {DefaultTagName | null | undefined} [defaultTagName='div']\n * Tag name to use if `selector` does not specify one (default: `'div'`).\n * @returns {Element & {tagName: ExtractTagName}}\n * Built element.\n */\nexport function parseSelector(selector, defaultTagName) {\n const value = selector || ''\n /** @type {Properties} */\n const props = {}\n let start = 0\n /** @type {string | undefined} */\n let previous\n /** @type {string | undefined} */\n let tagName\n\n while (start < value.length) {\n search.lastIndex = start\n const match = search.exec(value)\n const subvalue = value.slice(start, match ? match.index : value.length)\n\n if (subvalue) {\n if (!previous) {\n tagName = subvalue\n } else if (previous === '#') {\n props.id = subvalue\n } else if (Array.isArray(props.className)) {\n props.className.push(subvalue)\n } else {\n props.className = [subvalue]\n }\n\n start += subvalue.length\n }\n\n if (match) {\n previous = match[0]\n start++\n }\n }\n\n return {\n type: 'element',\n // @ts-expect-error: tag name is parsed.\n tagName: tagName || defaultTagName || 'div',\n properties: props,\n children: []\n }\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Nodes} Nodes\n * @typedef {import('hast').Root} Root\n * @typedef {import('hast').RootContent} RootContent\n *\n * @typedef {import('property-information').Info} Info\n * @typedef {import('property-information').Schema} Schema\n */\n\n/**\n * @typedef {Element | Root} Result\n * Result from a `h` (or `s`) call.\n *\n * @typedef {number | string} StyleValue\n * Value for a CSS style field.\n * @typedef {Record} Style\n * Supported value of a `style` prop.\n * @typedef {boolean | number | string | null | undefined} PrimitiveValue\n * Primitive property value.\n * @typedef {Array} ArrayValue\n * List of property values for space- or comma separated values (such as `className`).\n * @typedef {ArrayValue | PrimitiveValue} PropertyValue\n * Primitive value or list value.\n * @typedef {{[property: string]: PropertyValue | Style}} Properties\n * Acceptable value for element properties.\n *\n * @typedef {number | string | null | undefined} PrimitiveChild\n * Primitive children, either ignored (nullish), or turned into text nodes.\n * @typedef {Array} ArrayChild\n * List of children.\n * @typedef {Array} ArrayChildNested\n * List of children (deep).\n * @typedef {ArrayChild | Nodes | PrimitiveChild} Child\n * Acceptable child value.\n */\n\nimport {parse as commas} from 'comma-separated-tokens'\nimport {parseSelector} from 'hast-util-parse-selector'\nimport {find, normalize} from 'property-information'\nimport {parse as spaces} from 'space-separated-tokens'\n\nconst own = {}.hasOwnProperty\n\n/**\n * @param {Schema} schema\n * Schema to use.\n * @param {string} defaultTagName\n * Default tag name.\n * @param {Array | undefined} [caseSensitive]\n * Case-sensitive tag names (default: `undefined`).\n * @returns\n * `h`.\n */\nexport function createH(schema, defaultTagName, caseSensitive) {\n const adjust = caseSensitive && createAdjustMap(caseSensitive)\n\n /**\n * Hyperscript compatible DSL for creating virtual hast trees.\n *\n * @overload\n * @param {null | undefined} [selector]\n * @param {...Child} children\n * @returns {Root}\n *\n * @overload\n * @param {string} selector\n * @param {Properties} properties\n * @param {...Child} children\n * @returns {Element}\n *\n * @overload\n * @param {string} selector\n * @param {...Child} children\n * @returns {Element}\n *\n * @param {string | null | undefined} [selector]\n * Selector.\n * @param {Child | Properties | null | undefined} [properties]\n * Properties (or first child) (default: `undefined`).\n * @param {...Child} children\n * Children.\n * @returns {Result}\n * Result.\n */\n function h(selector, properties, ...children) {\n let index = -1\n /** @type {Result} */\n let node\n\n if (selector === undefined || selector === null) {\n node = {type: 'root', children: []}\n // Properties are not supported for roots.\n const child = /** @type {Child} */ (properties)\n children.unshift(child)\n } else {\n node = parseSelector(selector, defaultTagName)\n // Normalize the name.\n node.tagName = node.tagName.toLowerCase()\n if (adjust && own.call(adjust, node.tagName)) {\n node.tagName = adjust[node.tagName]\n }\n\n // Handle props.\n if (isChild(properties)) {\n children.unshift(properties)\n } else {\n /** @type {string} */\n let key\n\n for (key in properties) {\n if (own.call(properties, key)) {\n addProperty(schema, node.properties, key, properties[key])\n }\n }\n }\n }\n\n // Handle children.\n while (++index < children.length) {\n addChild(node.children, children[index])\n }\n\n if (node.type === 'element' && node.tagName === 'template') {\n node.content = {type: 'root', children: node.children}\n node.children = []\n }\n\n return node\n }\n\n return h\n}\n\n/**\n * Check if something is properties or a child.\n *\n * @param {Child | Properties} value\n * Value to check.\n * @returns {value is Child}\n * Whether `value` is definitely a child.\n */\nfunction isChild(value) {\n // Never properties if not an object.\n if (value === null || typeof value !== 'object' || Array.isArray(value)) {\n return true\n }\n\n // Never node without `type`; that’s the main discriminator.\n if (typeof value.type !== 'string') return false\n\n // Slower check: never property value if object or array with\n // non-number/strings.\n const record = /** @type {Record} */ (value)\n const keys = Object.keys(value)\n\n for (const key of keys) {\n const value = record[key]\n\n if (value && typeof value === 'object') {\n if (!Array.isArray(value)) return true\n\n const list = /** @type {Array} */ (value)\n\n for (const item of list) {\n if (typeof item !== 'number' && typeof item !== 'string') {\n return true\n }\n }\n }\n }\n\n // Also see empty `children` as a node.\n if ('children' in value && Array.isArray(value.children)) {\n return true\n }\n\n // Default to properties, someone can always pass an empty object,\n // put `data: {}` in a node,\n // or wrap it in an array.\n return false\n}\n\n/**\n * @param {Schema} schema\n * Schema.\n * @param {Properties} properties\n * Properties object.\n * @param {string} key\n * Property name.\n * @param {PropertyValue | Style} value\n * Property value.\n * @returns {undefined}\n * Nothing.\n */\nfunction addProperty(schema, properties, key, value) {\n const info = find(schema, key)\n let index = -1\n /** @type {PropertyValue} */\n let result\n\n // Ignore nullish and NaN values.\n if (value === undefined || value === null) return\n\n if (typeof value === 'number') {\n // Ignore NaN.\n if (Number.isNaN(value)) return\n\n result = value\n }\n // Booleans.\n else if (typeof value === 'boolean') {\n result = value\n }\n // Handle list values.\n else if (typeof value === 'string') {\n if (info.spaceSeparated) {\n result = spaces(value)\n } else if (info.commaSeparated) {\n result = commas(value)\n } else if (info.commaOrSpaceSeparated) {\n result = spaces(commas(value).join(' '))\n } else {\n result = parsePrimitive(info, info.property, value)\n }\n } else if (Array.isArray(value)) {\n result = value.concat()\n } else {\n result = info.property === 'style' ? style(value) : String(value)\n }\n\n if (Array.isArray(result)) {\n /** @type {Array} */\n const finalResult = []\n\n while (++index < result.length) {\n // Assume no booleans in array.\n const value = /** @type {number | string} */ (\n parsePrimitive(info, info.property, result[index])\n )\n finalResult[index] = value\n }\n\n result = finalResult\n }\n\n // Class names (which can be added both on the `selector` and here).\n if (info.property === 'className' && Array.isArray(properties.className)) {\n // Assume no booleans in `className`.\n const value = /** @type {number | string} */ (result)\n result = properties.className.concat(value)\n }\n\n properties[info.property] = result\n}\n\n/**\n * @param {Array} nodes\n * Children.\n * @param {Child} value\n * Child.\n * @returns {undefined}\n * Nothing.\n */\nfunction addChild(nodes, value) {\n let index = -1\n\n if (value === undefined || value === null) {\n // Empty.\n } else if (typeof value === 'string' || typeof value === 'number') {\n nodes.push({type: 'text', value: String(value)})\n } else if (Array.isArray(value)) {\n while (++index < value.length) {\n addChild(nodes, value[index])\n }\n } else if (typeof value === 'object' && 'type' in value) {\n if (value.type === 'root') {\n addChild(nodes, value.children)\n } else {\n nodes.push(value)\n }\n } else {\n throw new Error('Expected node, nodes, or string, got `' + value + '`')\n }\n}\n\n/**\n * Parse a single primitives.\n *\n * @param {Info} info\n * Property information.\n * @param {string} name\n * Property name.\n * @param {PrimitiveValue} value\n * Property value.\n * @returns {PrimitiveValue}\n * Property value.\n */\nfunction parsePrimitive(info, name, value) {\n if (typeof value === 'string') {\n if (info.number && value && !Number.isNaN(Number(value))) {\n return Number(value)\n }\n\n if (\n (info.boolean || info.overloadedBoolean) &&\n (value === '' || normalize(value) === normalize(name))\n ) {\n return true\n }\n }\n\n return value\n}\n\n/**\n * Serialize a `style` object as a string.\n *\n * @param {Style} value\n * Style object.\n * @returns {string}\n * CSS string.\n */\nfunction style(value) {\n /** @type {Array} */\n const result = []\n /** @type {string} */\n let key\n\n for (key in value) {\n if (own.call(value, key)) {\n result.push([key, value[key]].join(': '))\n }\n }\n\n return result.join('; ')\n}\n\n/**\n * Create a map to adjust casing.\n *\n * @param {Array} values\n * List of properly cased keys.\n * @returns {Record}\n * Map of lowercase keys to uppercase keys.\n */\nfunction createAdjustMap(values) {\n /** @type {Record} */\n const result = {}\n let index = -1\n\n while (++index < values.length) {\n result[values[index].toLowerCase()] = values[index]\n }\n\n return result\n}\n","export const svgCaseSensitiveTagNames = [\n 'altGlyph',\n 'altGlyphDef',\n 'altGlyphItem',\n 'animateColor',\n 'animateMotion',\n 'animateTransform',\n 'clipPath',\n 'feBlend',\n 'feColorMatrix',\n 'feComponentTransfer',\n 'feComposite',\n 'feConvolveMatrix',\n 'feDiffuseLighting',\n 'feDisplacementMap',\n 'feDistantLight',\n 'feDropShadow',\n 'feFlood',\n 'feFuncA',\n 'feFuncB',\n 'feFuncG',\n 'feFuncR',\n 'feGaussianBlur',\n 'feImage',\n 'feMerge',\n 'feMergeNode',\n 'feMorphology',\n 'feOffset',\n 'fePointLight',\n 'feSpecularLighting',\n 'feSpotLight',\n 'feTile',\n 'feTurbulence',\n 'foreignObject',\n 'glyphRef',\n 'linearGradient',\n 'radialGradient',\n 'solidColor',\n 'textArea',\n 'textPath'\n]\n","/**\n * @typedef {import('./create-h.js').Child} Child\n * Acceptable child value.\n * @typedef {import('./create-h.js').Properties} Properties\n * Acceptable value for element properties.\n * @typedef {import('./create-h.js').Result} Result\n * Result from a `h` (or `s`) call.\n */\n\n// Register the JSX namespace on `h`.\n/**\n * @typedef {import('./jsx-classic.js').Element} h.JSX.Element\n * @typedef {import('./jsx-classic.js').ElementChildrenAttribute} h.JSX.ElementChildrenAttribute\n * @typedef {import('./jsx-classic.js').IntrinsicAttributes} h.JSX.IntrinsicAttributes\n * @typedef {import('./jsx-classic.js').IntrinsicElements} h.JSX.IntrinsicElements\n */\n\n// Register the JSX namespace on `s`.\n/**\n * @typedef {import('./jsx-classic.js').Element} s.JSX.Element\n * @typedef {import('./jsx-classic.js').ElementChildrenAttribute} s.JSX.ElementChildrenAttribute\n * @typedef {import('./jsx-classic.js').IntrinsicAttributes} s.JSX.IntrinsicAttributes\n * @typedef {import('./jsx-classic.js').IntrinsicElements} s.JSX.IntrinsicElements\n */\n\nimport {html, svg} from 'property-information'\nimport {createH} from './create-h.js'\nimport {svgCaseSensitiveTagNames} from './svg-case-sensitive-tag-names.js'\n\n// Note: this explicit type is needed, otherwise TS creates broken types.\n/** @type {ReturnType} */\nexport const h = createH(html, 'div')\n\n// Note: this explicit type is needed, otherwise TS creates broken types.\n/** @type {ReturnType} */\nexport const s = createH(svg, 'g', svgCaseSensitiveTagNames)\n","/**\n * @import {VFile, Value} from 'vfile'\n * @import {Location} from 'vfile-location'\n */\n\n/**\n * Create an index of the given document to translate between line/column and\n * offset based positional info.\n *\n * Also implemented in Rust in [`wooorm/markdown-rs`][markdown-rs].\n *\n * [markdown-rs]: https://github.com/wooorm/markdown-rs/blob/main/src/util/location.rs\n *\n * @param {VFile | Value} file\n * File to index.\n * @returns {Location}\n * Accessors for index.\n */\nexport function location(file) {\n const value = String(file)\n /**\n * List, where each index is a line number (0-based), and each value is the\n * byte index *after* where the line ends.\n *\n * @type {Array}\n */\n const indices = []\n\n return {toOffset, toPoint}\n\n /** @type {Location['toPoint']} */\n function toPoint(offset) {\n if (typeof offset === 'number' && offset > -1 && offset <= value.length) {\n let index = 0\n\n while (true) {\n let end = indices[index]\n\n if (end === undefined) {\n const eol = next(value, indices[index - 1])\n end = eol === -1 ? value.length + 1 : eol + 1\n indices[index] = end\n }\n\n if (end > offset) {\n return {\n line: index + 1,\n column: offset - (index > 0 ? indices[index - 1] : 0) + 1,\n offset\n }\n }\n\n index++\n }\n }\n }\n\n /** @type {Location['toOffset']} */\n function toOffset(point) {\n if (\n point &&\n typeof point.line === 'number' &&\n typeof point.column === 'number' &&\n !Number.isNaN(point.line) &&\n !Number.isNaN(point.column)\n ) {\n while (indices.length < point.line) {\n const from = indices[indices.length - 1]\n const eol = next(value, from)\n const end = eol === -1 ? value.length + 1 : eol + 1\n if (from === end) break\n indices.push(end)\n }\n\n const offset =\n (point.line > 1 ? indices[point.line - 2] : 0) + point.column - 1\n // The given `column` could not exist on this line.\n if (offset < indices[point.line - 1]) return offset\n }\n }\n}\n\n/**\n * @param {string} value\n * @param {number} from\n */\nfunction next(value, from) {\n const cr = value.indexOf('\\r', from)\n const lf = value.indexOf('\\n', from)\n if (lf === -1) return cr\n if (cr === -1 || cr + 1 === lf) return lf\n return cr < lf ? cr : lf\n}\n","/**\n * Map of web namespaces.\n *\n * @type {Record}\n */\nexport const webNamespaces = {\n html: 'http://www.w3.org/1999/xhtml',\n mathml: 'http://www.w3.org/1998/Math/MathML',\n svg: 'http://www.w3.org/2000/svg',\n xlink: 'http://www.w3.org/1999/xlink',\n xml: 'http://www.w3.org/XML/1998/namespace',\n xmlns: 'http://www.w3.org/2000/xmlns/'\n}\n","/**\n * @import {ElementData, Element, Nodes, RootContent, Root} from 'hast'\n * @import {DefaultTreeAdapterMap, Token} from 'parse5'\n * @import {Schema} from 'property-information'\n * @import {Point, Position} from 'unist'\n * @import {VFile} from 'vfile'\n * @import {Options} from 'hast-util-from-parse5'\n */\n\n/**\n * @typedef State\n * Info passed around about the current state.\n * @property {VFile | undefined} file\n * Corresponding file.\n * @property {boolean} location\n * Whether location info was found.\n * @property {Schema} schema\n * Current schema.\n * @property {boolean | undefined} verbose\n * Add extra positional info.\n */\n\nimport {ok as assert} from 'devlop'\nimport {h, s} from 'hastscript'\nimport {find, html, svg} from 'property-information'\nimport {location} from 'vfile-location'\nimport {webNamespaces} from 'web-namespaces'\n\nconst own = {}.hasOwnProperty\n/** @type {unknown} */\n// type-coverage:ignore-next-line\nconst proto = Object.prototype\n\n/**\n * Transform a `parse5` AST to hast.\n *\n * @param {DefaultTreeAdapterMap['node']} tree\n * `parse5` tree to transform.\n * @param {Options | null | undefined} [options]\n * Configuration (optional).\n * @returns {Nodes}\n * hast tree.\n */\nexport function fromParse5(tree, options) {\n const settings = options || {}\n\n return one(\n {\n file: settings.file || undefined,\n location: false,\n schema: settings.space === 'svg' ? svg : html,\n verbose: settings.verbose || false\n },\n tree\n )\n}\n\n/**\n * Transform a node.\n *\n * @param {State} state\n * Info passed around about the current state.\n * @param {DefaultTreeAdapterMap['node']} node\n * p5 node.\n * @returns {Nodes}\n * hast node.\n */\nfunction one(state, node) {\n /** @type {Nodes} */\n let result\n\n switch (node.nodeName) {\n case '#comment': {\n const reference = /** @type {DefaultTreeAdapterMap['commentNode']} */ (\n node\n )\n result = {type: 'comment', value: reference.data}\n patch(state, reference, result)\n return result\n }\n\n case '#document':\n case '#document-fragment': {\n const reference =\n /** @type {DefaultTreeAdapterMap['document'] | DefaultTreeAdapterMap['documentFragment']} */ (\n node\n )\n const quirksMode =\n 'mode' in reference\n ? reference.mode === 'quirks' || reference.mode === 'limited-quirks'\n : false\n\n result = {\n type: 'root',\n children: all(state, node.childNodes),\n data: {quirksMode}\n }\n\n if (state.file && state.location) {\n const document = String(state.file)\n const loc = location(document)\n const start = loc.toPoint(0)\n const end = loc.toPoint(document.length)\n // Always defined as we give valid input.\n assert(start, 'expected `start`')\n assert(end, 'expected `end`')\n result.position = {start, end}\n }\n\n return result\n }\n\n case '#documentType': {\n const reference = /** @type {DefaultTreeAdapterMap['documentType']} */ (\n node\n )\n result = {type: 'doctype'}\n patch(state, reference, result)\n return result\n }\n\n case '#text': {\n const reference = /** @type {DefaultTreeAdapterMap['textNode']} */ (node)\n result = {type: 'text', value: reference.value}\n patch(state, reference, result)\n return result\n }\n\n // Element.\n default: {\n const reference = /** @type {DefaultTreeAdapterMap['element']} */ (node)\n result = element(state, reference)\n return result\n }\n }\n}\n\n/**\n * Transform children.\n *\n * @param {State} state\n * Info passed around about the current state.\n * @param {Array} nodes\n * Nodes.\n * @returns {Array}\n * hast nodes.\n */\nfunction all(state, nodes) {\n let index = -1\n /** @type {Array} */\n const results = []\n\n while (++index < nodes.length) {\n // Assume no roots in `nodes`.\n const result = /** @type {RootContent} */ (one(state, nodes[index]))\n results.push(result)\n }\n\n return results\n}\n\n/**\n * Transform an element.\n *\n * @param {State} state\n * Info passed around about the current state.\n * @param {DefaultTreeAdapterMap['element']} node\n * `parse5` node to transform.\n * @returns {Element}\n * hast node.\n */\nfunction element(state, node) {\n const schema = state.schema\n\n state.schema = node.namespaceURI === webNamespaces.svg ? svg : html\n\n // Props.\n let index = -1\n /** @type {Record} */\n const properties = {}\n\n while (++index < node.attrs.length) {\n const attribute = node.attrs[index]\n const name =\n (attribute.prefix ? attribute.prefix + ':' : '') + attribute.name\n if (!own.call(proto, name)) {\n properties[name] = attribute.value\n }\n }\n\n // Build.\n const x = state.schema.space === 'svg' ? s : h\n const result = x(node.tagName, properties, all(state, node.childNodes))\n patch(state, node, result)\n\n // Switch content.\n if (result.tagName === 'template') {\n const reference = /** @type {DefaultTreeAdapterMap['template']} */ (node)\n const pos = reference.sourceCodeLocation\n const startTag = pos && pos.startTag && position(pos.startTag)\n const endTag = pos && pos.endTag && position(pos.endTag)\n\n // Root in, root out.\n const content = /** @type {Root} */ (one(state, reference.content))\n\n if (startTag && endTag && state.file) {\n content.position = {start: startTag.end, end: endTag.start}\n }\n\n result.content = content\n }\n\n state.schema = schema\n\n return result\n}\n\n/**\n * Patch positional info from `from` onto `to`.\n *\n * @param {State} state\n * Info passed around about the current state.\n * @param {DefaultTreeAdapterMap['node']} from\n * p5 node.\n * @param {Nodes} to\n * hast node.\n * @returns {undefined}\n * Nothing.\n */\nfunction patch(state, from, to) {\n if ('sourceCodeLocation' in from && from.sourceCodeLocation && state.file) {\n const position = createLocation(state, to, from.sourceCodeLocation)\n\n if (position) {\n state.location = true\n to.position = position\n }\n }\n}\n\n/**\n * Create clean positional information.\n *\n * @param {State} state\n * Info passed around about the current state.\n * @param {Nodes} node\n * hast node.\n * @param {Token.ElementLocation} location\n * p5 location info.\n * @returns {Position | undefined}\n * Position, or nothing.\n */\nfunction createLocation(state, node, location) {\n const result = position(location)\n\n if (node.type === 'element') {\n const tail = node.children[node.children.length - 1]\n\n // Bug for unclosed with children.\n // See: .\n if (\n result &&\n !location.endTag &&\n tail &&\n tail.position &&\n tail.position.end\n ) {\n result.end = Object.assign({}, tail.position.end)\n }\n\n if (state.verbose) {\n /** @type {Record} */\n const properties = {}\n /** @type {string} */\n let key\n\n if (location.attrs) {\n for (key in location.attrs) {\n if (own.call(location.attrs, key)) {\n properties[find(state.schema, key).property] = position(\n location.attrs[key]\n )\n }\n }\n }\n\n assert(location.startTag, 'a start tag should exist')\n const opening = position(location.startTag)\n const closing = location.endTag ? position(location.endTag) : undefined\n /** @type {ElementData['position']} */\n const data = {opening}\n if (closing) data.closing = closing\n data.properties = properties\n\n node.data = {position: data}\n }\n }\n\n return result\n}\n\n/**\n * Turn a p5 location into a position.\n *\n * @param {Token.Location} loc\n * Location.\n * @returns {Position | undefined}\n * Position or nothing.\n */\nfunction position(loc) {\n const start = point({\n line: loc.startLine,\n column: loc.startCol,\n offset: loc.startOffset\n })\n const end = point({\n line: loc.endLine,\n column: loc.endCol,\n offset: loc.endOffset\n })\n\n // @ts-expect-error: we do use `undefined` for points if one or the other\n // exists.\n return start || end ? {start, end} : undefined\n}\n\n/**\n * Filter out invalid points.\n *\n * @param {Point} point\n * Point with potentially `undefined` values.\n * @returns {Point | undefined}\n * Point or nothing.\n */\nfunction point(point) {\n return point.line && point.column ? point : undefined\n}\n","/**\n * @callback Handler\n * Handle a value, with a certain ID field set to a certain value.\n * The ID field is passed to `zwitch`, and it’s value is this function’s\n * place on the `handlers` record.\n * @param {...any} parameters\n * Arbitrary parameters passed to the zwitch.\n * The first will be an object with a certain ID field set to a certain value.\n * @returns {any}\n * Anything!\n */\n\n/**\n * @callback UnknownHandler\n * Handle values that do have a certain ID field, but it’s set to a value\n * that is not listed in the `handlers` record.\n * @param {unknown} value\n * An object with a certain ID field set to an unknown value.\n * @param {...any} rest\n * Arbitrary parameters passed to the zwitch.\n * @returns {any}\n * Anything!\n */\n\n/**\n * @callback InvalidHandler\n * Handle values that do not have a certain ID field.\n * @param {unknown} value\n * Any unknown value.\n * @param {...any} rest\n * Arbitrary parameters passed to the zwitch.\n * @returns {void|null|undefined|never}\n * This should crash or return nothing.\n */\n\n/**\n * @template {InvalidHandler} [Invalid=InvalidHandler]\n * @template {UnknownHandler} [Unknown=UnknownHandler]\n * @template {Record} [Handlers=Record]\n * @typedef Options\n * Configuration (required).\n * @property {Invalid} [invalid]\n * Handler to use for invalid values.\n * @property {Unknown} [unknown]\n * Handler to use for unknown values.\n * @property {Handlers} [handlers]\n * Handlers to use.\n */\n\nconst own = {}.hasOwnProperty\n\n/**\n * Handle values based on a field.\n *\n * @template {InvalidHandler} [Invalid=InvalidHandler]\n * @template {UnknownHandler} [Unknown=UnknownHandler]\n * @template {Record} [Handlers=Record]\n * @param {string} key\n * Field to switch on.\n * @param {Options} [options]\n * Configuration (required).\n * @returns {{unknown: Unknown, invalid: Invalid, handlers: Handlers, (...parameters: Parameters): ReturnType, (...parameters: Parameters): ReturnType}}\n */\nexport function zwitch(key, options) {\n const settings = options || {}\n\n /**\n * Handle one value.\n *\n * Based on the bound `key`, a respective handler will be called.\n * If `value` is not an object, or doesn’t have a `key` property, the special\n * “invalid” handler will be called.\n * If `value` has an unknown `key`, the special “unknown” handler will be\n * called.\n *\n * All arguments, and the context object, are passed through to the handler,\n * and it’s result is returned.\n *\n * @this {unknown}\n * Any context object.\n * @param {unknown} [value]\n * Any value.\n * @param {...unknown} parameters\n * Arbitrary parameters passed to the zwitch.\n * @property {Handler} invalid\n * Handle for values that do not have a certain ID field.\n * @property {Handler} unknown\n * Handle values that do have a certain ID field, but it’s set to a value\n * that is not listed in the `handlers` record.\n * @property {Handlers} handlers\n * Record of handlers.\n * @returns {unknown}\n * Anything.\n */\n function one(value, ...parameters) {\n /** @type {Handler|undefined} */\n let fn = one.invalid\n const handlers = one.handlers\n\n if (value && own.call(value, key)) {\n // @ts-expect-error Indexable.\n const id = String(value[key])\n // @ts-expect-error Indexable.\n fn = own.call(handlers, id) ? handlers[id] : one.unknown\n }\n\n if (fn) {\n return fn.call(this, value, ...parameters)\n }\n }\n\n one.handlers = settings.handlers || {}\n one.invalid = settings.invalid\n one.unknown = settings.unknown\n\n // @ts-expect-error: matches!\n return one\n}\n","/**\n * @typedef {import('hast').Comment} Comment\n * @typedef {import('hast').Doctype} Doctype\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Nodes} Nodes\n * @typedef {import('hast').Root} Root\n * @typedef {import('hast').RootContent} RootContent\n * @typedef {import('hast').Text} Text\n *\n * @typedef {import('parse5').DefaultTreeAdapterMap['document']} Parse5Document\n * @typedef {import('parse5').DefaultTreeAdapterMap['documentFragment']} Parse5Fragment\n * @typedef {import('parse5').DefaultTreeAdapterMap['element']} Parse5Element\n * @typedef {import('parse5').DefaultTreeAdapterMap['node']} Parse5Nodes\n * @typedef {import('parse5').DefaultTreeAdapterMap['documentType']} Parse5Doctype\n * @typedef {import('parse5').DefaultTreeAdapterMap['commentNode']} Parse5Comment\n * @typedef {import('parse5').DefaultTreeAdapterMap['textNode']} Parse5Text\n * @typedef {import('parse5').DefaultTreeAdapterMap['parentNode']} Parse5Parent\n * @typedef {import('parse5').Token.Attribute} Parse5Attribute\n *\n * @typedef {import('property-information').Schema} Schema\n */\n\n/**\n * @typedef Options\n * Configuration.\n * @property {Space | null | undefined} [space='html']\n * Which space the document is in (default: `'html'`).\n *\n * When an `` element is found in the HTML space, this package already\n * automatically switches to and from the SVG space when entering and exiting\n * it.\n *\n * @typedef {Exclude} Parse5Content\n *\n * @typedef {'html' | 'svg'} Space\n */\n\nimport {stringify as commas} from 'comma-separated-tokens'\nimport {ok as assert} from 'devlop'\nimport {find, html, svg} from 'property-information'\nimport {stringify as spaces} from 'space-separated-tokens'\nimport {webNamespaces} from 'web-namespaces'\nimport {zwitch} from 'zwitch'\n\n/** @type {Options} */\nconst emptyOptions = {}\n\nconst own = {}.hasOwnProperty\n\nconst one = zwitch('type', {handlers: {root, element, text, comment, doctype}})\n\n/**\n * Transform a hast tree to a `parse5` AST.\n *\n * @param {Nodes} tree\n * Tree to transform.\n * @param {Options | null | undefined} [options]\n * Configuration (optional).\n * @returns {Parse5Nodes}\n * `parse5` node.\n */\nexport function toParse5(tree, options) {\n const settings = options || emptyOptions\n const space = settings.space\n return one(tree, space === 'svg' ? svg : html)\n}\n\n/**\n * @param {Root} node\n * Node (hast) to transform.\n * @param {Schema} schema\n * Current schema.\n * @returns {Parse5Document}\n * Parse5 node.\n */\nfunction root(node, schema) {\n /** @type {Parse5Document} */\n const result = {\n nodeName: '#document',\n // @ts-expect-error: `parse5` uses enums, which are actually strings.\n mode: (node.data || {}).quirksMode ? 'quirks' : 'no-quirks',\n childNodes: []\n }\n result.childNodes = all(node.children, result, schema)\n patch(node, result)\n return result\n}\n\n/**\n * @param {Root} node\n * Node (hast) to transform.\n * @param {Schema} schema\n * Current schema.\n * @returns {Parse5Fragment}\n * Parse5 node.\n */\nfunction fragment(node, schema) {\n /** @type {Parse5Fragment} */\n const result = {nodeName: '#document-fragment', childNodes: []}\n result.childNodes = all(node.children, result, schema)\n patch(node, result)\n return result\n}\n\n/**\n * @param {Doctype} node\n * Node (hast) to transform.\n * @returns {Parse5Doctype}\n * Parse5 node.\n */\nfunction doctype(node) {\n /** @type {Parse5Doctype} */\n const result = {\n nodeName: '#documentType',\n name: 'html',\n publicId: '',\n systemId: '',\n parentNode: null\n }\n\n patch(node, result)\n return result\n}\n\n/**\n * @param {Text} node\n * Node (hast) to transform.\n * @returns {Parse5Text}\n * Parse5 node.\n */\nfunction text(node) {\n /** @type {Parse5Text} */\n const result = {\n nodeName: '#text',\n value: node.value,\n parentNode: null\n }\n patch(node, result)\n return result\n}\n\n/**\n * @param {Comment} node\n * Node (hast) to transform.\n * @returns {Parse5Comment}\n * Parse5 node.\n */\nfunction comment(node) {\n /** @type {Parse5Comment} */\n const result = {\n nodeName: '#comment',\n data: node.value,\n parentNode: null\n }\n\n patch(node, result)\n\n return result\n}\n\n/**\n * @param {Element} node\n * Node (hast) to transform.\n * @param {Schema} schema\n * Current schema.\n * @returns {Parse5Element}\n * Parse5 node.\n */\nfunction element(node, schema) {\n const parentSchema = schema\n let currentSchema = parentSchema\n\n if (\n node.type === 'element' &&\n node.tagName.toLowerCase() === 'svg' &&\n parentSchema.space === 'html'\n ) {\n currentSchema = svg\n }\n\n /** @type {Array} */\n const attrs = []\n /** @type {string} */\n let prop\n\n if (node.properties) {\n for (prop in node.properties) {\n if (prop !== 'children' && own.call(node.properties, prop)) {\n const result = createProperty(\n currentSchema,\n prop,\n node.properties[prop]\n )\n\n if (result) {\n attrs.push(result)\n }\n }\n }\n }\n\n const space = currentSchema.space\n // `html` and `svg` both have a space.\n assert(space)\n\n /** @type {Parse5Element} */\n const result = {\n nodeName: node.tagName,\n tagName: node.tagName,\n attrs,\n // @ts-expect-error: `parse5` types are wrong.\n namespaceURI: webNamespaces[space],\n childNodes: [],\n parentNode: null\n }\n result.childNodes = all(node.children, result, currentSchema)\n patch(node, result)\n\n if (node.tagName === 'template' && node.content) {\n // @ts-expect-error: `parse5` types are wrong.\n result.content = fragment(node.content, currentSchema)\n }\n\n return result\n}\n\n/**\n * Handle a property.\n *\n * @param {Schema} schema\n * Current schema.\n * @param {string} prop\n * Key.\n * @param {Array | boolean | number | string | null | undefined} value\n * hast property value.\n * @returns {Parse5Attribute | undefined}\n * Field for runtime, optional.\n */\nfunction createProperty(schema, prop, value) {\n const info = find(schema, prop)\n\n // Ignore nullish and `NaN` values.\n if (\n value === false ||\n value === null ||\n value === undefined ||\n (typeof value === 'number' && Number.isNaN(value)) ||\n (!value && info.boolean)\n ) {\n return\n }\n\n if (Array.isArray(value)) {\n // Accept `array`.\n // Most props are space-separated.\n value = info.commaSeparated ? commas(value) : spaces(value)\n }\n\n /** @type {Parse5Attribute} */\n const attribute = {\n name: info.attribute,\n value: value === true ? '' : String(value)\n }\n\n if (info.space && info.space !== 'html' && info.space !== 'svg') {\n const index = attribute.name.indexOf(':')\n\n if (index < 0) {\n attribute.prefix = ''\n } else {\n attribute.name = attribute.name.slice(index + 1)\n attribute.prefix = info.attribute.slice(0, index)\n }\n\n attribute.namespace = webNamespaces[info.space]\n }\n\n return attribute\n}\n\n/**\n * Transform all hast nodes.\n *\n * @param {Array} children\n * List of children.\n * @param {Parse5Parent} parentNode\n * `parse5` parent node.\n * @param {Schema} schema\n * Current schema.\n * @returns {Array}\n * Transformed children.\n */\nfunction all(children, parentNode, schema) {\n let index = -1\n /** @type {Array} */\n const results = []\n\n if (children) {\n while (++index < children.length) {\n /** @type {Parse5Content} */\n const child = one(children[index], schema)\n\n child.parentNode = parentNode\n\n results.push(child)\n }\n }\n\n return results\n}\n\n/**\n * Add position info from `from` to `to`.\n *\n * @param {Nodes} from\n * hast node.\n * @param {Parse5Nodes} to\n * `parse5` node.\n * @returns {undefined}\n * Nothing.\n */\nfunction patch(from, to) {\n const position = from.position\n\n if (position && position.start && position.end) {\n assert(typeof position.start.offset === 'number')\n assert(typeof position.end.offset === 'number')\n\n to.sourceCodeLocation = {\n startLine: position.start.line,\n startCol: position.start.column,\n startOffset: position.start.offset,\n endLine: position.end.line,\n endCol: position.end.column,\n endOffset: position.end.offset\n }\n }\n}\n","/**\n * List of HTML void tag names.\n *\n * @type {Array}\n */\nexport const htmlVoidElements = [\n 'area',\n 'base',\n 'basefont',\n 'bgsound',\n 'br',\n 'col',\n 'command',\n 'embed',\n 'frame',\n 'hr',\n 'image',\n 'img',\n 'input',\n 'keygen',\n 'link',\n 'meta',\n 'param',\n 'source',\n 'track',\n 'wbr'\n]\n","const UNDEFINED_CODE_POINTS = new Set([\n 65534, 65535, 131070, 131071, 196606, 196607, 262142, 262143, 327678, 327679, 393214,\n 393215, 458750, 458751, 524286, 524287, 589822, 589823, 655358, 655359, 720894,\n 720895, 786430, 786431, 851966, 851967, 917502, 917503, 983038, 983039, 1048574,\n 1048575, 1114110, 1114111,\n]);\nexport const REPLACEMENT_CHARACTER = '\\uFFFD';\nexport var CODE_POINTS;\n(function (CODE_POINTS) {\n CODE_POINTS[CODE_POINTS[\"EOF\"] = -1] = \"EOF\";\n CODE_POINTS[CODE_POINTS[\"NULL\"] = 0] = \"NULL\";\n CODE_POINTS[CODE_POINTS[\"TABULATION\"] = 9] = \"TABULATION\";\n CODE_POINTS[CODE_POINTS[\"CARRIAGE_RETURN\"] = 13] = \"CARRIAGE_RETURN\";\n CODE_POINTS[CODE_POINTS[\"LINE_FEED\"] = 10] = \"LINE_FEED\";\n CODE_POINTS[CODE_POINTS[\"FORM_FEED\"] = 12] = \"FORM_FEED\";\n CODE_POINTS[CODE_POINTS[\"SPACE\"] = 32] = \"SPACE\";\n CODE_POINTS[CODE_POINTS[\"EXCLAMATION_MARK\"] = 33] = \"EXCLAMATION_MARK\";\n CODE_POINTS[CODE_POINTS[\"QUOTATION_MARK\"] = 34] = \"QUOTATION_MARK\";\n CODE_POINTS[CODE_POINTS[\"AMPERSAND\"] = 38] = \"AMPERSAND\";\n CODE_POINTS[CODE_POINTS[\"APOSTROPHE\"] = 39] = \"APOSTROPHE\";\n CODE_POINTS[CODE_POINTS[\"HYPHEN_MINUS\"] = 45] = \"HYPHEN_MINUS\";\n CODE_POINTS[CODE_POINTS[\"SOLIDUS\"] = 47] = \"SOLIDUS\";\n CODE_POINTS[CODE_POINTS[\"DIGIT_0\"] = 48] = \"DIGIT_0\";\n CODE_POINTS[CODE_POINTS[\"DIGIT_9\"] = 57] = \"DIGIT_9\";\n CODE_POINTS[CODE_POINTS[\"SEMICOLON\"] = 59] = \"SEMICOLON\";\n CODE_POINTS[CODE_POINTS[\"LESS_THAN_SIGN\"] = 60] = \"LESS_THAN_SIGN\";\n CODE_POINTS[CODE_POINTS[\"EQUALS_SIGN\"] = 61] = \"EQUALS_SIGN\";\n CODE_POINTS[CODE_POINTS[\"GREATER_THAN_SIGN\"] = 62] = \"GREATER_THAN_SIGN\";\n CODE_POINTS[CODE_POINTS[\"QUESTION_MARK\"] = 63] = \"QUESTION_MARK\";\n CODE_POINTS[CODE_POINTS[\"LATIN_CAPITAL_A\"] = 65] = \"LATIN_CAPITAL_A\";\n CODE_POINTS[CODE_POINTS[\"LATIN_CAPITAL_Z\"] = 90] = \"LATIN_CAPITAL_Z\";\n CODE_POINTS[CODE_POINTS[\"RIGHT_SQUARE_BRACKET\"] = 93] = \"RIGHT_SQUARE_BRACKET\";\n CODE_POINTS[CODE_POINTS[\"GRAVE_ACCENT\"] = 96] = \"GRAVE_ACCENT\";\n CODE_POINTS[CODE_POINTS[\"LATIN_SMALL_A\"] = 97] = \"LATIN_SMALL_A\";\n CODE_POINTS[CODE_POINTS[\"LATIN_SMALL_Z\"] = 122] = \"LATIN_SMALL_Z\";\n})(CODE_POINTS || (CODE_POINTS = {}));\nexport const SEQUENCES = {\n DASH_DASH: '--',\n CDATA_START: '[CDATA[',\n DOCTYPE: 'doctype',\n SCRIPT: 'script',\n PUBLIC: 'public',\n SYSTEM: 'system',\n};\n//Surrogates\nexport function isSurrogate(cp) {\n return cp >= 55296 && cp <= 57343;\n}\nexport function isSurrogatePair(cp) {\n return cp >= 56320 && cp <= 57343;\n}\nexport function getSurrogatePairCodePoint(cp1, cp2) {\n return (cp1 - 55296) * 1024 + 9216 + cp2;\n}\n//NOTE: excluding NULL and ASCII whitespace\nexport function isControlCodePoint(cp) {\n return ((cp !== 0x20 && cp !== 0x0a && cp !== 0x0d && cp !== 0x09 && cp !== 0x0c && cp >= 0x01 && cp <= 0x1f) ||\n (cp >= 0x7f && cp <= 0x9f));\n}\nexport function isUndefinedCodePoint(cp) {\n return (cp >= 64976 && cp <= 65007) || UNDEFINED_CODE_POINTS.has(cp);\n}\n","export var ERR;\n(function (ERR) {\n ERR[\"controlCharacterInInputStream\"] = \"control-character-in-input-stream\";\n ERR[\"noncharacterInInputStream\"] = \"noncharacter-in-input-stream\";\n ERR[\"surrogateInInputStream\"] = \"surrogate-in-input-stream\";\n ERR[\"nonVoidHtmlElementStartTagWithTrailingSolidus\"] = \"non-void-html-element-start-tag-with-trailing-solidus\";\n ERR[\"endTagWithAttributes\"] = \"end-tag-with-attributes\";\n ERR[\"endTagWithTrailingSolidus\"] = \"end-tag-with-trailing-solidus\";\n ERR[\"unexpectedSolidusInTag\"] = \"unexpected-solidus-in-tag\";\n ERR[\"unexpectedNullCharacter\"] = \"unexpected-null-character\";\n ERR[\"unexpectedQuestionMarkInsteadOfTagName\"] = \"unexpected-question-mark-instead-of-tag-name\";\n ERR[\"invalidFirstCharacterOfTagName\"] = \"invalid-first-character-of-tag-name\";\n ERR[\"unexpectedEqualsSignBeforeAttributeName\"] = \"unexpected-equals-sign-before-attribute-name\";\n ERR[\"missingEndTagName\"] = \"missing-end-tag-name\";\n ERR[\"unexpectedCharacterInAttributeName\"] = \"unexpected-character-in-attribute-name\";\n ERR[\"unknownNamedCharacterReference\"] = \"unknown-named-character-reference\";\n ERR[\"missingSemicolonAfterCharacterReference\"] = \"missing-semicolon-after-character-reference\";\n ERR[\"unexpectedCharacterAfterDoctypeSystemIdentifier\"] = \"unexpected-character-after-doctype-system-identifier\";\n ERR[\"unexpectedCharacterInUnquotedAttributeValue\"] = \"unexpected-character-in-unquoted-attribute-value\";\n ERR[\"eofBeforeTagName\"] = \"eof-before-tag-name\";\n ERR[\"eofInTag\"] = \"eof-in-tag\";\n ERR[\"missingAttributeValue\"] = \"missing-attribute-value\";\n ERR[\"missingWhitespaceBetweenAttributes\"] = \"missing-whitespace-between-attributes\";\n ERR[\"missingWhitespaceAfterDoctypePublicKeyword\"] = \"missing-whitespace-after-doctype-public-keyword\";\n ERR[\"missingWhitespaceBetweenDoctypePublicAndSystemIdentifiers\"] = \"missing-whitespace-between-doctype-public-and-system-identifiers\";\n ERR[\"missingWhitespaceAfterDoctypeSystemKeyword\"] = \"missing-whitespace-after-doctype-system-keyword\";\n ERR[\"missingQuoteBeforeDoctypePublicIdentifier\"] = \"missing-quote-before-doctype-public-identifier\";\n ERR[\"missingQuoteBeforeDoctypeSystemIdentifier\"] = \"missing-quote-before-doctype-system-identifier\";\n ERR[\"missingDoctypePublicIdentifier\"] = \"missing-doctype-public-identifier\";\n ERR[\"missingDoctypeSystemIdentifier\"] = \"missing-doctype-system-identifier\";\n ERR[\"abruptDoctypePublicIdentifier\"] = \"abrupt-doctype-public-identifier\";\n ERR[\"abruptDoctypeSystemIdentifier\"] = \"abrupt-doctype-system-identifier\";\n ERR[\"cdataInHtmlContent\"] = \"cdata-in-html-content\";\n ERR[\"incorrectlyOpenedComment\"] = \"incorrectly-opened-comment\";\n ERR[\"eofInScriptHtmlCommentLikeText\"] = \"eof-in-script-html-comment-like-text\";\n ERR[\"eofInDoctype\"] = \"eof-in-doctype\";\n ERR[\"nestedComment\"] = \"nested-comment\";\n ERR[\"abruptClosingOfEmptyComment\"] = \"abrupt-closing-of-empty-comment\";\n ERR[\"eofInComment\"] = \"eof-in-comment\";\n ERR[\"incorrectlyClosedComment\"] = \"incorrectly-closed-comment\";\n ERR[\"eofInCdata\"] = \"eof-in-cdata\";\n ERR[\"absenceOfDigitsInNumericCharacterReference\"] = \"absence-of-digits-in-numeric-character-reference\";\n ERR[\"nullCharacterReference\"] = \"null-character-reference\";\n ERR[\"surrogateCharacterReference\"] = \"surrogate-character-reference\";\n ERR[\"characterReferenceOutsideUnicodeRange\"] = \"character-reference-outside-unicode-range\";\n ERR[\"controlCharacterReference\"] = \"control-character-reference\";\n ERR[\"noncharacterCharacterReference\"] = \"noncharacter-character-reference\";\n ERR[\"missingWhitespaceBeforeDoctypeName\"] = \"missing-whitespace-before-doctype-name\";\n ERR[\"missingDoctypeName\"] = \"missing-doctype-name\";\n ERR[\"invalidCharacterSequenceAfterDoctypeName\"] = \"invalid-character-sequence-after-doctype-name\";\n ERR[\"duplicateAttribute\"] = \"duplicate-attribute\";\n ERR[\"nonConformingDoctype\"] = \"non-conforming-doctype\";\n ERR[\"missingDoctype\"] = \"missing-doctype\";\n ERR[\"misplacedDoctype\"] = \"misplaced-doctype\";\n ERR[\"endTagWithoutMatchingOpenElement\"] = \"end-tag-without-matching-open-element\";\n ERR[\"closingOfElementWithOpenChildElements\"] = \"closing-of-element-with-open-child-elements\";\n ERR[\"disallowedContentInNoscriptInHead\"] = \"disallowed-content-in-noscript-in-head\";\n ERR[\"openElementsLeftAfterEof\"] = \"open-elements-left-after-eof\";\n ERR[\"abandonedHeadElementChild\"] = \"abandoned-head-element-child\";\n ERR[\"misplacedStartTagForHeadElement\"] = \"misplaced-start-tag-for-head-element\";\n ERR[\"nestedNoscriptInHead\"] = \"nested-noscript-in-head\";\n ERR[\"eofInElementThatCanContainOnlyText\"] = \"eof-in-element-that-can-contain-only-text\";\n})(ERR || (ERR = {}));\n","import { CODE_POINTS as $, getSurrogatePairCodePoint, isControlCodePoint, isSurrogate, isSurrogatePair, isUndefinedCodePoint, } from '../common/unicode.js';\nimport { ERR } from '../common/error-codes.js';\n//Const\nconst DEFAULT_BUFFER_WATERLINE = 1 << 16;\n//Preprocessor\n//NOTE: HTML input preprocessing\n//(see: http://www.whatwg.org/specs/web-apps/current-work/multipage/parsing.html#preprocessing-the-input-stream)\nexport class Preprocessor {\n constructor(handler) {\n this.handler = handler;\n this.html = '';\n this.pos = -1;\n // NOTE: Initial `lastGapPos` is -2, to ensure `col` on initialisation is 0\n this.lastGapPos = -2;\n this.gapStack = [];\n this.skipNextNewLine = false;\n this.lastChunkWritten = false;\n this.endOfChunkHit = false;\n this.bufferWaterline = DEFAULT_BUFFER_WATERLINE;\n this.isEol = false;\n this.lineStartPos = 0;\n this.droppedBufferSize = 0;\n this.line = 1;\n //NOTE: avoid reporting errors twice on advance/retreat\n this.lastErrOffset = -1;\n }\n /** The column on the current line. If we just saw a gap (eg. a surrogate pair), return the index before. */\n get col() {\n return this.pos - this.lineStartPos + Number(this.lastGapPos !== this.pos);\n }\n get offset() {\n return this.droppedBufferSize + this.pos;\n }\n getError(code, cpOffset) {\n const { line, col, offset } = this;\n const startCol = col + cpOffset;\n const startOffset = offset + cpOffset;\n return {\n code,\n startLine: line,\n endLine: line,\n startCol,\n endCol: startCol,\n startOffset,\n endOffset: startOffset,\n };\n }\n _err(code) {\n if (this.handler.onParseError && this.lastErrOffset !== this.offset) {\n this.lastErrOffset = this.offset;\n this.handler.onParseError(this.getError(code, 0));\n }\n }\n _addGap() {\n this.gapStack.push(this.lastGapPos);\n this.lastGapPos = this.pos;\n }\n _processSurrogate(cp) {\n //NOTE: try to peek a surrogate pair\n if (this.pos !== this.html.length - 1) {\n const nextCp = this.html.charCodeAt(this.pos + 1);\n if (isSurrogatePair(nextCp)) {\n //NOTE: we have a surrogate pair. Peek pair character and recalculate code point.\n this.pos++;\n //NOTE: add a gap that should be avoided during retreat\n this._addGap();\n return getSurrogatePairCodePoint(cp, nextCp);\n }\n }\n //NOTE: we are at the end of a chunk, therefore we can't infer the surrogate pair yet.\n else if (!this.lastChunkWritten) {\n this.endOfChunkHit = true;\n return $.EOF;\n }\n //NOTE: isolated surrogate\n this._err(ERR.surrogateInInputStream);\n return cp;\n }\n willDropParsedChunk() {\n return this.pos > this.bufferWaterline;\n }\n dropParsedChunk() {\n if (this.willDropParsedChunk()) {\n this.html = this.html.substring(this.pos);\n this.lineStartPos -= this.pos;\n this.droppedBufferSize += this.pos;\n this.pos = 0;\n this.lastGapPos = -2;\n this.gapStack.length = 0;\n }\n }\n write(chunk, isLastChunk) {\n if (this.html.length > 0) {\n this.html += chunk;\n }\n else {\n this.html = chunk;\n }\n this.endOfChunkHit = false;\n this.lastChunkWritten = isLastChunk;\n }\n insertHtmlAtCurrentPos(chunk) {\n this.html = this.html.substring(0, this.pos + 1) + chunk + this.html.substring(this.pos + 1);\n this.endOfChunkHit = false;\n }\n startsWith(pattern, caseSensitive) {\n // Check if our buffer has enough characters\n if (this.pos + pattern.length > this.html.length) {\n this.endOfChunkHit = !this.lastChunkWritten;\n return false;\n }\n if (caseSensitive) {\n return this.html.startsWith(pattern, this.pos);\n }\n for (let i = 0; i < pattern.length; i++) {\n const cp = this.html.charCodeAt(this.pos + i) | 0x20;\n if (cp !== pattern.charCodeAt(i)) {\n return false;\n }\n }\n return true;\n }\n peek(offset) {\n const pos = this.pos + offset;\n if (pos >= this.html.length) {\n this.endOfChunkHit = !this.lastChunkWritten;\n return $.EOF;\n }\n const code = this.html.charCodeAt(pos);\n return code === $.CARRIAGE_RETURN ? $.LINE_FEED : code;\n }\n advance() {\n this.pos++;\n //NOTE: LF should be in the last column of the line\n if (this.isEol) {\n this.isEol = false;\n this.line++;\n this.lineStartPos = this.pos;\n }\n if (this.pos >= this.html.length) {\n this.endOfChunkHit = !this.lastChunkWritten;\n return $.EOF;\n }\n let cp = this.html.charCodeAt(this.pos);\n //NOTE: all U+000D CARRIAGE RETURN (CR) characters must be converted to U+000A LINE FEED (LF) characters\n if (cp === $.CARRIAGE_RETURN) {\n this.isEol = true;\n this.skipNextNewLine = true;\n return $.LINE_FEED;\n }\n //NOTE: any U+000A LINE FEED (LF) characters that immediately follow a U+000D CARRIAGE RETURN (CR) character\n //must be ignored.\n if (cp === $.LINE_FEED) {\n this.isEol = true;\n if (this.skipNextNewLine) {\n // `line` will be bumped again in the recursive call.\n this.line--;\n this.skipNextNewLine = false;\n this._addGap();\n return this.advance();\n }\n }\n this.skipNextNewLine = false;\n if (isSurrogate(cp)) {\n cp = this._processSurrogate(cp);\n }\n //OPTIMIZATION: first check if code point is in the common allowed\n //range (ASCII alphanumeric, whitespaces, big chunk of BMP)\n //before going into detailed performance cost validation.\n const isCommonValidRange = this.handler.onParseError === null ||\n (cp > 0x1f && cp < 0x7f) ||\n cp === $.LINE_FEED ||\n cp === $.CARRIAGE_RETURN ||\n (cp > 0x9f && cp < 64976);\n if (!isCommonValidRange) {\n this._checkForProblematicCharacters(cp);\n }\n return cp;\n }\n _checkForProblematicCharacters(cp) {\n if (isControlCodePoint(cp)) {\n this._err(ERR.controlCharacterInInputStream);\n }\n else if (isUndefinedCodePoint(cp)) {\n this._err(ERR.noncharacterInInputStream);\n }\n }\n retreat(count) {\n this.pos -= count;\n while (this.pos < this.lastGapPos) {\n this.lastGapPos = this.gapStack.pop();\n this.pos--;\n }\n this.isEol = false;\n }\n}\n","export var TokenType;\n(function (TokenType) {\n TokenType[TokenType[\"CHARACTER\"] = 0] = \"CHARACTER\";\n TokenType[TokenType[\"NULL_CHARACTER\"] = 1] = \"NULL_CHARACTER\";\n TokenType[TokenType[\"WHITESPACE_CHARACTER\"] = 2] = \"WHITESPACE_CHARACTER\";\n TokenType[TokenType[\"START_TAG\"] = 3] = \"START_TAG\";\n TokenType[TokenType[\"END_TAG\"] = 4] = \"END_TAG\";\n TokenType[TokenType[\"COMMENT\"] = 5] = \"COMMENT\";\n TokenType[TokenType[\"DOCTYPE\"] = 6] = \"DOCTYPE\";\n TokenType[TokenType[\"EOF\"] = 7] = \"EOF\";\n TokenType[TokenType[\"HIBERNATION\"] = 8] = \"HIBERNATION\";\n})(TokenType || (TokenType = {}));\nexport function getTokenAttr(token, attrName) {\n for (let i = token.attrs.length - 1; i >= 0; i--) {\n if (token.attrs[i].name === attrName) {\n return token.attrs[i].value;\n }\n }\n return null;\n}\n",null,null,null,null,"/** All valid namespaces in HTML. */\nexport var NS;\n(function (NS) {\n NS[\"HTML\"] = \"http://www.w3.org/1999/xhtml\";\n NS[\"MATHML\"] = \"http://www.w3.org/1998/Math/MathML\";\n NS[\"SVG\"] = \"http://www.w3.org/2000/svg\";\n NS[\"XLINK\"] = \"http://www.w3.org/1999/xlink\";\n NS[\"XML\"] = \"http://www.w3.org/XML/1998/namespace\";\n NS[\"XMLNS\"] = \"http://www.w3.org/2000/xmlns/\";\n})(NS || (NS = {}));\nexport var ATTRS;\n(function (ATTRS) {\n ATTRS[\"TYPE\"] = \"type\";\n ATTRS[\"ACTION\"] = \"action\";\n ATTRS[\"ENCODING\"] = \"encoding\";\n ATTRS[\"PROMPT\"] = \"prompt\";\n ATTRS[\"NAME\"] = \"name\";\n ATTRS[\"COLOR\"] = \"color\";\n ATTRS[\"FACE\"] = \"face\";\n ATTRS[\"SIZE\"] = \"size\";\n})(ATTRS || (ATTRS = {}));\n/**\n * The mode of the document.\n *\n * @see {@link https://dom.spec.whatwg.org/#concept-document-limited-quirks}\n */\nexport var DOCUMENT_MODE;\n(function (DOCUMENT_MODE) {\n DOCUMENT_MODE[\"NO_QUIRKS\"] = \"no-quirks\";\n DOCUMENT_MODE[\"QUIRKS\"] = \"quirks\";\n DOCUMENT_MODE[\"LIMITED_QUIRKS\"] = \"limited-quirks\";\n})(DOCUMENT_MODE || (DOCUMENT_MODE = {}));\nexport var TAG_NAMES;\n(function (TAG_NAMES) {\n TAG_NAMES[\"A\"] = \"a\";\n TAG_NAMES[\"ADDRESS\"] = \"address\";\n TAG_NAMES[\"ANNOTATION_XML\"] = \"annotation-xml\";\n TAG_NAMES[\"APPLET\"] = \"applet\";\n TAG_NAMES[\"AREA\"] = \"area\";\n TAG_NAMES[\"ARTICLE\"] = \"article\";\n TAG_NAMES[\"ASIDE\"] = \"aside\";\n TAG_NAMES[\"B\"] = \"b\";\n TAG_NAMES[\"BASE\"] = \"base\";\n TAG_NAMES[\"BASEFONT\"] = \"basefont\";\n TAG_NAMES[\"BGSOUND\"] = \"bgsound\";\n TAG_NAMES[\"BIG\"] = \"big\";\n TAG_NAMES[\"BLOCKQUOTE\"] = \"blockquote\";\n TAG_NAMES[\"BODY\"] = \"body\";\n TAG_NAMES[\"BR\"] = \"br\";\n TAG_NAMES[\"BUTTON\"] = \"button\";\n TAG_NAMES[\"CAPTION\"] = \"caption\";\n TAG_NAMES[\"CENTER\"] = \"center\";\n TAG_NAMES[\"CODE\"] = \"code\";\n TAG_NAMES[\"COL\"] = \"col\";\n TAG_NAMES[\"COLGROUP\"] = \"colgroup\";\n TAG_NAMES[\"DD\"] = \"dd\";\n TAG_NAMES[\"DESC\"] = \"desc\";\n TAG_NAMES[\"DETAILS\"] = \"details\";\n TAG_NAMES[\"DIALOG\"] = \"dialog\";\n TAG_NAMES[\"DIR\"] = \"dir\";\n TAG_NAMES[\"DIV\"] = \"div\";\n TAG_NAMES[\"DL\"] = \"dl\";\n TAG_NAMES[\"DT\"] = \"dt\";\n TAG_NAMES[\"EM\"] = \"em\";\n TAG_NAMES[\"EMBED\"] = \"embed\";\n TAG_NAMES[\"FIELDSET\"] = \"fieldset\";\n TAG_NAMES[\"FIGCAPTION\"] = \"figcaption\";\n TAG_NAMES[\"FIGURE\"] = \"figure\";\n TAG_NAMES[\"FONT\"] = \"font\";\n TAG_NAMES[\"FOOTER\"] = \"footer\";\n TAG_NAMES[\"FOREIGN_OBJECT\"] = \"foreignObject\";\n TAG_NAMES[\"FORM\"] = \"form\";\n TAG_NAMES[\"FRAME\"] = \"frame\";\n TAG_NAMES[\"FRAMESET\"] = \"frameset\";\n TAG_NAMES[\"H1\"] = \"h1\";\n TAG_NAMES[\"H2\"] = \"h2\";\n TAG_NAMES[\"H3\"] = \"h3\";\n TAG_NAMES[\"H4\"] = \"h4\";\n TAG_NAMES[\"H5\"] = \"h5\";\n TAG_NAMES[\"H6\"] = \"h6\";\n TAG_NAMES[\"HEAD\"] = \"head\";\n TAG_NAMES[\"HEADER\"] = \"header\";\n TAG_NAMES[\"HGROUP\"] = \"hgroup\";\n TAG_NAMES[\"HR\"] = \"hr\";\n TAG_NAMES[\"HTML\"] = \"html\";\n TAG_NAMES[\"I\"] = \"i\";\n TAG_NAMES[\"IMG\"] = \"img\";\n TAG_NAMES[\"IMAGE\"] = \"image\";\n TAG_NAMES[\"INPUT\"] = \"input\";\n TAG_NAMES[\"IFRAME\"] = \"iframe\";\n TAG_NAMES[\"KEYGEN\"] = \"keygen\";\n TAG_NAMES[\"LABEL\"] = \"label\";\n TAG_NAMES[\"LI\"] = \"li\";\n TAG_NAMES[\"LINK\"] = \"link\";\n TAG_NAMES[\"LISTING\"] = \"listing\";\n TAG_NAMES[\"MAIN\"] = \"main\";\n TAG_NAMES[\"MALIGNMARK\"] = \"malignmark\";\n TAG_NAMES[\"MARQUEE\"] = \"marquee\";\n TAG_NAMES[\"MATH\"] = \"math\";\n TAG_NAMES[\"MENU\"] = \"menu\";\n TAG_NAMES[\"META\"] = \"meta\";\n TAG_NAMES[\"MGLYPH\"] = \"mglyph\";\n TAG_NAMES[\"MI\"] = \"mi\";\n TAG_NAMES[\"MO\"] = \"mo\";\n TAG_NAMES[\"MN\"] = \"mn\";\n TAG_NAMES[\"MS\"] = \"ms\";\n TAG_NAMES[\"MTEXT\"] = \"mtext\";\n TAG_NAMES[\"NAV\"] = \"nav\";\n TAG_NAMES[\"NOBR\"] = \"nobr\";\n TAG_NAMES[\"NOFRAMES\"] = \"noframes\";\n TAG_NAMES[\"NOEMBED\"] = \"noembed\";\n TAG_NAMES[\"NOSCRIPT\"] = \"noscript\";\n TAG_NAMES[\"OBJECT\"] = \"object\";\n TAG_NAMES[\"OL\"] = \"ol\";\n TAG_NAMES[\"OPTGROUP\"] = \"optgroup\";\n TAG_NAMES[\"OPTION\"] = \"option\";\n TAG_NAMES[\"P\"] = \"p\";\n TAG_NAMES[\"PARAM\"] = \"param\";\n TAG_NAMES[\"PLAINTEXT\"] = \"plaintext\";\n TAG_NAMES[\"PRE\"] = \"pre\";\n TAG_NAMES[\"RB\"] = \"rb\";\n TAG_NAMES[\"RP\"] = \"rp\";\n TAG_NAMES[\"RT\"] = \"rt\";\n TAG_NAMES[\"RTC\"] = \"rtc\";\n TAG_NAMES[\"RUBY\"] = \"ruby\";\n TAG_NAMES[\"S\"] = \"s\";\n TAG_NAMES[\"SCRIPT\"] = \"script\";\n TAG_NAMES[\"SEARCH\"] = \"search\";\n TAG_NAMES[\"SECTION\"] = \"section\";\n TAG_NAMES[\"SELECT\"] = \"select\";\n TAG_NAMES[\"SOURCE\"] = \"source\";\n TAG_NAMES[\"SMALL\"] = \"small\";\n TAG_NAMES[\"SPAN\"] = \"span\";\n TAG_NAMES[\"STRIKE\"] = \"strike\";\n TAG_NAMES[\"STRONG\"] = \"strong\";\n TAG_NAMES[\"STYLE\"] = \"style\";\n TAG_NAMES[\"SUB\"] = \"sub\";\n TAG_NAMES[\"SUMMARY\"] = \"summary\";\n TAG_NAMES[\"SUP\"] = \"sup\";\n TAG_NAMES[\"TABLE\"] = \"table\";\n TAG_NAMES[\"TBODY\"] = \"tbody\";\n TAG_NAMES[\"TEMPLATE\"] = \"template\";\n TAG_NAMES[\"TEXTAREA\"] = \"textarea\";\n TAG_NAMES[\"TFOOT\"] = \"tfoot\";\n TAG_NAMES[\"TD\"] = \"td\";\n TAG_NAMES[\"TH\"] = \"th\";\n TAG_NAMES[\"THEAD\"] = \"thead\";\n TAG_NAMES[\"TITLE\"] = \"title\";\n TAG_NAMES[\"TR\"] = \"tr\";\n TAG_NAMES[\"TRACK\"] = \"track\";\n TAG_NAMES[\"TT\"] = \"tt\";\n TAG_NAMES[\"U\"] = \"u\";\n TAG_NAMES[\"UL\"] = \"ul\";\n TAG_NAMES[\"SVG\"] = \"svg\";\n TAG_NAMES[\"VAR\"] = \"var\";\n TAG_NAMES[\"WBR\"] = \"wbr\";\n TAG_NAMES[\"XMP\"] = \"xmp\";\n})(TAG_NAMES || (TAG_NAMES = {}));\n/**\n * Tag IDs are numeric IDs for known tag names.\n *\n * We use tag IDs to improve the performance of tag name comparisons.\n */\nexport var TAG_ID;\n(function (TAG_ID) {\n TAG_ID[TAG_ID[\"UNKNOWN\"] = 0] = \"UNKNOWN\";\n TAG_ID[TAG_ID[\"A\"] = 1] = \"A\";\n TAG_ID[TAG_ID[\"ADDRESS\"] = 2] = \"ADDRESS\";\n TAG_ID[TAG_ID[\"ANNOTATION_XML\"] = 3] = \"ANNOTATION_XML\";\n TAG_ID[TAG_ID[\"APPLET\"] = 4] = \"APPLET\";\n TAG_ID[TAG_ID[\"AREA\"] = 5] = \"AREA\";\n TAG_ID[TAG_ID[\"ARTICLE\"] = 6] = \"ARTICLE\";\n TAG_ID[TAG_ID[\"ASIDE\"] = 7] = \"ASIDE\";\n TAG_ID[TAG_ID[\"B\"] = 8] = \"B\";\n TAG_ID[TAG_ID[\"BASE\"] = 9] = \"BASE\";\n TAG_ID[TAG_ID[\"BASEFONT\"] = 10] = \"BASEFONT\";\n TAG_ID[TAG_ID[\"BGSOUND\"] = 11] = \"BGSOUND\";\n TAG_ID[TAG_ID[\"BIG\"] = 12] = \"BIG\";\n TAG_ID[TAG_ID[\"BLOCKQUOTE\"] = 13] = \"BLOCKQUOTE\";\n TAG_ID[TAG_ID[\"BODY\"] = 14] = \"BODY\";\n TAG_ID[TAG_ID[\"BR\"] = 15] = \"BR\";\n TAG_ID[TAG_ID[\"BUTTON\"] = 16] = \"BUTTON\";\n TAG_ID[TAG_ID[\"CAPTION\"] = 17] = \"CAPTION\";\n TAG_ID[TAG_ID[\"CENTER\"] = 18] = \"CENTER\";\n TAG_ID[TAG_ID[\"CODE\"] = 19] = \"CODE\";\n TAG_ID[TAG_ID[\"COL\"] = 20] = \"COL\";\n TAG_ID[TAG_ID[\"COLGROUP\"] = 21] = \"COLGROUP\";\n TAG_ID[TAG_ID[\"DD\"] = 22] = \"DD\";\n TAG_ID[TAG_ID[\"DESC\"] = 23] = \"DESC\";\n TAG_ID[TAG_ID[\"DETAILS\"] = 24] = \"DETAILS\";\n TAG_ID[TAG_ID[\"DIALOG\"] = 25] = \"DIALOG\";\n TAG_ID[TAG_ID[\"DIR\"] = 26] = \"DIR\";\n TAG_ID[TAG_ID[\"DIV\"] = 27] = \"DIV\";\n TAG_ID[TAG_ID[\"DL\"] = 28] = \"DL\";\n TAG_ID[TAG_ID[\"DT\"] = 29] = \"DT\";\n TAG_ID[TAG_ID[\"EM\"] = 30] = \"EM\";\n TAG_ID[TAG_ID[\"EMBED\"] = 31] = \"EMBED\";\n TAG_ID[TAG_ID[\"FIELDSET\"] = 32] = \"FIELDSET\";\n TAG_ID[TAG_ID[\"FIGCAPTION\"] = 33] = \"FIGCAPTION\";\n TAG_ID[TAG_ID[\"FIGURE\"] = 34] = \"FIGURE\";\n TAG_ID[TAG_ID[\"FONT\"] = 35] = \"FONT\";\n TAG_ID[TAG_ID[\"FOOTER\"] = 36] = \"FOOTER\";\n TAG_ID[TAG_ID[\"FOREIGN_OBJECT\"] = 37] = \"FOREIGN_OBJECT\";\n TAG_ID[TAG_ID[\"FORM\"] = 38] = \"FORM\";\n TAG_ID[TAG_ID[\"FRAME\"] = 39] = \"FRAME\";\n TAG_ID[TAG_ID[\"FRAMESET\"] = 40] = \"FRAMESET\";\n TAG_ID[TAG_ID[\"H1\"] = 41] = \"H1\";\n TAG_ID[TAG_ID[\"H2\"] = 42] = \"H2\";\n TAG_ID[TAG_ID[\"H3\"] = 43] = \"H3\";\n TAG_ID[TAG_ID[\"H4\"] = 44] = \"H4\";\n TAG_ID[TAG_ID[\"H5\"] = 45] = \"H5\";\n TAG_ID[TAG_ID[\"H6\"] = 46] = \"H6\";\n TAG_ID[TAG_ID[\"HEAD\"] = 47] = \"HEAD\";\n TAG_ID[TAG_ID[\"HEADER\"] = 48] = \"HEADER\";\n TAG_ID[TAG_ID[\"HGROUP\"] = 49] = \"HGROUP\";\n TAG_ID[TAG_ID[\"HR\"] = 50] = \"HR\";\n TAG_ID[TAG_ID[\"HTML\"] = 51] = \"HTML\";\n TAG_ID[TAG_ID[\"I\"] = 52] = \"I\";\n TAG_ID[TAG_ID[\"IMG\"] = 53] = \"IMG\";\n TAG_ID[TAG_ID[\"IMAGE\"] = 54] = \"IMAGE\";\n TAG_ID[TAG_ID[\"INPUT\"] = 55] = \"INPUT\";\n TAG_ID[TAG_ID[\"IFRAME\"] = 56] = \"IFRAME\";\n TAG_ID[TAG_ID[\"KEYGEN\"] = 57] = \"KEYGEN\";\n TAG_ID[TAG_ID[\"LABEL\"] = 58] = \"LABEL\";\n TAG_ID[TAG_ID[\"LI\"] = 59] = \"LI\";\n TAG_ID[TAG_ID[\"LINK\"] = 60] = \"LINK\";\n TAG_ID[TAG_ID[\"LISTING\"] = 61] = \"LISTING\";\n TAG_ID[TAG_ID[\"MAIN\"] = 62] = \"MAIN\";\n TAG_ID[TAG_ID[\"MALIGNMARK\"] = 63] = \"MALIGNMARK\";\n TAG_ID[TAG_ID[\"MARQUEE\"] = 64] = \"MARQUEE\";\n TAG_ID[TAG_ID[\"MATH\"] = 65] = \"MATH\";\n TAG_ID[TAG_ID[\"MENU\"] = 66] = \"MENU\";\n TAG_ID[TAG_ID[\"META\"] = 67] = \"META\";\n TAG_ID[TAG_ID[\"MGLYPH\"] = 68] = \"MGLYPH\";\n TAG_ID[TAG_ID[\"MI\"] = 69] = \"MI\";\n TAG_ID[TAG_ID[\"MO\"] = 70] = \"MO\";\n TAG_ID[TAG_ID[\"MN\"] = 71] = \"MN\";\n TAG_ID[TAG_ID[\"MS\"] = 72] = \"MS\";\n TAG_ID[TAG_ID[\"MTEXT\"] = 73] = \"MTEXT\";\n TAG_ID[TAG_ID[\"NAV\"] = 74] = \"NAV\";\n TAG_ID[TAG_ID[\"NOBR\"] = 75] = \"NOBR\";\n TAG_ID[TAG_ID[\"NOFRAMES\"] = 76] = \"NOFRAMES\";\n TAG_ID[TAG_ID[\"NOEMBED\"] = 77] = \"NOEMBED\";\n TAG_ID[TAG_ID[\"NOSCRIPT\"] = 78] = \"NOSCRIPT\";\n TAG_ID[TAG_ID[\"OBJECT\"] = 79] = \"OBJECT\";\n TAG_ID[TAG_ID[\"OL\"] = 80] = \"OL\";\n TAG_ID[TAG_ID[\"OPTGROUP\"] = 81] = \"OPTGROUP\";\n TAG_ID[TAG_ID[\"OPTION\"] = 82] = \"OPTION\";\n TAG_ID[TAG_ID[\"P\"] = 83] = \"P\";\n TAG_ID[TAG_ID[\"PARAM\"] = 84] = \"PARAM\";\n TAG_ID[TAG_ID[\"PLAINTEXT\"] = 85] = \"PLAINTEXT\";\n TAG_ID[TAG_ID[\"PRE\"] = 86] = \"PRE\";\n TAG_ID[TAG_ID[\"RB\"] = 87] = \"RB\";\n TAG_ID[TAG_ID[\"RP\"] = 88] = \"RP\";\n TAG_ID[TAG_ID[\"RT\"] = 89] = \"RT\";\n TAG_ID[TAG_ID[\"RTC\"] = 90] = \"RTC\";\n TAG_ID[TAG_ID[\"RUBY\"] = 91] = \"RUBY\";\n TAG_ID[TAG_ID[\"S\"] = 92] = \"S\";\n TAG_ID[TAG_ID[\"SCRIPT\"] = 93] = \"SCRIPT\";\n TAG_ID[TAG_ID[\"SEARCH\"] = 94] = \"SEARCH\";\n TAG_ID[TAG_ID[\"SECTION\"] = 95] = \"SECTION\";\n TAG_ID[TAG_ID[\"SELECT\"] = 96] = \"SELECT\";\n TAG_ID[TAG_ID[\"SOURCE\"] = 97] = \"SOURCE\";\n TAG_ID[TAG_ID[\"SMALL\"] = 98] = \"SMALL\";\n TAG_ID[TAG_ID[\"SPAN\"] = 99] = \"SPAN\";\n TAG_ID[TAG_ID[\"STRIKE\"] = 100] = \"STRIKE\";\n TAG_ID[TAG_ID[\"STRONG\"] = 101] = \"STRONG\";\n TAG_ID[TAG_ID[\"STYLE\"] = 102] = \"STYLE\";\n TAG_ID[TAG_ID[\"SUB\"] = 103] = \"SUB\";\n TAG_ID[TAG_ID[\"SUMMARY\"] = 104] = \"SUMMARY\";\n TAG_ID[TAG_ID[\"SUP\"] = 105] = \"SUP\";\n TAG_ID[TAG_ID[\"TABLE\"] = 106] = \"TABLE\";\n TAG_ID[TAG_ID[\"TBODY\"] = 107] = \"TBODY\";\n TAG_ID[TAG_ID[\"TEMPLATE\"] = 108] = \"TEMPLATE\";\n TAG_ID[TAG_ID[\"TEXTAREA\"] = 109] = \"TEXTAREA\";\n TAG_ID[TAG_ID[\"TFOOT\"] = 110] = \"TFOOT\";\n TAG_ID[TAG_ID[\"TD\"] = 111] = \"TD\";\n TAG_ID[TAG_ID[\"TH\"] = 112] = \"TH\";\n TAG_ID[TAG_ID[\"THEAD\"] = 113] = \"THEAD\";\n TAG_ID[TAG_ID[\"TITLE\"] = 114] = \"TITLE\";\n TAG_ID[TAG_ID[\"TR\"] = 115] = \"TR\";\n TAG_ID[TAG_ID[\"TRACK\"] = 116] = \"TRACK\";\n TAG_ID[TAG_ID[\"TT\"] = 117] = \"TT\";\n TAG_ID[TAG_ID[\"U\"] = 118] = \"U\";\n TAG_ID[TAG_ID[\"UL\"] = 119] = \"UL\";\n TAG_ID[TAG_ID[\"SVG\"] = 120] = \"SVG\";\n TAG_ID[TAG_ID[\"VAR\"] = 121] = \"VAR\";\n TAG_ID[TAG_ID[\"WBR\"] = 122] = \"WBR\";\n TAG_ID[TAG_ID[\"XMP\"] = 123] = \"XMP\";\n})(TAG_ID || (TAG_ID = {}));\nconst TAG_NAME_TO_ID = new Map([\n [TAG_NAMES.A, TAG_ID.A],\n [TAG_NAMES.ADDRESS, TAG_ID.ADDRESS],\n [TAG_NAMES.ANNOTATION_XML, TAG_ID.ANNOTATION_XML],\n [TAG_NAMES.APPLET, TAG_ID.APPLET],\n [TAG_NAMES.AREA, TAG_ID.AREA],\n [TAG_NAMES.ARTICLE, TAG_ID.ARTICLE],\n [TAG_NAMES.ASIDE, TAG_ID.ASIDE],\n [TAG_NAMES.B, TAG_ID.B],\n [TAG_NAMES.BASE, TAG_ID.BASE],\n [TAG_NAMES.BASEFONT, TAG_ID.BASEFONT],\n [TAG_NAMES.BGSOUND, TAG_ID.BGSOUND],\n [TAG_NAMES.BIG, TAG_ID.BIG],\n [TAG_NAMES.BLOCKQUOTE, TAG_ID.BLOCKQUOTE],\n [TAG_NAMES.BODY, TAG_ID.BODY],\n [TAG_NAMES.BR, TAG_ID.BR],\n [TAG_NAMES.BUTTON, TAG_ID.BUTTON],\n [TAG_NAMES.CAPTION, TAG_ID.CAPTION],\n [TAG_NAMES.CENTER, TAG_ID.CENTER],\n [TAG_NAMES.CODE, TAG_ID.CODE],\n [TAG_NAMES.COL, TAG_ID.COL],\n [TAG_NAMES.COLGROUP, TAG_ID.COLGROUP],\n [TAG_NAMES.DD, TAG_ID.DD],\n [TAG_NAMES.DESC, TAG_ID.DESC],\n [TAG_NAMES.DETAILS, TAG_ID.DETAILS],\n [TAG_NAMES.DIALOG, TAG_ID.DIALOG],\n [TAG_NAMES.DIR, TAG_ID.DIR],\n [TAG_NAMES.DIV, TAG_ID.DIV],\n [TAG_NAMES.DL, TAG_ID.DL],\n [TAG_NAMES.DT, TAG_ID.DT],\n [TAG_NAMES.EM, TAG_ID.EM],\n [TAG_NAMES.EMBED, TAG_ID.EMBED],\n [TAG_NAMES.FIELDSET, TAG_ID.FIELDSET],\n [TAG_NAMES.FIGCAPTION, TAG_ID.FIGCAPTION],\n [TAG_NAMES.FIGURE, TAG_ID.FIGURE],\n [TAG_NAMES.FONT, TAG_ID.FONT],\n [TAG_NAMES.FOOTER, TAG_ID.FOOTER],\n [TAG_NAMES.FOREIGN_OBJECT, TAG_ID.FOREIGN_OBJECT],\n [TAG_NAMES.FORM, TAG_ID.FORM],\n [TAG_NAMES.FRAME, TAG_ID.FRAME],\n [TAG_NAMES.FRAMESET, TAG_ID.FRAMESET],\n [TAG_NAMES.H1, TAG_ID.H1],\n [TAG_NAMES.H2, TAG_ID.H2],\n [TAG_NAMES.H3, TAG_ID.H3],\n [TAG_NAMES.H4, TAG_ID.H4],\n [TAG_NAMES.H5, TAG_ID.H5],\n [TAG_NAMES.H6, TAG_ID.H6],\n [TAG_NAMES.HEAD, TAG_ID.HEAD],\n [TAG_NAMES.HEADER, TAG_ID.HEADER],\n [TAG_NAMES.HGROUP, TAG_ID.HGROUP],\n [TAG_NAMES.HR, TAG_ID.HR],\n [TAG_NAMES.HTML, TAG_ID.HTML],\n [TAG_NAMES.I, TAG_ID.I],\n [TAG_NAMES.IMG, TAG_ID.IMG],\n [TAG_NAMES.IMAGE, TAG_ID.IMAGE],\n [TAG_NAMES.INPUT, TAG_ID.INPUT],\n [TAG_NAMES.IFRAME, TAG_ID.IFRAME],\n [TAG_NAMES.KEYGEN, TAG_ID.KEYGEN],\n [TAG_NAMES.LABEL, TAG_ID.LABEL],\n [TAG_NAMES.LI, TAG_ID.LI],\n [TAG_NAMES.LINK, TAG_ID.LINK],\n [TAG_NAMES.LISTING, TAG_ID.LISTING],\n [TAG_NAMES.MAIN, TAG_ID.MAIN],\n [TAG_NAMES.MALIGNMARK, TAG_ID.MALIGNMARK],\n [TAG_NAMES.MARQUEE, TAG_ID.MARQUEE],\n [TAG_NAMES.MATH, TAG_ID.MATH],\n [TAG_NAMES.MENU, TAG_ID.MENU],\n [TAG_NAMES.META, TAG_ID.META],\n [TAG_NAMES.MGLYPH, TAG_ID.MGLYPH],\n [TAG_NAMES.MI, TAG_ID.MI],\n [TAG_NAMES.MO, TAG_ID.MO],\n [TAG_NAMES.MN, TAG_ID.MN],\n [TAG_NAMES.MS, TAG_ID.MS],\n [TAG_NAMES.MTEXT, TAG_ID.MTEXT],\n [TAG_NAMES.NAV, TAG_ID.NAV],\n [TAG_NAMES.NOBR, TAG_ID.NOBR],\n [TAG_NAMES.NOFRAMES, TAG_ID.NOFRAMES],\n [TAG_NAMES.NOEMBED, TAG_ID.NOEMBED],\n [TAG_NAMES.NOSCRIPT, TAG_ID.NOSCRIPT],\n [TAG_NAMES.OBJECT, TAG_ID.OBJECT],\n [TAG_NAMES.OL, TAG_ID.OL],\n [TAG_NAMES.OPTGROUP, TAG_ID.OPTGROUP],\n [TAG_NAMES.OPTION, TAG_ID.OPTION],\n [TAG_NAMES.P, TAG_ID.P],\n [TAG_NAMES.PARAM, TAG_ID.PARAM],\n [TAG_NAMES.PLAINTEXT, TAG_ID.PLAINTEXT],\n [TAG_NAMES.PRE, TAG_ID.PRE],\n [TAG_NAMES.RB, TAG_ID.RB],\n [TAG_NAMES.RP, TAG_ID.RP],\n [TAG_NAMES.RT, TAG_ID.RT],\n [TAG_NAMES.RTC, TAG_ID.RTC],\n [TAG_NAMES.RUBY, TAG_ID.RUBY],\n [TAG_NAMES.S, TAG_ID.S],\n [TAG_NAMES.SCRIPT, TAG_ID.SCRIPT],\n [TAG_NAMES.SEARCH, TAG_ID.SEARCH],\n [TAG_NAMES.SECTION, TAG_ID.SECTION],\n [TAG_NAMES.SELECT, TAG_ID.SELECT],\n [TAG_NAMES.SOURCE, TAG_ID.SOURCE],\n [TAG_NAMES.SMALL, TAG_ID.SMALL],\n [TAG_NAMES.SPAN, TAG_ID.SPAN],\n [TAG_NAMES.STRIKE, TAG_ID.STRIKE],\n [TAG_NAMES.STRONG, TAG_ID.STRONG],\n [TAG_NAMES.STYLE, TAG_ID.STYLE],\n [TAG_NAMES.SUB, TAG_ID.SUB],\n [TAG_NAMES.SUMMARY, TAG_ID.SUMMARY],\n [TAG_NAMES.SUP, TAG_ID.SUP],\n [TAG_NAMES.TABLE, TAG_ID.TABLE],\n [TAG_NAMES.TBODY, TAG_ID.TBODY],\n [TAG_NAMES.TEMPLATE, TAG_ID.TEMPLATE],\n [TAG_NAMES.TEXTAREA, TAG_ID.TEXTAREA],\n [TAG_NAMES.TFOOT, TAG_ID.TFOOT],\n [TAG_NAMES.TD, TAG_ID.TD],\n [TAG_NAMES.TH, TAG_ID.TH],\n [TAG_NAMES.THEAD, TAG_ID.THEAD],\n [TAG_NAMES.TITLE, TAG_ID.TITLE],\n [TAG_NAMES.TR, TAG_ID.TR],\n [TAG_NAMES.TRACK, TAG_ID.TRACK],\n [TAG_NAMES.TT, TAG_ID.TT],\n [TAG_NAMES.U, TAG_ID.U],\n [TAG_NAMES.UL, TAG_ID.UL],\n [TAG_NAMES.SVG, TAG_ID.SVG],\n [TAG_NAMES.VAR, TAG_ID.VAR],\n [TAG_NAMES.WBR, TAG_ID.WBR],\n [TAG_NAMES.XMP, TAG_ID.XMP],\n]);\nexport function getTagID(tagName) {\n var _a;\n return (_a = TAG_NAME_TO_ID.get(tagName)) !== null && _a !== void 0 ? _a : TAG_ID.UNKNOWN;\n}\nconst $ = TAG_ID;\nexport const SPECIAL_ELEMENTS = {\n [NS.HTML]: new Set([\n $.ADDRESS,\n $.APPLET,\n $.AREA,\n $.ARTICLE,\n $.ASIDE,\n $.BASE,\n $.BASEFONT,\n $.BGSOUND,\n $.BLOCKQUOTE,\n $.BODY,\n $.BR,\n $.BUTTON,\n $.CAPTION,\n $.CENTER,\n $.COL,\n $.COLGROUP,\n $.DD,\n $.DETAILS,\n $.DIR,\n $.DIV,\n $.DL,\n $.DT,\n $.EMBED,\n $.FIELDSET,\n $.FIGCAPTION,\n $.FIGURE,\n $.FOOTER,\n $.FORM,\n $.FRAME,\n $.FRAMESET,\n $.H1,\n $.H2,\n $.H3,\n $.H4,\n $.H5,\n $.H6,\n $.HEAD,\n $.HEADER,\n $.HGROUP,\n $.HR,\n $.HTML,\n $.IFRAME,\n $.IMG,\n $.INPUT,\n $.LI,\n $.LINK,\n $.LISTING,\n $.MAIN,\n $.MARQUEE,\n $.MENU,\n $.META,\n $.NAV,\n $.NOEMBED,\n $.NOFRAMES,\n $.NOSCRIPT,\n $.OBJECT,\n $.OL,\n $.P,\n $.PARAM,\n $.PLAINTEXT,\n $.PRE,\n $.SCRIPT,\n $.SECTION,\n $.SELECT,\n $.SOURCE,\n $.STYLE,\n $.SUMMARY,\n $.TABLE,\n $.TBODY,\n $.TD,\n $.TEMPLATE,\n $.TEXTAREA,\n $.TFOOT,\n $.TH,\n $.THEAD,\n $.TITLE,\n $.TR,\n $.TRACK,\n $.UL,\n $.WBR,\n $.XMP,\n ]),\n [NS.MATHML]: new Set([$.MI, $.MO, $.MN, $.MS, $.MTEXT, $.ANNOTATION_XML]),\n [NS.SVG]: new Set([$.TITLE, $.FOREIGN_OBJECT, $.DESC]),\n [NS.XLINK]: new Set(),\n [NS.XML]: new Set(),\n [NS.XMLNS]: new Set(),\n};\nexport const NUMBERED_HEADERS = new Set([$.H1, $.H2, $.H3, $.H4, $.H5, $.H6]);\nconst UNESCAPED_TEXT = new Set([\n TAG_NAMES.STYLE,\n TAG_NAMES.SCRIPT,\n TAG_NAMES.XMP,\n TAG_NAMES.IFRAME,\n TAG_NAMES.NOEMBED,\n TAG_NAMES.NOFRAMES,\n TAG_NAMES.PLAINTEXT,\n]);\nexport function hasUnescapedText(tn, scriptingEnabled) {\n return UNESCAPED_TEXT.has(tn) || (scriptingEnabled && tn === TAG_NAMES.NOSCRIPT);\n}\n","import { Preprocessor } from './preprocessor.js';\nimport { CODE_POINTS as $, SEQUENCES as $$, REPLACEMENT_CHARACTER, isSurrogate, isUndefinedCodePoint, isControlCodePoint, } from '../common/unicode.js';\nimport { TokenType, getTokenAttr, } from '../common/token.js';\nimport { htmlDecodeTree, EntityDecoder, DecodingMode } from 'entities/lib/decode.js';\nimport { ERR } from '../common/error-codes.js';\nimport { TAG_ID, getTagID } from '../common/html.js';\n//States\nvar State;\n(function (State) {\n State[State[\"DATA\"] = 0] = \"DATA\";\n State[State[\"RCDATA\"] = 1] = \"RCDATA\";\n State[State[\"RAWTEXT\"] = 2] = \"RAWTEXT\";\n State[State[\"SCRIPT_DATA\"] = 3] = \"SCRIPT_DATA\";\n State[State[\"PLAINTEXT\"] = 4] = \"PLAINTEXT\";\n State[State[\"TAG_OPEN\"] = 5] = \"TAG_OPEN\";\n State[State[\"END_TAG_OPEN\"] = 6] = \"END_TAG_OPEN\";\n State[State[\"TAG_NAME\"] = 7] = \"TAG_NAME\";\n State[State[\"RCDATA_LESS_THAN_SIGN\"] = 8] = \"RCDATA_LESS_THAN_SIGN\";\n State[State[\"RCDATA_END_TAG_OPEN\"] = 9] = \"RCDATA_END_TAG_OPEN\";\n State[State[\"RCDATA_END_TAG_NAME\"] = 10] = \"RCDATA_END_TAG_NAME\";\n State[State[\"RAWTEXT_LESS_THAN_SIGN\"] = 11] = \"RAWTEXT_LESS_THAN_SIGN\";\n State[State[\"RAWTEXT_END_TAG_OPEN\"] = 12] = \"RAWTEXT_END_TAG_OPEN\";\n State[State[\"RAWTEXT_END_TAG_NAME\"] = 13] = \"RAWTEXT_END_TAG_NAME\";\n State[State[\"SCRIPT_DATA_LESS_THAN_SIGN\"] = 14] = \"SCRIPT_DATA_LESS_THAN_SIGN\";\n State[State[\"SCRIPT_DATA_END_TAG_OPEN\"] = 15] = \"SCRIPT_DATA_END_TAG_OPEN\";\n State[State[\"SCRIPT_DATA_END_TAG_NAME\"] = 16] = \"SCRIPT_DATA_END_TAG_NAME\";\n State[State[\"SCRIPT_DATA_ESCAPE_START\"] = 17] = \"SCRIPT_DATA_ESCAPE_START\";\n State[State[\"SCRIPT_DATA_ESCAPE_START_DASH\"] = 18] = \"SCRIPT_DATA_ESCAPE_START_DASH\";\n State[State[\"SCRIPT_DATA_ESCAPED\"] = 19] = \"SCRIPT_DATA_ESCAPED\";\n State[State[\"SCRIPT_DATA_ESCAPED_DASH\"] = 20] = \"SCRIPT_DATA_ESCAPED_DASH\";\n State[State[\"SCRIPT_DATA_ESCAPED_DASH_DASH\"] = 21] = \"SCRIPT_DATA_ESCAPED_DASH_DASH\";\n State[State[\"SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN\"] = 22] = \"SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN\";\n State[State[\"SCRIPT_DATA_ESCAPED_END_TAG_OPEN\"] = 23] = \"SCRIPT_DATA_ESCAPED_END_TAG_OPEN\";\n State[State[\"SCRIPT_DATA_ESCAPED_END_TAG_NAME\"] = 24] = \"SCRIPT_DATA_ESCAPED_END_TAG_NAME\";\n State[State[\"SCRIPT_DATA_DOUBLE_ESCAPE_START\"] = 25] = \"SCRIPT_DATA_DOUBLE_ESCAPE_START\";\n State[State[\"SCRIPT_DATA_DOUBLE_ESCAPED\"] = 26] = \"SCRIPT_DATA_DOUBLE_ESCAPED\";\n State[State[\"SCRIPT_DATA_DOUBLE_ESCAPED_DASH\"] = 27] = \"SCRIPT_DATA_DOUBLE_ESCAPED_DASH\";\n State[State[\"SCRIPT_DATA_DOUBLE_ESCAPED_DASH_DASH\"] = 28] = \"SCRIPT_DATA_DOUBLE_ESCAPED_DASH_DASH\";\n State[State[\"SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN\"] = 29] = \"SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN\";\n State[State[\"SCRIPT_DATA_DOUBLE_ESCAPE_END\"] = 30] = \"SCRIPT_DATA_DOUBLE_ESCAPE_END\";\n State[State[\"BEFORE_ATTRIBUTE_NAME\"] = 31] = \"BEFORE_ATTRIBUTE_NAME\";\n State[State[\"ATTRIBUTE_NAME\"] = 32] = \"ATTRIBUTE_NAME\";\n State[State[\"AFTER_ATTRIBUTE_NAME\"] = 33] = \"AFTER_ATTRIBUTE_NAME\";\n State[State[\"BEFORE_ATTRIBUTE_VALUE\"] = 34] = \"BEFORE_ATTRIBUTE_VALUE\";\n State[State[\"ATTRIBUTE_VALUE_DOUBLE_QUOTED\"] = 35] = \"ATTRIBUTE_VALUE_DOUBLE_QUOTED\";\n State[State[\"ATTRIBUTE_VALUE_SINGLE_QUOTED\"] = 36] = \"ATTRIBUTE_VALUE_SINGLE_QUOTED\";\n State[State[\"ATTRIBUTE_VALUE_UNQUOTED\"] = 37] = \"ATTRIBUTE_VALUE_UNQUOTED\";\n State[State[\"AFTER_ATTRIBUTE_VALUE_QUOTED\"] = 38] = \"AFTER_ATTRIBUTE_VALUE_QUOTED\";\n State[State[\"SELF_CLOSING_START_TAG\"] = 39] = \"SELF_CLOSING_START_TAG\";\n State[State[\"BOGUS_COMMENT\"] = 40] = \"BOGUS_COMMENT\";\n State[State[\"MARKUP_DECLARATION_OPEN\"] = 41] = \"MARKUP_DECLARATION_OPEN\";\n State[State[\"COMMENT_START\"] = 42] = \"COMMENT_START\";\n State[State[\"COMMENT_START_DASH\"] = 43] = \"COMMENT_START_DASH\";\n State[State[\"COMMENT\"] = 44] = \"COMMENT\";\n State[State[\"COMMENT_LESS_THAN_SIGN\"] = 45] = \"COMMENT_LESS_THAN_SIGN\";\n State[State[\"COMMENT_LESS_THAN_SIGN_BANG\"] = 46] = \"COMMENT_LESS_THAN_SIGN_BANG\";\n State[State[\"COMMENT_LESS_THAN_SIGN_BANG_DASH\"] = 47] = \"COMMENT_LESS_THAN_SIGN_BANG_DASH\";\n State[State[\"COMMENT_LESS_THAN_SIGN_BANG_DASH_DASH\"] = 48] = \"COMMENT_LESS_THAN_SIGN_BANG_DASH_DASH\";\n State[State[\"COMMENT_END_DASH\"] = 49] = \"COMMENT_END_DASH\";\n State[State[\"COMMENT_END\"] = 50] = \"COMMENT_END\";\n State[State[\"COMMENT_END_BANG\"] = 51] = \"COMMENT_END_BANG\";\n State[State[\"DOCTYPE\"] = 52] = \"DOCTYPE\";\n State[State[\"BEFORE_DOCTYPE_NAME\"] = 53] = \"BEFORE_DOCTYPE_NAME\";\n State[State[\"DOCTYPE_NAME\"] = 54] = \"DOCTYPE_NAME\";\n State[State[\"AFTER_DOCTYPE_NAME\"] = 55] = \"AFTER_DOCTYPE_NAME\";\n State[State[\"AFTER_DOCTYPE_PUBLIC_KEYWORD\"] = 56] = \"AFTER_DOCTYPE_PUBLIC_KEYWORD\";\n State[State[\"BEFORE_DOCTYPE_PUBLIC_IDENTIFIER\"] = 57] = \"BEFORE_DOCTYPE_PUBLIC_IDENTIFIER\";\n State[State[\"DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED\"] = 58] = \"DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED\";\n State[State[\"DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED\"] = 59] = \"DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED\";\n State[State[\"AFTER_DOCTYPE_PUBLIC_IDENTIFIER\"] = 60] = \"AFTER_DOCTYPE_PUBLIC_IDENTIFIER\";\n State[State[\"BETWEEN_DOCTYPE_PUBLIC_AND_SYSTEM_IDENTIFIERS\"] = 61] = \"BETWEEN_DOCTYPE_PUBLIC_AND_SYSTEM_IDENTIFIERS\";\n State[State[\"AFTER_DOCTYPE_SYSTEM_KEYWORD\"] = 62] = \"AFTER_DOCTYPE_SYSTEM_KEYWORD\";\n State[State[\"BEFORE_DOCTYPE_SYSTEM_IDENTIFIER\"] = 63] = \"BEFORE_DOCTYPE_SYSTEM_IDENTIFIER\";\n State[State[\"DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED\"] = 64] = \"DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED\";\n State[State[\"DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED\"] = 65] = \"DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED\";\n State[State[\"AFTER_DOCTYPE_SYSTEM_IDENTIFIER\"] = 66] = \"AFTER_DOCTYPE_SYSTEM_IDENTIFIER\";\n State[State[\"BOGUS_DOCTYPE\"] = 67] = \"BOGUS_DOCTYPE\";\n State[State[\"CDATA_SECTION\"] = 68] = \"CDATA_SECTION\";\n State[State[\"CDATA_SECTION_BRACKET\"] = 69] = \"CDATA_SECTION_BRACKET\";\n State[State[\"CDATA_SECTION_END\"] = 70] = \"CDATA_SECTION_END\";\n State[State[\"CHARACTER_REFERENCE\"] = 71] = \"CHARACTER_REFERENCE\";\n State[State[\"AMBIGUOUS_AMPERSAND\"] = 72] = \"AMBIGUOUS_AMPERSAND\";\n})(State || (State = {}));\n//Tokenizer initial states for different modes\nexport const TokenizerMode = {\n DATA: State.DATA,\n RCDATA: State.RCDATA,\n RAWTEXT: State.RAWTEXT,\n SCRIPT_DATA: State.SCRIPT_DATA,\n PLAINTEXT: State.PLAINTEXT,\n CDATA_SECTION: State.CDATA_SECTION,\n};\n//Utils\n//OPTIMIZATION: these utility functions should not be moved out of this module. V8 Crankshaft will not inline\n//this functions if they will be situated in another module due to context switch.\n//Always perform inlining check before modifying this functions ('node --trace-inlining').\nfunction isAsciiDigit(cp) {\n return cp >= $.DIGIT_0 && cp <= $.DIGIT_9;\n}\nfunction isAsciiUpper(cp) {\n return cp >= $.LATIN_CAPITAL_A && cp <= $.LATIN_CAPITAL_Z;\n}\nfunction isAsciiLower(cp) {\n return cp >= $.LATIN_SMALL_A && cp <= $.LATIN_SMALL_Z;\n}\nfunction isAsciiLetter(cp) {\n return isAsciiLower(cp) || isAsciiUpper(cp);\n}\nfunction isAsciiAlphaNumeric(cp) {\n return isAsciiLetter(cp) || isAsciiDigit(cp);\n}\nfunction toAsciiLower(cp) {\n return cp + 32;\n}\nfunction isWhitespace(cp) {\n return cp === $.SPACE || cp === $.LINE_FEED || cp === $.TABULATION || cp === $.FORM_FEED;\n}\nfunction isScriptDataDoubleEscapeSequenceEnd(cp) {\n return isWhitespace(cp) || cp === $.SOLIDUS || cp === $.GREATER_THAN_SIGN;\n}\nfunction getErrorForNumericCharacterReference(code) {\n if (code === $.NULL) {\n return ERR.nullCharacterReference;\n }\n else if (code > 1114111) {\n return ERR.characterReferenceOutsideUnicodeRange;\n }\n else if (isSurrogate(code)) {\n return ERR.surrogateCharacterReference;\n }\n else if (isUndefinedCodePoint(code)) {\n return ERR.noncharacterCharacterReference;\n }\n else if (isControlCodePoint(code) || code === $.CARRIAGE_RETURN) {\n return ERR.controlCharacterReference;\n }\n return null;\n}\n//Tokenizer\nexport class Tokenizer {\n constructor(options, handler) {\n this.options = options;\n this.handler = handler;\n this.paused = false;\n /** Ensures that the parsing loop isn't run multiple times at once. */\n this.inLoop = false;\n /**\n * Indicates that the current adjusted node exists, is not an element in the HTML namespace,\n * and that it is not an integration point for either MathML or HTML.\n *\n * @see {@link https://html.spec.whatwg.org/multipage/parsing.html#tree-construction}\n */\n this.inForeignNode = false;\n this.lastStartTagName = '';\n this.active = false;\n this.state = State.DATA;\n this.returnState = State.DATA;\n this.entityStartPos = 0;\n this.consumedAfterSnapshot = -1;\n this.currentCharacterToken = null;\n this.currentToken = null;\n this.currentAttr = { name: '', value: '' };\n this.preprocessor = new Preprocessor(handler);\n this.currentLocation = this.getCurrentLocation(-1);\n this.entityDecoder = new EntityDecoder(htmlDecodeTree, (cp, consumed) => {\n // Note: Set `pos` _before_ flushing, as flushing might drop\n // the current chunk and invalidate `entityStartPos`.\n this.preprocessor.pos = this.entityStartPos + consumed - 1;\n this._flushCodePointConsumedAsCharacterReference(cp);\n }, handler.onParseError\n ? {\n missingSemicolonAfterCharacterReference: () => {\n this._err(ERR.missingSemicolonAfterCharacterReference, 1);\n },\n absenceOfDigitsInNumericCharacterReference: (consumed) => {\n this._err(ERR.absenceOfDigitsInNumericCharacterReference, this.entityStartPos - this.preprocessor.pos + consumed);\n },\n validateNumericCharacterReference: (code) => {\n const error = getErrorForNumericCharacterReference(code);\n if (error)\n this._err(error, 1);\n },\n }\n : undefined);\n }\n //Errors\n _err(code, cpOffset = 0) {\n var _a, _b;\n (_b = (_a = this.handler).onParseError) === null || _b === void 0 ? void 0 : _b.call(_a, this.preprocessor.getError(code, cpOffset));\n }\n // NOTE: `offset` may never run across line boundaries.\n getCurrentLocation(offset) {\n if (!this.options.sourceCodeLocationInfo) {\n return null;\n }\n return {\n startLine: this.preprocessor.line,\n startCol: this.preprocessor.col - offset,\n startOffset: this.preprocessor.offset - offset,\n endLine: -1,\n endCol: -1,\n endOffset: -1,\n };\n }\n _runParsingLoop() {\n if (this.inLoop)\n return;\n this.inLoop = true;\n while (this.active && !this.paused) {\n this.consumedAfterSnapshot = 0;\n const cp = this._consume();\n if (!this._ensureHibernation()) {\n this._callState(cp);\n }\n }\n this.inLoop = false;\n }\n //API\n pause() {\n this.paused = true;\n }\n resume(writeCallback) {\n if (!this.paused) {\n throw new Error('Parser was already resumed');\n }\n this.paused = false;\n // Necessary for synchronous resume.\n if (this.inLoop)\n return;\n this._runParsingLoop();\n if (!this.paused) {\n writeCallback === null || writeCallback === void 0 ? void 0 : writeCallback();\n }\n }\n write(chunk, isLastChunk, writeCallback) {\n this.active = true;\n this.preprocessor.write(chunk, isLastChunk);\n this._runParsingLoop();\n if (!this.paused) {\n writeCallback === null || writeCallback === void 0 ? void 0 : writeCallback();\n }\n }\n insertHtmlAtCurrentPos(chunk) {\n this.active = true;\n this.preprocessor.insertHtmlAtCurrentPos(chunk);\n this._runParsingLoop();\n }\n //Hibernation\n _ensureHibernation() {\n if (this.preprocessor.endOfChunkHit) {\n this.preprocessor.retreat(this.consumedAfterSnapshot);\n this.consumedAfterSnapshot = 0;\n this.active = false;\n return true;\n }\n return false;\n }\n //Consumption\n _consume() {\n this.consumedAfterSnapshot++;\n return this.preprocessor.advance();\n }\n _advanceBy(count) {\n this.consumedAfterSnapshot += count;\n for (let i = 0; i < count; i++) {\n this.preprocessor.advance();\n }\n }\n _consumeSequenceIfMatch(pattern, caseSensitive) {\n if (this.preprocessor.startsWith(pattern, caseSensitive)) {\n // We will already have consumed one character before calling this method.\n this._advanceBy(pattern.length - 1);\n return true;\n }\n return false;\n }\n //Token creation\n _createStartTagToken() {\n this.currentToken = {\n type: TokenType.START_TAG,\n tagName: '',\n tagID: TAG_ID.UNKNOWN,\n selfClosing: false,\n ackSelfClosing: false,\n attrs: [],\n location: this.getCurrentLocation(1),\n };\n }\n _createEndTagToken() {\n this.currentToken = {\n type: TokenType.END_TAG,\n tagName: '',\n tagID: TAG_ID.UNKNOWN,\n selfClosing: false,\n ackSelfClosing: false,\n attrs: [],\n location: this.getCurrentLocation(2),\n };\n }\n _createCommentToken(offset) {\n this.currentToken = {\n type: TokenType.COMMENT,\n data: '',\n location: this.getCurrentLocation(offset),\n };\n }\n _createDoctypeToken(initialName) {\n this.currentToken = {\n type: TokenType.DOCTYPE,\n name: initialName,\n forceQuirks: false,\n publicId: null,\n systemId: null,\n location: this.currentLocation,\n };\n }\n _createCharacterToken(type, chars) {\n this.currentCharacterToken = {\n type,\n chars,\n location: this.currentLocation,\n };\n }\n //Tag attributes\n _createAttr(attrNameFirstCh) {\n this.currentAttr = {\n name: attrNameFirstCh,\n value: '',\n };\n this.currentLocation = this.getCurrentLocation(0);\n }\n _leaveAttrName() {\n var _a;\n var _b;\n const token = this.currentToken;\n if (getTokenAttr(token, this.currentAttr.name) === null) {\n token.attrs.push(this.currentAttr);\n if (token.location && this.currentLocation) {\n const attrLocations = ((_a = (_b = token.location).attrs) !== null && _a !== void 0 ? _a : (_b.attrs = Object.create(null)));\n attrLocations[this.currentAttr.name] = this.currentLocation;\n // Set end location\n this._leaveAttrValue();\n }\n }\n else {\n this._err(ERR.duplicateAttribute);\n }\n }\n _leaveAttrValue() {\n if (this.currentLocation) {\n this.currentLocation.endLine = this.preprocessor.line;\n this.currentLocation.endCol = this.preprocessor.col;\n this.currentLocation.endOffset = this.preprocessor.offset;\n }\n }\n //Token emission\n prepareToken(ct) {\n this._emitCurrentCharacterToken(ct.location);\n this.currentToken = null;\n if (ct.location) {\n ct.location.endLine = this.preprocessor.line;\n ct.location.endCol = this.preprocessor.col + 1;\n ct.location.endOffset = this.preprocessor.offset + 1;\n }\n this.currentLocation = this.getCurrentLocation(-1);\n }\n emitCurrentTagToken() {\n const ct = this.currentToken;\n this.prepareToken(ct);\n ct.tagID = getTagID(ct.tagName);\n if (ct.type === TokenType.START_TAG) {\n this.lastStartTagName = ct.tagName;\n this.handler.onStartTag(ct);\n }\n else {\n if (ct.attrs.length > 0) {\n this._err(ERR.endTagWithAttributes);\n }\n if (ct.selfClosing) {\n this._err(ERR.endTagWithTrailingSolidus);\n }\n this.handler.onEndTag(ct);\n }\n this.preprocessor.dropParsedChunk();\n }\n emitCurrentComment(ct) {\n this.prepareToken(ct);\n this.handler.onComment(ct);\n this.preprocessor.dropParsedChunk();\n }\n emitCurrentDoctype(ct) {\n this.prepareToken(ct);\n this.handler.onDoctype(ct);\n this.preprocessor.dropParsedChunk();\n }\n _emitCurrentCharacterToken(nextLocation) {\n if (this.currentCharacterToken) {\n //NOTE: if we have a pending character token, make it's end location equal to the\n //current token's start location.\n if (nextLocation && this.currentCharacterToken.location) {\n this.currentCharacterToken.location.endLine = nextLocation.startLine;\n this.currentCharacterToken.location.endCol = nextLocation.startCol;\n this.currentCharacterToken.location.endOffset = nextLocation.startOffset;\n }\n switch (this.currentCharacterToken.type) {\n case TokenType.CHARACTER: {\n this.handler.onCharacter(this.currentCharacterToken);\n break;\n }\n case TokenType.NULL_CHARACTER: {\n this.handler.onNullCharacter(this.currentCharacterToken);\n break;\n }\n case TokenType.WHITESPACE_CHARACTER: {\n this.handler.onWhitespaceCharacter(this.currentCharacterToken);\n break;\n }\n }\n this.currentCharacterToken = null;\n }\n }\n _emitEOFToken() {\n const location = this.getCurrentLocation(0);\n if (location) {\n location.endLine = location.startLine;\n location.endCol = location.startCol;\n location.endOffset = location.startOffset;\n }\n this._emitCurrentCharacterToken(location);\n this.handler.onEof({ type: TokenType.EOF, location });\n this.active = false;\n }\n //Characters emission\n //OPTIMIZATION: The specification uses only one type of character token (one token per character).\n //This causes a huge memory overhead and a lot of unnecessary parser loops. parse5 uses 3 groups of characters.\n //If we have a sequence of characters that belong to the same group, the parser can process it\n //as a single solid character token.\n //So, there are 3 types of character tokens in parse5:\n //1)TokenType.NULL_CHARACTER - \\u0000-character sequences (e.g. '\\u0000\\u0000\\u0000')\n //2)TokenType.WHITESPACE_CHARACTER - any whitespace/new-line character sequences (e.g. '\\n \\r\\t \\f')\n //3)TokenType.CHARACTER - any character sequence which don't belong to groups 1 and 2 (e.g. 'abcdef1234@@#$%^')\n _appendCharToCurrentCharacterToken(type, ch) {\n if (this.currentCharacterToken) {\n if (this.currentCharacterToken.type === type) {\n this.currentCharacterToken.chars += ch;\n return;\n }\n else {\n this.currentLocation = this.getCurrentLocation(0);\n this._emitCurrentCharacterToken(this.currentLocation);\n this.preprocessor.dropParsedChunk();\n }\n }\n this._createCharacterToken(type, ch);\n }\n _emitCodePoint(cp) {\n const type = isWhitespace(cp)\n ? TokenType.WHITESPACE_CHARACTER\n : cp === $.NULL\n ? TokenType.NULL_CHARACTER\n : TokenType.CHARACTER;\n this._appendCharToCurrentCharacterToken(type, String.fromCodePoint(cp));\n }\n //NOTE: used when we emit characters explicitly.\n //This is always for non-whitespace and non-null characters, which allows us to avoid additional checks.\n _emitChars(ch) {\n this._appendCharToCurrentCharacterToken(TokenType.CHARACTER, ch);\n }\n // Character reference helpers\n _startCharacterReference() {\n this.returnState = this.state;\n this.state = State.CHARACTER_REFERENCE;\n this.entityStartPos = this.preprocessor.pos;\n this.entityDecoder.startEntity(this._isCharacterReferenceInAttribute() ? DecodingMode.Attribute : DecodingMode.Legacy);\n }\n _isCharacterReferenceInAttribute() {\n return (this.returnState === State.ATTRIBUTE_VALUE_DOUBLE_QUOTED ||\n this.returnState === State.ATTRIBUTE_VALUE_SINGLE_QUOTED ||\n this.returnState === State.ATTRIBUTE_VALUE_UNQUOTED);\n }\n _flushCodePointConsumedAsCharacterReference(cp) {\n if (this._isCharacterReferenceInAttribute()) {\n this.currentAttr.value += String.fromCodePoint(cp);\n }\n else {\n this._emitCodePoint(cp);\n }\n }\n // Calling states this way turns out to be much faster than any other approach.\n _callState(cp) {\n switch (this.state) {\n case State.DATA: {\n this._stateData(cp);\n break;\n }\n case State.RCDATA: {\n this._stateRcdata(cp);\n break;\n }\n case State.RAWTEXT: {\n this._stateRawtext(cp);\n break;\n }\n case State.SCRIPT_DATA: {\n this._stateScriptData(cp);\n break;\n }\n case State.PLAINTEXT: {\n this._statePlaintext(cp);\n break;\n }\n case State.TAG_OPEN: {\n this._stateTagOpen(cp);\n break;\n }\n case State.END_TAG_OPEN: {\n this._stateEndTagOpen(cp);\n break;\n }\n case State.TAG_NAME: {\n this._stateTagName(cp);\n break;\n }\n case State.RCDATA_LESS_THAN_SIGN: {\n this._stateRcdataLessThanSign(cp);\n break;\n }\n case State.RCDATA_END_TAG_OPEN: {\n this._stateRcdataEndTagOpen(cp);\n break;\n }\n case State.RCDATA_END_TAG_NAME: {\n this._stateRcdataEndTagName(cp);\n break;\n }\n case State.RAWTEXT_LESS_THAN_SIGN: {\n this._stateRawtextLessThanSign(cp);\n break;\n }\n case State.RAWTEXT_END_TAG_OPEN: {\n this._stateRawtextEndTagOpen(cp);\n break;\n }\n case State.RAWTEXT_END_TAG_NAME: {\n this._stateRawtextEndTagName(cp);\n break;\n }\n case State.SCRIPT_DATA_LESS_THAN_SIGN: {\n this._stateScriptDataLessThanSign(cp);\n break;\n }\n case State.SCRIPT_DATA_END_TAG_OPEN: {\n this._stateScriptDataEndTagOpen(cp);\n break;\n }\n case State.SCRIPT_DATA_END_TAG_NAME: {\n this._stateScriptDataEndTagName(cp);\n break;\n }\n case State.SCRIPT_DATA_ESCAPE_START: {\n this._stateScriptDataEscapeStart(cp);\n break;\n }\n case State.SCRIPT_DATA_ESCAPE_START_DASH: {\n this._stateScriptDataEscapeStartDash(cp);\n break;\n }\n case State.SCRIPT_DATA_ESCAPED: {\n this._stateScriptDataEscaped(cp);\n break;\n }\n case State.SCRIPT_DATA_ESCAPED_DASH: {\n this._stateScriptDataEscapedDash(cp);\n break;\n }\n case State.SCRIPT_DATA_ESCAPED_DASH_DASH: {\n this._stateScriptDataEscapedDashDash(cp);\n break;\n }\n case State.SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN: {\n this._stateScriptDataEscapedLessThanSign(cp);\n break;\n }\n case State.SCRIPT_DATA_ESCAPED_END_TAG_OPEN: {\n this._stateScriptDataEscapedEndTagOpen(cp);\n break;\n }\n case State.SCRIPT_DATA_ESCAPED_END_TAG_NAME: {\n this._stateScriptDataEscapedEndTagName(cp);\n break;\n }\n case State.SCRIPT_DATA_DOUBLE_ESCAPE_START: {\n this._stateScriptDataDoubleEscapeStart(cp);\n break;\n }\n case State.SCRIPT_DATA_DOUBLE_ESCAPED: {\n this._stateScriptDataDoubleEscaped(cp);\n break;\n }\n case State.SCRIPT_DATA_DOUBLE_ESCAPED_DASH: {\n this._stateScriptDataDoubleEscapedDash(cp);\n break;\n }\n case State.SCRIPT_DATA_DOUBLE_ESCAPED_DASH_DASH: {\n this._stateScriptDataDoubleEscapedDashDash(cp);\n break;\n }\n case State.SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN: {\n this._stateScriptDataDoubleEscapedLessThanSign(cp);\n break;\n }\n case State.SCRIPT_DATA_DOUBLE_ESCAPE_END: {\n this._stateScriptDataDoubleEscapeEnd(cp);\n break;\n }\n case State.BEFORE_ATTRIBUTE_NAME: {\n this._stateBeforeAttributeName(cp);\n break;\n }\n case State.ATTRIBUTE_NAME: {\n this._stateAttributeName(cp);\n break;\n }\n case State.AFTER_ATTRIBUTE_NAME: {\n this._stateAfterAttributeName(cp);\n break;\n }\n case State.BEFORE_ATTRIBUTE_VALUE: {\n this._stateBeforeAttributeValue(cp);\n break;\n }\n case State.ATTRIBUTE_VALUE_DOUBLE_QUOTED: {\n this._stateAttributeValueDoubleQuoted(cp);\n break;\n }\n case State.ATTRIBUTE_VALUE_SINGLE_QUOTED: {\n this._stateAttributeValueSingleQuoted(cp);\n break;\n }\n case State.ATTRIBUTE_VALUE_UNQUOTED: {\n this._stateAttributeValueUnquoted(cp);\n break;\n }\n case State.AFTER_ATTRIBUTE_VALUE_QUOTED: {\n this._stateAfterAttributeValueQuoted(cp);\n break;\n }\n case State.SELF_CLOSING_START_TAG: {\n this._stateSelfClosingStartTag(cp);\n break;\n }\n case State.BOGUS_COMMENT: {\n this._stateBogusComment(cp);\n break;\n }\n case State.MARKUP_DECLARATION_OPEN: {\n this._stateMarkupDeclarationOpen(cp);\n break;\n }\n case State.COMMENT_START: {\n this._stateCommentStart(cp);\n break;\n }\n case State.COMMENT_START_DASH: {\n this._stateCommentStartDash(cp);\n break;\n }\n case State.COMMENT: {\n this._stateComment(cp);\n break;\n }\n case State.COMMENT_LESS_THAN_SIGN: {\n this._stateCommentLessThanSign(cp);\n break;\n }\n case State.COMMENT_LESS_THAN_SIGN_BANG: {\n this._stateCommentLessThanSignBang(cp);\n break;\n }\n case State.COMMENT_LESS_THAN_SIGN_BANG_DASH: {\n this._stateCommentLessThanSignBangDash(cp);\n break;\n }\n case State.COMMENT_LESS_THAN_SIGN_BANG_DASH_DASH: {\n this._stateCommentLessThanSignBangDashDash(cp);\n break;\n }\n case State.COMMENT_END_DASH: {\n this._stateCommentEndDash(cp);\n break;\n }\n case State.COMMENT_END: {\n this._stateCommentEnd(cp);\n break;\n }\n case State.COMMENT_END_BANG: {\n this._stateCommentEndBang(cp);\n break;\n }\n case State.DOCTYPE: {\n this._stateDoctype(cp);\n break;\n }\n case State.BEFORE_DOCTYPE_NAME: {\n this._stateBeforeDoctypeName(cp);\n break;\n }\n case State.DOCTYPE_NAME: {\n this._stateDoctypeName(cp);\n break;\n }\n case State.AFTER_DOCTYPE_NAME: {\n this._stateAfterDoctypeName(cp);\n break;\n }\n case State.AFTER_DOCTYPE_PUBLIC_KEYWORD: {\n this._stateAfterDoctypePublicKeyword(cp);\n break;\n }\n case State.BEFORE_DOCTYPE_PUBLIC_IDENTIFIER: {\n this._stateBeforeDoctypePublicIdentifier(cp);\n break;\n }\n case State.DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED: {\n this._stateDoctypePublicIdentifierDoubleQuoted(cp);\n break;\n }\n case State.DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED: {\n this._stateDoctypePublicIdentifierSingleQuoted(cp);\n break;\n }\n case State.AFTER_DOCTYPE_PUBLIC_IDENTIFIER: {\n this._stateAfterDoctypePublicIdentifier(cp);\n break;\n }\n case State.BETWEEN_DOCTYPE_PUBLIC_AND_SYSTEM_IDENTIFIERS: {\n this._stateBetweenDoctypePublicAndSystemIdentifiers(cp);\n break;\n }\n case State.AFTER_DOCTYPE_SYSTEM_KEYWORD: {\n this._stateAfterDoctypeSystemKeyword(cp);\n break;\n }\n case State.BEFORE_DOCTYPE_SYSTEM_IDENTIFIER: {\n this._stateBeforeDoctypeSystemIdentifier(cp);\n break;\n }\n case State.DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED: {\n this._stateDoctypeSystemIdentifierDoubleQuoted(cp);\n break;\n }\n case State.DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED: {\n this._stateDoctypeSystemIdentifierSingleQuoted(cp);\n break;\n }\n case State.AFTER_DOCTYPE_SYSTEM_IDENTIFIER: {\n this._stateAfterDoctypeSystemIdentifier(cp);\n break;\n }\n case State.BOGUS_DOCTYPE: {\n this._stateBogusDoctype(cp);\n break;\n }\n case State.CDATA_SECTION: {\n this._stateCdataSection(cp);\n break;\n }\n case State.CDATA_SECTION_BRACKET: {\n this._stateCdataSectionBracket(cp);\n break;\n }\n case State.CDATA_SECTION_END: {\n this._stateCdataSectionEnd(cp);\n break;\n }\n case State.CHARACTER_REFERENCE: {\n this._stateCharacterReference();\n break;\n }\n case State.AMBIGUOUS_AMPERSAND: {\n this._stateAmbiguousAmpersand(cp);\n break;\n }\n default: {\n throw new Error('Unknown state');\n }\n }\n }\n // State machine\n // Data state\n //------------------------------------------------------------------\n _stateData(cp) {\n switch (cp) {\n case $.LESS_THAN_SIGN: {\n this.state = State.TAG_OPEN;\n break;\n }\n case $.AMPERSAND: {\n this._startCharacterReference();\n break;\n }\n case $.NULL: {\n this._err(ERR.unexpectedNullCharacter);\n this._emitCodePoint(cp);\n break;\n }\n case $.EOF: {\n this._emitEOFToken();\n break;\n }\n default: {\n this._emitCodePoint(cp);\n }\n }\n }\n // RCDATA state\n //------------------------------------------------------------------\n _stateRcdata(cp) {\n switch (cp) {\n case $.AMPERSAND: {\n this._startCharacterReference();\n break;\n }\n case $.LESS_THAN_SIGN: {\n this.state = State.RCDATA_LESS_THAN_SIGN;\n break;\n }\n case $.NULL: {\n this._err(ERR.unexpectedNullCharacter);\n this._emitChars(REPLACEMENT_CHARACTER);\n break;\n }\n case $.EOF: {\n this._emitEOFToken();\n break;\n }\n default: {\n this._emitCodePoint(cp);\n }\n }\n }\n // RAWTEXT state\n //------------------------------------------------------------------\n _stateRawtext(cp) {\n switch (cp) {\n case $.LESS_THAN_SIGN: {\n this.state = State.RAWTEXT_LESS_THAN_SIGN;\n break;\n }\n case $.NULL: {\n this._err(ERR.unexpectedNullCharacter);\n this._emitChars(REPLACEMENT_CHARACTER);\n break;\n }\n case $.EOF: {\n this._emitEOFToken();\n break;\n }\n default: {\n this._emitCodePoint(cp);\n }\n }\n }\n // Script data state\n //------------------------------------------------------------------\n _stateScriptData(cp) {\n switch (cp) {\n case $.LESS_THAN_SIGN: {\n this.state = State.SCRIPT_DATA_LESS_THAN_SIGN;\n break;\n }\n case $.NULL: {\n this._err(ERR.unexpectedNullCharacter);\n this._emitChars(REPLACEMENT_CHARACTER);\n break;\n }\n case $.EOF: {\n this._emitEOFToken();\n break;\n }\n default: {\n this._emitCodePoint(cp);\n }\n }\n }\n // PLAINTEXT state\n //------------------------------------------------------------------\n _statePlaintext(cp) {\n switch (cp) {\n case $.NULL: {\n this._err(ERR.unexpectedNullCharacter);\n this._emitChars(REPLACEMENT_CHARACTER);\n break;\n }\n case $.EOF: {\n this._emitEOFToken();\n break;\n }\n default: {\n this._emitCodePoint(cp);\n }\n }\n }\n // Tag open state\n //------------------------------------------------------------------\n _stateTagOpen(cp) {\n if (isAsciiLetter(cp)) {\n this._createStartTagToken();\n this.state = State.TAG_NAME;\n this._stateTagName(cp);\n }\n else\n switch (cp) {\n case $.EXCLAMATION_MARK: {\n this.state = State.MARKUP_DECLARATION_OPEN;\n break;\n }\n case $.SOLIDUS: {\n this.state = State.END_TAG_OPEN;\n break;\n }\n case $.QUESTION_MARK: {\n this._err(ERR.unexpectedQuestionMarkInsteadOfTagName);\n this._createCommentToken(1);\n this.state = State.BOGUS_COMMENT;\n this._stateBogusComment(cp);\n break;\n }\n case $.EOF: {\n this._err(ERR.eofBeforeTagName);\n this._emitChars('<');\n this._emitEOFToken();\n break;\n }\n default: {\n this._err(ERR.invalidFirstCharacterOfTagName);\n this._emitChars('<');\n this.state = State.DATA;\n this._stateData(cp);\n }\n }\n }\n // End tag open state\n //------------------------------------------------------------------\n _stateEndTagOpen(cp) {\n if (isAsciiLetter(cp)) {\n this._createEndTagToken();\n this.state = State.TAG_NAME;\n this._stateTagName(cp);\n }\n else\n switch (cp) {\n case $.GREATER_THAN_SIGN: {\n this._err(ERR.missingEndTagName);\n this.state = State.DATA;\n break;\n }\n case $.EOF: {\n this._err(ERR.eofBeforeTagName);\n this._emitChars('');\n break;\n }\n case $.NULL: {\n this._err(ERR.unexpectedNullCharacter);\n this.state = State.SCRIPT_DATA_ESCAPED;\n this._emitChars(REPLACEMENT_CHARACTER);\n break;\n }\n case $.EOF: {\n this._err(ERR.eofInScriptHtmlCommentLikeText);\n this._emitEOFToken();\n break;\n }\n default: {\n this.state = State.SCRIPT_DATA_ESCAPED;\n this._emitCodePoint(cp);\n }\n }\n }\n // Script data escaped less-than sign state\n //------------------------------------------------------------------\n _stateScriptDataEscapedLessThanSign(cp) {\n if (cp === $.SOLIDUS) {\n this.state = State.SCRIPT_DATA_ESCAPED_END_TAG_OPEN;\n }\n else if (isAsciiLetter(cp)) {\n this._emitChars('<');\n this.state = State.SCRIPT_DATA_DOUBLE_ESCAPE_START;\n this._stateScriptDataDoubleEscapeStart(cp);\n }\n else {\n this._emitChars('<');\n this.state = State.SCRIPT_DATA_ESCAPED;\n this._stateScriptDataEscaped(cp);\n }\n }\n // Script data escaped end tag open state\n //------------------------------------------------------------------\n _stateScriptDataEscapedEndTagOpen(cp) {\n if (isAsciiLetter(cp)) {\n this.state = State.SCRIPT_DATA_ESCAPED_END_TAG_NAME;\n this._stateScriptDataEscapedEndTagName(cp);\n }\n else {\n this._emitChars('');\n break;\n }\n case $.NULL: {\n this._err(ERR.unexpectedNullCharacter);\n this.state = State.SCRIPT_DATA_DOUBLE_ESCAPED;\n this._emitChars(REPLACEMENT_CHARACTER);\n break;\n }\n case $.EOF: {\n this._err(ERR.eofInScriptHtmlCommentLikeText);\n this._emitEOFToken();\n break;\n }\n default: {\n this.state = State.SCRIPT_DATA_DOUBLE_ESCAPED;\n this._emitCodePoint(cp);\n }\n }\n }\n // Script data double escaped less-than sign state\n //------------------------------------------------------------------\n _stateScriptDataDoubleEscapedLessThanSign(cp) {\n if (cp === $.SOLIDUS) {\n this.state = State.SCRIPT_DATA_DOUBLE_ESCAPE_END;\n this._emitChars('/');\n }\n else {\n this.state = State.SCRIPT_DATA_DOUBLE_ESCAPED;\n this._stateScriptDataDoubleEscaped(cp);\n }\n }\n // Script data double escape end state\n //------------------------------------------------------------------\n _stateScriptDataDoubleEscapeEnd(cp) {\n if (this.preprocessor.startsWith($$.SCRIPT, false) &&\n isScriptDataDoubleEscapeSequenceEnd(this.preprocessor.peek($$.SCRIPT.length))) {\n this._emitCodePoint(cp);\n for (let i = 0; i < $$.SCRIPT.length; i++) {\n this._emitCodePoint(this._consume());\n }\n this.state = State.SCRIPT_DATA_ESCAPED;\n }\n else if (!this._ensureHibernation()) {\n this.state = State.SCRIPT_DATA_DOUBLE_ESCAPED;\n this._stateScriptDataDoubleEscaped(cp);\n }\n }\n // Before attribute name state\n //------------------------------------------------------------------\n _stateBeforeAttributeName(cp) {\n switch (cp) {\n case $.SPACE:\n case $.LINE_FEED:\n case $.TABULATION:\n case $.FORM_FEED: {\n // Ignore whitespace\n break;\n }\n case $.SOLIDUS:\n case $.GREATER_THAN_SIGN:\n case $.EOF: {\n this.state = State.AFTER_ATTRIBUTE_NAME;\n this._stateAfterAttributeName(cp);\n break;\n }\n case $.EQUALS_SIGN: {\n this._err(ERR.unexpectedEqualsSignBeforeAttributeName);\n this._createAttr('=');\n this.state = State.ATTRIBUTE_NAME;\n break;\n }\n default: {\n this._createAttr('');\n this.state = State.ATTRIBUTE_NAME;\n this._stateAttributeName(cp);\n }\n }\n }\n // Attribute name state\n //------------------------------------------------------------------\n _stateAttributeName(cp) {\n switch (cp) {\n case $.SPACE:\n case $.LINE_FEED:\n case $.TABULATION:\n case $.FORM_FEED:\n case $.SOLIDUS:\n case $.GREATER_THAN_SIGN:\n case $.EOF: {\n this._leaveAttrName();\n this.state = State.AFTER_ATTRIBUTE_NAME;\n this._stateAfterAttributeName(cp);\n break;\n }\n case $.EQUALS_SIGN: {\n this._leaveAttrName();\n this.state = State.BEFORE_ATTRIBUTE_VALUE;\n break;\n }\n case $.QUOTATION_MARK:\n case $.APOSTROPHE:\n case $.LESS_THAN_SIGN: {\n this._err(ERR.unexpectedCharacterInAttributeName);\n this.currentAttr.name += String.fromCodePoint(cp);\n break;\n }\n case $.NULL: {\n this._err(ERR.unexpectedNullCharacter);\n this.currentAttr.name += REPLACEMENT_CHARACTER;\n break;\n }\n default: {\n this.currentAttr.name += String.fromCodePoint(isAsciiUpper(cp) ? toAsciiLower(cp) : cp);\n }\n }\n }\n // After attribute name state\n //------------------------------------------------------------------\n _stateAfterAttributeName(cp) {\n switch (cp) {\n case $.SPACE:\n case $.LINE_FEED:\n case $.TABULATION:\n case $.FORM_FEED: {\n // Ignore whitespace\n break;\n }\n case $.SOLIDUS: {\n this.state = State.SELF_CLOSING_START_TAG;\n break;\n }\n case $.EQUALS_SIGN: {\n this.state = State.BEFORE_ATTRIBUTE_VALUE;\n break;\n }\n case $.GREATER_THAN_SIGN: {\n this.state = State.DATA;\n this.emitCurrentTagToken();\n break;\n }\n case $.EOF: {\n this._err(ERR.eofInTag);\n this._emitEOFToken();\n break;\n }\n default: {\n this._createAttr('');\n this.state = State.ATTRIBUTE_NAME;\n this._stateAttributeName(cp);\n }\n }\n }\n // Before attribute value state\n //------------------------------------------------------------------\n _stateBeforeAttributeValue(cp) {\n switch (cp) {\n case $.SPACE:\n case $.LINE_FEED:\n case $.TABULATION:\n case $.FORM_FEED: {\n // Ignore whitespace\n break;\n }\n case $.QUOTATION_MARK: {\n this.state = State.ATTRIBUTE_VALUE_DOUBLE_QUOTED;\n break;\n }\n case $.APOSTROPHE: {\n this.state = State.ATTRIBUTE_VALUE_SINGLE_QUOTED;\n break;\n }\n case $.GREATER_THAN_SIGN: {\n this._err(ERR.missingAttributeValue);\n this.state = State.DATA;\n this.emitCurrentTagToken();\n break;\n }\n default: {\n this.state = State.ATTRIBUTE_VALUE_UNQUOTED;\n this._stateAttributeValueUnquoted(cp);\n }\n }\n }\n // Attribute value (double-quoted) state\n //------------------------------------------------------------------\n _stateAttributeValueDoubleQuoted(cp) {\n switch (cp) {\n case $.QUOTATION_MARK: {\n this.state = State.AFTER_ATTRIBUTE_VALUE_QUOTED;\n break;\n }\n case $.AMPERSAND: {\n this._startCharacterReference();\n break;\n }\n case $.NULL: {\n this._err(ERR.unexpectedNullCharacter);\n this.currentAttr.value += REPLACEMENT_CHARACTER;\n break;\n }\n case $.EOF: {\n this._err(ERR.eofInTag);\n this._emitEOFToken();\n break;\n }\n default: {\n this.currentAttr.value += String.fromCodePoint(cp);\n }\n }\n }\n // Attribute value (single-quoted) state\n //------------------------------------------------------------------\n _stateAttributeValueSingleQuoted(cp) {\n switch (cp) {\n case $.APOSTROPHE: {\n this.state = State.AFTER_ATTRIBUTE_VALUE_QUOTED;\n break;\n }\n case $.AMPERSAND: {\n this._startCharacterReference();\n break;\n }\n case $.NULL: {\n this._err(ERR.unexpectedNullCharacter);\n this.currentAttr.value += REPLACEMENT_CHARACTER;\n break;\n }\n case $.EOF: {\n this._err(ERR.eofInTag);\n this._emitEOFToken();\n break;\n }\n default: {\n this.currentAttr.value += String.fromCodePoint(cp);\n }\n }\n }\n // Attribute value (unquoted) state\n //------------------------------------------------------------------\n _stateAttributeValueUnquoted(cp) {\n switch (cp) {\n case $.SPACE:\n case $.LINE_FEED:\n case $.TABULATION:\n case $.FORM_FEED: {\n this._leaveAttrValue();\n this.state = State.BEFORE_ATTRIBUTE_NAME;\n break;\n }\n case $.AMPERSAND: {\n this._startCharacterReference();\n break;\n }\n case $.GREATER_THAN_SIGN: {\n this._leaveAttrValue();\n this.state = State.DATA;\n this.emitCurrentTagToken();\n break;\n }\n case $.NULL: {\n this._err(ERR.unexpectedNullCharacter);\n this.currentAttr.value += REPLACEMENT_CHARACTER;\n break;\n }\n case $.QUOTATION_MARK:\n case $.APOSTROPHE:\n case $.LESS_THAN_SIGN:\n case $.EQUALS_SIGN:\n case $.GRAVE_ACCENT: {\n this._err(ERR.unexpectedCharacterInUnquotedAttributeValue);\n this.currentAttr.value += String.fromCodePoint(cp);\n break;\n }\n case $.EOF: {\n this._err(ERR.eofInTag);\n this._emitEOFToken();\n break;\n }\n default: {\n this.currentAttr.value += String.fromCodePoint(cp);\n }\n }\n }\n // After attribute value (quoted) state\n //------------------------------------------------------------------\n _stateAfterAttributeValueQuoted(cp) {\n switch (cp) {\n case $.SPACE:\n case $.LINE_FEED:\n case $.TABULATION:\n case $.FORM_FEED: {\n this._leaveAttrValue();\n this.state = State.BEFORE_ATTRIBUTE_NAME;\n break;\n }\n case $.SOLIDUS: {\n this._leaveAttrValue();\n this.state = State.SELF_CLOSING_START_TAG;\n break;\n }\n case $.GREATER_THAN_SIGN: {\n this._leaveAttrValue();\n this.state = State.DATA;\n this.emitCurrentTagToken();\n break;\n }\n case $.EOF: {\n this._err(ERR.eofInTag);\n this._emitEOFToken();\n break;\n }\n default: {\n this._err(ERR.missingWhitespaceBetweenAttributes);\n this.state = State.BEFORE_ATTRIBUTE_NAME;\n this._stateBeforeAttributeName(cp);\n }\n }\n }\n // Self-closing start tag state\n //------------------------------------------------------------------\n _stateSelfClosingStartTag(cp) {\n switch (cp) {\n case $.GREATER_THAN_SIGN: {\n const token = this.currentToken;\n token.selfClosing = true;\n this.state = State.DATA;\n this.emitCurrentTagToken();\n break;\n }\n case $.EOF: {\n this._err(ERR.eofInTag);\n this._emitEOFToken();\n break;\n }\n default: {\n this._err(ERR.unexpectedSolidusInTag);\n this.state = State.BEFORE_ATTRIBUTE_NAME;\n this._stateBeforeAttributeName(cp);\n }\n }\n }\n // Bogus comment state\n //------------------------------------------------------------------\n _stateBogusComment(cp) {\n const token = this.currentToken;\n switch (cp) {\n case $.GREATER_THAN_SIGN: {\n this.state = State.DATA;\n this.emitCurrentComment(token);\n break;\n }\n case $.EOF: {\n this.emitCurrentComment(token);\n this._emitEOFToken();\n break;\n }\n case $.NULL: {\n this._err(ERR.unexpectedNullCharacter);\n token.data += REPLACEMENT_CHARACTER;\n break;\n }\n default: {\n token.data += String.fromCodePoint(cp);\n }\n }\n }\n // Markup declaration open state\n //------------------------------------------------------------------\n _stateMarkupDeclarationOpen(cp) {\n if (this._consumeSequenceIfMatch($$.DASH_DASH, true)) {\n this._createCommentToken($$.DASH_DASH.length + 1);\n this.state = State.COMMENT_START;\n }\n else if (this._consumeSequenceIfMatch($$.DOCTYPE, false)) {\n // NOTE: Doctypes tokens are created without fixed offsets. We keep track of the moment a doctype *might* start here.\n this.currentLocation = this.getCurrentLocation($$.DOCTYPE.length + 1);\n this.state = State.DOCTYPE;\n }\n else if (this._consumeSequenceIfMatch($$.CDATA_START, true)) {\n if (this.inForeignNode) {\n this.state = State.CDATA_SECTION;\n }\n else {\n this._err(ERR.cdataInHtmlContent);\n this._createCommentToken($$.CDATA_START.length + 1);\n this.currentToken.data = '[CDATA[';\n this.state = State.BOGUS_COMMENT;\n }\n }\n //NOTE: Sequence lookups can be abrupted by hibernation. In that case, lookup\n //results are no longer valid and we will need to start over.\n else if (!this._ensureHibernation()) {\n this._err(ERR.incorrectlyOpenedComment);\n this._createCommentToken(2);\n this.state = State.BOGUS_COMMENT;\n this._stateBogusComment(cp);\n }\n }\n // Comment start state\n //------------------------------------------------------------------\n _stateCommentStart(cp) {\n switch (cp) {\n case $.HYPHEN_MINUS: {\n this.state = State.COMMENT_START_DASH;\n break;\n }\n case $.GREATER_THAN_SIGN: {\n this._err(ERR.abruptClosingOfEmptyComment);\n this.state = State.DATA;\n const token = this.currentToken;\n this.emitCurrentComment(token);\n break;\n }\n default: {\n this.state = State.COMMENT;\n this._stateComment(cp);\n }\n }\n }\n // Comment start dash state\n //------------------------------------------------------------------\n _stateCommentStartDash(cp) {\n const token = this.currentToken;\n switch (cp) {\n case $.HYPHEN_MINUS: {\n this.state = State.COMMENT_END;\n break;\n }\n case $.GREATER_THAN_SIGN: {\n this._err(ERR.abruptClosingOfEmptyComment);\n this.state = State.DATA;\n this.emitCurrentComment(token);\n break;\n }\n case $.EOF: {\n this._err(ERR.eofInComment);\n this.emitCurrentComment(token);\n this._emitEOFToken();\n break;\n }\n default: {\n token.data += '-';\n this.state = State.COMMENT;\n this._stateComment(cp);\n }\n }\n }\n // Comment state\n //------------------------------------------------------------------\n _stateComment(cp) {\n const token = this.currentToken;\n switch (cp) {\n case $.HYPHEN_MINUS: {\n this.state = State.COMMENT_END_DASH;\n break;\n }\n case $.LESS_THAN_SIGN: {\n token.data += '<';\n this.state = State.COMMENT_LESS_THAN_SIGN;\n break;\n }\n case $.NULL: {\n this._err(ERR.unexpectedNullCharacter);\n token.data += REPLACEMENT_CHARACTER;\n break;\n }\n case $.EOF: {\n this._err(ERR.eofInComment);\n this.emitCurrentComment(token);\n this._emitEOFToken();\n break;\n }\n default: {\n token.data += String.fromCodePoint(cp);\n }\n }\n }\n // Comment less-than sign state\n //------------------------------------------------------------------\n _stateCommentLessThanSign(cp) {\n const token = this.currentToken;\n switch (cp) {\n case $.EXCLAMATION_MARK: {\n token.data += '!';\n this.state = State.COMMENT_LESS_THAN_SIGN_BANG;\n break;\n }\n case $.LESS_THAN_SIGN: {\n token.data += '<';\n break;\n }\n default: {\n this.state = State.COMMENT;\n this._stateComment(cp);\n }\n }\n }\n // Comment less-than sign bang state\n //------------------------------------------------------------------\n _stateCommentLessThanSignBang(cp) {\n if (cp === $.HYPHEN_MINUS) {\n this.state = State.COMMENT_LESS_THAN_SIGN_BANG_DASH;\n }\n else {\n this.state = State.COMMENT;\n this._stateComment(cp);\n }\n }\n // Comment less-than sign bang dash state\n //------------------------------------------------------------------\n _stateCommentLessThanSignBangDash(cp) {\n if (cp === $.HYPHEN_MINUS) {\n this.state = State.COMMENT_LESS_THAN_SIGN_BANG_DASH_DASH;\n }\n else {\n this.state = State.COMMENT_END_DASH;\n this._stateCommentEndDash(cp);\n }\n }\n // Comment less-than sign bang dash dash state\n //------------------------------------------------------------------\n _stateCommentLessThanSignBangDashDash(cp) {\n if (cp !== $.GREATER_THAN_SIGN && cp !== $.EOF) {\n this._err(ERR.nestedComment);\n }\n this.state = State.COMMENT_END;\n this._stateCommentEnd(cp);\n }\n // Comment end dash state\n //------------------------------------------------------------------\n _stateCommentEndDash(cp) {\n const token = this.currentToken;\n switch (cp) {\n case $.HYPHEN_MINUS: {\n this.state = State.COMMENT_END;\n break;\n }\n case $.EOF: {\n this._err(ERR.eofInComment);\n this.emitCurrentComment(token);\n this._emitEOFToken();\n break;\n }\n default: {\n token.data += '-';\n this.state = State.COMMENT;\n this._stateComment(cp);\n }\n }\n }\n // Comment end state\n //------------------------------------------------------------------\n _stateCommentEnd(cp) {\n const token = this.currentToken;\n switch (cp) {\n case $.GREATER_THAN_SIGN: {\n this.state = State.DATA;\n this.emitCurrentComment(token);\n break;\n }\n case $.EXCLAMATION_MARK: {\n this.state = State.COMMENT_END_BANG;\n break;\n }\n case $.HYPHEN_MINUS: {\n token.data += '-';\n break;\n }\n case $.EOF: {\n this._err(ERR.eofInComment);\n this.emitCurrentComment(token);\n this._emitEOFToken();\n break;\n }\n default: {\n token.data += '--';\n this.state = State.COMMENT;\n this._stateComment(cp);\n }\n }\n }\n // Comment end bang state\n //------------------------------------------------------------------\n _stateCommentEndBang(cp) {\n const token = this.currentToken;\n switch (cp) {\n case $.HYPHEN_MINUS: {\n token.data += '--!';\n this.state = State.COMMENT_END_DASH;\n break;\n }\n case $.GREATER_THAN_SIGN: {\n this._err(ERR.incorrectlyClosedComment);\n this.state = State.DATA;\n this.emitCurrentComment(token);\n break;\n }\n case $.EOF: {\n this._err(ERR.eofInComment);\n this.emitCurrentComment(token);\n this._emitEOFToken();\n break;\n }\n default: {\n token.data += '--!';\n this.state = State.COMMENT;\n this._stateComment(cp);\n }\n }\n }\n // DOCTYPE state\n //------------------------------------------------------------------\n _stateDoctype(cp) {\n switch (cp) {\n case $.SPACE:\n case $.LINE_FEED:\n case $.TABULATION:\n case $.FORM_FEED: {\n this.state = State.BEFORE_DOCTYPE_NAME;\n break;\n }\n case $.GREATER_THAN_SIGN: {\n this.state = State.BEFORE_DOCTYPE_NAME;\n this._stateBeforeDoctypeName(cp);\n break;\n }\n case $.EOF: {\n this._err(ERR.eofInDoctype);\n this._createDoctypeToken(null);\n const token = this.currentToken;\n token.forceQuirks = true;\n this.emitCurrentDoctype(token);\n this._emitEOFToken();\n break;\n }\n default: {\n this._err(ERR.missingWhitespaceBeforeDoctypeName);\n this.state = State.BEFORE_DOCTYPE_NAME;\n this._stateBeforeDoctypeName(cp);\n }\n }\n }\n // Before DOCTYPE name state\n //------------------------------------------------------------------\n _stateBeforeDoctypeName(cp) {\n if (isAsciiUpper(cp)) {\n this._createDoctypeToken(String.fromCharCode(toAsciiLower(cp)));\n this.state = State.DOCTYPE_NAME;\n }\n else\n switch (cp) {\n case $.SPACE:\n case $.LINE_FEED:\n case $.TABULATION:\n case $.FORM_FEED: {\n // Ignore whitespace\n break;\n }\n case $.NULL: {\n this._err(ERR.unexpectedNullCharacter);\n this._createDoctypeToken(REPLACEMENT_CHARACTER);\n this.state = State.DOCTYPE_NAME;\n break;\n }\n case $.GREATER_THAN_SIGN: {\n this._err(ERR.missingDoctypeName);\n this._createDoctypeToken(null);\n const token = this.currentToken;\n token.forceQuirks = true;\n this.emitCurrentDoctype(token);\n this.state = State.DATA;\n break;\n }\n case $.EOF: {\n this._err(ERR.eofInDoctype);\n this._createDoctypeToken(null);\n const token = this.currentToken;\n token.forceQuirks = true;\n this.emitCurrentDoctype(token);\n this._emitEOFToken();\n break;\n }\n default: {\n this._createDoctypeToken(String.fromCodePoint(cp));\n this.state = State.DOCTYPE_NAME;\n }\n }\n }\n // DOCTYPE name state\n //------------------------------------------------------------------\n _stateDoctypeName(cp) {\n const token = this.currentToken;\n switch (cp) {\n case $.SPACE:\n case $.LINE_FEED:\n case $.TABULATION:\n case $.FORM_FEED: {\n this.state = State.AFTER_DOCTYPE_NAME;\n break;\n }\n case $.GREATER_THAN_SIGN: {\n this.state = State.DATA;\n this.emitCurrentDoctype(token);\n break;\n }\n case $.NULL: {\n this._err(ERR.unexpectedNullCharacter);\n token.name += REPLACEMENT_CHARACTER;\n break;\n }\n case $.EOF: {\n this._err(ERR.eofInDoctype);\n token.forceQuirks = true;\n this.emitCurrentDoctype(token);\n this._emitEOFToken();\n break;\n }\n default: {\n token.name += String.fromCodePoint(isAsciiUpper(cp) ? toAsciiLower(cp) : cp);\n }\n }\n }\n // After DOCTYPE name state\n //------------------------------------------------------------------\n _stateAfterDoctypeName(cp) {\n const token = this.currentToken;\n switch (cp) {\n case $.SPACE:\n case $.LINE_FEED:\n case $.TABULATION:\n case $.FORM_FEED: {\n // Ignore whitespace\n break;\n }\n case $.GREATER_THAN_SIGN: {\n this.state = State.DATA;\n this.emitCurrentDoctype(token);\n break;\n }\n case $.EOF: {\n this._err(ERR.eofInDoctype);\n token.forceQuirks = true;\n this.emitCurrentDoctype(token);\n this._emitEOFToken();\n break;\n }\n default: {\n if (this._consumeSequenceIfMatch($$.PUBLIC, false)) {\n this.state = State.AFTER_DOCTYPE_PUBLIC_KEYWORD;\n }\n else if (this._consumeSequenceIfMatch($$.SYSTEM, false)) {\n this.state = State.AFTER_DOCTYPE_SYSTEM_KEYWORD;\n }\n //NOTE: sequence lookup can be abrupted by hibernation. In that case lookup\n //results are no longer valid and we will need to start over.\n else if (!this._ensureHibernation()) {\n this._err(ERR.invalidCharacterSequenceAfterDoctypeName);\n token.forceQuirks = true;\n this.state = State.BOGUS_DOCTYPE;\n this._stateBogusDoctype(cp);\n }\n }\n }\n }\n // After DOCTYPE public keyword state\n //------------------------------------------------------------------\n _stateAfterDoctypePublicKeyword(cp) {\n const token = this.currentToken;\n switch (cp) {\n case $.SPACE:\n case $.LINE_FEED:\n case $.TABULATION:\n case $.FORM_FEED: {\n this.state = State.BEFORE_DOCTYPE_PUBLIC_IDENTIFIER;\n break;\n }\n case $.QUOTATION_MARK: {\n this._err(ERR.missingWhitespaceAfterDoctypePublicKeyword);\n token.publicId = '';\n this.state = State.DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED;\n break;\n }\n case $.APOSTROPHE: {\n this._err(ERR.missingWhitespaceAfterDoctypePublicKeyword);\n token.publicId = '';\n this.state = State.DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED;\n break;\n }\n case $.GREATER_THAN_SIGN: {\n this._err(ERR.missingDoctypePublicIdentifier);\n token.forceQuirks = true;\n this.state = State.DATA;\n this.emitCurrentDoctype(token);\n break;\n }\n case $.EOF: {\n this._err(ERR.eofInDoctype);\n token.forceQuirks = true;\n this.emitCurrentDoctype(token);\n this._emitEOFToken();\n break;\n }\n default: {\n this._err(ERR.missingQuoteBeforeDoctypePublicIdentifier);\n token.forceQuirks = true;\n this.state = State.BOGUS_DOCTYPE;\n this._stateBogusDoctype(cp);\n }\n }\n }\n // Before DOCTYPE public identifier state\n //------------------------------------------------------------------\n _stateBeforeDoctypePublicIdentifier(cp) {\n const token = this.currentToken;\n switch (cp) {\n case $.SPACE:\n case $.LINE_FEED:\n case $.TABULATION:\n case $.FORM_FEED: {\n // Ignore whitespace\n break;\n }\n case $.QUOTATION_MARK: {\n token.publicId = '';\n this.state = State.DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED;\n break;\n }\n case $.APOSTROPHE: {\n token.publicId = '';\n this.state = State.DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED;\n break;\n }\n case $.GREATER_THAN_SIGN: {\n this._err(ERR.missingDoctypePublicIdentifier);\n token.forceQuirks = true;\n this.state = State.DATA;\n this.emitCurrentDoctype(token);\n break;\n }\n case $.EOF: {\n this._err(ERR.eofInDoctype);\n token.forceQuirks = true;\n this.emitCurrentDoctype(token);\n this._emitEOFToken();\n break;\n }\n default: {\n this._err(ERR.missingQuoteBeforeDoctypePublicIdentifier);\n token.forceQuirks = true;\n this.state = State.BOGUS_DOCTYPE;\n this._stateBogusDoctype(cp);\n }\n }\n }\n // DOCTYPE public identifier (double-quoted) state\n //------------------------------------------------------------------\n _stateDoctypePublicIdentifierDoubleQuoted(cp) {\n const token = this.currentToken;\n switch (cp) {\n case $.QUOTATION_MARK: {\n this.state = State.AFTER_DOCTYPE_PUBLIC_IDENTIFIER;\n break;\n }\n case $.NULL: {\n this._err(ERR.unexpectedNullCharacter);\n token.publicId += REPLACEMENT_CHARACTER;\n break;\n }\n case $.GREATER_THAN_SIGN: {\n this._err(ERR.abruptDoctypePublicIdentifier);\n token.forceQuirks = true;\n this.emitCurrentDoctype(token);\n this.state = State.DATA;\n break;\n }\n case $.EOF: {\n this._err(ERR.eofInDoctype);\n token.forceQuirks = true;\n this.emitCurrentDoctype(token);\n this._emitEOFToken();\n break;\n }\n default: {\n token.publicId += String.fromCodePoint(cp);\n }\n }\n }\n // DOCTYPE public identifier (single-quoted) state\n //------------------------------------------------------------------\n _stateDoctypePublicIdentifierSingleQuoted(cp) {\n const token = this.currentToken;\n switch (cp) {\n case $.APOSTROPHE: {\n this.state = State.AFTER_DOCTYPE_PUBLIC_IDENTIFIER;\n break;\n }\n case $.NULL: {\n this._err(ERR.unexpectedNullCharacter);\n token.publicId += REPLACEMENT_CHARACTER;\n break;\n }\n case $.GREATER_THAN_SIGN: {\n this._err(ERR.abruptDoctypePublicIdentifier);\n token.forceQuirks = true;\n this.emitCurrentDoctype(token);\n this.state = State.DATA;\n break;\n }\n case $.EOF: {\n this._err(ERR.eofInDoctype);\n token.forceQuirks = true;\n this.emitCurrentDoctype(token);\n this._emitEOFToken();\n break;\n }\n default: {\n token.publicId += String.fromCodePoint(cp);\n }\n }\n }\n // After DOCTYPE public identifier state\n //------------------------------------------------------------------\n _stateAfterDoctypePublicIdentifier(cp) {\n const token = this.currentToken;\n switch (cp) {\n case $.SPACE:\n case $.LINE_FEED:\n case $.TABULATION:\n case $.FORM_FEED: {\n this.state = State.BETWEEN_DOCTYPE_PUBLIC_AND_SYSTEM_IDENTIFIERS;\n break;\n }\n case $.GREATER_THAN_SIGN: {\n this.state = State.DATA;\n this.emitCurrentDoctype(token);\n break;\n }\n case $.QUOTATION_MARK: {\n this._err(ERR.missingWhitespaceBetweenDoctypePublicAndSystemIdentifiers);\n token.systemId = '';\n this.state = State.DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED;\n break;\n }\n case $.APOSTROPHE: {\n this._err(ERR.missingWhitespaceBetweenDoctypePublicAndSystemIdentifiers);\n token.systemId = '';\n this.state = State.DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED;\n break;\n }\n case $.EOF: {\n this._err(ERR.eofInDoctype);\n token.forceQuirks = true;\n this.emitCurrentDoctype(token);\n this._emitEOFToken();\n break;\n }\n default: {\n this._err(ERR.missingQuoteBeforeDoctypeSystemIdentifier);\n token.forceQuirks = true;\n this.state = State.BOGUS_DOCTYPE;\n this._stateBogusDoctype(cp);\n }\n }\n }\n // Between DOCTYPE public and system identifiers state\n //------------------------------------------------------------------\n _stateBetweenDoctypePublicAndSystemIdentifiers(cp) {\n const token = this.currentToken;\n switch (cp) {\n case $.SPACE:\n case $.LINE_FEED:\n case $.TABULATION:\n case $.FORM_FEED: {\n // Ignore whitespace\n break;\n }\n case $.GREATER_THAN_SIGN: {\n this.emitCurrentDoctype(token);\n this.state = State.DATA;\n break;\n }\n case $.QUOTATION_MARK: {\n token.systemId = '';\n this.state = State.DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED;\n break;\n }\n case $.APOSTROPHE: {\n token.systemId = '';\n this.state = State.DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED;\n break;\n }\n case $.EOF: {\n this._err(ERR.eofInDoctype);\n token.forceQuirks = true;\n this.emitCurrentDoctype(token);\n this._emitEOFToken();\n break;\n }\n default: {\n this._err(ERR.missingQuoteBeforeDoctypeSystemIdentifier);\n token.forceQuirks = true;\n this.state = State.BOGUS_DOCTYPE;\n this._stateBogusDoctype(cp);\n }\n }\n }\n // After DOCTYPE system keyword state\n //------------------------------------------------------------------\n _stateAfterDoctypeSystemKeyword(cp) {\n const token = this.currentToken;\n switch (cp) {\n case $.SPACE:\n case $.LINE_FEED:\n case $.TABULATION:\n case $.FORM_FEED: {\n this.state = State.BEFORE_DOCTYPE_SYSTEM_IDENTIFIER;\n break;\n }\n case $.QUOTATION_MARK: {\n this._err(ERR.missingWhitespaceAfterDoctypeSystemKeyword);\n token.systemId = '';\n this.state = State.DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED;\n break;\n }\n case $.APOSTROPHE: {\n this._err(ERR.missingWhitespaceAfterDoctypeSystemKeyword);\n token.systemId = '';\n this.state = State.DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED;\n break;\n }\n case $.GREATER_THAN_SIGN: {\n this._err(ERR.missingDoctypeSystemIdentifier);\n token.forceQuirks = true;\n this.state = State.DATA;\n this.emitCurrentDoctype(token);\n break;\n }\n case $.EOF: {\n this._err(ERR.eofInDoctype);\n token.forceQuirks = true;\n this.emitCurrentDoctype(token);\n this._emitEOFToken();\n break;\n }\n default: {\n this._err(ERR.missingQuoteBeforeDoctypeSystemIdentifier);\n token.forceQuirks = true;\n this.state = State.BOGUS_DOCTYPE;\n this._stateBogusDoctype(cp);\n }\n }\n }\n // Before DOCTYPE system identifier state\n //------------------------------------------------------------------\n _stateBeforeDoctypeSystemIdentifier(cp) {\n const token = this.currentToken;\n switch (cp) {\n case $.SPACE:\n case $.LINE_FEED:\n case $.TABULATION:\n case $.FORM_FEED: {\n // Ignore whitespace\n break;\n }\n case $.QUOTATION_MARK: {\n token.systemId = '';\n this.state = State.DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED;\n break;\n }\n case $.APOSTROPHE: {\n token.systemId = '';\n this.state = State.DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED;\n break;\n }\n case $.GREATER_THAN_SIGN: {\n this._err(ERR.missingDoctypeSystemIdentifier);\n token.forceQuirks = true;\n this.state = State.DATA;\n this.emitCurrentDoctype(token);\n break;\n }\n case $.EOF: {\n this._err(ERR.eofInDoctype);\n token.forceQuirks = true;\n this.emitCurrentDoctype(token);\n this._emitEOFToken();\n break;\n }\n default: {\n this._err(ERR.missingQuoteBeforeDoctypeSystemIdentifier);\n token.forceQuirks = true;\n this.state = State.BOGUS_DOCTYPE;\n this._stateBogusDoctype(cp);\n }\n }\n }\n // DOCTYPE system identifier (double-quoted) state\n //------------------------------------------------------------------\n _stateDoctypeSystemIdentifierDoubleQuoted(cp) {\n const token = this.currentToken;\n switch (cp) {\n case $.QUOTATION_MARK: {\n this.state = State.AFTER_DOCTYPE_SYSTEM_IDENTIFIER;\n break;\n }\n case $.NULL: {\n this._err(ERR.unexpectedNullCharacter);\n token.systemId += REPLACEMENT_CHARACTER;\n break;\n }\n case $.GREATER_THAN_SIGN: {\n this._err(ERR.abruptDoctypeSystemIdentifier);\n token.forceQuirks = true;\n this.emitCurrentDoctype(token);\n this.state = State.DATA;\n break;\n }\n case $.EOF: {\n this._err(ERR.eofInDoctype);\n token.forceQuirks = true;\n this.emitCurrentDoctype(token);\n this._emitEOFToken();\n break;\n }\n default: {\n token.systemId += String.fromCodePoint(cp);\n }\n }\n }\n // DOCTYPE system identifier (single-quoted) state\n //------------------------------------------------------------------\n _stateDoctypeSystemIdentifierSingleQuoted(cp) {\n const token = this.currentToken;\n switch (cp) {\n case $.APOSTROPHE: {\n this.state = State.AFTER_DOCTYPE_SYSTEM_IDENTIFIER;\n break;\n }\n case $.NULL: {\n this._err(ERR.unexpectedNullCharacter);\n token.systemId += REPLACEMENT_CHARACTER;\n break;\n }\n case $.GREATER_THAN_SIGN: {\n this._err(ERR.abruptDoctypeSystemIdentifier);\n token.forceQuirks = true;\n this.emitCurrentDoctype(token);\n this.state = State.DATA;\n break;\n }\n case $.EOF: {\n this._err(ERR.eofInDoctype);\n token.forceQuirks = true;\n this.emitCurrentDoctype(token);\n this._emitEOFToken();\n break;\n }\n default: {\n token.systemId += String.fromCodePoint(cp);\n }\n }\n }\n // After DOCTYPE system identifier state\n //------------------------------------------------------------------\n _stateAfterDoctypeSystemIdentifier(cp) {\n const token = this.currentToken;\n switch (cp) {\n case $.SPACE:\n case $.LINE_FEED:\n case $.TABULATION:\n case $.FORM_FEED: {\n // Ignore whitespace\n break;\n }\n case $.GREATER_THAN_SIGN: {\n this.emitCurrentDoctype(token);\n this.state = State.DATA;\n break;\n }\n case $.EOF: {\n this._err(ERR.eofInDoctype);\n token.forceQuirks = true;\n this.emitCurrentDoctype(token);\n this._emitEOFToken();\n break;\n }\n default: {\n this._err(ERR.unexpectedCharacterAfterDoctypeSystemIdentifier);\n this.state = State.BOGUS_DOCTYPE;\n this._stateBogusDoctype(cp);\n }\n }\n }\n // Bogus DOCTYPE state\n //------------------------------------------------------------------\n _stateBogusDoctype(cp) {\n const token = this.currentToken;\n switch (cp) {\n case $.GREATER_THAN_SIGN: {\n this.emitCurrentDoctype(token);\n this.state = State.DATA;\n break;\n }\n case $.NULL: {\n this._err(ERR.unexpectedNullCharacter);\n break;\n }\n case $.EOF: {\n this.emitCurrentDoctype(token);\n this._emitEOFToken();\n break;\n }\n default:\n // Do nothing\n }\n }\n // CDATA section state\n //------------------------------------------------------------------\n _stateCdataSection(cp) {\n switch (cp) {\n case $.RIGHT_SQUARE_BRACKET: {\n this.state = State.CDATA_SECTION_BRACKET;\n break;\n }\n case $.EOF: {\n this._err(ERR.eofInCdata);\n this._emitEOFToken();\n break;\n }\n default: {\n this._emitCodePoint(cp);\n }\n }\n }\n // CDATA section bracket state\n //------------------------------------------------------------------\n _stateCdataSectionBracket(cp) {\n if (cp === $.RIGHT_SQUARE_BRACKET) {\n this.state = State.CDATA_SECTION_END;\n }\n else {\n this._emitChars(']');\n this.state = State.CDATA_SECTION;\n this._stateCdataSection(cp);\n }\n }\n // CDATA section end state\n //------------------------------------------------------------------\n _stateCdataSectionEnd(cp) {\n switch (cp) {\n case $.GREATER_THAN_SIGN: {\n this.state = State.DATA;\n break;\n }\n case $.RIGHT_SQUARE_BRACKET: {\n this._emitChars(']');\n break;\n }\n default: {\n this._emitChars(']]');\n this.state = State.CDATA_SECTION;\n this._stateCdataSection(cp);\n }\n }\n }\n // Character reference state\n //------------------------------------------------------------------\n _stateCharacterReference() {\n let length = this.entityDecoder.write(this.preprocessor.html, this.preprocessor.pos);\n if (length < 0) {\n if (this.preprocessor.lastChunkWritten) {\n length = this.entityDecoder.end();\n }\n else {\n // Wait for the rest of the entity.\n this.active = false;\n // Mark the entire buffer as read.\n this.preprocessor.pos = this.preprocessor.html.length - 1;\n this.consumedAfterSnapshot = 0;\n this.preprocessor.endOfChunkHit = true;\n return;\n }\n }\n if (length === 0) {\n // This was not a valid entity. Go back to the beginning, and\n // figure out what to do.\n this.preprocessor.pos = this.entityStartPos;\n this._flushCodePointConsumedAsCharacterReference($.AMPERSAND);\n this.state =\n !this._isCharacterReferenceInAttribute() && isAsciiAlphaNumeric(this.preprocessor.peek(1))\n ? State.AMBIGUOUS_AMPERSAND\n : this.returnState;\n }\n else {\n // We successfully parsed an entity. Switch to the return state.\n this.state = this.returnState;\n }\n }\n // Ambiguos ampersand state\n //------------------------------------------------------------------\n _stateAmbiguousAmpersand(cp) {\n if (isAsciiAlphaNumeric(cp)) {\n this._flushCodePointConsumedAsCharacterReference(cp);\n }\n else {\n if (cp === $.SEMICOLON) {\n this._err(ERR.unknownNamedCharacterReference);\n }\n this.state = this.returnState;\n this._callState(cp);\n }\n }\n}\n","import { TAG_ID as $, NS, NUMBERED_HEADERS } from '../common/html.js';\n//Element utils\nconst IMPLICIT_END_TAG_REQUIRED = new Set([$.DD, $.DT, $.LI, $.OPTGROUP, $.OPTION, $.P, $.RB, $.RP, $.RT, $.RTC]);\nconst IMPLICIT_END_TAG_REQUIRED_THOROUGHLY = new Set([\n ...IMPLICIT_END_TAG_REQUIRED,\n $.CAPTION,\n $.COLGROUP,\n $.TBODY,\n $.TD,\n $.TFOOT,\n $.TH,\n $.THEAD,\n $.TR,\n]);\nconst SCOPING_ELEMENTS_HTML = new Set([\n $.APPLET,\n $.CAPTION,\n $.HTML,\n $.MARQUEE,\n $.OBJECT,\n $.TABLE,\n $.TD,\n $.TEMPLATE,\n $.TH,\n]);\nconst SCOPING_ELEMENTS_HTML_LIST = new Set([...SCOPING_ELEMENTS_HTML, $.OL, $.UL]);\nconst SCOPING_ELEMENTS_HTML_BUTTON = new Set([...SCOPING_ELEMENTS_HTML, $.BUTTON]);\nconst SCOPING_ELEMENTS_MATHML = new Set([$.ANNOTATION_XML, $.MI, $.MN, $.MO, $.MS, $.MTEXT]);\nconst SCOPING_ELEMENTS_SVG = new Set([$.DESC, $.FOREIGN_OBJECT, $.TITLE]);\nconst TABLE_ROW_CONTEXT = new Set([$.TR, $.TEMPLATE, $.HTML]);\nconst TABLE_BODY_CONTEXT = new Set([$.TBODY, $.TFOOT, $.THEAD, $.TEMPLATE, $.HTML]);\nconst TABLE_CONTEXT = new Set([$.TABLE, $.TEMPLATE, $.HTML]);\nconst TABLE_CELLS = new Set([$.TD, $.TH]);\n//Stack of open elements\nexport class OpenElementStack {\n get currentTmplContentOrNode() {\n return this._isInTemplate() ? this.treeAdapter.getTemplateContent(this.current) : this.current;\n }\n constructor(document, treeAdapter, handler) {\n this.treeAdapter = treeAdapter;\n this.handler = handler;\n this.items = [];\n this.tagIDs = [];\n this.stackTop = -1;\n this.tmplCount = 0;\n this.currentTagId = $.UNKNOWN;\n this.current = document;\n }\n //Index of element\n _indexOf(element) {\n return this.items.lastIndexOf(element, this.stackTop);\n }\n //Update current element\n _isInTemplate() {\n return this.currentTagId === $.TEMPLATE && this.treeAdapter.getNamespaceURI(this.current) === NS.HTML;\n }\n _updateCurrentElement() {\n this.current = this.items[this.stackTop];\n this.currentTagId = this.tagIDs[this.stackTop];\n }\n //Mutations\n push(element, tagID) {\n this.stackTop++;\n this.items[this.stackTop] = element;\n this.current = element;\n this.tagIDs[this.stackTop] = tagID;\n this.currentTagId = tagID;\n if (this._isInTemplate()) {\n this.tmplCount++;\n }\n this.handler.onItemPush(element, tagID, true);\n }\n pop() {\n const popped = this.current;\n if (this.tmplCount > 0 && this._isInTemplate()) {\n this.tmplCount--;\n }\n this.stackTop--;\n this._updateCurrentElement();\n this.handler.onItemPop(popped, true);\n }\n replace(oldElement, newElement) {\n const idx = this._indexOf(oldElement);\n this.items[idx] = newElement;\n if (idx === this.stackTop) {\n this.current = newElement;\n }\n }\n insertAfter(referenceElement, newElement, newElementID) {\n const insertionIdx = this._indexOf(referenceElement) + 1;\n this.items.splice(insertionIdx, 0, newElement);\n this.tagIDs.splice(insertionIdx, 0, newElementID);\n this.stackTop++;\n if (insertionIdx === this.stackTop) {\n this._updateCurrentElement();\n }\n this.handler.onItemPush(this.current, this.currentTagId, insertionIdx === this.stackTop);\n }\n popUntilTagNamePopped(tagName) {\n let targetIdx = this.stackTop + 1;\n do {\n targetIdx = this.tagIDs.lastIndexOf(tagName, targetIdx - 1);\n } while (targetIdx > 0 && this.treeAdapter.getNamespaceURI(this.items[targetIdx]) !== NS.HTML);\n this.shortenToLength(targetIdx < 0 ? 0 : targetIdx);\n }\n shortenToLength(idx) {\n while (this.stackTop >= idx) {\n const popped = this.current;\n if (this.tmplCount > 0 && this._isInTemplate()) {\n this.tmplCount -= 1;\n }\n this.stackTop--;\n this._updateCurrentElement();\n this.handler.onItemPop(popped, this.stackTop < idx);\n }\n }\n popUntilElementPopped(element) {\n const idx = this._indexOf(element);\n this.shortenToLength(idx < 0 ? 0 : idx);\n }\n popUntilPopped(tagNames, targetNS) {\n const idx = this._indexOfTagNames(tagNames, targetNS);\n this.shortenToLength(idx < 0 ? 0 : idx);\n }\n popUntilNumberedHeaderPopped() {\n this.popUntilPopped(NUMBERED_HEADERS, NS.HTML);\n }\n popUntilTableCellPopped() {\n this.popUntilPopped(TABLE_CELLS, NS.HTML);\n }\n popAllUpToHtmlElement() {\n //NOTE: here we assume that the root element is always first in the open element stack, so\n //we perform this fast stack clean up.\n this.tmplCount = 0;\n this.shortenToLength(1);\n }\n _indexOfTagNames(tagNames, namespace) {\n for (let i = this.stackTop; i >= 0; i--) {\n if (tagNames.has(this.tagIDs[i]) && this.treeAdapter.getNamespaceURI(this.items[i]) === namespace) {\n return i;\n }\n }\n return -1;\n }\n clearBackTo(tagNames, targetNS) {\n const idx = this._indexOfTagNames(tagNames, targetNS);\n this.shortenToLength(idx + 1);\n }\n clearBackToTableContext() {\n this.clearBackTo(TABLE_CONTEXT, NS.HTML);\n }\n clearBackToTableBodyContext() {\n this.clearBackTo(TABLE_BODY_CONTEXT, NS.HTML);\n }\n clearBackToTableRowContext() {\n this.clearBackTo(TABLE_ROW_CONTEXT, NS.HTML);\n }\n remove(element) {\n const idx = this._indexOf(element);\n if (idx >= 0) {\n if (idx === this.stackTop) {\n this.pop();\n }\n else {\n this.items.splice(idx, 1);\n this.tagIDs.splice(idx, 1);\n this.stackTop--;\n this._updateCurrentElement();\n this.handler.onItemPop(element, false);\n }\n }\n }\n //Search\n tryPeekProperlyNestedBodyElement() {\n //Properly nested element (should be second element in stack).\n return this.stackTop >= 1 && this.tagIDs[1] === $.BODY ? this.items[1] : null;\n }\n contains(element) {\n return this._indexOf(element) > -1;\n }\n getCommonAncestor(element) {\n const elementIdx = this._indexOf(element) - 1;\n return elementIdx >= 0 ? this.items[elementIdx] : null;\n }\n isRootHtmlElementCurrent() {\n return this.stackTop === 0 && this.tagIDs[0] === $.HTML;\n }\n //Element in scope\n hasInDynamicScope(tagName, htmlScope) {\n for (let i = this.stackTop; i >= 0; i--) {\n const tn = this.tagIDs[i];\n switch (this.treeAdapter.getNamespaceURI(this.items[i])) {\n case NS.HTML: {\n if (tn === tagName)\n return true;\n if (htmlScope.has(tn))\n return false;\n break;\n }\n case NS.SVG: {\n if (SCOPING_ELEMENTS_SVG.has(tn))\n return false;\n break;\n }\n case NS.MATHML: {\n if (SCOPING_ELEMENTS_MATHML.has(tn))\n return false;\n break;\n }\n }\n }\n return true;\n }\n hasInScope(tagName) {\n return this.hasInDynamicScope(tagName, SCOPING_ELEMENTS_HTML);\n }\n hasInListItemScope(tagName) {\n return this.hasInDynamicScope(tagName, SCOPING_ELEMENTS_HTML_LIST);\n }\n hasInButtonScope(tagName) {\n return this.hasInDynamicScope(tagName, SCOPING_ELEMENTS_HTML_BUTTON);\n }\n hasNumberedHeaderInScope() {\n for (let i = this.stackTop; i >= 0; i--) {\n const tn = this.tagIDs[i];\n switch (this.treeAdapter.getNamespaceURI(this.items[i])) {\n case NS.HTML: {\n if (NUMBERED_HEADERS.has(tn))\n return true;\n if (SCOPING_ELEMENTS_HTML.has(tn))\n return false;\n break;\n }\n case NS.SVG: {\n if (SCOPING_ELEMENTS_SVG.has(tn))\n return false;\n break;\n }\n case NS.MATHML: {\n if (SCOPING_ELEMENTS_MATHML.has(tn))\n return false;\n break;\n }\n }\n }\n return true;\n }\n hasInTableScope(tagName) {\n for (let i = this.stackTop; i >= 0; i--) {\n if (this.treeAdapter.getNamespaceURI(this.items[i]) !== NS.HTML) {\n continue;\n }\n switch (this.tagIDs[i]) {\n case tagName: {\n return true;\n }\n case $.TABLE:\n case $.HTML: {\n return false;\n }\n }\n }\n return true;\n }\n hasTableBodyContextInTableScope() {\n for (let i = this.stackTop; i >= 0; i--) {\n if (this.treeAdapter.getNamespaceURI(this.items[i]) !== NS.HTML) {\n continue;\n }\n switch (this.tagIDs[i]) {\n case $.TBODY:\n case $.THEAD:\n case $.TFOOT: {\n return true;\n }\n case $.TABLE:\n case $.HTML: {\n return false;\n }\n }\n }\n return true;\n }\n hasInSelectScope(tagName) {\n for (let i = this.stackTop; i >= 0; i--) {\n if (this.treeAdapter.getNamespaceURI(this.items[i]) !== NS.HTML) {\n continue;\n }\n switch (this.tagIDs[i]) {\n case tagName: {\n return true;\n }\n case $.OPTION:\n case $.OPTGROUP: {\n break;\n }\n default: {\n return false;\n }\n }\n }\n return true;\n }\n //Implied end tags\n generateImpliedEndTags() {\n while (IMPLICIT_END_TAG_REQUIRED.has(this.currentTagId)) {\n this.pop();\n }\n }\n generateImpliedEndTagsThoroughly() {\n while (IMPLICIT_END_TAG_REQUIRED_THOROUGHLY.has(this.currentTagId)) {\n this.pop();\n }\n }\n generateImpliedEndTagsWithExclusion(exclusionId) {\n while (this.currentTagId !== exclusionId && IMPLICIT_END_TAG_REQUIRED_THOROUGHLY.has(this.currentTagId)) {\n this.pop();\n }\n }\n}\n","//Const\nconst NOAH_ARK_CAPACITY = 3;\nexport var EntryType;\n(function (EntryType) {\n EntryType[EntryType[\"Marker\"] = 0] = \"Marker\";\n EntryType[EntryType[\"Element\"] = 1] = \"Element\";\n})(EntryType || (EntryType = {}));\nconst MARKER = { type: EntryType.Marker };\n//List of formatting elements\nexport class FormattingElementList {\n constructor(treeAdapter) {\n this.treeAdapter = treeAdapter;\n this.entries = [];\n this.bookmark = null;\n }\n //Noah Ark's condition\n //OPTIMIZATION: at first we try to find possible candidates for exclusion using\n //lightweight heuristics without thorough attributes check.\n _getNoahArkConditionCandidates(newElement, neAttrs) {\n const candidates = [];\n const neAttrsLength = neAttrs.length;\n const neTagName = this.treeAdapter.getTagName(newElement);\n const neNamespaceURI = this.treeAdapter.getNamespaceURI(newElement);\n for (let i = 0; i < this.entries.length; i++) {\n const entry = this.entries[i];\n if (entry.type === EntryType.Marker) {\n break;\n }\n const { element } = entry;\n if (this.treeAdapter.getTagName(element) === neTagName &&\n this.treeAdapter.getNamespaceURI(element) === neNamespaceURI) {\n const elementAttrs = this.treeAdapter.getAttrList(element);\n if (elementAttrs.length === neAttrsLength) {\n candidates.push({ idx: i, attrs: elementAttrs });\n }\n }\n }\n return candidates;\n }\n _ensureNoahArkCondition(newElement) {\n if (this.entries.length < NOAH_ARK_CAPACITY)\n return;\n const neAttrs = this.treeAdapter.getAttrList(newElement);\n const candidates = this._getNoahArkConditionCandidates(newElement, neAttrs);\n if (candidates.length < NOAH_ARK_CAPACITY)\n return;\n //NOTE: build attrs map for the new element, so we can perform fast lookups\n const neAttrsMap = new Map(neAttrs.map((neAttr) => [neAttr.name, neAttr.value]));\n let validCandidates = 0;\n //NOTE: remove bottommost candidates, until Noah's Ark condition will not be met\n for (let i = 0; i < candidates.length; i++) {\n const candidate = candidates[i];\n // We know that `candidate.attrs.length === neAttrs.length`\n if (candidate.attrs.every((cAttr) => neAttrsMap.get(cAttr.name) === cAttr.value)) {\n validCandidates += 1;\n if (validCandidates >= NOAH_ARK_CAPACITY) {\n this.entries.splice(candidate.idx, 1);\n }\n }\n }\n }\n //Mutations\n insertMarker() {\n this.entries.unshift(MARKER);\n }\n pushElement(element, token) {\n this._ensureNoahArkCondition(element);\n this.entries.unshift({\n type: EntryType.Element,\n element,\n token,\n });\n }\n insertElementAfterBookmark(element, token) {\n const bookmarkIdx = this.entries.indexOf(this.bookmark);\n this.entries.splice(bookmarkIdx, 0, {\n type: EntryType.Element,\n element,\n token,\n });\n }\n removeEntry(entry) {\n const entryIndex = this.entries.indexOf(entry);\n if (entryIndex >= 0) {\n this.entries.splice(entryIndex, 1);\n }\n }\n /**\n * Clears the list of formatting elements up to the last marker.\n *\n * @see https://html.spec.whatwg.org/multipage/parsing.html#clear-the-list-of-active-formatting-elements-up-to-the-last-marker\n */\n clearToLastMarker() {\n const markerIdx = this.entries.indexOf(MARKER);\n if (markerIdx >= 0) {\n this.entries.splice(0, markerIdx + 1);\n }\n else {\n this.entries.length = 0;\n }\n }\n //Search\n getElementEntryInScopeWithTagName(tagName) {\n const entry = this.entries.find((entry) => entry.type === EntryType.Marker || this.treeAdapter.getTagName(entry.element) === tagName);\n return entry && entry.type === EntryType.Element ? entry : null;\n }\n getElementEntry(element) {\n return this.entries.find((entry) => entry.type === EntryType.Element && entry.element === element);\n }\n}\n","import { DOCUMENT_MODE } from '../common/html.js';\nexport const defaultTreeAdapter = {\n //Node construction\n createDocument() {\n return {\n nodeName: '#document',\n mode: DOCUMENT_MODE.NO_QUIRKS,\n childNodes: [],\n };\n },\n createDocumentFragment() {\n return {\n nodeName: '#document-fragment',\n childNodes: [],\n };\n },\n createElement(tagName, namespaceURI, attrs) {\n return {\n nodeName: tagName,\n tagName,\n attrs,\n namespaceURI,\n childNodes: [],\n parentNode: null,\n };\n },\n createCommentNode(data) {\n return {\n nodeName: '#comment',\n data,\n parentNode: null,\n };\n },\n createTextNode(value) {\n return {\n nodeName: '#text',\n value,\n parentNode: null,\n };\n },\n //Tree mutation\n appendChild(parentNode, newNode) {\n parentNode.childNodes.push(newNode);\n newNode.parentNode = parentNode;\n },\n insertBefore(parentNode, newNode, referenceNode) {\n const insertionIdx = parentNode.childNodes.indexOf(referenceNode);\n parentNode.childNodes.splice(insertionIdx, 0, newNode);\n newNode.parentNode = parentNode;\n },\n setTemplateContent(templateElement, contentElement) {\n templateElement.content = contentElement;\n },\n getTemplateContent(templateElement) {\n return templateElement.content;\n },\n setDocumentType(document, name, publicId, systemId) {\n const doctypeNode = document.childNodes.find((node) => node.nodeName === '#documentType');\n if (doctypeNode) {\n doctypeNode.name = name;\n doctypeNode.publicId = publicId;\n doctypeNode.systemId = systemId;\n }\n else {\n const node = {\n nodeName: '#documentType',\n name,\n publicId,\n systemId,\n parentNode: null,\n };\n defaultTreeAdapter.appendChild(document, node);\n }\n },\n setDocumentMode(document, mode) {\n document.mode = mode;\n },\n getDocumentMode(document) {\n return document.mode;\n },\n detachNode(node) {\n if (node.parentNode) {\n const idx = node.parentNode.childNodes.indexOf(node);\n node.parentNode.childNodes.splice(idx, 1);\n node.parentNode = null;\n }\n },\n insertText(parentNode, text) {\n if (parentNode.childNodes.length > 0) {\n const prevNode = parentNode.childNodes[parentNode.childNodes.length - 1];\n if (defaultTreeAdapter.isTextNode(prevNode)) {\n prevNode.value += text;\n return;\n }\n }\n defaultTreeAdapter.appendChild(parentNode, defaultTreeAdapter.createTextNode(text));\n },\n insertTextBefore(parentNode, text, referenceNode) {\n const prevNode = parentNode.childNodes[parentNode.childNodes.indexOf(referenceNode) - 1];\n if (prevNode && defaultTreeAdapter.isTextNode(prevNode)) {\n prevNode.value += text;\n }\n else {\n defaultTreeAdapter.insertBefore(parentNode, defaultTreeAdapter.createTextNode(text), referenceNode);\n }\n },\n adoptAttributes(recipient, attrs) {\n const recipientAttrsMap = new Set(recipient.attrs.map((attr) => attr.name));\n for (let j = 0; j < attrs.length; j++) {\n if (!recipientAttrsMap.has(attrs[j].name)) {\n recipient.attrs.push(attrs[j]);\n }\n }\n },\n //Tree traversing\n getFirstChild(node) {\n return node.childNodes[0];\n },\n getChildNodes(node) {\n return node.childNodes;\n },\n getParentNode(node) {\n return node.parentNode;\n },\n getAttrList(element) {\n return element.attrs;\n },\n //Node data\n getTagName(element) {\n return element.tagName;\n },\n getNamespaceURI(element) {\n return element.namespaceURI;\n },\n getTextNodeContent(textNode) {\n return textNode.value;\n },\n getCommentNodeContent(commentNode) {\n return commentNode.data;\n },\n getDocumentTypeNodeName(doctypeNode) {\n return doctypeNode.name;\n },\n getDocumentTypeNodePublicId(doctypeNode) {\n return doctypeNode.publicId;\n },\n getDocumentTypeNodeSystemId(doctypeNode) {\n return doctypeNode.systemId;\n },\n //Node types\n isTextNode(node) {\n return node.nodeName === '#text';\n },\n isCommentNode(node) {\n return node.nodeName === '#comment';\n },\n isDocumentTypeNode(node) {\n return node.nodeName === '#documentType';\n },\n isElementNode(node) {\n return Object.prototype.hasOwnProperty.call(node, 'tagName');\n },\n // Source code location\n setNodeSourceCodeLocation(node, location) {\n node.sourceCodeLocation = location;\n },\n getNodeSourceCodeLocation(node) {\n return node.sourceCodeLocation;\n },\n updateNodeSourceCodeLocation(node, endLocation) {\n node.sourceCodeLocation = { ...node.sourceCodeLocation, ...endLocation };\n },\n};\n","import { DOCUMENT_MODE } from './html.js';\n//Const\nconst VALID_DOCTYPE_NAME = 'html';\nconst VALID_SYSTEM_ID = 'about:legacy-compat';\nconst QUIRKS_MODE_SYSTEM_ID = 'http://www.ibm.com/data/dtd/v11/ibmxhtml1-transitional.dtd';\nconst QUIRKS_MODE_PUBLIC_ID_PREFIXES = [\n '+//silmaril//dtd html pro v0r11 19970101//',\n '-//as//dtd html 3.0 aswedit + extensions//',\n '-//advasoft ltd//dtd html 3.0 aswedit + extensions//',\n '-//ietf//dtd html 2.0 level 1//',\n '-//ietf//dtd html 2.0 level 2//',\n '-//ietf//dtd html 2.0 strict level 1//',\n '-//ietf//dtd html 2.0 strict level 2//',\n '-//ietf//dtd html 2.0 strict//',\n '-//ietf//dtd html 2.0//',\n '-//ietf//dtd html 2.1e//',\n '-//ietf//dtd html 3.0//',\n '-//ietf//dtd html 3.2 final//',\n '-//ietf//dtd html 3.2//',\n '-//ietf//dtd html 3//',\n '-//ietf//dtd html level 0//',\n '-//ietf//dtd html level 1//',\n '-//ietf//dtd html level 2//',\n '-//ietf//dtd html level 3//',\n '-//ietf//dtd html strict level 0//',\n '-//ietf//dtd html strict level 1//',\n '-//ietf//dtd html strict level 2//',\n '-//ietf//dtd html strict level 3//',\n '-//ietf//dtd html strict//',\n '-//ietf//dtd html//',\n '-//metrius//dtd metrius presentational//',\n '-//microsoft//dtd internet explorer 2.0 html strict//',\n '-//microsoft//dtd internet explorer 2.0 html//',\n '-//microsoft//dtd internet explorer 2.0 tables//',\n '-//microsoft//dtd internet explorer 3.0 html strict//',\n '-//microsoft//dtd internet explorer 3.0 html//',\n '-//microsoft//dtd internet explorer 3.0 tables//',\n '-//netscape comm. corp.//dtd html//',\n '-//netscape comm. corp.//dtd strict html//',\n \"-//o'reilly and associates//dtd html 2.0//\",\n \"-//o'reilly and associates//dtd html extended 1.0//\",\n \"-//o'reilly and associates//dtd html extended relaxed 1.0//\",\n '-//sq//dtd html 2.0 hotmetal + extensions//',\n '-//softquad software//dtd hotmetal pro 6.0::19990601::extensions to html 4.0//',\n '-//softquad//dtd hotmetal pro 4.0::19971010::extensions to html 4.0//',\n '-//spyglass//dtd html 2.0 extended//',\n '-//sun microsystems corp.//dtd hotjava html//',\n '-//sun microsystems corp.//dtd hotjava strict html//',\n '-//w3c//dtd html 3 1995-03-24//',\n '-//w3c//dtd html 3.2 draft//',\n '-//w3c//dtd html 3.2 final//',\n '-//w3c//dtd html 3.2//',\n '-//w3c//dtd html 3.2s draft//',\n '-//w3c//dtd html 4.0 frameset//',\n '-//w3c//dtd html 4.0 transitional//',\n '-//w3c//dtd html experimental 19960712//',\n '-//w3c//dtd html experimental 970421//',\n '-//w3c//dtd w3 html//',\n '-//w3o//dtd w3 html 3.0//',\n '-//webtechs//dtd mozilla html 2.0//',\n '-//webtechs//dtd mozilla html//',\n];\nconst QUIRKS_MODE_NO_SYSTEM_ID_PUBLIC_ID_PREFIXES = [\n ...QUIRKS_MODE_PUBLIC_ID_PREFIXES,\n '-//w3c//dtd html 4.01 frameset//',\n '-//w3c//dtd html 4.01 transitional//',\n];\nconst QUIRKS_MODE_PUBLIC_IDS = new Set([\n '-//w3o//dtd w3 html strict 3.0//en//',\n '-/w3c/dtd html 4.0 transitional/en',\n 'html',\n]);\nconst LIMITED_QUIRKS_PUBLIC_ID_PREFIXES = ['-//w3c//dtd xhtml 1.0 frameset//', '-//w3c//dtd xhtml 1.0 transitional//'];\nconst LIMITED_QUIRKS_WITH_SYSTEM_ID_PUBLIC_ID_PREFIXES = [\n ...LIMITED_QUIRKS_PUBLIC_ID_PREFIXES,\n '-//w3c//dtd html 4.01 frameset//',\n '-//w3c//dtd html 4.01 transitional//',\n];\n//Utils\nfunction hasPrefix(publicId, prefixes) {\n return prefixes.some((prefix) => publicId.startsWith(prefix));\n}\n//API\nexport function isConforming(token) {\n return (token.name === VALID_DOCTYPE_NAME &&\n token.publicId === null &&\n (token.systemId === null || token.systemId === VALID_SYSTEM_ID));\n}\nexport function getDocumentMode(token) {\n if (token.name !== VALID_DOCTYPE_NAME) {\n return DOCUMENT_MODE.QUIRKS;\n }\n const { systemId } = token;\n if (systemId && systemId.toLowerCase() === QUIRKS_MODE_SYSTEM_ID) {\n return DOCUMENT_MODE.QUIRKS;\n }\n let { publicId } = token;\n if (publicId !== null) {\n publicId = publicId.toLowerCase();\n if (QUIRKS_MODE_PUBLIC_IDS.has(publicId)) {\n return DOCUMENT_MODE.QUIRKS;\n }\n let prefixes = systemId === null ? QUIRKS_MODE_NO_SYSTEM_ID_PUBLIC_ID_PREFIXES : QUIRKS_MODE_PUBLIC_ID_PREFIXES;\n if (hasPrefix(publicId, prefixes)) {\n return DOCUMENT_MODE.QUIRKS;\n }\n prefixes =\n systemId === null ? LIMITED_QUIRKS_PUBLIC_ID_PREFIXES : LIMITED_QUIRKS_WITH_SYSTEM_ID_PUBLIC_ID_PREFIXES;\n if (hasPrefix(publicId, prefixes)) {\n return DOCUMENT_MODE.LIMITED_QUIRKS;\n }\n }\n return DOCUMENT_MODE.NO_QUIRKS;\n}\n","import { TAG_ID as $, NS, ATTRS, getTagID } from './html.js';\n//MIME types\nconst MIME_TYPES = {\n TEXT_HTML: 'text/html',\n APPLICATION_XML: 'application/xhtml+xml',\n};\n//Attributes\nconst DEFINITION_URL_ATTR = 'definitionurl';\nconst ADJUSTED_DEFINITION_URL_ATTR = 'definitionURL';\nconst SVG_ATTRS_ADJUSTMENT_MAP = new Map([\n 'attributeName',\n 'attributeType',\n 'baseFrequency',\n 'baseProfile',\n 'calcMode',\n 'clipPathUnits',\n 'diffuseConstant',\n 'edgeMode',\n 'filterUnits',\n 'glyphRef',\n 'gradientTransform',\n 'gradientUnits',\n 'kernelMatrix',\n 'kernelUnitLength',\n 'keyPoints',\n 'keySplines',\n 'keyTimes',\n 'lengthAdjust',\n 'limitingConeAngle',\n 'markerHeight',\n 'markerUnits',\n 'markerWidth',\n 'maskContentUnits',\n 'maskUnits',\n 'numOctaves',\n 'pathLength',\n 'patternContentUnits',\n 'patternTransform',\n 'patternUnits',\n 'pointsAtX',\n 'pointsAtY',\n 'pointsAtZ',\n 'preserveAlpha',\n 'preserveAspectRatio',\n 'primitiveUnits',\n 'refX',\n 'refY',\n 'repeatCount',\n 'repeatDur',\n 'requiredExtensions',\n 'requiredFeatures',\n 'specularConstant',\n 'specularExponent',\n 'spreadMethod',\n 'startOffset',\n 'stdDeviation',\n 'stitchTiles',\n 'surfaceScale',\n 'systemLanguage',\n 'tableValues',\n 'targetX',\n 'targetY',\n 'textLength',\n 'viewBox',\n 'viewTarget',\n 'xChannelSelector',\n 'yChannelSelector',\n 'zoomAndPan',\n].map((attr) => [attr.toLowerCase(), attr]));\nconst XML_ATTRS_ADJUSTMENT_MAP = new Map([\n ['xlink:actuate', { prefix: 'xlink', name: 'actuate', namespace: NS.XLINK }],\n ['xlink:arcrole', { prefix: 'xlink', name: 'arcrole', namespace: NS.XLINK }],\n ['xlink:href', { prefix: 'xlink', name: 'href', namespace: NS.XLINK }],\n ['xlink:role', { prefix: 'xlink', name: 'role', namespace: NS.XLINK }],\n ['xlink:show', { prefix: 'xlink', name: 'show', namespace: NS.XLINK }],\n ['xlink:title', { prefix: 'xlink', name: 'title', namespace: NS.XLINK }],\n ['xlink:type', { prefix: 'xlink', name: 'type', namespace: NS.XLINK }],\n ['xml:lang', { prefix: 'xml', name: 'lang', namespace: NS.XML }],\n ['xml:space', { prefix: 'xml', name: 'space', namespace: NS.XML }],\n ['xmlns', { prefix: '', name: 'xmlns', namespace: NS.XMLNS }],\n ['xmlns:xlink', { prefix: 'xmlns', name: 'xlink', namespace: NS.XMLNS }],\n]);\n//SVG tag names adjustment map\nexport const SVG_TAG_NAMES_ADJUSTMENT_MAP = new Map([\n 'altGlyph',\n 'altGlyphDef',\n 'altGlyphItem',\n 'animateColor',\n 'animateMotion',\n 'animateTransform',\n 'clipPath',\n 'feBlend',\n 'feColorMatrix',\n 'feComponentTransfer',\n 'feComposite',\n 'feConvolveMatrix',\n 'feDiffuseLighting',\n 'feDisplacementMap',\n 'feDistantLight',\n 'feFlood',\n 'feFuncA',\n 'feFuncB',\n 'feFuncG',\n 'feFuncR',\n 'feGaussianBlur',\n 'feImage',\n 'feMerge',\n 'feMergeNode',\n 'feMorphology',\n 'feOffset',\n 'fePointLight',\n 'feSpecularLighting',\n 'feSpotLight',\n 'feTile',\n 'feTurbulence',\n 'foreignObject',\n 'glyphRef',\n 'linearGradient',\n 'radialGradient',\n 'textPath',\n].map((tn) => [tn.toLowerCase(), tn]));\n//Tags that causes exit from foreign content\nconst EXITS_FOREIGN_CONTENT = new Set([\n $.B,\n $.BIG,\n $.BLOCKQUOTE,\n $.BODY,\n $.BR,\n $.CENTER,\n $.CODE,\n $.DD,\n $.DIV,\n $.DL,\n $.DT,\n $.EM,\n $.EMBED,\n $.H1,\n $.H2,\n $.H3,\n $.H4,\n $.H5,\n $.H6,\n $.HEAD,\n $.HR,\n $.I,\n $.IMG,\n $.LI,\n $.LISTING,\n $.MENU,\n $.META,\n $.NOBR,\n $.OL,\n $.P,\n $.PRE,\n $.RUBY,\n $.S,\n $.SMALL,\n $.SPAN,\n $.STRONG,\n $.STRIKE,\n $.SUB,\n $.SUP,\n $.TABLE,\n $.TT,\n $.U,\n $.UL,\n $.VAR,\n]);\n//Check exit from foreign content\nexport function causesExit(startTagToken) {\n const tn = startTagToken.tagID;\n const isFontWithAttrs = tn === $.FONT &&\n startTagToken.attrs.some(({ name }) => name === ATTRS.COLOR || name === ATTRS.SIZE || name === ATTRS.FACE);\n return isFontWithAttrs || EXITS_FOREIGN_CONTENT.has(tn);\n}\n//Token adjustments\nexport function adjustTokenMathMLAttrs(token) {\n for (let i = 0; i < token.attrs.length; i++) {\n if (token.attrs[i].name === DEFINITION_URL_ATTR) {\n token.attrs[i].name = ADJUSTED_DEFINITION_URL_ATTR;\n break;\n }\n }\n}\nexport function adjustTokenSVGAttrs(token) {\n for (let i = 0; i < token.attrs.length; i++) {\n const adjustedAttrName = SVG_ATTRS_ADJUSTMENT_MAP.get(token.attrs[i].name);\n if (adjustedAttrName != null) {\n token.attrs[i].name = adjustedAttrName;\n }\n }\n}\nexport function adjustTokenXMLAttrs(token) {\n for (let i = 0; i < token.attrs.length; i++) {\n const adjustedAttrEntry = XML_ATTRS_ADJUSTMENT_MAP.get(token.attrs[i].name);\n if (adjustedAttrEntry) {\n token.attrs[i].prefix = adjustedAttrEntry.prefix;\n token.attrs[i].name = adjustedAttrEntry.name;\n token.attrs[i].namespace = adjustedAttrEntry.namespace;\n }\n }\n}\nexport function adjustTokenSVGTagName(token) {\n const adjustedTagName = SVG_TAG_NAMES_ADJUSTMENT_MAP.get(token.tagName);\n if (adjustedTagName != null) {\n token.tagName = adjustedTagName;\n token.tagID = getTagID(token.tagName);\n }\n}\n//Integration points\nfunction isMathMLTextIntegrationPoint(tn, ns) {\n return ns === NS.MATHML && (tn === $.MI || tn === $.MO || tn === $.MN || tn === $.MS || tn === $.MTEXT);\n}\nfunction isHtmlIntegrationPoint(tn, ns, attrs) {\n if (ns === NS.MATHML && tn === $.ANNOTATION_XML) {\n for (let i = 0; i < attrs.length; i++) {\n if (attrs[i].name === ATTRS.ENCODING) {\n const value = attrs[i].value.toLowerCase();\n return value === MIME_TYPES.TEXT_HTML || value === MIME_TYPES.APPLICATION_XML;\n }\n }\n }\n return ns === NS.SVG && (tn === $.FOREIGN_OBJECT || tn === $.DESC || tn === $.TITLE);\n}\nexport function isIntegrationPoint(tn, ns, attrs, foreignNS) {\n return (((!foreignNS || foreignNS === NS.HTML) && isHtmlIntegrationPoint(tn, ns, attrs)) ||\n ((!foreignNS || foreignNS === NS.MATHML) && isMathMLTextIntegrationPoint(tn, ns)));\n}\n","import { Tokenizer, TokenizerMode } from '../tokenizer/index.js';\nimport { OpenElementStack } from './open-element-stack.js';\nimport { FormattingElementList, EntryType } from './formatting-element-list.js';\nimport { defaultTreeAdapter } from '../tree-adapters/default.js';\nimport * as doctype from '../common/doctype.js';\nimport * as foreignContent from '../common/foreign-content.js';\nimport { ERR } from '../common/error-codes.js';\nimport * as unicode from '../common/unicode.js';\nimport { TAG_ID as $, TAG_NAMES as TN, NS, ATTRS, SPECIAL_ELEMENTS, DOCUMENT_MODE, NUMBERED_HEADERS, getTagID, } from '../common/html.js';\nimport { TokenType, getTokenAttr, } from '../common/token.js';\n//Misc constants\nconst HIDDEN_INPUT_TYPE = 'hidden';\n//Adoption agency loops iteration count\nconst AA_OUTER_LOOP_ITER = 8;\nconst AA_INNER_LOOP_ITER = 3;\n//Insertion modes\nvar InsertionMode;\n(function (InsertionMode) {\n InsertionMode[InsertionMode[\"INITIAL\"] = 0] = \"INITIAL\";\n InsertionMode[InsertionMode[\"BEFORE_HTML\"] = 1] = \"BEFORE_HTML\";\n InsertionMode[InsertionMode[\"BEFORE_HEAD\"] = 2] = \"BEFORE_HEAD\";\n InsertionMode[InsertionMode[\"IN_HEAD\"] = 3] = \"IN_HEAD\";\n InsertionMode[InsertionMode[\"IN_HEAD_NO_SCRIPT\"] = 4] = \"IN_HEAD_NO_SCRIPT\";\n InsertionMode[InsertionMode[\"AFTER_HEAD\"] = 5] = \"AFTER_HEAD\";\n InsertionMode[InsertionMode[\"IN_BODY\"] = 6] = \"IN_BODY\";\n InsertionMode[InsertionMode[\"TEXT\"] = 7] = \"TEXT\";\n InsertionMode[InsertionMode[\"IN_TABLE\"] = 8] = \"IN_TABLE\";\n InsertionMode[InsertionMode[\"IN_TABLE_TEXT\"] = 9] = \"IN_TABLE_TEXT\";\n InsertionMode[InsertionMode[\"IN_CAPTION\"] = 10] = \"IN_CAPTION\";\n InsertionMode[InsertionMode[\"IN_COLUMN_GROUP\"] = 11] = \"IN_COLUMN_GROUP\";\n InsertionMode[InsertionMode[\"IN_TABLE_BODY\"] = 12] = \"IN_TABLE_BODY\";\n InsertionMode[InsertionMode[\"IN_ROW\"] = 13] = \"IN_ROW\";\n InsertionMode[InsertionMode[\"IN_CELL\"] = 14] = \"IN_CELL\";\n InsertionMode[InsertionMode[\"IN_SELECT\"] = 15] = \"IN_SELECT\";\n InsertionMode[InsertionMode[\"IN_SELECT_IN_TABLE\"] = 16] = \"IN_SELECT_IN_TABLE\";\n InsertionMode[InsertionMode[\"IN_TEMPLATE\"] = 17] = \"IN_TEMPLATE\";\n InsertionMode[InsertionMode[\"AFTER_BODY\"] = 18] = \"AFTER_BODY\";\n InsertionMode[InsertionMode[\"IN_FRAMESET\"] = 19] = \"IN_FRAMESET\";\n InsertionMode[InsertionMode[\"AFTER_FRAMESET\"] = 20] = \"AFTER_FRAMESET\";\n InsertionMode[InsertionMode[\"AFTER_AFTER_BODY\"] = 21] = \"AFTER_AFTER_BODY\";\n InsertionMode[InsertionMode[\"AFTER_AFTER_FRAMESET\"] = 22] = \"AFTER_AFTER_FRAMESET\";\n})(InsertionMode || (InsertionMode = {}));\nconst BASE_LOC = {\n startLine: -1,\n startCol: -1,\n startOffset: -1,\n endLine: -1,\n endCol: -1,\n endOffset: -1,\n};\nconst TABLE_STRUCTURE_TAGS = new Set([$.TABLE, $.TBODY, $.TFOOT, $.THEAD, $.TR]);\nconst defaultParserOptions = {\n scriptingEnabled: true,\n sourceCodeLocationInfo: false,\n treeAdapter: defaultTreeAdapter,\n onParseError: null,\n};\n//Parser\nexport class Parser {\n constructor(options, document, \n /** @internal */\n fragmentContext = null, \n /** @internal */\n scriptHandler = null) {\n this.fragmentContext = fragmentContext;\n this.scriptHandler = scriptHandler;\n this.currentToken = null;\n this.stopped = false;\n /** @internal */\n this.insertionMode = InsertionMode.INITIAL;\n /** @internal */\n this.originalInsertionMode = InsertionMode.INITIAL;\n /** @internal */\n this.headElement = null;\n /** @internal */\n this.formElement = null;\n /** Indicates that the current node is not an element in the HTML namespace */\n this.currentNotInHTML = false;\n /**\n * The template insertion mode stack is maintained from the left.\n * Ie. the topmost element will always have index 0.\n *\n * @internal\n */\n this.tmplInsertionModeStack = [];\n /** @internal */\n this.pendingCharacterTokens = [];\n /** @internal */\n this.hasNonWhitespacePendingCharacterToken = false;\n /** @internal */\n this.framesetOk = true;\n /** @internal */\n this.skipNextNewLine = false;\n /** @internal */\n this.fosterParentingEnabled = false;\n this.options = {\n ...defaultParserOptions,\n ...options,\n };\n this.treeAdapter = this.options.treeAdapter;\n this.onParseError = this.options.onParseError;\n // Always enable location info if we report parse errors.\n if (this.onParseError) {\n this.options.sourceCodeLocationInfo = true;\n }\n this.document = document !== null && document !== void 0 ? document : this.treeAdapter.createDocument();\n this.tokenizer = new Tokenizer(this.options, this);\n this.activeFormattingElements = new FormattingElementList(this.treeAdapter);\n this.fragmentContextID = fragmentContext ? getTagID(this.treeAdapter.getTagName(fragmentContext)) : $.UNKNOWN;\n this._setContextModes(fragmentContext !== null && fragmentContext !== void 0 ? fragmentContext : this.document, this.fragmentContextID);\n this.openElements = new OpenElementStack(this.document, this.treeAdapter, this);\n }\n // API\n static parse(html, options) {\n const parser = new this(options);\n parser.tokenizer.write(html, true);\n return parser.document;\n }\n static getFragmentParser(fragmentContext, options) {\n const opts = {\n ...defaultParserOptions,\n ...options,\n };\n //NOTE: use a