{"version":3,"file":"static/js/main.33e06c2a.js","mappings":"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","sources":["../node_modules/dayjs/dayjs.min.js","../node_modules/dayjs/locale/zh-cn.js","../node_modules/dayjs/plugin/advancedFormat.js","../node_modules/dayjs/plugin/customParseFormat.js","../node_modules/dayjs/plugin/localeData.js","../node_modules/dayjs/plugin/weekOfYear.js","../node_modules/dayjs/plugin/weekYear.js","../node_modules/dayjs/plugin/weekday.js","../node_modules/extend/index.js","../node_modules/inline-style-parser/index.js","../node_modules/is-buffer/index.js","../node_modules/lodash/_Symbol.js","../node_modules/lodash/_arrayMap.js","../node_modules/lodash/_arrayReduce.js","../node_modules/lodash/_asciiToArray.js","../node_modules/lodash/_asciiWords.js","../node_modules/lodash/_baseGetTag.js","../node_modules/lodash/_basePropertyOf.js","../node_modules/lodash/_baseSlice.js","../node_modules/lodash/_baseToString.js","../node_modules/lodash/_castSlice.js","../node_modules/lodash/_createCaseFirst.js","../node_modules/lodash/_createCompounder.js","../node_modules/lodash/_deburrLetter.js","../node_modules/lodash/_freeGlobal.js","../node_modules/lodash/_getRawTag.js","../node_modules/lodash/_hasUnicode.js","../node_modules/lodash/_hasUnicodeWord.js","../node_modules/lodash/_objectToString.js","../node_modules/lodash/_root.js","../node_modules/lodash/_stringToArray.js","../node_modules/lodash/_unicodeToArray.js","../node_modules/lodash/_unicodeWords.js","../node_modules/lodash/camelCase.js","../node_modules/lodash/capitalize.js","../node_modules/lodash/deburr.js","../node_modules/lodash/isArray.js","../node_modules/lodash/isObjectLike.js","../node_modules/lodash/isSymbol.js","../node_modules/lodash/toString.js","../node_modules/lodash/upperFirst.js","../node_modules/lodash/words.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/index.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/rc-picker/lib/generate/dayjs.js","../node_modules/rc-util/lib/warning.js","../node_modules/react-dom/client.js","../../../../webpack/bootstrap 6061d6ae30f5a66e62e1","../../../../src/index.js","../../../../src/Highlighter.js","../../../../~/highlight-words-core/dist/index.js","../../../../~/prop-types/index.js","../../../../~/process/browser.js","../../../../~/prop-types/factoryWithTypeCheckers.js","../../../../~/fbjs/lib/emptyFunction.js","../../../../~/fbjs/lib/invariant.js","../../../../~/fbjs/lib/warning.js","../../../../~/object-assign/index.js","../../../../~/prop-types/lib/ReactPropTypesSecret.js","../../../../~/prop-types/checkPropTypes.js","../../../../~/prop-types/factoryWithThrowingShims.js","../../../../external \"react\"","../../../../~/memoize-one/dist/memoize-one.cjs.js","../node_modules/react-is/cjs/react-is.production.min.js","../node_modules/react-is/index.js","../node_modules/react/cjs/react-jsx-runtime.production.min.js","../node_modules/react/jsx-runtime.js","../node_modules/style-to-object/index.js","../external var \"React\"","../external var \"ReactDOM\"","../external var \"antd\"","../external var \"echarts\"","../node_modules/@babel/runtime/helpers/interopRequireDefault.js","../node_modules/classnames/index.js","../webpack/bootstrap","../webpack/runtime/compat get default export","../webpack/runtime/define property getters","../webpack/runtime/ensure chunk","../webpack/runtime/get javascript chunk filename","../webpack/runtime/get mini-css chunk filename","../webpack/runtime/global","../webpack/runtime/hasOwnProperty shorthand","../webpack/runtime/load script","../webpack/runtime/make namespace object","../webpack/runtime/publicPath","../webpack/runtime/jsonp chunk loading","../node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/antd/es/time-picker/locale/zh_CN.js","../node_modules/antd/es/date-picker/locale/zh_CN.js","../node_modules/antd/node_modules/rc-picker/es/locale/zh_CN.js","../node_modules/antd/es/locale/zh_CN.js","../node_modules/rc-pagination/es/locale/zh_CN.js","../node_modules/@remix-run/router/history.ts","../node_modules/@remix-run/router/utils.ts","../node_modules/@remix-run/router/router.ts","../node_modules/react-router/lib/context.ts","../node_modules/react-router/lib/hooks.tsx","../node_modules/react-router/lib/deprecations.ts","../node_modules/react-router/lib/components.tsx","../node_modules/react-router-dom/dom.ts","../node_modules/react-router-dom/index.tsx","page/routePath.ts","components/loading/Loading.tsx","components/loading/EmbeddableLoading.tsx","hook/usePersisFn.ts","config/config.ts","util/query.ts","request/types.ts","request/api.ts","util/modalUtil.ts","util/debounce.ts","hook/useApiRequest.ts","context/UserInfo.tsx","components/footer/Footer.tsx","hook/useTitle.ts","components/notFound/PageNotFound.tsx","components/notFound/OrderNotFound.tsx","../node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","../node_modules/@babel/runtime/helpers/esm/toPrimitive.js","../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/@babel/runtime/helpers/esm/objectSpread2.js","../node_modules/@ant-design/icons-svg/es/asn/UserOutlined.js","../node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/@ant-design/icons/es/components/Context.js","../node_modules/@ctrl/tinycolor/dist/module/util.js","../node_modules/@ctrl/tinycolor/dist/module/conversion.js","../node_modules/@ctrl/tinycolor/dist/module/css-color-names.js","../node_modules/@ctrl/tinycolor/dist/module/format-input.js","../node_modules/@ant-design/colors/dist/index.esm.js","../node_modules/rc-util/es/warning.js","../node_modules/rc-util/es/Dom/canUseDom.js","../node_modules/rc-util/es/Dom/contains.js","../node_modules/rc-util/es/Dom/dynamicCSS.js","../node_modules/@ant-design/icons/es/utils.js","../node_modules/@ant-design/icons/es/components/IconBase.js","../node_modules/@ant-design/icons/es/components/twoTonePrimaryColor.js","../node_modules/@ant-design/icons/es/components/AntdIcon.js","../node_modules/@ant-design/icons/es/icons/UserOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/LockOutlined.js","../node_modules/@ant-design/icons/es/icons/LockOutlined.js","page/wcms/login/AutoLogin.tsx","page/wcms/login/LoginPage.tsx","../node_modules/@ant-design/icons-svg/es/asn/LikeTwoTone.js","../node_modules/@ant-design/icons/es/icons/LikeTwoTone.js","../node_modules/@ant-design/icons-svg/es/asn/LikeOutlined.js","../node_modules/@ant-design/icons/es/icons/LikeOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/MessageOutlined.js","../node_modules/@ant-design/icons/es/icons/MessageOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/FileUnknownOutlined.js","../node_modules/@ant-design/icons/es/icons/FileUnknownOutlined.js","components/attachment/Attachment.tsx","../node_modules/@ant-design/icons-svg/es/asn/PlusOutlined.js","../node_modules/@ant-design/icons/es/icons/PlusOutlined.js","components/attachment/AttachmentUpload.tsx","components/attachment/AttachmentList.tsx","components/layout/CenterMe.tsx","components/reply/ReplyEditor.tsx","util/time.ts","components/text/HighlightText.tsx","components/text/MultiLinePlainText.tsx","components/reply/ReplyList.tsx","../node_modules/unist-util-stringify-position/lib/index.js","../node_modules/vfile-message/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/bail/index.js","../node_modules/unified/node_modules/is-plain-obj/index.js","../node_modules/trough/lib/index.js","../node_modules/unified/lib/index.js","../node_modules/mdast-util-to-string/lib/index.js","../node_modules/micromark-util-chunked/index.js","../node_modules/micromark-util-combine-extensions/index.js","../node_modules/micromark-util-character/lib/unicode-punctuation-regex.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-util-subtokenize/index.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/parse.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/remark-parse/lib/index.js","../node_modules/micromark-util-sanitize-uri/index.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/unist-util-position/lib/index.js","../node_modules/mdast-util-definitions/lib/index.js","../node_modules/mdast-util-to-hast/lib/handlers/footnote-reference.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.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/unist-util-generated/lib/index.js","../node_modules/mdast-util-to-hast/lib/index.js","../node_modules/mdast-util-to-hast/lib/footer.js","../node_modules/remark-rehype/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/react-markdown/lib/rehype-filter.js","../node_modules/hast-util-whitespace/index.js","../node_modules/property-information/lib/find.js","../node_modules/property-information/lib/hast-to-react.js","../node_modules/style-to-object/index.mjs","../node_modules/react-markdown/lib/uri-transformer.js","../node_modules/react-markdown/lib/ast-to-react.js","../node_modules/comma-separated-tokens/index.js","../node_modules/space-separated-tokens/index.js","../node_modules/react-markdown/lib/react-markdown.js","hook/useMemberContext.ts","components/announcement/SingleAnnouncement.tsx","util/enum.ts","components/announcement/AnnouncementList.tsx","page/wcms/dashboard/OrderStat.tsx","page/wcms/dashboard/MyOrderStat.tsx","page/wcms/dashboard/WorkshopPresence.tsx","../node_modules/antd/es/_util/type.js","../node_modules/rc-util/es/omit.js","../node_modules/antd/es/config-provider/context.js","../node_modules/antd/es/config-provider/DisabledContext.js","../node_modules/antd/es/config-provider/SizeContext.js","../node_modules/rc-util/es/Children/toArray.js","../node_modules/antd/es/space/Compact.js","../node_modules/antd/es/_util/reactNode.js","../node_modules/@babel/runtime/helpers/esm/classCallCheck.js","../node_modules/@babel/runtime/helpers/esm/createClass.js","../node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","../node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","../node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/inherits.js","../node_modules/rc-util/es/hooks/useMemo.js","../node_modules/rc-util/es/ref.js","../node_modules/rc-util/es/raf.js","../node_modules/antd/es/_util/raf.js","../node_modules/antd/es/_util/wave.js","../node_modules/antd/es/button/button-group.js","../node_modules/@ant-design/icons-svg/es/asn/LoadingOutlined.js","../node_modules/@ant-design/icons/es/icons/LoadingOutlined.js","../node_modules/rc-util/es/Dom/findDOMNode.js","../node_modules/rc-motion/es/context.js","../node_modules/@babel/runtime/helpers/esm/createSuper.js","../node_modules/rc-motion/es/DomWrapper.js","../node_modules/rc-util/es/hooks/useEvent.js","../node_modules/rc-util/es/hooks/useLayoutEffect.js","../node_modules/rc-util/es/hooks/useState.js","../node_modules/rc-util/es/hooks/useMergedState.js","../node_modules/@babel/runtime/helpers/esm/iterableToArray.js","../node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","../node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","../node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","../node_modules/rc-util/es/utils/get.js","../node_modules/rc-util/es/utils/set.js","../node_modules/@babel/runtime/helpers/esm/toArray.js","../node_modules/rc-motion/es/interface.js","../node_modules/rc-motion/es/util/motion.js","../node_modules/rc-motion/es/hooks/useIsomorphicLayoutEffect.js","../node_modules/rc-motion/es/hooks/useStepQueue.js","../node_modules/rc-motion/es/hooks/useNextFrame.js","../node_modules/rc-motion/es/hooks/useStatus.js","../node_modules/rc-util/es/hooks/useSyncState.js","../node_modules/rc-motion/es/hooks/useDomMotionEvents.js","../node_modules/rc-motion/es/CSSMotion.js","../node_modules/rc-motion/es/util/diff.js","../node_modules/rc-motion/es/CSSMotionList.js","../node_modules/rc-motion/es/index.js","../node_modules/antd/es/button/LoadingIcon.js","../node_modules/antd/es/button/button.js","../node_modules/antd/es/button/index.js","../node_modules/@ant-design/icons-svg/es/asn/CloseOutlined.js","../node_modules/@ant-design/icons/es/icons/CloseOutlined.js","../node_modules/antd/es/_util/colors.js","../node_modules/antd/es/tag/CheckableTag.js","../node_modules/antd/es/tag/index.js","../node_modules/@ant-design/icons-svg/es/asn/CalendarOutlined.js","../node_modules/@ant-design/icons/es/icons/CalendarOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/ClockCircleOutlined.js","../node_modules/@ant-design/icons/es/icons/ClockCircleOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/CloseCircleFilled.js","../node_modules/@ant-design/icons/es/icons/CloseCircleFilled.js","../node_modules/@ant-design/icons-svg/es/asn/SwapRightOutlined.js","../node_modules/@ant-design/icons/es/icons/SwapRightOutlined.js","../node_modules/rc-util/es/KeyCode.js","../node_modules/antd/node_modules/rc-picker/es/PanelContext.js","../node_modules/antd/node_modules/rc-picker/es/panels/Header.js","../node_modules/antd/node_modules/rc-picker/es/panels/DecadePanel/DecadeHeader.js","../node_modules/antd/node_modules/rc-picker/es/utils/timeUtil.js","../node_modules/antd/node_modules/rc-picker/es/panels/PanelBody.js","../node_modules/antd/node_modules/rc-picker/es/panels/DecadePanel/DecadeBody.js","../node_modules/rc-util/es/Dom/isVisible.js","../node_modules/antd/node_modules/rc-picker/es/utils/uiUtil.js","../node_modules/antd/node_modules/rc-picker/es/panels/DecadePanel/index.js","../node_modules/antd/node_modules/rc-picker/es/utils/dateUtil.js","../node_modules/antd/node_modules/rc-picker/es/panels/TimePanel/TimeHeader.js","../node_modules/antd/node_modules/rc-picker/es/utils/miscUtil.js","../node_modules/antd/node_modules/rc-picker/es/panels/TimePanel/TimeUnitColumn.js","../node_modules/antd/node_modules/rc-picker/es/panels/TimePanel/TimeBody.js","../node_modules/antd/node_modules/rc-picker/es/hooks/useTimeSelection.js","../node_modules/antd/node_modules/rc-picker/es/panels/TimePanel/index.js","../node_modules/antd/node_modules/rc-picker/es/RangeContext.js","../node_modules/antd/node_modules/rc-picker/es/hooks/useCellClassName.js","../node_modules/antd/node_modules/rc-picker/es/panels/DatePanel/DateBody.js","../node_modules/antd/node_modules/rc-picker/es/panels/DatePanel/DateHeader.js","../node_modules/antd/node_modules/rc-picker/es/panels/DatePanel/index.js","../node_modules/antd/node_modules/rc-picker/es/panels/DatetimePanel/index.js","../node_modules/antd/node_modules/rc-picker/es/panels/WeekPanel/index.js","../node_modules/antd/node_modules/rc-picker/es/panels/MonthPanel/MonthHeader.js","../node_modules/antd/node_modules/rc-picker/es/panels/MonthPanel/MonthBody.js","../node_modules/antd/node_modules/rc-picker/es/panels/MonthPanel/index.js","../node_modules/antd/node_modules/rc-picker/es/panels/QuarterPanel/QuarterHeader.js","../node_modules/antd/node_modules/rc-picker/es/panels/QuarterPanel/QuarterBody.js","../node_modules/antd/node_modules/rc-picker/es/panels/QuarterPanel/index.js","../node_modules/antd/node_modules/rc-picker/es/panels/YearPanel/YearHeader.js","../node_modules/antd/node_modules/rc-picker/es/panels/YearPanel/YearBody.js","../node_modules/antd/node_modules/rc-picker/es/panels/YearPanel/index.js","../node_modules/antd/node_modules/rc-picker/es/utils/getExtraFooter.js","../node_modules/antd/node_modules/rc-picker/es/utils/getRanges.js","../node_modules/antd/node_modules/rc-picker/es/PickerPanel.js","../node_modules/rc-util/es/Dom/addEventListener.js","../node_modules/rc-util/es/Portal.js","../node_modules/rc-trigger/es/utils/alignUtil.js","../node_modules/rc-trigger/es/utils/legacyUtil.js","../node_modules/rc-trigger/es/Popup/Mask.js","../node_modules/src/propertyUtils.js","../node_modules/src/utils.js","../node_modules/src/getOffsetParent.js","../node_modules/src/isAncestorFixed.js","../node_modules/src/getVisibleRectForElement.js","../node_modules/src/getRegion.js","../node_modules/src/getAlignOffset.js","../node_modules/src/getElFuturePos.js","../node_modules/src/align/align.js","../node_modules/src/adjustForViewport.js","../node_modules/src/align/alignElement.js","../node_modules/rc-util/es/isEqual.js","../node_modules/resize-observer-polyfill/dist/ResizeObserver.es.js","../node_modules/rc-align/es/util.js","../node_modules/rc-align/es/Align.js","../node_modules/rc-align/es/hooks/useBuffer.js","../node_modules/src/align/alignPoint.js","../node_modules/rc-align/es/index.js","../node_modules/@babel/runtime/helpers/esm/regeneratorRuntime.js","../node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","../node_modules/rc-trigger/es/Popup/useVisibleStatus.js","../node_modules/rc-trigger/es/Popup/PopupInner.js","../node_modules/rc-trigger/es/Popup/useStretchStyle.js","../node_modules/rc-trigger/es/Popup/MobilePopupInner.js","../node_modules/rc-trigger/es/Popup/index.js","../node_modules/rc-util/es/isMobile.js","../node_modules/rc-trigger/es/context.js","../node_modules/rc-trigger/es/index.js","../node_modules/antd/node_modules/rc-picker/es/PickerTrigger.js","../node_modules/antd/node_modules/rc-picker/es/hooks/usePickerInput.js","../node_modules/antd/node_modules/rc-picker/es/hooks/useTextValueMapping.js","../node_modules/antd/node_modules/rc-picker/es/hooks/useValueTexts.js","../node_modules/antd/node_modules/rc-picker/es/hooks/useHoverValue.js","../node_modules/antd/node_modules/rc-picker/es/Picker.js","../node_modules/antd/node_modules/rc-picker/es/hooks/useRangeViewDates.js","../node_modules/antd/node_modules/rc-picker/es/RangePicker.js","../node_modules/antd/node_modules/rc-picker/es/hooks/useRangeDisabled.js","../node_modules/antd/node_modules/rc-picker/es/index.js","../node_modules/rc-field-form/es/FieldContext.js","../node_modules/rc-field-form/es/ListContext.js","../node_modules/rc-field-form/es/utils/typeUtil.js","../node_modules/src/util.ts","../node_modules/src/rule/required.ts","../node_modules/src/rule/url.ts","../node_modules/src/rule/type.ts","../node_modules/src/rule/enum.ts","../node_modules/src/rule/index.ts","../node_modules/src/rule/whitespace.ts","../node_modules/src/rule/range.ts","../node_modules/src/rule/pattern.ts","../node_modules/src/validator/type.ts","../node_modules/src/validator/index.ts","../node_modules/src/validator/string.ts","../node_modules/src/validator/method.ts","../node_modules/src/validator/number.ts","../node_modules/src/validator/boolean.ts","../node_modules/src/validator/regexp.ts","../node_modules/src/validator/integer.ts","../node_modules/src/validator/float.ts","../node_modules/src/validator/array.ts","../node_modules/src/validator/object.ts","../node_modules/src/validator/enum.ts","../node_modules/src/validator/pattern.ts","../node_modules/src/validator/date.ts","../node_modules/src/validator/required.ts","../node_modules/src/validator/any.ts","../node_modules/src/messages.ts","../node_modules/src/index.ts","../node_modules/rc-field-form/es/utils/messages.js","../node_modules/rc-field-form/es/utils/validateUtil.js","../node_modules/rc-field-form/es/utils/valueUtil.js","../node_modules/rc-field-form/es/Field.js","../node_modules/rc-field-form/es/List.js","../node_modules/rc-field-form/es/utils/NameMap.js","../node_modules/rc-field-form/es/useForm.js","../node_modules/rc-field-form/es/utils/asyncUtil.js","../node_modules/rc-field-form/es/FormContext.js","../node_modules/rc-field-form/es/Form.js","../node_modules/rc-field-form/es/useWatch.js","../node_modules/rc-field-form/es/index.js","../node_modules/antd/es/form/context.js","../node_modules/antd/es/locale-provider/context.js","../node_modules/antd/es/time-picker/locale/en_US.js","../node_modules/antd/es/date-picker/locale/en_US.js","../node_modules/antd/node_modules/rc-picker/es/locale/en_US.js","../node_modules/antd/es/locale/default.js","../node_modules/antd/es/locale-provider/default.js","../node_modules/rc-pagination/es/locale/en_US.js","../node_modules/antd/es/calendar/locale/en_US.js","../node_modules/antd/es/locale-provider/LocaleReceiver.js","../node_modules/antd/es/_util/statusUtils.js","../node_modules/antd/es/date-picker/util.js","../node_modules/antd/es/date-picker/generatePicker/generateRangePicker.js","../node_modules/antd/es/date-picker/generatePicker/generateSinglePicker.js","../node_modules/antd/es/date-picker/generatePicker/index.js","../node_modules/antd/es/date-picker/PickerButton.js","../node_modules/antd/es/date-picker/PickerTag.js","page/wcms/handleOrder/DatePicker.ts","../node_modules/@ant-design/icons-svg/es/asn/CrownFilled.js","../node_modules/@ant-design/icons/es/icons/CrownFilled.js","hook/useDebounce.ts","hook/useLocalStorageState.ts","hook/useThrottle.ts","hook/useUpdateEffect.ts","hook/useMount.tsx","components/charts/Charts.tsx","page/wcms/dashboard/DashBoardPage.tsx","page/wcms/handleOrder/SearchCondition.tsx","page/wcms/handleOrder/OrderPagination.tsx","../node_modules/@ant-design/icons-svg/es/asn/CalendarTwoTone.js","../node_modules/@ant-design/icons/es/icons/CalendarTwoTone.js","../node_modules/@ant-design/icons-svg/es/asn/ClockCircleTwoTone.js","../node_modules/@ant-design/icons/es/icons/ClockCircleTwoTone.js","../node_modules/@ant-design/icons-svg/es/asn/CheckCircleTwoTone.js","../node_modules/@ant-design/icons/es/icons/CheckCircleTwoTone.js","../node_modules/@ant-design/icons-svg/es/asn/CloseCircleTwoTone.js","../node_modules/@ant-design/icons/es/icons/CloseCircleTwoTone.js","../node_modules/@ant-design/icons-svg/es/asn/EyeInvisibleOutlined.js","../node_modules/@ant-design/icons/es/icons/EyeInvisibleOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/EyeOutlined.js","../node_modules/@ant-design/icons/es/icons/EyeOutlined.js","page/wcms/handleOrder/HandleActions.tsx","page/wcms/handleOrder/OrderInfoCard.tsx","page/wcms/handleOrder/OrderList.tsx","page/wcms/handleOrder/HandleOrderPage.tsx","components/form/CampusFormItem.tsx","page/wcms/profile/MemberSettings.tsx","page/wcms/profile/PasswordReset.tsx","page/wcms/profile/BasicInfo.tsx","page/wcms/profile/ProfilePage.tsx","page/wcms/announcementManage/AnnouncementEditor.tsx","../node_modules/@ant-design/icons-svg/es/asn/MenuOutlined.js","../node_modules/@ant-design/icons/es/icons/MenuOutlined.js","../node_modules/@dnd-kit/utilities/src/execution-context/canUseDOM.ts","../node_modules/@dnd-kit/utilities/src/type-guards/isWindow.ts","../node_modules/@dnd-kit/utilities/src/type-guards/isNode.ts","../node_modules/@dnd-kit/utilities/src/execution-context/getWindow.ts","../node_modules/@dnd-kit/utilities/src/type-guards/isDocument.ts","../node_modules/@dnd-kit/utilities/src/type-guards/isHTMLElement.ts","../node_modules/@dnd-kit/utilities/src/type-guards/isSVGElement.ts","../node_modules/@dnd-kit/utilities/src/execution-context/getOwnerDocument.ts","../node_modules/@dnd-kit/utilities/src/hooks/useIsomorphicLayoutEffect.ts","../node_modules/@dnd-kit/utilities/src/hooks/useEvent.ts","../node_modules/@dnd-kit/utilities/src/hooks/useLatestValue.ts","../node_modules/@dnd-kit/utilities/src/hooks/useLazyMemo.ts","../node_modules/@dnd-kit/utilities/src/hooks/useNodeRef.ts","../node_modules/@dnd-kit/utilities/src/hooks/usePrevious.ts","../node_modules/@dnd-kit/utilities/src/hooks/useUniqueId.ts","../node_modules/@dnd-kit/utilities/src/adjustment.ts","../node_modules/@dnd-kit/utilities/src/event/isKeyboardEvent.ts","../node_modules/@dnd-kit/utilities/src/coordinates/getEventCoordinates.ts","../node_modules/@dnd-kit/utilities/src/event/isTouchEvent.ts","../node_modules/@dnd-kit/utilities/src/event/hasViewportRelativeCoordinates.ts","../node_modules/@dnd-kit/utilities/src/css.ts","../node_modules/@dnd-kit/utilities/src/focus/findFirstFocusableNode.ts","../node_modules/@dnd-kit/accessibility/src/components/HiddenText/HiddenText.tsx","../node_modules/@dnd-kit/accessibility/src/components/LiveRegion/LiveRegion.tsx","../node_modules/@dnd-kit/core/src/components/DndMonitor/context.ts","../node_modules/@dnd-kit/core/src/components/Accessibility/defaults.ts","../node_modules/@dnd-kit/core/src/components/Accessibility/Accessibility.tsx","../node_modules/@dnd-kit/accessibility/src/hooks/useAnnouncement.ts","../node_modules/@dnd-kit/core/src/components/DndMonitor/useDndMonitor.ts","../node_modules/@dnd-kit/core/src/store/actions.ts","../node_modules/@dnd-kit/core/src/utilities/other/noop.ts","../node_modules/@dnd-kit/core/src/sensors/useSensor.ts","../node_modules/@dnd-kit/core/src/utilities/coordinates/constants.ts","../node_modules/@dnd-kit/core/src/utilities/coordinates/distanceBetweenPoints.ts","../node_modules/@dnd-kit/core/src/utilities/algorithms/helpers.ts","../node_modules/@dnd-kit/core/src/utilities/algorithms/closestCenter.ts","../node_modules/@dnd-kit/core/src/utilities/algorithms/rectIntersection.ts","../node_modules/@dnd-kit/core/src/utilities/rect/getRectDelta.ts","../node_modules/@dnd-kit/core/src/utilities/rect/rectAdjustment.ts","../node_modules/@dnd-kit/core/src/utilities/transform/parseTransform.ts","../node_modules/@dnd-kit/core/src/utilities/rect/getRect.ts","../node_modules/@dnd-kit/core/src/utilities/transform/inverseTransform.ts","../node_modules/@dnd-kit/core/src/utilities/scroll/getScrollableAncestors.ts","../node_modules/@dnd-kit/core/src/utilities/scroll/isScrollable.ts","../node_modules/@dnd-kit/core/src/utilities/scroll/isFixed.ts","../node_modules/@dnd-kit/core/src/utilities/scroll/getScrollableElement.ts","../node_modules/@dnd-kit/core/src/utilities/scroll/getScrollCoordinates.ts","../node_modules/@dnd-kit/core/src/types/direction.ts","../node_modules/@dnd-kit/core/src/utilities/scroll/documentScrollingElement.ts","../node_modules/@dnd-kit/core/src/utilities/scroll/getScrollPosition.ts","../node_modules/@dnd-kit/core/src/utilities/scroll/getScrollDirectionAndSpeed.ts","../node_modules/@dnd-kit/core/src/utilities/scroll/getScrollElementRect.ts","../node_modules/@dnd-kit/core/src/utilities/scroll/getScrollOffsets.ts","../node_modules/@dnd-kit/core/src/utilities/scroll/scrollIntoViewIfNeeded.ts","../node_modules/@dnd-kit/core/src/utilities/rect/Rect.ts","../node_modules/@dnd-kit/core/src/sensors/utilities/Listeners.ts","../node_modules/@dnd-kit/core/src/sensors/utilities/hasExceededDistance.ts","../node_modules/@dnd-kit/core/src/sensors/events.ts","../node_modules/@dnd-kit/core/src/sensors/keyboard/types.ts","../node_modules/@dnd-kit/core/src/sensors/keyboard/defaults.ts","../node_modules/@dnd-kit/core/src/sensors/keyboard/KeyboardSensor.ts","../node_modules/@dnd-kit/core/src/sensors/pointer/AbstractPointerSensor.ts","../node_modules/@dnd-kit/core/src/sensors/utilities/getEventListenerTarget.ts","../node_modules/@dnd-kit/core/src/sensors/pointer/PointerSensor.ts","../node_modules/@dnd-kit/core/src/sensors/mouse/MouseSensor.ts","../node_modules/@dnd-kit/core/src/sensors/touch/TouchSensor.ts","../node_modules/@dnd-kit/core/src/hooks/utilities/useAutoScroller.ts","../node_modules/@dnd-kit/utilities/src/hooks/useInterval.ts","../node_modules/@dnd-kit/core/src/hooks/utilities/useDroppableMeasuring.ts","../node_modules/@dnd-kit/core/src/hooks/utilities/useInitialValue.ts","../node_modules/@dnd-kit/core/src/hooks/utilities/useResizeObserver.ts","../node_modules/@dnd-kit/core/src/hooks/utilities/useRect.ts","../node_modules/@dnd-kit/core/src/hooks/utilities/useMutationObserver.ts","../node_modules/@dnd-kit/core/src/hooks/utilities/useScrollableAncestors.ts","../node_modules/@dnd-kit/core/src/hooks/utilities/useScrollOffsetsDelta.ts","../node_modules/@dnd-kit/core/src/hooks/utilities/useWindowRect.ts","../node_modules/@dnd-kit/core/src/utilities/rect/getWindowClientRect.ts","../node_modules/@dnd-kit/core/src/hooks/utilities/useRects.ts","../node_modules/@dnd-kit/core/src/utilities/nodes/getMeasurableNode.ts","../node_modules/@dnd-kit/core/src/components/DndContext/defaults.ts","../node_modules/@dnd-kit/core/src/store/constructors.ts","../node_modules/@dnd-kit/core/src/store/context.ts","../node_modules/@dnd-kit/core/src/store/reducer.ts","../node_modules/@dnd-kit/core/src/components/Accessibility/components/RestoreFocus.tsx","../node_modules/@dnd-kit/core/src/modifiers/applyModifiers.ts","../node_modules/@dnd-kit/core/src/components/DndContext/DndContext.tsx","../node_modules/@dnd-kit/core/src/components/DndMonitor/useDndMonitorProvider.tsx","../node_modules/@dnd-kit/core/src/components/DndContext/hooks/useMeasuringConfiguration.ts","../node_modules/@dnd-kit/core/src/hooks/utilities/useCachedNode.ts","../node_modules/@dnd-kit/core/src/hooks/utilities/useInitialRect.ts","../node_modules/@dnd-kit/core/src/components/DndContext/hooks/useLayoutShiftScrollCompensation.ts","../node_modules/@dnd-kit/core/src/hooks/utilities/useDragOverlayMeasuring.ts","../node_modules/@dnd-kit/core/src/hooks/utilities/useRectDelta.ts","../node_modules/@dnd-kit/core/src/hooks/utilities/useScrollOffsets.ts","../node_modules/@dnd-kit/core/src/utilities/rect/adjustScale.ts","../node_modules/@dnd-kit/core/src/hooks/utilities/useCombineActivators.ts","../node_modules/@dnd-kit/core/src/hooks/utilities/useSensorSetup.ts","../node_modules/@dnd-kit/core/src/hooks/useDraggable.ts","../node_modules/@dnd-kit/core/src/hooks/utilities/useSyntheticListeners.ts","../node_modules/@dnd-kit/core/src/hooks/useDndContext.ts","../node_modules/@dnd-kit/core/src/hooks/useDroppable.ts","../node_modules/@dnd-kit/sortable/src/utilities/arrayMove.ts","../node_modules/@dnd-kit/sortable/src/utilities/getSortedRects.ts","../node_modules/@dnd-kit/sortable/src/utilities/isValidIndex.ts","../node_modules/@dnd-kit/sortable/src/strategies/rectSorting.ts","../node_modules/@dnd-kit/sortable/src/components/SortableContext.tsx","../node_modules/@dnd-kit/sortable/src/utilities/itemsEqual.ts","../node_modules/@dnd-kit/sortable/src/utilities/normalizeDisabled.ts","../node_modules/@dnd-kit/sortable/src/hooks/defaults.ts","../node_modules/@dnd-kit/sortable/src/hooks/useSortable.ts","../node_modules/@dnd-kit/utilities/src/hooks/useCombinedRefs.ts","../node_modules/@dnd-kit/sortable/src/hooks/utilities/useDerivedTransform.ts","../node_modules/@dnd-kit/sortable/src/types/type-guard.ts","../node_modules/@dnd-kit/sortable/src/sensors/keyboard/sortableKeyboardCoordinates.ts","../node_modules/@dnd-kit/core/src/utilities/algorithms/closestCorners.ts","page/wcms/announcementManage/AnnouncementTable.tsx","../node_modules/@dnd-kit/core/src/sensors/useSensors.ts","page/wcms/announcementManage/AnnouncementManage.tsx","../node_modules/@ant-design/icons-svg/es/asn/SearchOutlined.js","../node_modules/@ant-design/icons/es/icons/SearchOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/CloseCircleOutlined.js","../node_modules/@ant-design/icons/es/icons/CloseCircleOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/CheckCircleOutlined.js","../node_modules/@ant-design/icons/es/icons/CheckCircleOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/DownOutlined.js","../node_modules/@ant-design/icons/es/icons/DownOutlined.js","util/authTest.ts","page/wcms/memberManage/actions/ChangeRole.tsx","page/wcms/memberManage/actions/ChangeDisable.tsx","page/wcms/memberManage/actions/ResetPassword.tsx","page/wcms/memberManage/actions/MemberActionModal.tsx","page/wcms/memberManage/MemberInfoTable.tsx","page/wcms/memberManage/MemberRecruit.tsx","page/wcms/memberManage/MemberManagePage.tsx","page/wcms/join/JoinPage.tsx","../node_modules/@ant-design/icons-svg/es/asn/DashboardOutlined.js","../node_modules/@ant-design/icons/es/icons/DashboardOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/ReadOutlined.js","../node_modules/@ant-design/icons/es/icons/ReadOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/ExperimentOutlined.js","../node_modules/@ant-design/icons/es/icons/ExperimentOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/SettingOutlined.js","../node_modules/@ant-design/icons/es/icons/SettingOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/FormOutlined.js","../node_modules/@ant-design/icons/es/icons/FormOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/TeamOutlined.js","../node_modules/@ant-design/icons/es/icons/TeamOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/SmileOutlined.js","../node_modules/@ant-design/icons/es/icons/SmileOutlined.js","components/logout/LogoutButton.tsx","../node_modules/@ant-design/icons-svg/es/asn/EditOutlined.js","../node_modules/@ant-design/icons/es/icons/EditOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/StarTwoTone.js","../node_modules/@ant-design/icons/es/icons/StarTwoTone.js","../node_modules/@ant-design/icons-svg/es/asn/StarOutlined.js","../node_modules/@ant-design/icons/es/icons/StarOutlined.js","page/wcms/orderRecord/OrderInfoModal.tsx","page/wcms/orderRecord/OrderRecordTagContext.tsx","page/wcms/orderRecord/RecordTagSelect.tsx","page/wcms/orderRecord/ModifyOrderRecordModal.tsx","page/wcms/orderRecord/OrderRecordList.tsx","page/wcms/orderRecord/SearchCondition.tsx","page/wcms/orderRecord/EditOrderRecordFormModal.tsx","page/wcms/orderRecord/RequireRecordList.tsx","page/wcms/orderRecord/OrderRecordPage.tsx","page/wcms/chartStat/ChartStat.tsx","page/wcms/fillInfo/FillInfoPage.tsx","page/wcms/WCMS.tsx","../node_modules/@ant-design/icons-svg/es/asn/HomeOutlined.js","../node_modules/@ant-design/icons/es/icons/HomeOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/FileSearchOutlined.js","../node_modules/@ant-design/icons/es/icons/FileSearchOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/SolutionOutlined.js","../node_modules/@ant-design/icons/es/icons/SolutionOutlined.js","page/custom/CustomContext.tsx","page/custom/home/CustomHomePage.tsx","page/custom/requestOrder/OrderInfoCard.tsx","page/custom/requestOrder/OrderResult.tsx","page/custom/requestOrder/OrderForm.tsx","page/custom/requestOrder/WarningModal.tsx","page/custom/requestOrder/SubmitOrderSteps.tsx","page/custom/requestOrder/RequestOrderPage.tsx","page/custom/retrieveOrder/RetrieveOrder.tsx","page/custom/CustomSystem.tsx","page/oauth/OAuthPage.tsx","page/Main.tsx","theme/DeepDarkFantasy.tsx","theme/ThemeSwitch.tsx","components/backtop/BackTop.tsx","App.tsx","serviceWorkerRegistration.ts","index.tsx"],"sourcesContent":["!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs=e()}(this,(function(){\"use strict\";var t=1e3,e=6e4,n=36e5,r=\"millisecond\",i=\"second\",s=\"minute\",u=\"hour\",a=\"day\",o=\"week\",c=\"month\",f=\"quarter\",h=\"year\",d=\"date\",l=\"Invalid Date\",$=/^(\\d{4})[-/]?(\\d{1,2})?[-/]?(\\d{0,2})[Tt\\s]*(\\d{1,2})?:?(\\d{1,2})?:?(\\d{1,2})?[.:]?(\\d+)?$/,y=/\\[([^\\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,M={name:\"en\",weekdays:\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\"),months:\"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\"),ordinal:function(t){var e=[\"th\",\"st\",\"nd\",\"rd\"],n=t%100;return\"[\"+t+(e[(n-20)%10]||e[n]||e[0])+\"]\"}},m=function(t,e,n){var r=String(t);return!r||r.length>=e?t:\"\"+Array(e+1-r.length).join(n)+t},v={s:m,z:function(t){var e=-t.utcOffset(),n=Math.abs(e),r=Math.floor(n/60),i=n%60;return(e<=0?\"+\":\"-\")+m(r,2,\"0\")+\":\"+m(i,2,\"0\")},m:function t(e,n){if(e.date()1)return t(u[0])}else{var a=e.name;D[a]=e,i=a}return!r&&i&&(g=i),i||!r&&g},O=function(t,e){if(S(t))return t.clone();var n=\"object\"==typeof e?e:{};return n.date=t,n.args=arguments,new _(n)},b=v;b.l=w,b.i=S,b.w=function(t,e){return O(t,{locale:e.$L,utc:e.$u,x:e.$x,$offset:e.$offset})};var _=function(){function M(t){this.$L=w(t.locale,null,!0),this.parse(t),this.$x=this.$x||t.x||{},this[p]=!0}var m=M.prototype;return m.parse=function(t){this.$d=function(t){var e=t.date,n=t.utc;if(null===e)return new Date(NaN);if(b.u(e))return new Date;if(e instanceof Date)return new Date(e);if(\"string\"==typeof e&&!/Z$/i.test(e)){var r=e.match($);if(r){var i=r[2]-1||0,s=(r[7]||\"0\").substring(0,3);return n?new Date(Date.UTC(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)):new Date(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)}}return new Date(e)}(t),this.init()},m.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds()},m.$utils=function(){return b},m.isValid=function(){return!(this.$d.toString()===l)},m.isSame=function(t,e){var n=O(t);return this.startOf(e)<=n&&n<=this.endOf(e)},m.isAfter=function(t,e){return O(t)68?1900:2e3)};var f=function(e){return function(t){this[e]=+t}},h=[/[+-]\\d\\d:?(\\d\\d)?|Z/,function(e){(this.zone||(this.zone={})).offset=function(e){if(!e)return 0;if(\"Z\"===e)return 0;var t=e.match(/([+-]|\\d\\d)/g),n=60*t[1]+(+t[2]||0);return 0===n?0:\"+\"===t[0]?-n:n}(e)}],u=function(e){var t=s[e];return t&&(t.indexOf?t:t.s.concat(t.f))},d=function(e,t){var n,r=s.meridiem;if(r){for(var i=1;i<=24;i+=1)if(e.indexOf(r(i,0,t))>-1){n=i>12;break}}else n=e===(t?\"pm\":\"PM\");return n},c={A:[o,function(e){this.afternoon=d(e,!1)}],a:[o,function(e){this.afternoon=d(e,!0)}],Q:[n,function(e){this.month=3*(e-1)+1}],S:[n,function(e){this.milliseconds=100*+e}],SS:[r,function(e){this.milliseconds=10*+e}],SSS:[/\\d{3}/,function(e){this.milliseconds=+e}],s:[i,f(\"seconds\")],ss:[i,f(\"seconds\")],m:[i,f(\"minutes\")],mm:[i,f(\"minutes\")],H:[i,f(\"hours\")],h:[i,f(\"hours\")],HH:[i,f(\"hours\")],hh:[i,f(\"hours\")],D:[i,f(\"day\")],DD:[r,f(\"day\")],Do:[o,function(e){var t=s.ordinal,n=e.match(/\\d+/);if(this.day=n[0],t)for(var r=1;r<=31;r+=1)t(r).replace(/\\[|\\]/g,\"\")===e&&(this.day=r)}],w:[i,f(\"week\")],ww:[r,f(\"week\")],M:[i,f(\"month\")],MM:[r,f(\"month\")],MMM:[o,function(e){var t=u(\"months\"),n=(u(\"monthsShort\")||t.map((function(e){return e.slice(0,3)}))).indexOf(e)+1;if(n<1)throw new Error;this.month=n%12||n}],MMMM:[o,function(e){var t=u(\"months\").indexOf(e)+1;if(t<1)throw new Error;this.month=t%12||t}],Y:[/[+-]?\\d+/,f(\"year\")],YY:[r,function(e){this.year=a(e)}],YYYY:[/\\d{4}/,f(\"year\")],Z:h,ZZ:h};function l(n){var r,i;r=n,i=s&&s.formats;for(var o=(n=r.replace(/(\\[[^\\]]+])|(LTS?|l{1,4}|L{1,4})/g,(function(t,n,r){var o=r&&r.toUpperCase();return n||i[r]||e[r]||i[o].replace(/(\\[[^\\]]+])|(MMMM|MM|DD|dddd)/g,(function(e,t,n){return t||n.slice(1)}))}))).match(t),a=o.length,f=0;f-1)return new Date((\"X\"===t?1e3:1)*e);var i=l(t)(e),o=i.year,s=i.month,a=i.day,f=i.hours,h=i.minutes,u=i.seconds,d=i.milliseconds,c=i.zone,m=i.week,M=new Date,Y=a||(o||s?1:M.getDate()),p=o||M.getFullYear(),v=0;o&&!s||(v=s>0?s-1:M.getMonth());var D,w=f||0,g=h||0,y=u||0,L=d||0;return c?new Date(Date.UTC(p,v,Y,w,g,y,L+60*c.offset*1e3)):n?new Date(Date.UTC(p,v,Y,w,g,y,L)):(D=new Date(p,v,Y,w,g,y,L),m&&(D=r(D).week(m).toDate()),D)}catch(e){return new Date(\"\")}}(t,a,r,n),this.init(),d&&!0!==d&&(this.$L=this.locale(d).$L),u&&t!=this.format(a)&&(this.$d=new Date(\"\")),s={}}else if(a instanceof Array)for(var c=a.length,m=1;m<=c;m+=1){o[1]=a[m-1];var M=n.apply(this,o);if(M.isValid()){this.$d=M.$d,this.$L=M.$L,this.init();break}m===c&&(this.$d=new Date(\"\"))}else i.call(this,e)}}}));","!function(n,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(n=\"undefined\"!=typeof globalThis?globalThis:n||self).dayjs_plugin_localeData=e()}(this,(function(){\"use strict\";return function(n,e,t){var r=e.prototype,o=function(n){return n&&(n.indexOf?n:n.s)},u=function(n,e,t,r,u){var i=n.name?n:n.$locale(),a=o(i[e]),s=o(i[t]),f=a||s.map((function(n){return n.slice(0,r)}));if(!u)return f;var d=i.weekStart;return f.map((function(n,e){return f[(e+(d||0))%7]}))},i=function(){return t.Ls[t.locale()]},a=function(n,e){return n.formats[e]||function(n){return n.replace(/(\\[[^\\]]+])|(MMMM|MM|DD|dddd)/g,(function(n,e,t){return e||t.slice(1)}))}(n.formats[e.toUpperCase()])},s=function(){var n=this;return{months:function(e){return e?e.format(\"MMMM\"):u(n,\"months\")},monthsShort:function(e){return e?e.format(\"MMM\"):u(n,\"monthsShort\",\"months\",3)},firstDayOfWeek:function(){return n.$locale().weekStart||0},weekdays:function(e){return e?e.format(\"dddd\"):u(n,\"weekdays\")},weekdaysMin:function(e){return e?e.format(\"dd\"):u(n,\"weekdaysMin\",\"weekdays\",2)},weekdaysShort:function(e){return e?e.format(\"ddd\"):u(n,\"weekdaysShort\",\"weekdays\",3)},longDateFormat:function(e){return a(n.$locale(),e)},meridiem:this.$locale().meridiem,ordinal:this.$locale().ordinal}};r.localeData=function(){return s.bind(this)()},t.localeData=function(){var n=i();return{firstDayOfWeek:function(){return n.weekStart||0},weekdays:function(){return t.weekdays()},weekdaysShort:function(){return t.weekdaysShort()},weekdaysMin:function(){return t.weekdaysMin()},months:function(){return t.months()},monthsShort:function(){return t.monthsShort()},longDateFormat:function(e){return a(n,e)},meridiem:n.meridiem,ordinal:n.ordinal}},t.months=function(){return u(i(),\"months\")},t.monthsShort=function(){return u(i(),\"monthsShort\",\"months\",3)},t.weekdays=function(n){return u(i(),\"weekdays\",null,null,n)},t.weekdaysShort=function(n){return u(i(),\"weekdaysShort\",\"weekdays\",3,n)},t.weekdaysMin=function(n){return u(i(),\"weekdaysMin\",\"weekdays\",2,n)}}}));","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_weekOfYear=t()}(this,(function(){\"use strict\";var e=\"week\",t=\"year\";return function(i,n,r){var f=n.prototype;f.week=function(i){if(void 0===i&&(i=null),null!==i)return this.add(7*(i-this.week()),\"day\");var n=this.$locale().yearStart||1;if(11===this.month()&&this.date()>25){var f=r(this).startOf(t).add(1,t).date(n),s=r(this).endOf(e);if(f.isBefore(s))return 1}var a=r(this).startOf(t).date(n).startOf(e).subtract(1,\"millisecond\"),o=this.diff(a,e,!0);return o<0?r(this).startOf(\"week\").week():Math.ceil(o)},f.weeks=function(e){return void 0===e&&(e=null),this.week(e)}}}));","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_weekYear=t()}(this,(function(){\"use strict\";return function(e,t){t.prototype.weekYear=function(){var e=this.month(),t=this.week(),n=this.year();return 1===t&&11===e?n+1:0===e&&t>=52?n-1:n}}}));","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_weekday=t()}(this,(function(){\"use strict\";return function(e,t){t.prototype.weekday=function(e){var t=this.$locale().weekStart||0,i=this.$W,n=(i\n * @license MIT\n */\n\nmodule.exports = function isBuffer (obj) {\n return obj != null && obj.constructor != null &&\n typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj)\n}\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n","/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n}\n\nmodule.exports = arrayMap;\n","/**\n * A specialized version of `_.reduce` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @param {boolean} [initAccum] Specify using the first element of `array` as\n * the initial value.\n * @returns {*} Returns the accumulated value.\n */\nfunction arrayReduce(array, iteratee, accumulator, initAccum) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n if (initAccum && length) {\n accumulator = array[++index];\n }\n while (++index < length) {\n accumulator = iteratee(accumulator, array[index], index, array);\n }\n return accumulator;\n}\n\nmodule.exports = arrayReduce;\n","/**\n * Converts an ASCII `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction asciiToArray(string) {\n return string.split('');\n}\n\nmodule.exports = asciiToArray;\n","/** Used to match words composed of alphanumeric characters. */\nvar reAsciiWord = /[^\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\x7f]+/g;\n\n/**\n * Splits an ASCII `string` into an array of its words.\n *\n * @private\n * @param {string} The string to inspect.\n * @returns {Array} Returns the words of `string`.\n */\nfunction asciiWords(string) {\n return string.match(reAsciiWord) || [];\n}\n\nmodule.exports = asciiWords;\n","var Symbol = require('./_Symbol'),\n getRawTag = require('./_getRawTag'),\n objectToString = require('./_objectToString');\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n","/**\n * The base implementation of `_.propertyOf` without support for deep paths.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Function} Returns the new accessor function.\n */\nfunction basePropertyOf(object) {\n return function(key) {\n return object == null ? undefined : object[key];\n };\n}\n\nmodule.exports = basePropertyOf;\n","/**\n * The base implementation of `_.slice` without an iteratee call guard.\n *\n * @private\n * @param {Array} array The array to slice.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the slice of `array`.\n */\nfunction baseSlice(array, start, end) {\n var index = -1,\n length = array.length;\n\n if (start < 0) {\n start = -start > length ? 0 : (length + start);\n }\n end = end > length ? length : end;\n if (end < 0) {\n end += length;\n }\n length = start > end ? 0 : ((end - start) >>> 0);\n start >>>= 0;\n\n var result = Array(length);\n while (++index < length) {\n result[index] = array[index + start];\n }\n return result;\n}\n\nmodule.exports = baseSlice;\n","var Symbol = require('./_Symbol'),\n arrayMap = require('./_arrayMap'),\n isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isArray(value)) {\n // Recursively convert values (susceptible to call stack limits).\n return arrayMap(value, baseToString) + '';\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = baseToString;\n","var baseSlice = require('./_baseSlice');\n\n/**\n * Casts `array` to a slice if it's needed.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {number} start The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the cast slice.\n */\nfunction castSlice(array, start, end) {\n var length = array.length;\n end = end === undefined ? length : end;\n return (!start && end >= length) ? array : baseSlice(array, start, end);\n}\n\nmodule.exports = castSlice;\n","var castSlice = require('./_castSlice'),\n hasUnicode = require('./_hasUnicode'),\n stringToArray = require('./_stringToArray'),\n toString = require('./toString');\n\n/**\n * Creates a function like `_.lowerFirst`.\n *\n * @private\n * @param {string} methodName The name of the `String` case method to use.\n * @returns {Function} Returns the new case function.\n */\nfunction createCaseFirst(methodName) {\n return function(string) {\n string = toString(string);\n\n var strSymbols = hasUnicode(string)\n ? stringToArray(string)\n : undefined;\n\n var chr = strSymbols\n ? strSymbols[0]\n : string.charAt(0);\n\n var trailing = strSymbols\n ? castSlice(strSymbols, 1).join('')\n : string.slice(1);\n\n return chr[methodName]() + trailing;\n };\n}\n\nmodule.exports = createCaseFirst;\n","var arrayReduce = require('./_arrayReduce'),\n deburr = require('./deburr'),\n words = require('./words');\n\n/** Used to compose unicode capture groups. */\nvar rsApos = \"['\\u2019]\";\n\n/** Used to match apostrophes. */\nvar reApos = RegExp(rsApos, 'g');\n\n/**\n * Creates a function like `_.camelCase`.\n *\n * @private\n * @param {Function} callback The function to combine each word.\n * @returns {Function} Returns the new compounder function.\n */\nfunction createCompounder(callback) {\n return function(string) {\n return arrayReduce(words(deburr(string).replace(reApos, '')), callback, '');\n };\n}\n\nmodule.exports = createCompounder;\n","var basePropertyOf = require('./_basePropertyOf');\n\n/** Used to map Latin Unicode letters to basic Latin letters. */\nvar deburredLetters = {\n // Latin-1 Supplement block.\n '\\xc0': 'A', '\\xc1': 'A', '\\xc2': 'A', '\\xc3': 'A', '\\xc4': 'A', '\\xc5': 'A',\n '\\xe0': 'a', '\\xe1': 'a', '\\xe2': 'a', '\\xe3': 'a', '\\xe4': 'a', '\\xe5': 'a',\n '\\xc7': 'C', '\\xe7': 'c',\n '\\xd0': 'D', '\\xf0': 'd',\n '\\xc8': 'E', '\\xc9': 'E', '\\xca': 'E', '\\xcb': 'E',\n '\\xe8': 'e', '\\xe9': 'e', '\\xea': 'e', '\\xeb': 'e',\n '\\xcc': 'I', '\\xcd': 'I', '\\xce': 'I', '\\xcf': 'I',\n '\\xec': 'i', '\\xed': 'i', '\\xee': 'i', '\\xef': 'i',\n '\\xd1': 'N', '\\xf1': 'n',\n '\\xd2': 'O', '\\xd3': 'O', '\\xd4': 'O', '\\xd5': 'O', '\\xd6': 'O', '\\xd8': 'O',\n '\\xf2': 'o', '\\xf3': 'o', '\\xf4': 'o', '\\xf5': 'o', '\\xf6': 'o', '\\xf8': 'o',\n '\\xd9': 'U', '\\xda': 'U', '\\xdb': 'U', '\\xdc': 'U',\n '\\xf9': 'u', '\\xfa': 'u', '\\xfb': 'u', '\\xfc': 'u',\n '\\xdd': 'Y', '\\xfd': 'y', '\\xff': 'y',\n '\\xc6': 'Ae', '\\xe6': 'ae',\n '\\xde': 'Th', '\\xfe': 'th',\n '\\xdf': 'ss',\n // Latin Extended-A block.\n '\\u0100': 'A', '\\u0102': 'A', '\\u0104': 'A',\n '\\u0101': 'a', '\\u0103': 'a', '\\u0105': 'a',\n '\\u0106': 'C', '\\u0108': 'C', '\\u010a': 'C', '\\u010c': 'C',\n '\\u0107': 'c', '\\u0109': 'c', '\\u010b': 'c', '\\u010d': 'c',\n '\\u010e': 'D', '\\u0110': 'D', '\\u010f': 'd', '\\u0111': 'd',\n '\\u0112': 'E', '\\u0114': 'E', '\\u0116': 'E', '\\u0118': 'E', '\\u011a': 'E',\n '\\u0113': 'e', '\\u0115': 'e', '\\u0117': 'e', '\\u0119': 'e', '\\u011b': 'e',\n '\\u011c': 'G', '\\u011e': 'G', '\\u0120': 'G', '\\u0122': 'G',\n '\\u011d': 'g', '\\u011f': 'g', '\\u0121': 'g', '\\u0123': 'g',\n '\\u0124': 'H', '\\u0126': 'H', '\\u0125': 'h', '\\u0127': 'h',\n '\\u0128': 'I', '\\u012a': 'I', '\\u012c': 'I', '\\u012e': 'I', '\\u0130': 'I',\n '\\u0129': 'i', '\\u012b': 'i', '\\u012d': 'i', '\\u012f': 'i', '\\u0131': 'i',\n '\\u0134': 'J', '\\u0135': 'j',\n '\\u0136': 'K', '\\u0137': 'k', '\\u0138': 'k',\n '\\u0139': 'L', '\\u013b': 'L', '\\u013d': 'L', '\\u013f': 'L', '\\u0141': 'L',\n '\\u013a': 'l', '\\u013c': 'l', '\\u013e': 'l', '\\u0140': 'l', '\\u0142': 'l',\n '\\u0143': 'N', '\\u0145': 'N', '\\u0147': 'N', '\\u014a': 'N',\n '\\u0144': 'n', '\\u0146': 'n', '\\u0148': 'n', '\\u014b': 'n',\n '\\u014c': 'O', '\\u014e': 'O', '\\u0150': 'O',\n '\\u014d': 'o', '\\u014f': 'o', '\\u0151': 'o',\n '\\u0154': 'R', '\\u0156': 'R', '\\u0158': 'R',\n '\\u0155': 'r', '\\u0157': 'r', '\\u0159': 'r',\n '\\u015a': 'S', '\\u015c': 'S', '\\u015e': 'S', '\\u0160': 'S',\n '\\u015b': 's', '\\u015d': 's', '\\u015f': 's', '\\u0161': 's',\n '\\u0162': 'T', '\\u0164': 'T', '\\u0166': 'T',\n '\\u0163': 't', '\\u0165': 't', '\\u0167': 't',\n '\\u0168': 'U', '\\u016a': 'U', '\\u016c': 'U', '\\u016e': 'U', '\\u0170': 'U', '\\u0172': 'U',\n '\\u0169': 'u', '\\u016b': 'u', '\\u016d': 'u', '\\u016f': 'u', '\\u0171': 'u', '\\u0173': 'u',\n '\\u0174': 'W', '\\u0175': 'w',\n '\\u0176': 'Y', '\\u0177': 'y', '\\u0178': 'Y',\n '\\u0179': 'Z', '\\u017b': 'Z', '\\u017d': 'Z',\n '\\u017a': 'z', '\\u017c': 'z', '\\u017e': 'z',\n '\\u0132': 'IJ', '\\u0133': 'ij',\n '\\u0152': 'Oe', '\\u0153': 'oe',\n '\\u0149': \"'n\", '\\u017f': 's'\n};\n\n/**\n * Used by `_.deburr` to convert Latin-1 Supplement and Latin Extended-A\n * letters to basic Latin letters.\n *\n * @private\n * @param {string} letter The matched letter to deburr.\n * @returns {string} Returns the deburred letter.\n */\nvar deburrLetter = basePropertyOf(deburredLetters);\n\nmodule.exports = deburrLetter;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n","var Symbol = require('./_Symbol');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nmodule.exports = getRawTag;\n","/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsVarRange = '\\\\ufe0e\\\\ufe0f';\n\n/** Used to compose unicode capture groups. */\nvar rsZWJ = '\\\\u200d';\n\n/** Used to detect strings with [zero-width joiners or code points from the astral planes](http://eev.ee/blog/2015/09/12/dark-corners-of-unicode/). */\nvar reHasUnicode = RegExp('[' + rsZWJ + rsAstralRange + rsComboRange + rsVarRange + ']');\n\n/**\n * Checks if `string` contains Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a symbol is found, else `false`.\n */\nfunction hasUnicode(string) {\n return reHasUnicode.test(string);\n}\n\nmodule.exports = hasUnicode;\n","/** Used to detect strings that need a more robust regexp to match words. */\nvar reHasUnicodeWord = /[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;\n\n/**\n * Checks if `string` contains a word composed of Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a word is found, else `false`.\n */\nfunction hasUnicodeWord(string) {\n return reHasUnicodeWord.test(string);\n}\n\nmodule.exports = hasUnicodeWord;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n","var asciiToArray = require('./_asciiToArray'),\n hasUnicode = require('./_hasUnicode'),\n unicodeToArray = require('./_unicodeToArray');\n\n/**\n * Converts `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction stringToArray(string) {\n return hasUnicode(string)\n ? unicodeToArray(string)\n : asciiToArray(string);\n}\n\nmodule.exports = stringToArray;\n","/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsVarRange = '\\\\ufe0e\\\\ufe0f';\n\n/** Used to compose unicode capture groups. */\nvar rsAstral = '[' + rsAstralRange + ']',\n rsCombo = '[' + rsComboRange + ']',\n rsFitz = '\\\\ud83c[\\\\udffb-\\\\udfff]',\n rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',\n rsNonAstral = '[^' + rsAstralRange + ']',\n rsRegional = '(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}',\n rsSurrPair = '[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]',\n rsZWJ = '\\\\u200d';\n\n/** Used to compose unicode regexes. */\nvar reOptMod = rsModifier + '?',\n rsOptVar = '[' + rsVarRange + ']?',\n rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',\n rsSeq = rsOptVar + reOptMod + rsOptJoin,\n rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')';\n\n/** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */\nvar reUnicode = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g');\n\n/**\n * Converts a Unicode `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction unicodeToArray(string) {\n return string.match(reUnicode) || [];\n}\n\nmodule.exports = unicodeToArray;\n","/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsDingbatRange = '\\\\u2700-\\\\u27bf',\n rsLowerRange = 'a-z\\\\xdf-\\\\xf6\\\\xf8-\\\\xff',\n rsMathOpRange = '\\\\xac\\\\xb1\\\\xd7\\\\xf7',\n rsNonCharRange = '\\\\x00-\\\\x2f\\\\x3a-\\\\x40\\\\x5b-\\\\x60\\\\x7b-\\\\xbf',\n rsPunctuationRange = '\\\\u2000-\\\\u206f',\n rsSpaceRange = ' \\\\t\\\\x0b\\\\f\\\\xa0\\\\ufeff\\\\n\\\\r\\\\u2028\\\\u2029\\\\u1680\\\\u180e\\\\u2000\\\\u2001\\\\u2002\\\\u2003\\\\u2004\\\\u2005\\\\u2006\\\\u2007\\\\u2008\\\\u2009\\\\u200a\\\\u202f\\\\u205f\\\\u3000',\n rsUpperRange = 'A-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde',\n rsVarRange = '\\\\ufe0e\\\\ufe0f',\n rsBreakRange = rsMathOpRange + rsNonCharRange + rsPunctuationRange + rsSpaceRange;\n\n/** Used to compose unicode capture groups. */\nvar rsApos = \"['\\u2019]\",\n rsBreak = '[' + rsBreakRange + ']',\n rsCombo = '[' + rsComboRange + ']',\n rsDigits = '\\\\d+',\n rsDingbat = '[' + rsDingbatRange + ']',\n rsLower = '[' + rsLowerRange + ']',\n rsMisc = '[^' + rsAstralRange + rsBreakRange + rsDigits + rsDingbatRange + rsLowerRange + rsUpperRange + ']',\n rsFitz = '\\\\ud83c[\\\\udffb-\\\\udfff]',\n rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',\n rsNonAstral = '[^' + rsAstralRange + ']',\n rsRegional = '(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}',\n rsSurrPair = '[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]',\n rsUpper = '[' + rsUpperRange + ']',\n rsZWJ = '\\\\u200d';\n\n/** Used to compose unicode regexes. */\nvar rsMiscLower = '(?:' + rsLower + '|' + rsMisc + ')',\n rsMiscUpper = '(?:' + rsUpper + '|' + rsMisc + ')',\n rsOptContrLower = '(?:' + rsApos + '(?:d|ll|m|re|s|t|ve))?',\n rsOptContrUpper = '(?:' + rsApos + '(?:D|LL|M|RE|S|T|VE))?',\n reOptMod = rsModifier + '?',\n rsOptVar = '[' + rsVarRange + ']?',\n rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',\n rsOrdLower = '\\\\d*(?:1st|2nd|3rd|(?![123])\\\\dth)(?=\\\\b|[A-Z_])',\n rsOrdUpper = '\\\\d*(?:1ST|2ND|3RD|(?![123])\\\\dTH)(?=\\\\b|[a-z_])',\n rsSeq = rsOptVar + reOptMod + rsOptJoin,\n rsEmoji = '(?:' + [rsDingbat, rsRegional, rsSurrPair].join('|') + ')' + rsSeq;\n\n/** Used to match complex or compound words. */\nvar reUnicodeWord = RegExp([\n rsUpper + '?' + rsLower + '+' + rsOptContrLower + '(?=' + [rsBreak, rsUpper, '$'].join('|') + ')',\n rsMiscUpper + '+' + rsOptContrUpper + '(?=' + [rsBreak, rsUpper + rsMiscLower, '$'].join('|') + ')',\n rsUpper + '?' + rsMiscLower + '+' + rsOptContrLower,\n rsUpper + '+' + rsOptContrUpper,\n rsOrdUpper,\n rsOrdLower,\n rsDigits,\n rsEmoji\n].join('|'), 'g');\n\n/**\n * Splits a Unicode `string` into an array of its words.\n *\n * @private\n * @param {string} The string to inspect.\n * @returns {Array} Returns the words of `string`.\n */\nfunction unicodeWords(string) {\n return string.match(reUnicodeWord) || [];\n}\n\nmodule.exports = unicodeWords;\n","var capitalize = require('./capitalize'),\n createCompounder = require('./_createCompounder');\n\n/**\n * Converts `string` to [camel case](https://en.wikipedia.org/wiki/CamelCase).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the camel cased string.\n * @example\n *\n * _.camelCase('Foo Bar');\n * // => 'fooBar'\n *\n * _.camelCase('--foo-bar--');\n * // => 'fooBar'\n *\n * _.camelCase('__FOO_BAR__');\n * // => 'fooBar'\n */\nvar camelCase = createCompounder(function(result, word, index) {\n word = word.toLowerCase();\n return result + (index ? capitalize(word) : word);\n});\n\nmodule.exports = camelCase;\n","var toString = require('./toString'),\n upperFirst = require('./upperFirst');\n\n/**\n * Converts the first character of `string` to upper case and the remaining\n * to lower case.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to capitalize.\n * @returns {string} Returns the capitalized string.\n * @example\n *\n * _.capitalize('FRED');\n * // => 'Fred'\n */\nfunction capitalize(string) {\n return upperFirst(toString(string).toLowerCase());\n}\n\nmodule.exports = capitalize;\n","var deburrLetter = require('./_deburrLetter'),\n toString = require('./toString');\n\n/** Used to match Latin Unicode letters (excluding mathematical operators). */\nvar reLatin = /[\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\xff\\u0100-\\u017f]/g;\n\n/** Used to compose unicode character classes. */\nvar rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange;\n\n/** Used to compose unicode capture groups. */\nvar rsCombo = '[' + rsComboRange + ']';\n\n/**\n * Used to match [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks) and\n * [combining diacritical marks for symbols](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks_for_Symbols).\n */\nvar reComboMark = RegExp(rsCombo, 'g');\n\n/**\n * Deburrs `string` by converting\n * [Latin-1 Supplement](https://en.wikipedia.org/wiki/Latin-1_Supplement_(Unicode_block)#Character_table)\n * and [Latin Extended-A](https://en.wikipedia.org/wiki/Latin_Extended-A)\n * letters to basic Latin letters and removing\n * [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to deburr.\n * @returns {string} Returns the deburred string.\n * @example\n *\n * _.deburr('déjà vu');\n * // => 'deja vu'\n */\nfunction deburr(string) {\n string = toString(string);\n return string && string.replace(reLatin, deburrLetter).replace(reComboMark, '');\n}\n\nmodule.exports = deburr;\n","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nmodule.exports = isArray;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nmodule.exports = isSymbol;\n","var baseToString = require('./_baseToString');\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\nmodule.exports = toString;\n","var createCaseFirst = require('./_createCaseFirst');\n\n/**\n * Converts the first character of `string` to upper case.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.upperFirst('fred');\n * // => 'Fred'\n *\n * _.upperFirst('FRED');\n * // => 'FRED'\n */\nvar upperFirst = createCaseFirst('toUpperCase');\n\nmodule.exports = upperFirst;\n","var asciiWords = require('./_asciiWords'),\n hasUnicodeWord = require('./_hasUnicodeWord'),\n toString = require('./toString'),\n unicodeWords = require('./_unicodeWords');\n\n/**\n * Splits `string` into an array of its words.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to inspect.\n * @param {RegExp|string} [pattern] The pattern to match words.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the words of `string`.\n * @example\n *\n * _.words('fred, barney, & pebbles');\n * // => ['fred', 'barney', 'pebbles']\n *\n * _.words('fred, barney, & pebbles', /[^, ]+/g);\n * // => ['fred', 'barney', '&', 'pebbles']\n */\nfunction words(string, pattern, guard) {\n string = toString(string);\n pattern = guard ? undefined : pattern;\n\n if (pattern === undefined) {\n return hasUnicodeWord(string) ? unicodeWords(string) : asciiWords(string);\n }\n return string.match(pattern) || [];\n}\n\nmodule.exports = words;\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","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _dayjs = _interopRequireDefault(require(\"dayjs\"));\nvar _warning = require(\"rc-util/lib/warning\");\nvar _weekday = _interopRequireDefault(require(\"dayjs/plugin/weekday\"));\nvar _localeData = _interopRequireDefault(require(\"dayjs/plugin/localeData\"));\nvar _weekOfYear = _interopRequireDefault(require(\"dayjs/plugin/weekOfYear\"));\nvar _weekYear = _interopRequireDefault(require(\"dayjs/plugin/weekYear\"));\nvar _advancedFormat = _interopRequireDefault(require(\"dayjs/plugin/advancedFormat\"));\nvar _customParseFormat = _interopRequireDefault(require(\"dayjs/plugin/customParseFormat\"));\n_dayjs.default.extend(_customParseFormat.default);\n_dayjs.default.extend(_advancedFormat.default);\n_dayjs.default.extend(_weekday.default);\n_dayjs.default.extend(_localeData.default);\n_dayjs.default.extend(_weekOfYear.default);\n_dayjs.default.extend(_weekYear.default);\n_dayjs.default.extend(function (o, c) {\n // todo support Wo (ISO week)\n var proto = c.prototype;\n var oldFormat = proto.format;\n proto.format = function f(formatStr) {\n var str = (formatStr || '').replace('Wo', 'wo');\n return oldFormat.bind(this)(str);\n };\n});\nvar localeMap = {\n // ar_EG:\n // az_AZ:\n // bg_BG:\n bn_BD: 'bn-bd',\n by_BY: 'be',\n // ca_ES:\n // cs_CZ:\n // da_DK:\n // de_DE:\n // el_GR:\n en_GB: 'en-gb',\n en_US: 'en',\n // es_ES:\n // et_EE:\n // fa_IR:\n // fi_FI:\n fr_BE: 'fr',\n // todo: dayjs has no fr_BE locale, use fr at present\n fr_CA: 'fr-ca',\n // fr_FR:\n // ga_IE:\n // gl_ES:\n // he_IL:\n // hi_IN:\n // hr_HR:\n // hu_HU:\n hy_AM: 'hy-am',\n // id_ID:\n // is_IS:\n // it_IT:\n // ja_JP:\n // ka_GE:\n // kk_KZ:\n // km_KH:\n kmr_IQ: 'ku',\n // kn_IN:\n // ko_KR:\n // ku_IQ: // previous ku in antd\n // lt_LT:\n // lv_LV:\n // mk_MK:\n // ml_IN:\n // mn_MN:\n // ms_MY:\n // nb_NO:\n // ne_NP:\n nl_BE: 'nl-be',\n // nl_NL:\n // pl_PL:\n pt_BR: 'pt-br',\n // pt_PT:\n // ro_RO:\n // ru_RU:\n // sk_SK:\n // sl_SI:\n // sr_RS:\n // sv_SE:\n // ta_IN:\n // th_TH:\n // tr_TR:\n // uk_UA:\n // ur_PK:\n // vi_VN:\n zh_CN: 'zh-cn',\n zh_HK: 'zh-hk',\n zh_TW: 'zh-tw'\n};\nvar parseLocale = function parseLocale(locale) {\n var mapLocale = localeMap[locale];\n return mapLocale || locale.split('_')[0];\n};\nvar parseNoMatchNotice = function parseNoMatchNotice() {\n /* istanbul ignore next */\n (0, _warning.noteOnce)(false, 'Not match any format. Please help to fire a issue about this.');\n};\nvar generateConfig = {\n // get\n getNow: function getNow() {\n return (0, _dayjs.default)();\n },\n getFixedDate: function getFixedDate(string) {\n return (0, _dayjs.default)(string, ['YYYY-M-DD', 'YYYY-MM-DD']);\n },\n getEndDate: function getEndDate(date) {\n return date.endOf('month');\n },\n getWeekDay: function getWeekDay(date) {\n var clone = date.locale('en');\n return clone.weekday() + clone.localeData().firstDayOfWeek();\n },\n getYear: function getYear(date) {\n return date.year();\n },\n getMonth: function getMonth(date) {\n return date.month();\n },\n getDate: function getDate(date) {\n return date.date();\n },\n getHour: function getHour(date) {\n return date.hour();\n },\n getMinute: function getMinute(date) {\n return date.minute();\n },\n getSecond: function getSecond(date) {\n return date.second();\n },\n // set\n addYear: function addYear(date, diff) {\n return date.add(diff, 'year');\n },\n addMonth: function addMonth(date, diff) {\n return date.add(diff, 'month');\n },\n addDate: function addDate(date, diff) {\n return date.add(diff, 'day');\n },\n setYear: function setYear(date, year) {\n return date.year(year);\n },\n setMonth: function setMonth(date, month) {\n return date.month(month);\n },\n setDate: function setDate(date, num) {\n return date.date(num);\n },\n setHour: function setHour(date, hour) {\n return date.hour(hour);\n },\n setMinute: function setMinute(date, minute) {\n return date.minute(minute);\n },\n setSecond: function setSecond(date, second) {\n return date.second(second);\n },\n // Compare\n isAfter: function isAfter(date1, date2) {\n return date1.isAfter(date2);\n },\n isValidate: function isValidate(date) {\n return date.isValid();\n },\n locale: {\n getWeekFirstDay: function getWeekFirstDay(locale) {\n return (0, _dayjs.default)().locale(parseLocale(locale)).localeData().firstDayOfWeek();\n },\n getWeekFirstDate: function getWeekFirstDate(locale, date) {\n return date.locale(parseLocale(locale)).weekday(0);\n },\n getWeek: function getWeek(locale, date) {\n return date.locale(parseLocale(locale)).week();\n },\n getShortWeekDays: function getShortWeekDays(locale) {\n return (0, _dayjs.default)().locale(parseLocale(locale)).localeData().weekdaysMin();\n },\n getShortMonths: function getShortMonths(locale) {\n return (0, _dayjs.default)().locale(parseLocale(locale)).localeData().monthsShort();\n },\n format: function format(locale, date, _format) {\n return date.locale(parseLocale(locale)).format(_format);\n },\n parse: function parse(locale, text, formats) {\n var localeStr = parseLocale(locale);\n for (var i = 0; i < formats.length; i += 1) {\n var format = formats[i];\n var formatText = text;\n if (format.includes('wo') || format.includes('Wo')) {\n // parse Wo\n var year = formatText.split('-')[0];\n var weekStr = formatText.split('-')[1];\n var firstWeek = (0, _dayjs.default)(year, 'YYYY').startOf('year').locale(localeStr);\n for (var j = 0; j <= 52; j += 1) {\n var nextWeek = firstWeek.add(j, 'week');\n if (nextWeek.format('Wo') === weekStr) {\n return nextWeek;\n }\n }\n parseNoMatchNotice();\n return null;\n }\n var date = (0, _dayjs.default)(formatText, format, true).locale(localeStr);\n if (date.isValid()) {\n return date;\n }\n }\n if (text) {\n parseNoMatchNotice();\n }\n return null;\n }\n }\n};\nvar _default = exports.default = generateConfig;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.call = call;\nexports.default = void 0;\nexports.note = note;\nexports.noteOnce = noteOnce;\nexports.preMessage = void 0;\nexports.resetWarned = resetWarned;\nexports.warning = warning;\nexports.warningOnce = warningOnce;\n/* eslint-disable no-console */\nvar warned = {};\nvar preWarningFns = [];\n\n/**\n * Pre warning enable you to parse content before console.error.\n * Modify to null will prevent warning.\n */\nvar preMessage = exports.preMessage = function preMessage(fn) {\n preWarningFns.push(fn);\n};\n\n/**\n * Warning if condition not match.\n * @param valid Condition\n * @param message Warning message\n * @example\n * ```js\n * warning(false, 'some error'); // print some error\n * warning(true, 'some error'); // print nothing\n * warning(1 === 2, 'some error'); // print some error\n * ```\n */\nfunction warning(valid, message) {\n if (process.env.NODE_ENV !== 'production' && !valid && console !== undefined) {\n var finalMessage = preWarningFns.reduce(function (msg, preMessageFn) {\n return preMessageFn(msg !== null && msg !== void 0 ? msg : '', 'warning');\n }, message);\n if (finalMessage) {\n console.error(\"Warning: \".concat(finalMessage));\n }\n }\n}\n\n/** @see Similar to {@link warning} */\nfunction note(valid, message) {\n if (process.env.NODE_ENV !== 'production' && !valid && console !== undefined) {\n var finalMessage = preWarningFns.reduce(function (msg, preMessageFn) {\n return preMessageFn(msg !== null && msg !== void 0 ? msg : '', 'note');\n }, message);\n if (finalMessage) {\n console.warn(\"Note: \".concat(finalMessage));\n }\n }\n}\nfunction resetWarned() {\n warned = {};\n}\nfunction call(method, valid, message) {\n if (!valid && !warned[message]) {\n method(false, message);\n warned[message] = true;\n }\n}\n\n/** @see Same as {@link warning}, but only warn once for the same message */\nfunction warningOnce(valid, message) {\n call(warning, valid, message);\n}\n\n/** @see Same as {@link warning}, but only warn once for the same message */\nfunction noteOnce(valid, message) {\n call(note, valid, message);\n}\nwarningOnce.preMessage = preMessage;\nwarningOnce.resetWarned = resetWarned;\nwarningOnce.noteOnce = noteOnce;\nvar _default = exports.default = warningOnce;","'use strict';\n\nvar m = require('react-dom');\nif (process.env.NODE_ENV === 'production') {\n exports.createRoot = m.createRoot;\n exports.hydrateRoot = m.hydrateRoot;\n} else {\n var i = m.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n exports.createRoot = function(c, o) {\n i.usingClientEntryPoint = true;\n try {\n return m.createRoot(c, o);\n } finally {\n i.usingClientEntryPoint = false;\n }\n };\n exports.hydrateRoot = function(c, h, o) {\n i.usingClientEntryPoint = true;\n try {\n return m.hydrateRoot(c, h, o);\n } finally {\n i.usingClientEntryPoint = false;\n }\n };\n}\n"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 6061d6ae30f5a66e62e1","/** @flow */\r\nimport Highlighter from './Highlighter'\r\n\r\nexport default Highlighter\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/index.js","/* @flow */\r\nimport { findAll } from 'highlight-words-core'\r\nimport PropTypes from 'prop-types'\r\nimport { createElement } from 'react'\r\nimport memoizeOne from 'memoize-one'\r\n\r\nHighlighter.propTypes = {\r\n activeClassName: PropTypes.string,\r\n activeIndex: PropTypes.number,\r\n activeStyle: PropTypes.object,\r\n autoEscape: PropTypes.bool,\r\n className: PropTypes.string,\r\n findChunks: PropTypes.func,\r\n highlightClassName: PropTypes.oneOfType([\r\n PropTypes.object,\r\n PropTypes.string\r\n ]),\r\n highlightStyle: PropTypes.object,\r\n highlightTag: PropTypes.oneOfType([\r\n PropTypes.node,\r\n PropTypes.func,\r\n PropTypes.string\r\n ]),\r\n sanitize: PropTypes.func,\r\n searchWords: PropTypes.arrayOf(\r\n PropTypes.oneOfType([\r\n PropTypes.string,\r\n PropTypes.instanceOf(RegExp)\r\n ])\r\n ).isRequired,\r\n textToHighlight: PropTypes.string.isRequired,\r\n unhighlightClassName: PropTypes.string,\r\n unhighlightStyle: PropTypes.object\r\n}\r\n\r\n/**\r\n * Highlights all occurrences of search terms (searchText) within a string (textToHighlight).\r\n * This function returns an array of strings and s (wrapping highlighted words).\r\n */\r\nexport default function Highlighter ({\r\n activeClassName = '',\r\n activeIndex = -1,\r\n activeStyle,\r\n autoEscape,\r\n caseSensitive = false,\r\n className,\r\n findChunks,\r\n highlightClassName = '',\r\n highlightStyle = {},\r\n highlightTag = 'mark',\r\n sanitize,\r\n searchWords,\r\n textToHighlight,\r\n unhighlightClassName = '',\r\n unhighlightStyle,\r\n ...rest\r\n}) {\r\n const chunks = findAll({\r\n autoEscape,\r\n caseSensitive,\r\n findChunks,\r\n sanitize,\r\n searchWords,\r\n textToHighlight\r\n })\r\n const HighlightTag = highlightTag\r\n let highlightIndex = -1\r\n let highlightClassNames = ''\r\n let highlightStyles\r\n\r\n const lowercaseProps = object => {\r\n const mapped = {}\r\n for (let key in object) {\r\n mapped[key.toLowerCase()] = object[key]\r\n }\r\n return mapped\r\n }\r\n const memoizedLowercaseProps = memoizeOne(lowercaseProps)\r\n\r\n return createElement('span', {\r\n className,\r\n ...rest,\r\n children: chunks.map((chunk, index) => {\r\n const text = textToHighlight.substr(chunk.start, chunk.end - chunk.start)\r\n\r\n if (chunk.highlight) {\r\n highlightIndex++\r\n\r\n let highlightClass\r\n if (typeof highlightClassName === 'object') {\r\n if (!caseSensitive) {\r\n highlightClassName = memoizedLowercaseProps(highlightClassName)\r\n highlightClass = highlightClassName[text.toLowerCase()]\r\n } else {\r\n highlightClass = highlightClassName[text]\r\n }\r\n } else {\r\n highlightClass = highlightClassName\r\n }\r\n\r\n const isActive = highlightIndex === +activeIndex\r\n\r\n highlightClassNames = `${highlightClass} ${isActive ? activeClassName : ''}`\r\n highlightStyles = isActive === true && activeStyle != null\r\n ? Object.assign({}, highlightStyle, activeStyle)\r\n : highlightStyle\r\n\r\n const props = {\r\n children: text,\r\n className: highlightClassNames,\r\n key: index,\r\n style: highlightStyles\r\n }\r\n\r\n // Don't attach arbitrary props to DOM elements; this triggers React DEV warnings (https://fb.me/react-unknown-prop)\r\n // Only pass through the highlightIndex attribute for custom components.\r\n if (typeof HighlightTag !== 'string') {\r\n props.highlightIndex = highlightIndex\r\n }\r\n\r\n return createElement(HighlightTag, props)\r\n } else {\r\n return createElement('span', {\r\n children: text,\r\n className: unhighlightClassName,\r\n key: index,\r\n style: unhighlightStyle\r\n })\r\n }\r\n })\r\n })\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/Highlighter.js","module.exports =\n/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.loaded = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\tmodule.exports = __webpack_require__(1);\n\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _utils = __webpack_require__(2);\n\t\n\tObject.defineProperty(exports, 'combineChunks', {\n\t enumerable: true,\n\t get: function get() {\n\t return _utils.combineChunks;\n\t }\n\t});\n\tObject.defineProperty(exports, 'fillInChunks', {\n\t enumerable: true,\n\t get: function get() {\n\t return _utils.fillInChunks;\n\t }\n\t});\n\tObject.defineProperty(exports, 'findAll', {\n\t enumerable: true,\n\t get: function get() {\n\t return _utils.findAll;\n\t }\n\t});\n\tObject.defineProperty(exports, 'findChunks', {\n\t enumerable: true,\n\t get: function get() {\n\t return _utils.findChunks;\n\t }\n\t});\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t/**\n\t * Creates an array of chunk objects representing both higlightable and non highlightable pieces of text that match each search word.\n\t * @return Array of \"chunks\" (where a Chunk is { start:number, end:number, highlight:boolean })\n\t */\n\tvar findAll = exports.findAll = function findAll(_ref) {\n\t var autoEscape = _ref.autoEscape,\n\t _ref$caseSensitive = _ref.caseSensitive,\n\t caseSensitive = _ref$caseSensitive === undefined ? false : _ref$caseSensitive,\n\t _ref$findChunks = _ref.findChunks,\n\t findChunks = _ref$findChunks === undefined ? defaultFindChunks : _ref$findChunks,\n\t sanitize = _ref.sanitize,\n\t searchWords = _ref.searchWords,\n\t textToHighlight = _ref.textToHighlight;\n\t return fillInChunks({\n\t chunksToHighlight: combineChunks({\n\t chunks: findChunks({\n\t autoEscape: autoEscape,\n\t caseSensitive: caseSensitive,\n\t sanitize: sanitize,\n\t searchWords: searchWords,\n\t textToHighlight: textToHighlight\n\t })\n\t }),\n\t totalLength: textToHighlight ? textToHighlight.length : 0\n\t });\n\t};\n\t\n\t/**\n\t * Takes an array of {start:number, end:number} objects and combines chunks that overlap into single chunks.\n\t * @return {start:number, end:number}[]\n\t */\n\tvar combineChunks = exports.combineChunks = function combineChunks(_ref2) {\n\t var chunks = _ref2.chunks;\n\t\n\t chunks = chunks.sort(function (first, second) {\n\t return first.start - second.start;\n\t }).reduce(function (processedChunks, nextChunk) {\n\t // First chunk just goes straight in the array...\n\t if (processedChunks.length === 0) {\n\t return [nextChunk];\n\t } else {\n\t // ... subsequent chunks get checked to see if they overlap...\n\t var prevChunk = processedChunks.pop();\n\t if (nextChunk.start <= prevChunk.end) {\n\t // It may be the case that prevChunk completely surrounds nextChunk, so take the\n\t // largest of the end indeces.\n\t var endIndex = Math.max(prevChunk.end, nextChunk.end);\n\t processedChunks.push({ start: prevChunk.start, end: endIndex });\n\t } else {\n\t processedChunks.push(prevChunk, nextChunk);\n\t }\n\t return processedChunks;\n\t }\n\t }, []);\n\t\n\t return chunks;\n\t};\n\t\n\t/**\n\t * Examine text for any matches.\n\t * If we find matches, add them to the returned array as a \"chunk\" object ({start:number, end:number}).\n\t * @return {start:number, end:number}[]\n\t */\n\tvar defaultFindChunks = function defaultFindChunks(_ref3) {\n\t var autoEscape = _ref3.autoEscape,\n\t caseSensitive = _ref3.caseSensitive,\n\t _ref3$sanitize = _ref3.sanitize,\n\t sanitize = _ref3$sanitize === undefined ? identity : _ref3$sanitize,\n\t searchWords = _ref3.searchWords,\n\t textToHighlight = _ref3.textToHighlight;\n\t\n\t textToHighlight = sanitize(textToHighlight);\n\t\n\t return searchWords.filter(function (searchWord) {\n\t return searchWord;\n\t }) // Remove empty words\n\t .reduce(function (chunks, searchWord) {\n\t searchWord = sanitize(searchWord);\n\t\n\t if (autoEscape) {\n\t searchWord = escapeRegExpFn(searchWord);\n\t }\n\t\n\t var regex = new RegExp(searchWord, caseSensitive ? 'g' : 'gi');\n\t\n\t var match = void 0;\n\t while (match = regex.exec(textToHighlight)) {\n\t var start = match.index;\n\t var end = regex.lastIndex;\n\t // We do not return zero-length matches\n\t if (end > start) {\n\t chunks.push({ start: start, end: end });\n\t }\n\t\n\t // Prevent browsers like Firefox from getting stuck in an infinite loop\n\t // See http://www.regexguru.com/2008/04/watch-out-for-zero-length-matches/\n\t if (match.index == regex.lastIndex) {\n\t regex.lastIndex++;\n\t }\n\t }\n\t\n\t return chunks;\n\t }, []);\n\t};\n\t// Allow the findChunks to be overridden in findAll,\n\t// but for backwards compatibility we export as the old name\n\texports.findChunks = defaultFindChunks;\n\t\n\t/**\n\t * Given a set of chunks to highlight, create an additional set of chunks\n\t * to represent the bits of text between the highlighted text.\n\t * @param chunksToHighlight {start:number, end:number}[]\n\t * @param totalLength number\n\t * @return {start:number, end:number, highlight:boolean}[]\n\t */\n\t\n\tvar fillInChunks = exports.fillInChunks = function fillInChunks(_ref4) {\n\t var chunksToHighlight = _ref4.chunksToHighlight,\n\t totalLength = _ref4.totalLength;\n\t\n\t var allChunks = [];\n\t var append = function append(start, end, highlight) {\n\t if (end - start > 0) {\n\t allChunks.push({\n\t start: start,\n\t end: end,\n\t highlight: highlight\n\t });\n\t }\n\t };\n\t\n\t if (chunksToHighlight.length === 0) {\n\t append(0, totalLength, false);\n\t } else {\n\t var lastIndex = 0;\n\t chunksToHighlight.forEach(function (chunk) {\n\t append(lastIndex, chunk.start, false);\n\t append(chunk.start, chunk.end, true);\n\t lastIndex = chunk.end;\n\t });\n\t append(lastIndex, totalLength, false);\n\t }\n\t return allChunks;\n\t};\n\t\n\tfunction identity(value) {\n\t return value;\n\t}\n\t\n\tfunction escapeRegExpFn(str) {\n\t return str.replace(/[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]/g, '\\\\$&');\n\t}\n\n/***/ })\n/******/ ]);\n//# sourceMappingURL=index.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/highlight-words-core/dist/index.js\n// module id = 3\n// module chunks = 0","/**\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 REACT_ELEMENT_TYPE = (typeof Symbol === 'function' &&\n Symbol.for &&\n Symbol.for('react.element')) ||\n 0xeac7;\n\n var isValidElement = function(object) {\n return typeof object === 'object' &&\n object !== null &&\n object.$$typeof === REACT_ELEMENT_TYPE;\n };\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')(isValidElement, 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\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/prop-types/index.js\n// module id = 4\n// module chunks = 0","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/process/browser.js\n// module id = 5\n// module chunks = 0","/**\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 emptyFunction = require('fbjs/lib/emptyFunction');\nvar invariant = require('fbjs/lib/invariant');\nvar warning = require('fbjs/lib/warning');\nvar assign = require('object-assign');\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\nvar checkPropTypes = require('./checkPropTypes');\n\nmodule.exports = function(isValidElement, throwOnDirectAccess) {\n /* global Symbol */\n var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\n var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.\n\n /**\n * Returns the iterator method function contained on the iterable object.\n *\n * Be sure to invoke the function with the iterable as context:\n *\n * var iteratorFn = getIteratorFn(myIterable);\n * if (iteratorFn) {\n * var iterator = iteratorFn.call(myIterable);\n * ...\n * }\n *\n * @param {?object} maybeIterable\n * @return {?function}\n */\n function getIteratorFn(maybeIterable) {\n var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);\n if (typeof iteratorFn === 'function') {\n return iteratorFn;\n }\n }\n\n /**\n * Collection of methods that allow declaration and validation of props that are\n * supplied to React components. Example usage:\n *\n * var Props = require('ReactPropTypes');\n * var MyArticle = React.createClass({\n * propTypes: {\n * // An optional string prop named \"description\".\n * description: Props.string,\n *\n * // A required enum prop named \"category\".\n * category: Props.oneOf(['News','Photos']).isRequired,\n *\n * // A prop named \"dialog\" that requires an instance of Dialog.\n * dialog: Props.instanceOf(Dialog).isRequired\n * },\n * render: function() { ... }\n * });\n *\n * A more formal specification of how these methods are used:\n *\n * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)\n * decl := ReactPropTypes.{type}(.isRequired)?\n *\n * Each and every declaration produces a function with the same signature. This\n * allows the creation of custom validation functions. For example:\n *\n * var MyLink = React.createClass({\n * propTypes: {\n * // An optional string or URI prop named \"href\".\n * href: function(props, propName, componentName) {\n * var propValue = props[propName];\n * if (propValue != null && typeof propValue !== 'string' &&\n * !(propValue instanceof URI)) {\n * return new Error(\n * 'Expected a string or an URI for ' + propName + ' in ' +\n * componentName\n * );\n * }\n * }\n * },\n * render: function() {...}\n * });\n *\n * @internal\n */\n\n var ANONYMOUS = '<>';\n\n // Important!\n // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.\n var ReactPropTypes = {\n array: createPrimitiveTypeChecker('array'),\n bool: createPrimitiveTypeChecker('boolean'),\n func: createPrimitiveTypeChecker('function'),\n number: createPrimitiveTypeChecker('number'),\n object: createPrimitiveTypeChecker('object'),\n string: createPrimitiveTypeChecker('string'),\n symbol: createPrimitiveTypeChecker('symbol'),\n\n any: createAnyTypeChecker(),\n arrayOf: createArrayOfTypeChecker,\n element: createElementTypeChecker(),\n instanceOf: createInstanceTypeChecker,\n node: createNodeChecker(),\n objectOf: createObjectOfTypeChecker,\n oneOf: createEnumTypeChecker,\n oneOfType: createUnionTypeChecker,\n shape: createShapeTypeChecker,\n exact: createStrictShapeTypeChecker,\n };\n\n /**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\n /*eslint-disable no-self-compare*/\n function is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return x !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n }\n /*eslint-enable no-self-compare*/\n\n /**\n * We use an Error-like object for backward compatibility as people may call\n * PropTypes directly and inspect their output. However, we don't use real\n * Errors anymore. We don't inspect their stack anyway, and creating them\n * is prohibitively expensive if they are created too often, such as what\n * happens in oneOfType() for any type before the one that matched.\n */\n function PropTypeError(message) {\n this.message = message;\n this.stack = '';\n }\n // Make `instanceof Error` still work for returned errors.\n PropTypeError.prototype = Error.prototype;\n\n function createChainableTypeChecker(validate) {\n if (process.env.NODE_ENV !== 'production') {\n var manualPropTypeCallCache = {};\n var manualPropTypeWarningCount = 0;\n }\n function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {\n componentName = componentName || ANONYMOUS;\n propFullName = propFullName || propName;\n\n if (secret !== ReactPropTypesSecret) {\n if (throwOnDirectAccess) {\n // New behavior only for users of `prop-types` package\n invariant(\n false,\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 } else if (process.env.NODE_ENV !== 'production' && typeof console !== 'undefined') {\n // Old behavior for people using React.PropTypes\n var cacheKey = componentName + ':' + propName;\n if (\n !manualPropTypeCallCache[cacheKey] &&\n // Avoid spamming the console because they are often not actionable except for lib authors\n manualPropTypeWarningCount < 3\n ) {\n warning(\n false,\n 'You are manually calling a React.PropTypes validation ' +\n 'function for the `%s` prop on `%s`. This is deprecated ' +\n 'and will throw in the standalone `prop-types` package. ' +\n 'You may be seeing this warning due to a third-party PropTypes ' +\n 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.',\n propFullName,\n componentName\n );\n manualPropTypeCallCache[cacheKey] = true;\n manualPropTypeWarningCount++;\n }\n }\n }\n if (props[propName] == null) {\n if (isRequired) {\n if (props[propName] === null) {\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));\n }\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));\n }\n return null;\n } else {\n return validate(props, propName, componentName, location, propFullName);\n }\n }\n\n var chainedCheckType = checkType.bind(null, false);\n chainedCheckType.isRequired = checkType.bind(null, true);\n\n return chainedCheckType;\n }\n\n function createPrimitiveTypeChecker(expectedType) {\n function validate(props, propName, componentName, location, propFullName, secret) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== expectedType) {\n // `propValue` being instance of, say, date/regexp, pass the 'object'\n // check, but we can offer a more precise error message here rather than\n // 'of type `object`'.\n var preciseType = getPreciseType(propValue);\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createAnyTypeChecker() {\n return createChainableTypeChecker(emptyFunction.thatReturnsNull);\n }\n\n function createArrayOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');\n }\n var propValue = props[propName];\n if (!Array.isArray(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));\n }\n for (var i = 0; i < propValue.length; i++) {\n var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!isValidElement(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createInstanceTypeChecker(expectedClass) {\n function validate(props, propName, componentName, location, propFullName) {\n if (!(props[propName] instanceof expectedClass)) {\n var expectedClassName = expectedClass.name || ANONYMOUS;\n var actualClassName = getClassName(props[propName]);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createEnumTypeChecker(expectedValues) {\n if (!Array.isArray(expectedValues)) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'Invalid argument supplied to oneOf, expected an instance of array.') : void 0;\n return emptyFunction.thatReturnsNull;\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n for (var i = 0; i < expectedValues.length; i++) {\n if (is(propValue, expectedValues[i])) {\n return null;\n }\n }\n\n var valuesString = JSON.stringify(expectedValues);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + propValue + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createObjectOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');\n }\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));\n }\n for (var key in propValue) {\n if (propValue.hasOwnProperty(key)) {\n var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createUnionTypeChecker(arrayOfTypeCheckers) {\n if (!Array.isArray(arrayOfTypeCheckers)) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'Invalid argument supplied to oneOfType, expected an instance of array.') : void 0;\n return emptyFunction.thatReturnsNull;\n }\n\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (typeof checker !== 'function') {\n warning(\n false,\n 'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' +\n 'received %s at index %s.',\n getPostfixForTypeWarning(checker),\n i\n );\n return emptyFunction.thatReturnsNull;\n }\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret) == null) {\n return null;\n }\n }\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createNodeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n if (!isNode(props[propName])) {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n for (var key in shapeTypes) {\n var checker = shapeTypes[key];\n if (!checker) {\n continue;\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createStrictShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n // We need to check all keys in case some are required but missing from\n // props.\n var allKeys = assign({}, props[propName], shapeTypes);\n for (var key in allKeys) {\n var checker = shapeTypes[key];\n if (!checker) {\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' +\n '\\nBad object: ' + JSON.stringify(props[propName], null, ' ') +\n '\\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' ')\n );\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n\n return createChainableTypeChecker(validate);\n }\n\n function isNode(propValue) {\n switch (typeof propValue) {\n case 'number':\n case 'string':\n case 'undefined':\n return true;\n case 'boolean':\n return !propValue;\n case 'object':\n if (Array.isArray(propValue)) {\n return propValue.every(isNode);\n }\n if (propValue === null || isValidElement(propValue)) {\n return true;\n }\n\n var iteratorFn = getIteratorFn(propValue);\n if (iteratorFn) {\n var iterator = iteratorFn.call(propValue);\n var step;\n if (iteratorFn !== propValue.entries) {\n while (!(step = iterator.next()).done) {\n if (!isNode(step.value)) {\n return false;\n }\n }\n } else {\n // Iterator will provide entry [k,v] tuples rather than values.\n while (!(step = iterator.next()).done) {\n var entry = step.value;\n if (entry) {\n if (!isNode(entry[1])) {\n return false;\n }\n }\n }\n }\n } else {\n return false;\n }\n\n return true;\n default:\n return false;\n }\n }\n\n function isSymbol(propType, propValue) {\n // Native Symbol.\n if (propType === 'symbol') {\n return true;\n }\n\n // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n if (propValue['@@toStringTag'] === 'Symbol') {\n return true;\n }\n\n // Fallback for non-spec compliant Symbols which are polyfilled.\n if (typeof Symbol === 'function' && propValue instanceof Symbol) {\n return true;\n }\n\n return false;\n }\n\n // Equivalent of `typeof` but with special handling for array and regexp.\n function getPropType(propValue) {\n var propType = typeof propValue;\n if (Array.isArray(propValue)) {\n return 'array';\n }\n if (propValue instanceof RegExp) {\n // Old webkits (at least until Android 4.0) return 'function' rather than\n // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n // passes PropTypes.object.\n return 'object';\n }\n if (isSymbol(propType, propValue)) {\n return 'symbol';\n }\n return propType;\n }\n\n // This handles more types than `getPropType`. Only used for error messages.\n // See `createPrimitiveTypeChecker`.\n function getPreciseType(propValue) {\n if (typeof propValue === 'undefined' || propValue === null) {\n return '' + propValue;\n }\n var propType = getPropType(propValue);\n if (propType === 'object') {\n if (propValue instanceof Date) {\n return 'date';\n } else if (propValue instanceof RegExp) {\n return 'regexp';\n }\n }\n return propType;\n }\n\n // Returns a string that is postfixed to a warning about an invalid type.\n // For example, \"undefined\" or \"of type array\"\n function getPostfixForTypeWarning(value) {\n var type = getPreciseType(value);\n switch (type) {\n case 'array':\n case 'object':\n return 'an ' + type;\n case 'boolean':\n case 'date':\n case 'regexp':\n return 'a ' + type;\n default:\n return type;\n }\n }\n\n // Returns class name of the object, if any.\n function getClassName(propValue) {\n if (!propValue.constructor || !propValue.constructor.name) {\n return ANONYMOUS;\n }\n return propValue.constructor.name;\n }\n\n ReactPropTypes.checkPropTypes = checkPropTypes;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/prop-types/factoryWithTypeCheckers.js\n// module id = 6\n// module chunks = 0","\"use strict\";\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 */\n\nfunction makeEmptyFunction(arg) {\n return function () {\n return arg;\n };\n}\n\n/**\n * This function accepts and discards inputs; it has no side effects. This is\n * primarily useful idiomatically for overridable function endpoints which\n * always need to be callable, since JS lacks a null-call idiom ala Cocoa.\n */\nvar emptyFunction = function emptyFunction() {};\n\nemptyFunction.thatReturns = makeEmptyFunction;\nemptyFunction.thatReturnsFalse = makeEmptyFunction(false);\nemptyFunction.thatReturnsTrue = makeEmptyFunction(true);\nemptyFunction.thatReturnsNull = makeEmptyFunction(null);\nemptyFunction.thatReturnsThis = function () {\n return this;\n};\nemptyFunction.thatReturnsArgument = function (arg) {\n return arg;\n};\n\nmodule.exports = emptyFunction;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/fbjs/lib/emptyFunction.js\n// module id = 7\n// module chunks = 0","/**\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\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar validateFormat = function validateFormat(format) {};\n\nif (process.env.NODE_ENV !== 'production') {\n validateFormat = function validateFormat(format) {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n };\n}\n\nfunction invariant(condition, format, a, b, c, d, e, f) {\n validateFormat(format);\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(format.replace(/%s/g, function () {\n return args[argIndex++];\n }));\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n}\n\nmodule.exports = invariant;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/fbjs/lib/invariant.js\n// module id = 8\n// module chunks = 0","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n'use strict';\n\nvar emptyFunction = require('./emptyFunction');\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar warning = emptyFunction;\n\nif (process.env.NODE_ENV !== 'production') {\n var printWarning = function printWarning(format) {\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n var argIndex = 0;\n var message = 'Warning: ' + format.replace(/%s/g, function () {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n\n warning = function warning(condition, format) {\n if (format === undefined) {\n throw new Error('`warning(condition, format, ...args)` requires a warning ' + 'message argument');\n }\n\n if (format.indexOf('Failed Composite propType: ') === 0) {\n return; // Ignore CompositeComponent proptype check.\n }\n\n if (!condition) {\n for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {\n args[_key2 - 2] = arguments[_key2];\n }\n\n printWarning.apply(undefined, [format].concat(args));\n }\n };\n}\n\nmodule.exports = warning;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/fbjs/lib/warning.js\n// module id = 9\n// module chunks = 0","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/object-assign/index.js\n// module id = 10\n// module chunks = 0","/**\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\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/prop-types/lib/ReactPropTypesSecret.js\n// module id = 11\n// module chunks = 0","/**\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\nif (process.env.NODE_ENV !== 'production') {\n var invariant = require('fbjs/lib/invariant');\n var warning = require('fbjs/lib/warning');\n var ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n var loggedTypeFailures = {};\n}\n\n/**\n * Assert that the values match with the type specs.\n * Error messages are memorized and will only be shown once.\n *\n * @param {object} typeSpecs Map of name to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @param {string} componentName Name of the component for error messages.\n * @param {?Function} getStack Returns the component stack.\n * @private\n */\nfunction checkPropTypes(typeSpecs, values, location, componentName, getStack) {\n if (process.env.NODE_ENV !== 'production') {\n for (var typeSpecName in typeSpecs) {\n if (typeSpecs.hasOwnProperty(typeSpecName)) {\n var error;\n // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n invariant(typeof typeSpecs[typeSpecName] === 'function', '%s: %s type `%s` is invalid; it must be a function, usually from ' + 'the `prop-types` package, but received `%s`.', componentName || 'React class', location, typeSpecName, typeof typeSpecs[typeSpecName]);\n error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n } catch (ex) {\n error = ex;\n }\n warning(!error || error instanceof Error, '%s: type specification of %s `%s` is invalid; the type checker ' + 'function must return `null` or an `Error` but returned a %s. ' + 'You may have forgotten to pass an argument to the type checker ' + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + 'shape all require an argument).', componentName || 'React class', location, typeSpecName, typeof error);\n if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error.message] = true;\n\n var stack = getStack ? getStack() : '';\n\n warning(false, 'Failed %s type: %s%s', location, error.message, stack != null ? stack : '');\n }\n }\n }\n }\n}\n\nmodule.exports = checkPropTypes;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/prop-types/checkPropTypes.js\n// module id = 12\n// module chunks = 0","/**\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 emptyFunction = require('fbjs/lib/emptyFunction');\nvar invariant = require('fbjs/lib/invariant');\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\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 invariant(\n false,\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 };\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 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 instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim\n };\n\n ReactPropTypes.checkPropTypes = emptyFunction;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/prop-types/factoryWithThrowingShims.js\n// module id = 13\n// module chunks = 0","module.exports = require(\"react\");\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"react\"\n// module id = 14\n// module chunks = 0","'use strict';\n\nvar simpleIsEqual = function simpleIsEqual(a, b) {\n return a === b;\n};\n\nfunction index (resultFn) {\n var isEqual = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : simpleIsEqual;\n\n var lastThis = void 0;\n var lastArgs = [];\n var lastResult = void 0;\n var calledOnce = false;\n\n var isNewArgEqualToLast = function isNewArgEqualToLast(newArg, index) {\n return isEqual(newArg, lastArgs[index]);\n };\n\n var result = function result() {\n for (var _len = arguments.length, newArgs = Array(_len), _key = 0; _key < _len; _key++) {\n newArgs[_key] = arguments[_key];\n }\n\n if (calledOnce && lastThis === this && newArgs.length === lastArgs.length && newArgs.every(isNewArgEqualToLast)) {\n return lastResult;\n }\n\n calledOnce = true;\n lastThis = this;\n lastArgs = newArgs;\n lastResult = resultFn.apply(this, newArgs);\n return lastResult;\n };\n\n return result;\n}\n\nmodule.exports = index;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/memoize-one/dist/memoize-one.cjs.js\n// module id = 15\n// module chunks = 0","/**\n * @license React\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'use strict';var b=Symbol.for(\"react.element\"),c=Symbol.for(\"react.portal\"),d=Symbol.for(\"react.fragment\"),e=Symbol.for(\"react.strict_mode\"),f=Symbol.for(\"react.profiler\"),g=Symbol.for(\"react.provider\"),h=Symbol.for(\"react.context\"),k=Symbol.for(\"react.server_context\"),l=Symbol.for(\"react.forward_ref\"),m=Symbol.for(\"react.suspense\"),n=Symbol.for(\"react.suspense_list\"),p=Symbol.for(\"react.memo\"),q=Symbol.for(\"react.lazy\"),t=Symbol.for(\"react.offscreen\"),u;u=Symbol.for(\"react.module.reference\");\nfunction v(a){if(\"object\"===typeof a&&null!==a){var r=a.$$typeof;switch(r){case b:switch(a=a.type,a){case d:case f:case e:case m:case n:return a;default:switch(a=a&&a.$$typeof,a){case k:case h:case l:case q:case p:case g:return a;default:return r}}case c:return r}}}exports.ContextConsumer=h;exports.ContextProvider=g;exports.Element=b;exports.ForwardRef=l;exports.Fragment=d;exports.Lazy=q;exports.Memo=p;exports.Portal=c;exports.Profiler=f;exports.StrictMode=e;exports.Suspense=m;\nexports.SuspenseList=n;exports.isAsyncMode=function(){return!1};exports.isConcurrentMode=function(){return!1};exports.isContextConsumer=function(a){return v(a)===h};exports.isContextProvider=function(a){return v(a)===g};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===b};exports.isForwardRef=function(a){return v(a)===l};exports.isFragment=function(a){return v(a)===d};exports.isLazy=function(a){return v(a)===q};exports.isMemo=function(a){return v(a)===p};\nexports.isPortal=function(a){return v(a)===c};exports.isProfiler=function(a){return v(a)===f};exports.isStrictMode=function(a){return v(a)===e};exports.isSuspense=function(a){return v(a)===m};exports.isSuspenseList=function(a){return v(a)===n};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===d||a===f||a===e||a===m||a===n||a===t||\"object\"===typeof a&&null!==a&&(a.$$typeof===q||a.$$typeof===p||a.$$typeof===g||a.$$typeof===h||a.$$typeof===l||a.$$typeof===u||void 0!==a.getModuleId)?!0:!1};exports.typeOf=v;\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","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.min.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","var parse = require('inline-style-parser');\n\n/**\n * Parses inline style to object.\n *\n * @example\n * // returns { 'line-height': '42' }\n * StyleToObject('line-height: 42;');\n *\n * @param {String} style - The inline style.\n * @param {Function} [iterator] - The iterator function.\n * @return {null|Object}\n */\nfunction StyleToObject(style, iterator) {\n var output = null;\n if (!style || typeof style !== 'string') {\n return output;\n }\n\n var declaration;\n var declarations = parse(style);\n var hasIterator = typeof iterator === 'function';\n var property;\n var value;\n\n for (var i = 0, len = declarations.length; i < len; i++) {\n declaration = declarations[i];\n property = declaration.property;\n value = declaration.value;\n\n if (hasIterator) {\n iterator(property, value, declaration);\n } else if (value) {\n output || (output = {});\n output[property] = value;\n }\n }\n\n return output;\n}\n\nmodule.exports = StyleToObject;\nmodule.exports.default = StyleToObject; // ESM support\n","module.exports = React;","module.exports = ReactDOM;","module.exports = antd;","module.exports = echarts;","function _interopRequireDefault(e) {\n return e && e.__esModule ? e : {\n \"default\": e\n };\n}\nmodule.exports = _interopRequireDefault, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = '';\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (arg) {\n\t\t\t\tclasses = appendClass(classes, parseValue(arg));\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction parseValue (arg) {\n\t\tif (typeof arg === 'string' || typeof arg === 'number') {\n\t\t\treturn arg;\n\t\t}\n\n\t\tif (typeof arg !== 'object') {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (Array.isArray(arg)) {\n\t\t\treturn classNames.apply(null, arg);\n\t\t}\n\n\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\treturn arg.toString();\n\t\t}\n\n\t\tvar classes = '';\n\n\t\tfor (var key in arg) {\n\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\tclasses = appendClass(classes, key);\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction appendClass (value, newClass) {\n\t\tif (!newClass) {\n\t\t\treturn value;\n\t\t}\n\t\n\t\tif (value) {\n\t\t\treturn value + ' ' + newClass;\n\t\t}\n\t\n\t\treturn value + newClass;\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","// 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// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\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};","// 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__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"static/js/\" + chunkId + \".\" + \"e6c977f9\" + \".chunk.js\";\n};","// This function allow to reference async chunks\n__webpack_require__.miniCssF = (chunkId) => {\n\t// return url for filenames based on template\n\treturn undefined;\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))","var inProgress = {};\nvar dataWebpackPrefix = \"spa-website:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key, chunkId) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = (prev, event) => {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach((fn) => (fn(event)));\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","// 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};","__webpack_require__.p = \"/\";","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t792: 0\n};\n\n__webpack_require__.f.j = (chunkId, promises) => {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject]));\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = (event) => {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n// no on chunks loaded\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkspa_website\"] = self[\"webpackChunkspa_website\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","function _extends() {\n return _extends = Object.assign ? Object.assign.bind() : function (n) {\n for (var e = 1; e < arguments.length; e++) {\n var t = arguments[e];\n for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n }\n return n;\n }, _extends.apply(null, arguments);\n}\nexport { _extends as default };","var locale = {\n placeholder: '请选择时间',\n rangePlaceholder: ['开始时间', '结束时间']\n};\nexport default locale;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport CalendarLocale from \"rc-picker/es/locale/zh_CN\";\nimport TimePickerLocale from '../../time-picker/locale/zh_CN';\n// 统一合并为完整的 Locale\nvar locale = {\n lang: _extends({\n placeholder: '请选择日期',\n yearPlaceholder: '请选择年份',\n quarterPlaceholder: '请选择季度',\n monthPlaceholder: '请选择月份',\n weekPlaceholder: '请选择周',\n rangePlaceholder: ['开始日期', '结束日期'],\n rangeYearPlaceholder: ['开始年份', '结束年份'],\n rangeMonthPlaceholder: ['开始月份', '结束月份'],\n rangeQuarterPlaceholder: ['开始季度', '结束季度'],\n rangeWeekPlaceholder: ['开始周', '结束周']\n }, CalendarLocale),\n timePickerLocale: _extends({}, TimePickerLocale)\n};\n// should add whitespace between char in Button\nlocale.lang.ok = '确定';\n// All settings at:\n// https://github.com/ant-design/ant-design/blob/master/components/date-picker/locale/example.json\nexport default locale;","var locale = {\n locale: 'zh_CN',\n today: '今天',\n now: '此刻',\n backToToday: '返回今天',\n ok: '确定',\n timeSelect: '选择时间',\n dateSelect: '选择日期',\n weekSelect: '选择周',\n clear: '清除',\n month: '月',\n year: '年',\n previousMonth: '上个月 (翻页上键)',\n nextMonth: '下个月 (翻页下键)',\n monthSelect: '选择月份',\n yearSelect: '选择年份',\n decadeSelect: '选择年代',\n yearFormat: 'YYYY年',\n dayFormat: 'D日',\n dateFormat: 'YYYY年M月D日',\n dateTimeFormat: 'YYYY年M月D日 HH时mm分ss秒',\n previousYear: '上一年 (Control键加左方向键)',\n nextYear: '下一年 (Control键加右方向键)',\n previousDecade: '上一年代',\n nextDecade: '下一年代',\n previousCentury: '上一世纪',\n nextCentury: '下一世纪'\n};\nexport default locale;","/* eslint-disable no-template-curly-in-string */\nimport Pagination from \"rc-pagination/es/locale/zh_CN\";\nimport Calendar from '../calendar/locale/zh_CN';\nimport DatePicker from '../date-picker/locale/zh_CN';\nimport TimePicker from '../time-picker/locale/zh_CN';\nvar typeTemplate = '${label}不是一个有效的${type}';\nvar localeValues = {\n locale: 'zh-cn',\n Pagination: Pagination,\n DatePicker: DatePicker,\n TimePicker: TimePicker,\n Calendar: Calendar,\n // locales for all components\n global: {\n placeholder: '请选择'\n },\n Table: {\n filterTitle: '筛选',\n filterConfirm: '确定',\n filterReset: '重置',\n filterEmptyText: '无筛选项',\n filterCheckall: '全选',\n filterSearchPlaceholder: '在筛选项中搜索',\n selectAll: '全选当页',\n selectInvert: '反选当页',\n selectNone: '清空所有',\n selectionAll: '全选所有',\n sortTitle: '排序',\n expand: '展开行',\n collapse: '关闭行',\n triggerDesc: '点击降序',\n triggerAsc: '点击升序',\n cancelSort: '取消排序'\n },\n Modal: {\n okText: '确定',\n cancelText: '取消',\n justOkText: '知道了'\n },\n Popconfirm: {\n cancelText: '取消',\n okText: '确定'\n },\n Transfer: {\n titles: ['', ''],\n searchPlaceholder: '请输入搜索内容',\n itemUnit: '项',\n itemsUnit: '项',\n remove: '删除',\n selectCurrent: '全选当页',\n removeCurrent: '删除当页',\n selectAll: '全选所有',\n removeAll: '删除全部',\n selectInvert: '反选当页'\n },\n Upload: {\n uploading: '文件上传中',\n removeFile: '删除文件',\n uploadError: '上传错误',\n previewFile: '预览文件',\n downloadFile: '下载文件'\n },\n Empty: {\n description: '暂无数据'\n },\n Icon: {\n icon: '图标'\n },\n Text: {\n edit: '编辑',\n copy: '复制',\n copied: '复制成功',\n expand: '展开'\n },\n PageHeader: {\n back: '返回'\n },\n Form: {\n optional: '(可选)',\n defaultValidateMessages: {\n \"default\": '字段验证错误${label}',\n required: '请输入${label}',\n \"enum\": '${label}必须是其中一个[${enum}]',\n whitespace: '${label}不能为空字符',\n date: {\n format: '${label}日期格式无效',\n parse: '${label}不能转换为日期',\n invalid: '${label}是一个无效日期'\n },\n types: {\n string: typeTemplate,\n method: typeTemplate,\n array: typeTemplate,\n object: typeTemplate,\n number: typeTemplate,\n date: typeTemplate,\n \"boolean\": typeTemplate,\n integer: typeTemplate,\n \"float\": typeTemplate,\n regexp: typeTemplate,\n email: typeTemplate,\n url: typeTemplate,\n hex: typeTemplate\n },\n string: {\n len: '${label}须为${len}个字符',\n min: '${label}最少${min}个字符',\n max: '${label}最多${max}个字符',\n range: '${label}须在${min}-${max}字符之间'\n },\n number: {\n len: '${label}必须等于${len}',\n min: '${label}最小值为${min}',\n max: '${label}最大值为${max}',\n range: '${label}须在${min}-${max}之间'\n },\n array: {\n len: '须为${len}个${label}',\n min: '最少${min}个${label}',\n max: '最多${max}个${label}',\n range: '${label}数量须在${min}-${max}之间'\n },\n pattern: {\n mismatch: '${label}与模式不匹配${pattern}'\n }\n }\n },\n Image: {\n preview: '预览'\n }\n};\nexport default localeValues;","export default {\n // Options.jsx\n items_per_page: '条/页',\n jump_to: '跳至',\n jump_to_confirm: '确定',\n page: '页',\n // Pagination.jsx\n prev_page: '上一页',\n next_page: '下一页',\n prev_5: '向前 5 页',\n next_5: '向后 5 页',\n prev_3: '向前 3 页',\n next_3: '向后 3 页',\n page_size: '页码'\n};","////////////////////////////////////////////////////////////////////////////////\n//#region Types and Constants\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Actions represent the type of change to a location value.\n */\nexport enum Action {\n /**\n * A POP indicates a change to an arbitrary index in the history stack, such\n * as a back or forward navigation. It does not describe the direction of the\n * navigation, only that the current index changed.\n *\n * Note: This is the default action for newly created history objects.\n */\n Pop = \"POP\",\n\n /**\n * A PUSH indicates a new entry being added to the history stack, such as when\n * a link is clicked and a new page loads. When this happens, all subsequent\n * entries in the stack are lost.\n */\n Push = \"PUSH\",\n\n /**\n * A REPLACE indicates the entry at the current index in the history stack\n * being replaced by a new one.\n */\n Replace = \"REPLACE\",\n}\n\n/**\n * The pathname, search, and hash values of a URL.\n */\nexport interface Path {\n /**\n * A URL pathname, beginning with a /.\n */\n pathname: string;\n\n /**\n * A URL search string, beginning with a ?.\n */\n search: string;\n\n /**\n * A URL fragment identifier, beginning with a #.\n */\n hash: string;\n}\n\n// TODO: (v7) Change the Location generic default from `any` to `unknown` and\n// remove Remix `useLocation` wrapper.\n\n/**\n * An entry in a history stack. A location contains information about the\n * URL path, as well as possibly some arbitrary state and a key.\n */\nexport interface Location extends Path {\n /**\n * A value of arbitrary data associated with this location.\n */\n state: State;\n\n /**\n * A unique string associated with this location. May be used to safely store\n * and retrieve data in some other storage API, like `localStorage`.\n *\n * Note: This value is always \"default\" on the initial location.\n */\n key: string;\n}\n\n/**\n * A change to the current location.\n */\nexport interface Update {\n /**\n * The action that triggered the change.\n */\n action: Action;\n\n /**\n * The new location.\n */\n location: Location;\n\n /**\n * The delta between this location and the former location in the history stack\n */\n delta: number | null;\n}\n\n/**\n * A function that receives notifications about location changes.\n */\nexport interface Listener {\n (update: Update): void;\n}\n\n/**\n * Describes a location that is the destination of some navigation, either via\n * `history.push` or `history.replace`. This may be either a URL or the pieces\n * of a URL path.\n */\nexport type To = string | Partial;\n\n/**\n * A history is an interface to the navigation stack. The history serves as the\n * source of truth for the current location, as well as provides a set of\n * methods that may be used to change it.\n *\n * It is similar to the DOM's `window.history` object, but with a smaller, more\n * focused API.\n */\nexport interface History {\n /**\n * The last action that modified the current location. This will always be\n * Action.Pop when a history instance is first created. This value is mutable.\n */\n readonly action: Action;\n\n /**\n * The current location. This value is mutable.\n */\n readonly location: Location;\n\n /**\n * Returns a valid href for the given `to` value that may be used as\n * the value of an attribute.\n *\n * @param to - The destination URL\n */\n createHref(to: To): string;\n\n /**\n * Returns a URL for the given `to` value\n *\n * @param to - The destination URL\n */\n createURL(to: To): URL;\n\n /**\n * Encode a location the same way window.history would do (no-op for memory\n * history) so we ensure our PUSH/REPLACE navigations for data routers\n * behave the same as POP\n *\n * @param to Unencoded path\n */\n encodeLocation(to: To): Path;\n\n /**\n * Pushes a new location onto the history stack, increasing its length by one.\n * If there were any entries in the stack after the current one, they are\n * lost.\n *\n * @param to - The new URL\n * @param state - Data to associate with the new location\n */\n push(to: To, state?: any): void;\n\n /**\n * Replaces the current location in the history stack with a new one. The\n * location that was replaced will no longer be available.\n *\n * @param to - The new URL\n * @param state - Data to associate with the new location\n */\n replace(to: To, state?: any): void;\n\n /**\n * Navigates `n` entries backward/forward in the history stack relative to the\n * current index. For example, a \"back\" navigation would use go(-1).\n *\n * @param delta - The delta in the stack index\n */\n go(delta: number): void;\n\n /**\n * Sets up a listener that will be called whenever the current location\n * changes.\n *\n * @param listener - A function that will be called when the location changes\n * @returns unlisten - A function that may be used to stop listening\n */\n listen(listener: Listener): () => void;\n}\n\ntype HistoryState = {\n usr: any;\n key?: string;\n idx: number;\n};\n\nconst PopStateEventType = \"popstate\";\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Memory History\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A user-supplied object that describes a location. Used when providing\n * entries to `createMemoryHistory` via its `initialEntries` option.\n */\nexport type InitialEntry = string | Partial;\n\nexport type MemoryHistoryOptions = {\n initialEntries?: InitialEntry[];\n initialIndex?: number;\n v5Compat?: boolean;\n};\n\n/**\n * A memory history stores locations in memory. This is useful in stateful\n * environments where there is no web browser, such as node tests or React\n * Native.\n */\nexport interface MemoryHistory extends History {\n /**\n * The current index in the history stack.\n */\n readonly index: number;\n}\n\n/**\n * Memory history stores the current location in memory. It is designed for use\n * in stateful non-browser environments like tests and React Native.\n */\nexport function createMemoryHistory(\n options: MemoryHistoryOptions = {}\n): MemoryHistory {\n let { initialEntries = [\"/\"], initialIndex, v5Compat = false } = options;\n let entries: Location[]; // Declare so we can access from createMemoryLocation\n entries = initialEntries.map((entry, index) =>\n createMemoryLocation(\n entry,\n typeof entry === \"string\" ? null : entry.state,\n index === 0 ? \"default\" : undefined\n )\n );\n let index = clampIndex(\n initialIndex == null ? entries.length - 1 : initialIndex\n );\n let action = Action.Pop;\n let listener: Listener | null = null;\n\n function clampIndex(n: number): number {\n return Math.min(Math.max(n, 0), entries.length - 1);\n }\n function getCurrentLocation(): Location {\n return entries[index];\n }\n function createMemoryLocation(\n to: To,\n state: any = null,\n key?: string\n ): Location {\n let location = createLocation(\n entries ? getCurrentLocation().pathname : \"/\",\n to,\n state,\n key\n );\n warning(\n location.pathname.charAt(0) === \"/\",\n `relative pathnames are not supported in memory history: ${JSON.stringify(\n to\n )}`\n );\n return location;\n }\n\n function createHref(to: To) {\n return typeof to === \"string\" ? to : createPath(to);\n }\n\n let history: MemoryHistory = {\n get index() {\n return index;\n },\n get action() {\n return action;\n },\n get location() {\n return getCurrentLocation();\n },\n createHref,\n createURL(to) {\n return new URL(createHref(to), \"http://localhost\");\n },\n encodeLocation(to: To) {\n let path = typeof to === \"string\" ? parsePath(to) : to;\n return {\n pathname: path.pathname || \"\",\n search: path.search || \"\",\n hash: path.hash || \"\",\n };\n },\n push(to, state) {\n action = Action.Push;\n let nextLocation = createMemoryLocation(to, state);\n index += 1;\n entries.splice(index, entries.length, nextLocation);\n if (v5Compat && listener) {\n listener({ action, location: nextLocation, delta: 1 });\n }\n },\n replace(to, state) {\n action = Action.Replace;\n let nextLocation = createMemoryLocation(to, state);\n entries[index] = nextLocation;\n if (v5Compat && listener) {\n listener({ action, location: nextLocation, delta: 0 });\n }\n },\n go(delta) {\n action = Action.Pop;\n let nextIndex = clampIndex(index + delta);\n let nextLocation = entries[nextIndex];\n index = nextIndex;\n if (listener) {\n listener({ action, location: nextLocation, delta });\n }\n },\n listen(fn: Listener) {\n listener = fn;\n return () => {\n listener = null;\n };\n },\n };\n\n return history;\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Browser History\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A browser history stores the current location in regular URLs in a web\n * browser environment. This is the standard for most web apps and provides the\n * cleanest URLs the browser's address bar.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#browserhistory\n */\nexport interface BrowserHistory extends UrlHistory {}\n\nexport type BrowserHistoryOptions = UrlHistoryOptions;\n\n/**\n * Browser history stores the location in regular URLs. This is the standard for\n * most web apps, but it requires some configuration on the server to ensure you\n * serve the same app at multiple URLs.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#createbrowserhistory\n */\nexport function createBrowserHistory(\n options: BrowserHistoryOptions = {}\n): BrowserHistory {\n function createBrowserLocation(\n window: Window,\n globalHistory: Window[\"history\"]\n ) {\n let { pathname, search, hash } = window.location;\n return createLocation(\n \"\",\n { pathname, search, hash },\n // state defaults to `null` because `window.history.state` does\n (globalHistory.state && globalHistory.state.usr) || null,\n (globalHistory.state && globalHistory.state.key) || \"default\"\n );\n }\n\n function createBrowserHref(window: Window, to: To) {\n return typeof to === \"string\" ? to : createPath(to);\n }\n\n return getUrlBasedHistory(\n createBrowserLocation,\n createBrowserHref,\n null,\n options\n );\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Hash History\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A hash history stores the current location in the fragment identifier portion\n * of the URL in a web browser environment.\n *\n * This is ideal for apps that do not control the server for some reason\n * (because the fragment identifier is never sent to the server), including some\n * shared hosting environments that do not provide fine-grained controls over\n * which pages are served at which URLs.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#hashhistory\n */\nexport interface HashHistory extends UrlHistory {}\n\nexport type HashHistoryOptions = UrlHistoryOptions;\n\n/**\n * Hash history stores the location in window.location.hash. This makes it ideal\n * for situations where you don't want to send the location to the server for\n * some reason, either because you do cannot configure it or the URL space is\n * reserved for something else.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#createhashhistory\n */\nexport function createHashHistory(\n options: HashHistoryOptions = {}\n): HashHistory {\n function createHashLocation(\n window: Window,\n globalHistory: Window[\"history\"]\n ) {\n let {\n pathname = \"/\",\n search = \"\",\n hash = \"\",\n } = parsePath(window.location.hash.substr(1));\n\n // Hash URL should always have a leading / just like window.location.pathname\n // does, so if an app ends up at a route like /#something then we add a\n // leading slash so all of our path-matching behaves the same as if it would\n // in a browser router. This is particularly important when there exists a\n // root splat route () since that matches internally against\n // \"/*\" and we'd expect /#something to 404 in a hash router app.\n if (!pathname.startsWith(\"/\") && !pathname.startsWith(\".\")) {\n pathname = \"/\" + pathname;\n }\n\n return createLocation(\n \"\",\n { pathname, search, hash },\n // state defaults to `null` because `window.history.state` does\n (globalHistory.state && globalHistory.state.usr) || null,\n (globalHistory.state && globalHistory.state.key) || \"default\"\n );\n }\n\n function createHashHref(window: Window, to: To) {\n let base = window.document.querySelector(\"base\");\n let href = \"\";\n\n if (base && base.getAttribute(\"href\")) {\n let url = window.location.href;\n let hashIndex = url.indexOf(\"#\");\n href = hashIndex === -1 ? url : url.slice(0, hashIndex);\n }\n\n return href + \"#\" + (typeof to === \"string\" ? to : createPath(to));\n }\n\n function validateHashLocation(location: Location, to: To) {\n warning(\n location.pathname.charAt(0) === \"/\",\n `relative pathnames are not supported in hash history.push(${JSON.stringify(\n to\n )})`\n );\n }\n\n return getUrlBasedHistory(\n createHashLocation,\n createHashHref,\n validateHashLocation,\n options\n );\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region UTILS\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * @private\n */\nexport function invariant(value: boolean, message?: string): asserts value;\nexport function invariant(\n value: T | null | undefined,\n message?: string\n): asserts value is T;\nexport function invariant(value: any, message?: string) {\n if (value === false || value === null || typeof value === \"undefined\") {\n throw new Error(message);\n }\n}\n\nexport function warning(cond: any, message: string) {\n if (!cond) {\n // eslint-disable-next-line no-console\n if (typeof console !== \"undefined\") console.warn(message);\n\n try {\n // Welcome to debugging history!\n //\n // This error is thrown as a convenience, so you can more easily\n // find the source for a warning that appears in the console by\n // enabling \"pause on exceptions\" in your JavaScript debugger.\n throw new Error(message);\n // eslint-disable-next-line no-empty\n } catch (e) {}\n }\n}\n\nfunction createKey() {\n return Math.random().toString(36).substr(2, 8);\n}\n\n/**\n * For browser-based histories, we combine the state and key into an object\n */\nfunction getHistoryState(location: Location, index: number): HistoryState {\n return {\n usr: location.state,\n key: location.key,\n idx: index,\n };\n}\n\n/**\n * Creates a Location object with a unique key from the given Path\n */\nexport function createLocation(\n current: string | Location,\n to: To,\n state: any = null,\n key?: string\n): Readonly {\n let location: Readonly = {\n pathname: typeof current === \"string\" ? current : current.pathname,\n search: \"\",\n hash: \"\",\n ...(typeof to === \"string\" ? parsePath(to) : to),\n state,\n // TODO: This could be cleaned up. push/replace should probably just take\n // full Locations now and avoid the need to run through this flow at all\n // But that's a pretty big refactor to the current test suite so going to\n // keep as is for the time being and just let any incoming keys take precedence\n key: (to && (to as Location).key) || key || createKey(),\n };\n return location;\n}\n\n/**\n * Creates a string URL path from the given pathname, search, and hash components.\n */\nexport function createPath({\n pathname = \"/\",\n search = \"\",\n hash = \"\",\n}: Partial) {\n if (search && search !== \"?\")\n pathname += search.charAt(0) === \"?\" ? search : \"?\" + search;\n if (hash && hash !== \"#\")\n pathname += hash.charAt(0) === \"#\" ? hash : \"#\" + hash;\n return pathname;\n}\n\n/**\n * Parses a string URL path into its separate pathname, search, and hash components.\n */\nexport function parsePath(path: string): Partial {\n let parsedPath: Partial = {};\n\n if (path) {\n let hashIndex = path.indexOf(\"#\");\n if (hashIndex >= 0) {\n parsedPath.hash = path.substr(hashIndex);\n path = path.substr(0, hashIndex);\n }\n\n let searchIndex = path.indexOf(\"?\");\n if (searchIndex >= 0) {\n parsedPath.search = path.substr(searchIndex);\n path = path.substr(0, searchIndex);\n }\n\n if (path) {\n parsedPath.pathname = path;\n }\n }\n\n return parsedPath;\n}\n\nexport interface UrlHistory extends History {}\n\nexport type UrlHistoryOptions = {\n window?: Window;\n v5Compat?: boolean;\n};\n\nfunction getUrlBasedHistory(\n getLocation: (window: Window, globalHistory: Window[\"history\"]) => Location,\n createHref: (window: Window, to: To) => string,\n validateLocation: ((location: Location, to: To) => void) | null,\n options: UrlHistoryOptions = {}\n): UrlHistory {\n let { window = document.defaultView!, v5Compat = false } = options;\n let globalHistory = window.history;\n let action = Action.Pop;\n let listener: Listener | null = null;\n\n let index = getIndex()!;\n // Index should only be null when we initialize. If not, it's because the\n // user called history.pushState or history.replaceState directly, in which\n // case we should log a warning as it will result in bugs.\n if (index == null) {\n index = 0;\n globalHistory.replaceState({ ...globalHistory.state, idx: index }, \"\");\n }\n\n function getIndex(): number {\n let state = globalHistory.state || { idx: null };\n return state.idx;\n }\n\n function handlePop() {\n action = Action.Pop;\n let nextIndex = getIndex();\n let delta = nextIndex == null ? null : nextIndex - index;\n index = nextIndex;\n if (listener) {\n listener({ action, location: history.location, delta });\n }\n }\n\n function push(to: To, state?: any) {\n action = Action.Push;\n let location = createLocation(history.location, to, state);\n if (validateLocation) validateLocation(location, to);\n\n index = getIndex() + 1;\n let historyState = getHistoryState(location, index);\n let url = history.createHref(location);\n\n // try...catch because iOS limits us to 100 pushState calls :/\n try {\n globalHistory.pushState(historyState, \"\", url);\n } catch (error) {\n // If the exception is because `state` can't be serialized, let that throw\n // outwards just like a replace call would so the dev knows the cause\n // https://html.spec.whatwg.org/multipage/nav-history-apis.html#shared-history-push/replace-state-steps\n // https://html.spec.whatwg.org/multipage/structured-data.html#structuredserializeinternal\n if (error instanceof DOMException && error.name === \"DataCloneError\") {\n throw error;\n }\n // They are going to lose state here, but there is no real\n // way to warn them about it since the page will refresh...\n window.location.assign(url);\n }\n\n if (v5Compat && listener) {\n listener({ action, location: history.location, delta: 1 });\n }\n }\n\n function replace(to: To, state?: any) {\n action = Action.Replace;\n let location = createLocation(history.location, to, state);\n if (validateLocation) validateLocation(location, to);\n\n index = getIndex();\n let historyState = getHistoryState(location, index);\n let url = history.createHref(location);\n globalHistory.replaceState(historyState, \"\", url);\n\n if (v5Compat && listener) {\n listener({ action, location: history.location, delta: 0 });\n }\n }\n\n function createURL(to: To): URL {\n // window.location.origin is \"null\" (the literal string value) in Firefox\n // under certain conditions, notably when serving from a local HTML file\n // See https://bugzilla.mozilla.org/show_bug.cgi?id=878297\n let base =\n window.location.origin !== \"null\"\n ? window.location.origin\n : window.location.href;\n\n let href = typeof to === \"string\" ? to : createPath(to);\n // Treating this as a full URL will strip any trailing spaces so we need to\n // pre-encode them since they might be part of a matching splat param from\n // an ancestor route\n href = href.replace(/ $/, \"%20\");\n invariant(\n base,\n `No window.location.(origin|href) available to create URL for href: ${href}`\n );\n return new URL(href, base);\n }\n\n let history: History = {\n get action() {\n return action;\n },\n get location() {\n return getLocation(window, globalHistory);\n },\n listen(fn: Listener) {\n if (listener) {\n throw new Error(\"A history only accepts one active listener\");\n }\n window.addEventListener(PopStateEventType, handlePop);\n listener = fn;\n\n return () => {\n window.removeEventListener(PopStateEventType, handlePop);\n listener = null;\n };\n },\n createHref(to) {\n return createHref(window, to);\n },\n createURL,\n encodeLocation(to) {\n // Encode a Location the same way window.location would\n let url = createURL(to);\n return {\n pathname: url.pathname,\n search: url.search,\n hash: url.hash,\n };\n },\n push,\n replace,\n go(n) {\n return globalHistory.go(n);\n },\n };\n\n return history;\n}\n\n//#endregion\n","import type { Location, Path, To } from \"./history\";\nimport { invariant, parsePath, warning } from \"./history\";\n\n/**\n * Map of routeId -> data returned from a loader/action/error\n */\nexport interface RouteData {\n [routeId: string]: any;\n}\n\nexport enum ResultType {\n data = \"data\",\n deferred = \"deferred\",\n redirect = \"redirect\",\n error = \"error\",\n}\n\n/**\n * Successful result from a loader or action\n */\nexport interface SuccessResult {\n type: ResultType.data;\n data: unknown;\n statusCode?: number;\n headers?: Headers;\n}\n\n/**\n * Successful defer() result from a loader or action\n */\nexport interface DeferredResult {\n type: ResultType.deferred;\n deferredData: DeferredData;\n statusCode?: number;\n headers?: Headers;\n}\n\n/**\n * Redirect result from a loader or action\n */\nexport interface RedirectResult {\n type: ResultType.redirect;\n // We keep the raw Response for redirects so we can return it verbatim\n response: Response;\n}\n\n/**\n * Unsuccessful result from a loader or action\n */\nexport interface ErrorResult {\n type: ResultType.error;\n error: unknown;\n statusCode?: number;\n headers?: Headers;\n}\n\n/**\n * Result from a loader or action - potentially successful or unsuccessful\n */\nexport type DataResult =\n | SuccessResult\n | DeferredResult\n | RedirectResult\n | ErrorResult;\n\ntype LowerCaseFormMethod = \"get\" | \"post\" | \"put\" | \"patch\" | \"delete\";\ntype UpperCaseFormMethod = Uppercase;\n\n/**\n * Users can specify either lowercase or uppercase form methods on `
`,\n * useSubmit(), ``, etc.\n */\nexport type HTMLFormMethod = LowerCaseFormMethod | UpperCaseFormMethod;\n\n/**\n * Active navigation/fetcher form methods are exposed in lowercase on the\n * RouterState\n */\nexport type FormMethod = LowerCaseFormMethod;\nexport type MutationFormMethod = Exclude;\n\n/**\n * In v7, active navigation/fetcher form methods are exposed in uppercase on the\n * RouterState. This is to align with the normalization done via fetch().\n */\nexport type V7_FormMethod = UpperCaseFormMethod;\nexport type V7_MutationFormMethod = Exclude;\n\nexport type FormEncType =\n | \"application/x-www-form-urlencoded\"\n | \"multipart/form-data\"\n | \"application/json\"\n | \"text/plain\";\n\n// Thanks https://github.com/sindresorhus/type-fest!\ntype JsonObject = { [Key in string]: JsonValue } & {\n [Key in string]?: JsonValue | undefined;\n};\ntype JsonArray = JsonValue[] | readonly JsonValue[];\ntype JsonPrimitive = string | number | boolean | null;\ntype JsonValue = JsonPrimitive | JsonObject | JsonArray;\n\n/**\n * @private\n * Internal interface to pass around for action submissions, not intended for\n * external consumption\n */\nexport type Submission =\n | {\n formMethod: FormMethod | V7_FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: FormData;\n json: undefined;\n text: undefined;\n }\n | {\n formMethod: FormMethod | V7_FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: undefined;\n json: JsonValue;\n text: undefined;\n }\n | {\n formMethod: FormMethod | V7_FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: undefined;\n json: undefined;\n text: string;\n };\n\n/**\n * @private\n * Arguments passed to route loader/action functions. Same for now but we keep\n * this as a private implementation detail in case they diverge in the future.\n */\ninterface DataFunctionArgs {\n request: Request;\n params: Params;\n context?: Context;\n}\n\n// TODO: (v7) Change the defaults from any to unknown in and remove Remix wrappers:\n// ActionFunction, ActionFunctionArgs, LoaderFunction, LoaderFunctionArgs\n// Also, make them a type alias instead of an interface\n\n/**\n * Arguments passed to loader functions\n */\nexport interface LoaderFunctionArgs\n extends DataFunctionArgs {}\n\n/**\n * Arguments passed to action functions\n */\nexport interface ActionFunctionArgs\n extends DataFunctionArgs {}\n\n/**\n * Loaders and actions can return anything except `undefined` (`null` is a\n * valid return value if there is no data to return). Responses are preferred\n * and will ease any future migration to Remix\n */\ntype DataFunctionValue = Response | NonNullable | null;\n\ntype DataFunctionReturnValue = Promise | DataFunctionValue;\n\n/**\n * Route loader function signature\n */\nexport type LoaderFunction = {\n (\n args: LoaderFunctionArgs,\n handlerCtx?: unknown\n ): DataFunctionReturnValue;\n} & { hydrate?: boolean };\n\n/**\n * Route action function signature\n */\nexport interface ActionFunction {\n (\n args: ActionFunctionArgs,\n handlerCtx?: unknown\n ): DataFunctionReturnValue;\n}\n\n/**\n * Arguments passed to shouldRevalidate function\n */\nexport interface ShouldRevalidateFunctionArgs {\n currentUrl: URL;\n currentParams: AgnosticDataRouteMatch[\"params\"];\n nextUrl: URL;\n nextParams: AgnosticDataRouteMatch[\"params\"];\n formMethod?: Submission[\"formMethod\"];\n formAction?: Submission[\"formAction\"];\n formEncType?: Submission[\"formEncType\"];\n text?: Submission[\"text\"];\n formData?: Submission[\"formData\"];\n json?: Submission[\"json\"];\n actionStatus?: number;\n actionResult?: any;\n defaultShouldRevalidate: boolean;\n}\n\n/**\n * Route shouldRevalidate function signature. This runs after any submission\n * (navigation or fetcher), so we flatten the navigation/fetcher submission\n * onto the arguments. It shouldn't matter whether it came from a navigation\n * or a fetcher, what really matters is the URLs and the formData since loaders\n * have to re-run based on the data models that were potentially mutated.\n */\nexport interface ShouldRevalidateFunction {\n (args: ShouldRevalidateFunctionArgs): boolean;\n}\n\n/**\n * Function provided by the framework-aware layers to set `hasErrorBoundary`\n * from the framework-aware `errorElement` prop\n *\n * @deprecated Use `mapRouteProperties` instead\n */\nexport interface DetectErrorBoundaryFunction {\n (route: AgnosticRouteObject): boolean;\n}\n\nexport interface DataStrategyMatch\n extends AgnosticRouteMatch {\n shouldLoad: boolean;\n resolve: (\n handlerOverride?: (\n handler: (ctx?: unknown) => DataFunctionReturnValue\n ) => DataFunctionReturnValue\n ) => Promise;\n}\n\nexport interface DataStrategyFunctionArgs\n extends DataFunctionArgs {\n matches: DataStrategyMatch[];\n fetcherKey: string | null;\n}\n\n/**\n * Result from a loader or action called via dataStrategy\n */\nexport interface DataStrategyResult {\n type: \"data\" | \"error\";\n result: unknown; // data, Error, Response, DeferredData, DataWithResponseInit\n}\n\nexport interface DataStrategyFunction {\n (args: DataStrategyFunctionArgs): Promise>;\n}\n\nexport type AgnosticPatchRoutesOnNavigationFunctionArgs<\n O extends AgnosticRouteObject = AgnosticRouteObject,\n M extends AgnosticRouteMatch = AgnosticRouteMatch\n> = {\n path: string;\n matches: M[];\n patch: (routeId: string | null, children: O[]) => void;\n};\n\nexport type AgnosticPatchRoutesOnNavigationFunction<\n O extends AgnosticRouteObject = AgnosticRouteObject,\n M extends AgnosticRouteMatch = AgnosticRouteMatch\n> = (\n opts: AgnosticPatchRoutesOnNavigationFunctionArgs\n) => void | Promise;\n\n/**\n * Function provided by the framework-aware layers to set any framework-specific\n * properties from framework-agnostic properties\n */\nexport interface MapRoutePropertiesFunction {\n (route: AgnosticRouteObject): {\n hasErrorBoundary: boolean;\n } & Record;\n}\n\n/**\n * Keys we cannot change from within a lazy() function. We spread all other keys\n * onto the route. Either they're meaningful to the router, or they'll get\n * ignored.\n */\nexport type ImmutableRouteKey =\n | \"lazy\"\n | \"caseSensitive\"\n | \"path\"\n | \"id\"\n | \"index\"\n | \"children\";\n\nexport const immutableRouteKeys = new Set([\n \"lazy\",\n \"caseSensitive\",\n \"path\",\n \"id\",\n \"index\",\n \"children\",\n]);\n\ntype RequireOne = Exclude<\n {\n [K in keyof T]: K extends Key ? Omit & Required> : never;\n }[keyof T],\n undefined\n>;\n\n/**\n * lazy() function to load a route definition, which can add non-matching\n * related properties to a route\n */\nexport interface LazyRouteFunction {\n (): Promise>>;\n}\n\n/**\n * Base RouteObject with common props shared by all types of routes\n */\ntype AgnosticBaseRouteObject = {\n caseSensitive?: boolean;\n path?: string;\n id?: string;\n loader?: LoaderFunction | boolean;\n action?: ActionFunction | boolean;\n hasErrorBoundary?: boolean;\n shouldRevalidate?: ShouldRevalidateFunction;\n handle?: any;\n lazy?: LazyRouteFunction;\n};\n\n/**\n * Index routes must not have children\n */\nexport type AgnosticIndexRouteObject = AgnosticBaseRouteObject & {\n children?: undefined;\n index: true;\n};\n\n/**\n * Non-index routes may have children, but cannot have index\n */\nexport type AgnosticNonIndexRouteObject = AgnosticBaseRouteObject & {\n children?: AgnosticRouteObject[];\n index?: false;\n};\n\n/**\n * A route object represents a logical route, with (optionally) its child\n * routes organized in a tree-like structure.\n */\nexport type AgnosticRouteObject =\n | AgnosticIndexRouteObject\n | AgnosticNonIndexRouteObject;\n\nexport type AgnosticDataIndexRouteObject = AgnosticIndexRouteObject & {\n id: string;\n};\n\nexport type AgnosticDataNonIndexRouteObject = AgnosticNonIndexRouteObject & {\n children?: AgnosticDataRouteObject[];\n id: string;\n};\n\n/**\n * A data route object, which is just a RouteObject with a required unique ID\n */\nexport type AgnosticDataRouteObject =\n | AgnosticDataIndexRouteObject\n | AgnosticDataNonIndexRouteObject;\n\nexport type RouteManifest = Record;\n\n// Recursive helper for finding path parameters in the absence of wildcards\ntype _PathParam =\n // split path into individual path segments\n Path extends `${infer L}/${infer R}`\n ? _PathParam | _PathParam\n : // find params after `:`\n Path extends `:${infer Param}`\n ? Param extends `${infer Optional}?`\n ? Optional\n : Param\n : // otherwise, there aren't any params present\n never;\n\n/**\n * Examples:\n * \"/a/b/*\" -> \"*\"\n * \":a\" -> \"a\"\n * \"/a/:b\" -> \"b\"\n * \"/a/blahblahblah:b\" -> \"b\"\n * \"/:a/:b\" -> \"a\" | \"b\"\n * \"/:a/b/:c/*\" -> \"a\" | \"c\" | \"*\"\n */\nexport type PathParam =\n // check if path is just a wildcard\n Path extends \"*\" | \"/*\"\n ? \"*\"\n : // look for wildcard at the end of the path\n Path extends `${infer Rest}/*`\n ? \"*\" | _PathParam\n : // look for params in the absence of wildcards\n _PathParam;\n\n// Attempt to parse the given string segment. If it fails, then just return the\n// plain string type as a default fallback. Otherwise, return the union of the\n// parsed string literals that were referenced as dynamic segments in the route.\nexport type ParamParseKey =\n // if you could not find path params, fallback to `string`\n [PathParam] extends [never] ? string : PathParam;\n\n/**\n * The parameters that were parsed from the URL path.\n */\nexport type Params = {\n readonly [key in Key]: string | undefined;\n};\n\n/**\n * A RouteMatch contains info about how a route matched a URL.\n */\nexport interface AgnosticRouteMatch<\n ParamKey extends string = string,\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n /**\n * The names and values of dynamic parameters in the URL.\n */\n params: Params;\n /**\n * The portion of the URL pathname that was matched.\n */\n pathname: string;\n /**\n * The portion of the URL pathname that was matched before child routes.\n */\n pathnameBase: string;\n /**\n * The route object that was used to match.\n */\n route: RouteObjectType;\n}\n\nexport interface AgnosticDataRouteMatch\n extends AgnosticRouteMatch {}\n\nfunction isIndexRoute(\n route: AgnosticRouteObject\n): route is AgnosticIndexRouteObject {\n return route.index === true;\n}\n\n// Walk the route tree generating unique IDs where necessary, so we are working\n// solely with AgnosticDataRouteObject's within the Router\nexport function convertRoutesToDataRoutes(\n routes: AgnosticRouteObject[],\n mapRouteProperties: MapRoutePropertiesFunction,\n parentPath: string[] = [],\n manifest: RouteManifest = {}\n): AgnosticDataRouteObject[] {\n return routes.map((route, index) => {\n let treePath = [...parentPath, String(index)];\n let id = typeof route.id === \"string\" ? route.id : treePath.join(\"-\");\n invariant(\n route.index !== true || !route.children,\n `Cannot specify children on an index route`\n );\n invariant(\n !manifest[id],\n `Found a route id collision on id \"${id}\". Route ` +\n \"id's must be globally unique within Data Router usages\"\n );\n\n if (isIndexRoute(route)) {\n let indexRoute: AgnosticDataIndexRouteObject = {\n ...route,\n ...mapRouteProperties(route),\n id,\n };\n manifest[id] = indexRoute;\n return indexRoute;\n } else {\n let pathOrLayoutRoute: AgnosticDataNonIndexRouteObject = {\n ...route,\n ...mapRouteProperties(route),\n id,\n children: undefined,\n };\n manifest[id] = pathOrLayoutRoute;\n\n if (route.children) {\n pathOrLayoutRoute.children = convertRoutesToDataRoutes(\n route.children,\n mapRouteProperties,\n treePath,\n manifest\n );\n }\n\n return pathOrLayoutRoute;\n }\n });\n}\n\n/**\n * Matches the given routes to a location and returns the match data.\n *\n * @see https://reactrouter.com/v6/utils/match-routes\n */\nexport function matchRoutes<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n routes: RouteObjectType[],\n locationArg: Partial | string,\n basename = \"/\"\n): AgnosticRouteMatch[] | null {\n return matchRoutesImpl(routes, locationArg, basename, false);\n}\n\nexport function matchRoutesImpl<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n routes: RouteObjectType[],\n locationArg: Partial | string,\n basename: string,\n allowPartial: boolean\n): AgnosticRouteMatch[] | null {\n let location =\n typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n\n let pathname = stripBasename(location.pathname || \"/\", basename);\n\n if (pathname == null) {\n return null;\n }\n\n let branches = flattenRoutes(routes);\n rankRouteBranches(branches);\n\n let matches = null;\n for (let i = 0; matches == null && i < branches.length; ++i) {\n // Incoming pathnames are generally encoded from either window.location\n // or from router.navigate, but we want to match against the unencoded\n // paths in the route definitions. Memory router locations won't be\n // encoded here but there also shouldn't be anything to decode so this\n // should be a safe operation. This avoids needing matchRoutes to be\n // history-aware.\n let decoded = decodePath(pathname);\n matches = matchRouteBranch(\n branches[i],\n decoded,\n allowPartial\n );\n }\n\n return matches;\n}\n\nexport interface UIMatch {\n id: string;\n pathname: string;\n params: AgnosticRouteMatch[\"params\"];\n data: Data;\n handle: Handle;\n}\n\nexport function convertRouteMatchToUiMatch(\n match: AgnosticDataRouteMatch,\n loaderData: RouteData\n): UIMatch {\n let { route, pathname, params } = match;\n return {\n id: route.id,\n pathname,\n params,\n data: loaderData[route.id],\n handle: route.handle,\n };\n}\n\ninterface RouteMeta<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n relativePath: string;\n caseSensitive: boolean;\n childrenIndex: number;\n route: RouteObjectType;\n}\n\ninterface RouteBranch<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n path: string;\n score: number;\n routesMeta: RouteMeta[];\n}\n\nfunction flattenRoutes<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n routes: RouteObjectType[],\n branches: RouteBranch[] = [],\n parentsMeta: RouteMeta[] = [],\n parentPath = \"\"\n): RouteBranch[] {\n let flattenRoute = (\n route: RouteObjectType,\n index: number,\n relativePath?: string\n ) => {\n let meta: RouteMeta = {\n relativePath:\n relativePath === undefined ? route.path || \"\" : relativePath,\n caseSensitive: route.caseSensitive === true,\n childrenIndex: index,\n route,\n };\n\n if (meta.relativePath.startsWith(\"/\")) {\n invariant(\n meta.relativePath.startsWith(parentPath),\n `Absolute route path \"${meta.relativePath}\" nested under path ` +\n `\"${parentPath}\" is not valid. An absolute child route path ` +\n `must start with the combined path of all its parent routes.`\n );\n\n meta.relativePath = meta.relativePath.slice(parentPath.length);\n }\n\n let path = joinPaths([parentPath, meta.relativePath]);\n let routesMeta = parentsMeta.concat(meta);\n\n // Add the children before adding this route to the array, so we traverse the\n // route tree depth-first and child routes appear before their parents in\n // the \"flattened\" version.\n if (route.children && route.children.length > 0) {\n invariant(\n // Our types know better, but runtime JS may not!\n // @ts-expect-error\n route.index !== true,\n `Index routes must not have child routes. Please remove ` +\n `all child routes from route path \"${path}\".`\n );\n flattenRoutes(route.children, branches, routesMeta, path);\n }\n\n // Routes without a path shouldn't ever match by themselves unless they are\n // index routes, so don't add them to the list of possible branches.\n if (route.path == null && !route.index) {\n return;\n }\n\n branches.push({\n path,\n score: computeScore(path, route.index),\n routesMeta,\n });\n };\n routes.forEach((route, index) => {\n // coarse-grain check for optional params\n if (route.path === \"\" || !route.path?.includes(\"?\")) {\n flattenRoute(route, index);\n } else {\n for (let exploded of explodeOptionalSegments(route.path)) {\n flattenRoute(route, index, exploded);\n }\n }\n });\n\n return branches;\n}\n\n/**\n * Computes all combinations of optional path segments for a given path,\n * excluding combinations that are ambiguous and of lower priority.\n *\n * For example, `/one/:two?/three/:four?/:five?` explodes to:\n * - `/one/three`\n * - `/one/:two/three`\n * - `/one/three/:four`\n * - `/one/three/:five`\n * - `/one/:two/three/:four`\n * - `/one/:two/three/:five`\n * - `/one/three/:four/:five`\n * - `/one/:two/three/:four/:five`\n */\nfunction explodeOptionalSegments(path: string): string[] {\n let segments = path.split(\"/\");\n if (segments.length === 0) return [];\n\n let [first, ...rest] = segments;\n\n // Optional path segments are denoted by a trailing `?`\n let isOptional = first.endsWith(\"?\");\n // Compute the corresponding required segment: `foo?` -> `foo`\n let required = first.replace(/\\?$/, \"\");\n\n if (rest.length === 0) {\n // Intepret empty string as omitting an optional segment\n // `[\"one\", \"\", \"three\"]` corresponds to omitting `:two` from `/one/:two?/three` -> `/one/three`\n return isOptional ? [required, \"\"] : [required];\n }\n\n let restExploded = explodeOptionalSegments(rest.join(\"/\"));\n\n let result: string[] = [];\n\n // All child paths with the prefix. Do this for all children before the\n // optional version for all children, so we get consistent ordering where the\n // parent optional aspect is preferred as required. Otherwise, we can get\n // child sections interspersed where deeper optional segments are higher than\n // parent optional segments, where for example, /:two would explode _earlier_\n // then /:one. By always including the parent as required _for all children_\n // first, we avoid this issue\n result.push(\n ...restExploded.map((subpath) =>\n subpath === \"\" ? required : [required, subpath].join(\"/\")\n )\n );\n\n // Then, if this is an optional value, add all child versions without\n if (isOptional) {\n result.push(...restExploded);\n }\n\n // for absolute paths, ensure `/` instead of empty segment\n return result.map((exploded) =>\n path.startsWith(\"/\") && exploded === \"\" ? \"/\" : exploded\n );\n}\n\nfunction rankRouteBranches(branches: RouteBranch[]): void {\n branches.sort((a, b) =>\n a.score !== b.score\n ? b.score - a.score // Higher score first\n : compareIndexes(\n a.routesMeta.map((meta) => meta.childrenIndex),\n b.routesMeta.map((meta) => meta.childrenIndex)\n )\n );\n}\n\nconst paramRe = /^:[\\w-]+$/;\nconst dynamicSegmentValue = 3;\nconst indexRouteValue = 2;\nconst emptySegmentValue = 1;\nconst staticSegmentValue = 10;\nconst splatPenalty = -2;\nconst isSplat = (s: string) => s === \"*\";\n\nfunction computeScore(path: string, index: boolean | undefined): number {\n let segments = path.split(\"/\");\n let initialScore = segments.length;\n if (segments.some(isSplat)) {\n initialScore += splatPenalty;\n }\n\n if (index) {\n initialScore += indexRouteValue;\n }\n\n return segments\n .filter((s) => !isSplat(s))\n .reduce(\n (score, segment) =>\n score +\n (paramRe.test(segment)\n ? dynamicSegmentValue\n : segment === \"\"\n ? emptySegmentValue\n : staticSegmentValue),\n initialScore\n );\n}\n\nfunction compareIndexes(a: number[], b: number[]): number {\n let siblings =\n a.length === b.length && a.slice(0, -1).every((n, i) => n === b[i]);\n\n return siblings\n ? // If two routes are siblings, we should try to match the earlier sibling\n // first. This allows people to have fine-grained control over the matching\n // behavior by simply putting routes with identical paths in the order they\n // want them tried.\n a[a.length - 1] - b[b.length - 1]\n : // Otherwise, it doesn't really make sense to rank non-siblings by index,\n // so they sort equally.\n 0;\n}\n\nfunction matchRouteBranch<\n ParamKey extends string = string,\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n branch: RouteBranch,\n pathname: string,\n allowPartial = false\n): AgnosticRouteMatch[] | null {\n let { routesMeta } = branch;\n\n let matchedParams = {};\n let matchedPathname = \"/\";\n let matches: AgnosticRouteMatch[] = [];\n for (let i = 0; i < routesMeta.length; ++i) {\n let meta = routesMeta[i];\n let end = i === routesMeta.length - 1;\n let remainingPathname =\n matchedPathname === \"/\"\n ? pathname\n : pathname.slice(matchedPathname.length) || \"/\";\n let match = matchPath(\n { path: meta.relativePath, caseSensitive: meta.caseSensitive, end },\n remainingPathname\n );\n\n let route = meta.route;\n\n if (\n !match &&\n end &&\n allowPartial &&\n !routesMeta[routesMeta.length - 1].route.index\n ) {\n match = matchPath(\n {\n path: meta.relativePath,\n caseSensitive: meta.caseSensitive,\n end: false,\n },\n remainingPathname\n );\n }\n\n if (!match) {\n return null;\n }\n\n Object.assign(matchedParams, match.params);\n\n matches.push({\n // TODO: Can this as be avoided?\n params: matchedParams as Params,\n pathname: joinPaths([matchedPathname, match.pathname]),\n pathnameBase: normalizePathname(\n joinPaths([matchedPathname, match.pathnameBase])\n ),\n route,\n });\n\n if (match.pathnameBase !== \"/\") {\n matchedPathname = joinPaths([matchedPathname, match.pathnameBase]);\n }\n }\n\n return matches;\n}\n\n/**\n * Returns a path with params interpolated.\n *\n * @see https://reactrouter.com/v6/utils/generate-path\n */\nexport function generatePath(\n originalPath: Path,\n params: {\n [key in PathParam]: string | null;\n } = {} as any\n): string {\n let path: string = originalPath;\n if (path.endsWith(\"*\") && path !== \"*\" && !path.endsWith(\"/*\")) {\n warning(\n false,\n `Route path \"${path}\" will be treated as if it were ` +\n `\"${path.replace(/\\*$/, \"/*\")}\" because the \\`*\\` character must ` +\n `always follow a \\`/\\` in the pattern. To get rid of this warning, ` +\n `please change the route path to \"${path.replace(/\\*$/, \"/*\")}\".`\n );\n path = path.replace(/\\*$/, \"/*\") as Path;\n }\n\n // ensure `/` is added at the beginning if the path is absolute\n const prefix = path.startsWith(\"/\") ? \"/\" : \"\";\n\n const stringify = (p: any) =>\n p == null ? \"\" : typeof p === \"string\" ? p : String(p);\n\n const segments = path\n .split(/\\/+/)\n .map((segment, index, array) => {\n const isLastSegment = index === array.length - 1;\n\n // only apply the splat if it's the last segment\n if (isLastSegment && segment === \"*\") {\n const star = \"*\" as PathParam;\n // Apply the splat\n return stringify(params[star]);\n }\n\n const keyMatch = segment.match(/^:([\\w-]+)(\\??)$/);\n if (keyMatch) {\n const [, key, optional] = keyMatch;\n let param = params[key as PathParam];\n invariant(optional === \"?\" || param != null, `Missing \":${key}\" param`);\n return stringify(param);\n }\n\n // Remove any optional markers from optional static segments\n return segment.replace(/\\?$/g, \"\");\n })\n // Remove empty segments\n .filter((segment) => !!segment);\n\n return prefix + segments.join(\"/\");\n}\n\n/**\n * A PathPattern is used to match on some portion of a URL pathname.\n */\nexport interface PathPattern {\n /**\n * A string to match against a URL pathname. May contain `:id`-style segments\n * to indicate placeholders for dynamic parameters. May also end with `/*` to\n * indicate matching the rest of the URL pathname.\n */\n path: Path;\n /**\n * Should be `true` if the static portions of the `path` should be matched in\n * the same case.\n */\n caseSensitive?: boolean;\n /**\n * Should be `true` if this pattern should match the entire URL pathname.\n */\n end?: boolean;\n}\n\n/**\n * A PathMatch contains info about how a PathPattern matched on a URL pathname.\n */\nexport interface PathMatch {\n /**\n * The names and values of dynamic parameters in the URL.\n */\n params: Params;\n /**\n * The portion of the URL pathname that was matched.\n */\n pathname: string;\n /**\n * The portion of the URL pathname that was matched before child routes.\n */\n pathnameBase: string;\n /**\n * The pattern that was used to match.\n */\n pattern: PathPattern;\n}\n\ntype Mutable = {\n -readonly [P in keyof T]: T[P];\n};\n\n/**\n * Performs pattern matching on a URL pathname and returns information about\n * the match.\n *\n * @see https://reactrouter.com/v6/utils/match-path\n */\nexport function matchPath<\n ParamKey extends ParamParseKey,\n Path extends string\n>(\n pattern: PathPattern | Path,\n pathname: string\n): PathMatch | null {\n if (typeof pattern === \"string\") {\n pattern = { path: pattern, caseSensitive: false, end: true };\n }\n\n let [matcher, compiledParams] = compilePath(\n pattern.path,\n pattern.caseSensitive,\n pattern.end\n );\n\n let match = pathname.match(matcher);\n if (!match) return null;\n\n let matchedPathname = match[0];\n let pathnameBase = matchedPathname.replace(/(.)\\/+$/, \"$1\");\n let captureGroups = match.slice(1);\n let params: Params = compiledParams.reduce>(\n (memo, { paramName, isOptional }, index) => {\n // We need to compute the pathnameBase here using the raw splat value\n // instead of using params[\"*\"] later because it will be decoded then\n if (paramName === \"*\") {\n let splatValue = captureGroups[index] || \"\";\n pathnameBase = matchedPathname\n .slice(0, matchedPathname.length - splatValue.length)\n .replace(/(.)\\/+$/, \"$1\");\n }\n\n const value = captureGroups[index];\n if (isOptional && !value) {\n memo[paramName] = undefined;\n } else {\n memo[paramName] = (value || \"\").replace(/%2F/g, \"/\");\n }\n return memo;\n },\n {}\n );\n\n return {\n params,\n pathname: matchedPathname,\n pathnameBase,\n pattern,\n };\n}\n\ntype CompiledPathParam = { paramName: string; isOptional?: boolean };\n\nfunction compilePath(\n path: string,\n caseSensitive = false,\n end = true\n): [RegExp, CompiledPathParam[]] {\n warning(\n path === \"*\" || !path.endsWith(\"*\") || path.endsWith(\"/*\"),\n `Route path \"${path}\" will be treated as if it were ` +\n `\"${path.replace(/\\*$/, \"/*\")}\" because the \\`*\\` character must ` +\n `always follow a \\`/\\` in the pattern. To get rid of this warning, ` +\n `please change the route path to \"${path.replace(/\\*$/, \"/*\")}\".`\n );\n\n let params: CompiledPathParam[] = [];\n let regexpSource =\n \"^\" +\n path\n .replace(/\\/*\\*?$/, \"\") // Ignore trailing / and /*, we'll handle it below\n .replace(/^\\/*/, \"/\") // Make sure it has a leading /\n .replace(/[\\\\.*+^${}|()[\\]]/g, \"\\\\$&\") // Escape special regex chars\n .replace(\n /\\/:([\\w-]+)(\\?)?/g,\n (_: string, paramName: string, isOptional) => {\n params.push({ paramName, isOptional: isOptional != null });\n return isOptional ? \"/?([^\\\\/]+)?\" : \"/([^\\\\/]+)\";\n }\n );\n\n if (path.endsWith(\"*\")) {\n params.push({ paramName: \"*\" });\n regexpSource +=\n path === \"*\" || path === \"/*\"\n ? \"(.*)$\" // Already matched the initial /, just match the rest\n : \"(?:\\\\/(.+)|\\\\/*)$\"; // Don't include the / in params[\"*\"]\n } else if (end) {\n // When matching to the end, ignore trailing slashes\n regexpSource += \"\\\\/*$\";\n } else if (path !== \"\" && path !== \"/\") {\n // If our path is non-empty and contains anything beyond an initial slash,\n // then we have _some_ form of path in our regex, so we should expect to\n // match only if we find the end of this path segment. Look for an optional\n // non-captured trailing slash (to match a portion of the URL) or the end\n // of the path (if we've matched to the end). We used to do this with a\n // word boundary but that gives false positives on routes like\n // /user-preferences since `-` counts as a word boundary.\n regexpSource += \"(?:(?=\\\\/|$))\";\n } else {\n // Nothing to match for \"\" or \"/\"\n }\n\n let matcher = new RegExp(regexpSource, caseSensitive ? undefined : \"i\");\n\n return [matcher, params];\n}\n\nexport function decodePath(value: string) {\n try {\n return value\n .split(\"/\")\n .map((v) => decodeURIComponent(v).replace(/\\//g, \"%2F\"))\n .join(\"/\");\n } catch (error) {\n warning(\n false,\n `The URL path \"${value}\" could not be decoded because it is is a ` +\n `malformed URL segment. This is probably due to a bad percent ` +\n `encoding (${error}).`\n );\n\n return value;\n }\n}\n\n/**\n * @private\n */\nexport function stripBasename(\n pathname: string,\n basename: string\n): string | null {\n if (basename === \"/\") return pathname;\n\n if (!pathname.toLowerCase().startsWith(basename.toLowerCase())) {\n return null;\n }\n\n // We want to leave trailing slash behavior in the user's control, so if they\n // specify a basename with a trailing slash, we should support it\n let startIndex = basename.endsWith(\"/\")\n ? basename.length - 1\n : basename.length;\n let nextChar = pathname.charAt(startIndex);\n if (nextChar && nextChar !== \"/\") {\n // pathname does not start with basename/\n return null;\n }\n\n return pathname.slice(startIndex) || \"/\";\n}\n\n/**\n * Returns a resolved path object relative to the given pathname.\n *\n * @see https://reactrouter.com/v6/utils/resolve-path\n */\nexport function resolvePath(to: To, fromPathname = \"/\"): Path {\n let {\n pathname: toPathname,\n search = \"\",\n hash = \"\",\n } = typeof to === \"string\" ? parsePath(to) : to;\n\n let pathname = toPathname\n ? toPathname.startsWith(\"/\")\n ? toPathname\n : resolvePathname(toPathname, fromPathname)\n : fromPathname;\n\n return {\n pathname,\n search: normalizeSearch(search),\n hash: normalizeHash(hash),\n };\n}\n\nfunction resolvePathname(relativePath: string, fromPathname: string): string {\n let segments = fromPathname.replace(/\\/+$/, \"\").split(\"/\");\n let relativeSegments = relativePath.split(\"/\");\n\n relativeSegments.forEach((segment) => {\n if (segment === \"..\") {\n // Keep the root \"\" segment so the pathname starts at /\n if (segments.length > 1) segments.pop();\n } else if (segment !== \".\") {\n segments.push(segment);\n }\n });\n\n return segments.length > 1 ? segments.join(\"/\") : \"/\";\n}\n\nfunction getInvalidPathError(\n char: string,\n field: string,\n dest: string,\n path: Partial\n) {\n return (\n `Cannot include a '${char}' character in a manually specified ` +\n `\\`to.${field}\\` field [${JSON.stringify(\n path\n )}]. Please separate it out to the ` +\n `\\`to.${dest}\\` field. Alternatively you may provide the full path as ` +\n `a string in and the router will parse it for you.`\n );\n}\n\n/**\n * @private\n *\n * When processing relative navigation we want to ignore ancestor routes that\n * do not contribute to the path, such that index/pathless layout routes don't\n * interfere.\n *\n * For example, when moving a route element into an index route and/or a\n * pathless layout route, relative link behavior contained within should stay\n * the same. Both of the following examples should link back to the root:\n *\n * \n * \n * \n *\n * \n * \n * }> // <-- Does not contribute\n * // <-- Does not contribute\n * \n * \n */\nexport function getPathContributingMatches<\n T extends AgnosticRouteMatch = AgnosticRouteMatch\n>(matches: T[]) {\n return matches.filter(\n (match, index) =>\n index === 0 || (match.route.path && match.route.path.length > 0)\n );\n}\n\n// Return the array of pathnames for the current route matches - used to\n// generate the routePathnames input for resolveTo()\nexport function getResolveToMatches<\n T extends AgnosticRouteMatch = AgnosticRouteMatch\n>(matches: T[], v7_relativeSplatPath: boolean) {\n let pathMatches = getPathContributingMatches(matches);\n\n // When v7_relativeSplatPath is enabled, use the full pathname for the leaf\n // match so we include splat values for \".\" links. See:\n // https://github.com/remix-run/react-router/issues/11052#issuecomment-1836589329\n if (v7_relativeSplatPath) {\n return pathMatches.map((match, idx) =>\n idx === pathMatches.length - 1 ? match.pathname : match.pathnameBase\n );\n }\n\n return pathMatches.map((match) => match.pathnameBase);\n}\n\n/**\n * @private\n */\nexport function resolveTo(\n toArg: To,\n routePathnames: string[],\n locationPathname: string,\n isPathRelative = false\n): Path {\n let to: Partial;\n if (typeof toArg === \"string\") {\n to = parsePath(toArg);\n } else {\n to = { ...toArg };\n\n invariant(\n !to.pathname || !to.pathname.includes(\"?\"),\n getInvalidPathError(\"?\", \"pathname\", \"search\", to)\n );\n invariant(\n !to.pathname || !to.pathname.includes(\"#\"),\n getInvalidPathError(\"#\", \"pathname\", \"hash\", to)\n );\n invariant(\n !to.search || !to.search.includes(\"#\"),\n getInvalidPathError(\"#\", \"search\", \"hash\", to)\n );\n }\n\n let isEmptyPath = toArg === \"\" || to.pathname === \"\";\n let toPathname = isEmptyPath ? \"/\" : to.pathname;\n\n let from: string;\n\n // Routing is relative to the current pathname if explicitly requested.\n //\n // If a pathname is explicitly provided in `to`, it should be relative to the\n // route context. This is explained in `Note on `` values` in our\n // migration guide from v5 as a means of disambiguation between `to` values\n // that begin with `/` and those that do not. However, this is problematic for\n // `to` values that do not provide a pathname. `to` can simply be a search or\n // hash string, in which case we should assume that the navigation is relative\n // to the current location's pathname and *not* the route pathname.\n if (toPathname == null) {\n from = locationPathname;\n } else {\n let routePathnameIndex = routePathnames.length - 1;\n\n // With relative=\"route\" (the default), each leading .. segment means\n // \"go up one route\" instead of \"go up one URL segment\". This is a key\n // difference from how works and a major reason we call this a\n // \"to\" value instead of a \"href\".\n if (!isPathRelative && toPathname.startsWith(\"..\")) {\n let toSegments = toPathname.split(\"/\");\n\n while (toSegments[0] === \"..\") {\n toSegments.shift();\n routePathnameIndex -= 1;\n }\n\n to.pathname = toSegments.join(\"/\");\n }\n\n from = routePathnameIndex >= 0 ? routePathnames[routePathnameIndex] : \"/\";\n }\n\n let path = resolvePath(to, from);\n\n // Ensure the pathname has a trailing slash if the original \"to\" had one\n let hasExplicitTrailingSlash =\n toPathname && toPathname !== \"/\" && toPathname.endsWith(\"/\");\n // Or if this was a link to the current path which has a trailing slash\n let hasCurrentTrailingSlash =\n (isEmptyPath || toPathname === \".\") && locationPathname.endsWith(\"/\");\n if (\n !path.pathname.endsWith(\"/\") &&\n (hasExplicitTrailingSlash || hasCurrentTrailingSlash)\n ) {\n path.pathname += \"/\";\n }\n\n return path;\n}\n\n/**\n * @private\n */\nexport function getToPathname(to: To): string | undefined {\n // Empty strings should be treated the same as / paths\n return to === \"\" || (to as Path).pathname === \"\"\n ? \"/\"\n : typeof to === \"string\"\n ? parsePath(to).pathname\n : to.pathname;\n}\n\n/**\n * @private\n */\nexport const joinPaths = (paths: string[]): string =>\n paths.join(\"/\").replace(/\\/\\/+/g, \"/\");\n\n/**\n * @private\n */\nexport const normalizePathname = (pathname: string): string =>\n pathname.replace(/\\/+$/, \"\").replace(/^\\/*/, \"/\");\n\n/**\n * @private\n */\nexport const normalizeSearch = (search: string): string =>\n !search || search === \"?\"\n ? \"\"\n : search.startsWith(\"?\")\n ? search\n : \"?\" + search;\n\n/**\n * @private\n */\nexport const normalizeHash = (hash: string): string =>\n !hash || hash === \"#\" ? \"\" : hash.startsWith(\"#\") ? hash : \"#\" + hash;\n\nexport type JsonFunction = (\n data: Data,\n init?: number | ResponseInit\n) => Response;\n\n/**\n * This is a shortcut for creating `application/json` responses. Converts `data`\n * to JSON and sets the `Content-Type` header.\n *\n * @deprecated The `json` method is deprecated in favor of returning raw objects.\n * This method will be removed in v7.\n */\nexport const json: JsonFunction = (data, init = {}) => {\n let responseInit = typeof init === \"number\" ? { status: init } : init;\n\n let headers = new Headers(responseInit.headers);\n if (!headers.has(\"Content-Type\")) {\n headers.set(\"Content-Type\", \"application/json; charset=utf-8\");\n }\n\n return new Response(JSON.stringify(data), {\n ...responseInit,\n headers,\n });\n};\n\nexport class DataWithResponseInit {\n type: string = \"DataWithResponseInit\";\n data: D;\n init: ResponseInit | null;\n\n constructor(data: D, init?: ResponseInit) {\n this.data = data;\n this.init = init || null;\n }\n}\n\n/**\n * Create \"responses\" that contain `status`/`headers` without forcing\n * serialization into an actual `Response` - used by Remix single fetch\n */\nexport function data(data: D, init?: number | ResponseInit) {\n return new DataWithResponseInit(\n data,\n typeof init === \"number\" ? { status: init } : init\n );\n}\n\nexport interface TrackedPromise extends Promise {\n _tracked?: boolean;\n _data?: any;\n _error?: any;\n}\n\nexport class AbortedDeferredError extends Error {}\n\nexport class DeferredData {\n private pendingKeysSet: Set = new Set();\n private controller: AbortController;\n private abortPromise: Promise;\n private unlistenAbortSignal: () => void;\n private subscribers: Set<(aborted: boolean, settledKey?: string) => void> =\n new Set();\n data: Record;\n init?: ResponseInit;\n deferredKeys: string[] = [];\n\n constructor(data: Record, responseInit?: ResponseInit) {\n invariant(\n data && typeof data === \"object\" && !Array.isArray(data),\n \"defer() only accepts plain objects\"\n );\n\n // Set up an AbortController + Promise we can race against to exit early\n // cancellation\n let reject: (e: AbortedDeferredError) => void;\n this.abortPromise = new Promise((_, r) => (reject = r));\n this.controller = new AbortController();\n let onAbort = () =>\n reject(new AbortedDeferredError(\"Deferred data aborted\"));\n this.unlistenAbortSignal = () =>\n this.controller.signal.removeEventListener(\"abort\", onAbort);\n this.controller.signal.addEventListener(\"abort\", onAbort);\n\n this.data = Object.entries(data).reduce(\n (acc, [key, value]) =>\n Object.assign(acc, {\n [key]: this.trackPromise(key, value),\n }),\n {}\n );\n\n if (this.done) {\n // All incoming values were resolved\n this.unlistenAbortSignal();\n }\n\n this.init = responseInit;\n }\n\n private trackPromise(\n key: string,\n value: Promise | unknown\n ): TrackedPromise | unknown {\n if (!(value instanceof Promise)) {\n return value;\n }\n\n this.deferredKeys.push(key);\n this.pendingKeysSet.add(key);\n\n // We store a little wrapper promise that will be extended with\n // _data/_error props upon resolve/reject\n let promise: TrackedPromise = Promise.race([value, this.abortPromise]).then(\n (data) => this.onSettle(promise, key, undefined, data as unknown),\n (error) => this.onSettle(promise, key, error as unknown)\n );\n\n // Register rejection listeners to avoid uncaught promise rejections on\n // errors or aborted deferred values\n promise.catch(() => {});\n\n Object.defineProperty(promise, \"_tracked\", { get: () => true });\n return promise;\n }\n\n private onSettle(\n promise: TrackedPromise,\n key: string,\n error: unknown,\n data?: unknown\n ): unknown {\n if (\n this.controller.signal.aborted &&\n error instanceof AbortedDeferredError\n ) {\n this.unlistenAbortSignal();\n Object.defineProperty(promise, \"_error\", { get: () => error });\n return Promise.reject(error);\n }\n\n this.pendingKeysSet.delete(key);\n\n if (this.done) {\n // Nothing left to abort!\n this.unlistenAbortSignal();\n }\n\n // If the promise was resolved/rejected with undefined, we'll throw an error as you\n // should always resolve with a value or null\n if (error === undefined && data === undefined) {\n let undefinedError = new Error(\n `Deferred data for key \"${key}\" resolved/rejected with \\`undefined\\`, ` +\n `you must resolve/reject with a value or \\`null\\`.`\n );\n Object.defineProperty(promise, \"_error\", { get: () => undefinedError });\n this.emit(false, key);\n return Promise.reject(undefinedError);\n }\n\n if (data === undefined) {\n Object.defineProperty(promise, \"_error\", { get: () => error });\n this.emit(false, key);\n return Promise.reject(error);\n }\n\n Object.defineProperty(promise, \"_data\", { get: () => data });\n this.emit(false, key);\n return data;\n }\n\n private emit(aborted: boolean, settledKey?: string) {\n this.subscribers.forEach((subscriber) => subscriber(aborted, settledKey));\n }\n\n subscribe(fn: (aborted: boolean, settledKey?: string) => void) {\n this.subscribers.add(fn);\n return () => this.subscribers.delete(fn);\n }\n\n cancel() {\n this.controller.abort();\n this.pendingKeysSet.forEach((v, k) => this.pendingKeysSet.delete(k));\n this.emit(true);\n }\n\n async resolveData(signal: AbortSignal) {\n let aborted = false;\n if (!this.done) {\n let onAbort = () => this.cancel();\n signal.addEventListener(\"abort\", onAbort);\n aborted = await new Promise((resolve) => {\n this.subscribe((aborted) => {\n signal.removeEventListener(\"abort\", onAbort);\n if (aborted || this.done) {\n resolve(aborted);\n }\n });\n });\n }\n return aborted;\n }\n\n get done() {\n return this.pendingKeysSet.size === 0;\n }\n\n get unwrappedData() {\n invariant(\n this.data !== null && this.done,\n \"Can only unwrap data on initialized and settled deferreds\"\n );\n\n return Object.entries(this.data).reduce(\n (acc, [key, value]) =>\n Object.assign(acc, {\n [key]: unwrapTrackedPromise(value),\n }),\n {}\n );\n }\n\n get pendingKeys() {\n return Array.from(this.pendingKeysSet);\n }\n}\n\nfunction isTrackedPromise(value: any): value is TrackedPromise {\n return (\n value instanceof Promise && (value as TrackedPromise)._tracked === true\n );\n}\n\nfunction unwrapTrackedPromise(value: any) {\n if (!isTrackedPromise(value)) {\n return value;\n }\n\n if (value._error) {\n throw value._error;\n }\n return value._data;\n}\n\nexport type DeferFunction = (\n data: Record,\n init?: number | ResponseInit\n) => DeferredData;\n\n/**\n * @deprecated The `defer` method is deprecated in favor of returning raw\n * objects. This method will be removed in v7.\n */\nexport const defer: DeferFunction = (data, init = {}) => {\n let responseInit = typeof init === \"number\" ? { status: init } : init;\n\n return new DeferredData(data, responseInit);\n};\n\nexport type RedirectFunction = (\n url: string,\n init?: number | ResponseInit\n) => Response;\n\n/**\n * A redirect response. Sets the status code and the `Location` header.\n * Defaults to \"302 Found\".\n */\nexport const redirect: RedirectFunction = (url, init = 302) => {\n let responseInit = init;\n if (typeof responseInit === \"number\") {\n responseInit = { status: responseInit };\n } else if (typeof responseInit.status === \"undefined\") {\n responseInit.status = 302;\n }\n\n let headers = new Headers(responseInit.headers);\n headers.set(\"Location\", url);\n\n return new Response(null, {\n ...responseInit,\n headers,\n });\n};\n\n/**\n * A redirect response that will force a document reload to the new location.\n * Sets the status code and the `Location` header.\n * Defaults to \"302 Found\".\n */\nexport const redirectDocument: RedirectFunction = (url, init) => {\n let response = redirect(url, init);\n response.headers.set(\"X-Remix-Reload-Document\", \"true\");\n return response;\n};\n\n/**\n * A redirect response that will perform a `history.replaceState` instead of a\n * `history.pushState` for client-side navigation redirects.\n * Sets the status code and the `Location` header.\n * Defaults to \"302 Found\".\n */\nexport const replace: RedirectFunction = (url, init) => {\n let response = redirect(url, init);\n response.headers.set(\"X-Remix-Replace\", \"true\");\n return response;\n};\n\nexport type ErrorResponse = {\n status: number;\n statusText: string;\n data: any;\n};\n\n/**\n * @private\n * Utility class we use to hold auto-unwrapped 4xx/5xx Response bodies\n *\n * We don't export the class for public use since it's an implementation\n * detail, but we export the interface above so folks can build their own\n * abstractions around instances via isRouteErrorResponse()\n */\nexport class ErrorResponseImpl implements ErrorResponse {\n status: number;\n statusText: string;\n data: any;\n private error?: Error;\n private internal: boolean;\n\n constructor(\n status: number,\n statusText: string | undefined,\n data: any,\n internal = false\n ) {\n this.status = status;\n this.statusText = statusText || \"\";\n this.internal = internal;\n if (data instanceof Error) {\n this.data = data.toString();\n this.error = data;\n } else {\n this.data = data;\n }\n }\n}\n\n/**\n * Check if the given error is an ErrorResponse generated from a 4xx/5xx\n * Response thrown from an action/loader\n */\nexport function isRouteErrorResponse(error: any): error is ErrorResponse {\n return (\n error != null &&\n typeof error.status === \"number\" &&\n typeof error.statusText === \"string\" &&\n typeof error.internal === \"boolean\" &&\n \"data\" in error\n );\n}\n","import type { History, Location, Path, To } from \"./history\";\nimport {\n Action as HistoryAction,\n createLocation,\n createPath,\n invariant,\n parsePath,\n warning,\n} from \"./history\";\nimport type {\n AgnosticDataRouteMatch,\n AgnosticDataRouteObject,\n DataStrategyMatch,\n AgnosticRouteObject,\n DataResult,\n DataStrategyFunction,\n DataStrategyFunctionArgs,\n DeferredData,\n DeferredResult,\n DetectErrorBoundaryFunction,\n ErrorResult,\n FormEncType,\n FormMethod,\n HTMLFormMethod,\n DataStrategyResult,\n ImmutableRouteKey,\n MapRoutePropertiesFunction,\n MutationFormMethod,\n RedirectResult,\n RouteData,\n RouteManifest,\n ShouldRevalidateFunctionArgs,\n Submission,\n SuccessResult,\n UIMatch,\n V7_FormMethod,\n V7_MutationFormMethod,\n AgnosticPatchRoutesOnNavigationFunction,\n DataWithResponseInit,\n} from \"./utils\";\nimport {\n ErrorResponseImpl,\n ResultType,\n convertRouteMatchToUiMatch,\n convertRoutesToDataRoutes,\n getPathContributingMatches,\n getResolveToMatches,\n immutableRouteKeys,\n isRouteErrorResponse,\n joinPaths,\n matchRoutes,\n matchRoutesImpl,\n resolveTo,\n stripBasename,\n} from \"./utils\";\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Types and Constants\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A Router instance manages all navigation and data loading/mutations\n */\nexport interface Router {\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the basename for the router\n */\n get basename(): RouterInit[\"basename\"];\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the future config for the router\n */\n get future(): FutureConfig;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the current state of the router\n */\n get state(): RouterState;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the routes for this router instance\n */\n get routes(): AgnosticDataRouteObject[];\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the window associated with the router\n */\n get window(): RouterInit[\"window\"];\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Initialize the router, including adding history listeners and kicking off\n * initial data fetches. Returns a function to cleanup listeners and abort\n * any in-progress loads\n */\n initialize(): Router;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Subscribe to router.state updates\n *\n * @param fn function to call with the new state\n */\n subscribe(fn: RouterSubscriber): () => void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Enable scroll restoration behavior in the router\n *\n * @param savedScrollPositions Object that will manage positions, in case\n * it's being restored from sessionStorage\n * @param getScrollPosition Function to get the active Y scroll position\n * @param getKey Function to get the key to use for restoration\n */\n enableScrollRestoration(\n savedScrollPositions: Record,\n getScrollPosition: GetScrollPositionFunction,\n getKey?: GetScrollRestorationKeyFunction\n ): () => void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Navigate forward/backward in the history stack\n * @param to Delta to move in the history stack\n */\n navigate(to: number): Promise;\n\n /**\n * Navigate to the given path\n * @param to Path to navigate to\n * @param opts Navigation options (method, submission, etc.)\n */\n navigate(to: To | null, opts?: RouterNavigateOptions): Promise;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Trigger a fetcher load/submission\n *\n * @param key Fetcher key\n * @param routeId Route that owns the fetcher\n * @param href href to fetch\n * @param opts Fetcher options, (method, submission, etc.)\n */\n fetch(\n key: string,\n routeId: string,\n href: string | null,\n opts?: RouterFetchOptions\n ): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Trigger a revalidation of all current route loaders and fetcher loads\n */\n revalidate(): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Utility function to create an href for the given location\n * @param location\n */\n createHref(location: Location | URL): string;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Utility function to URL encode a destination path according to the internal\n * history implementation\n * @param to\n */\n encodeLocation(to: To): Path;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Get/create a fetcher for the given key\n * @param key\n */\n getFetcher(key: string): Fetcher;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Delete the fetcher for a given key\n * @param key\n */\n deleteFetcher(key: string): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Cleanup listeners and abort any in-progress loads\n */\n dispose(): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Get a navigation blocker\n * @param key The identifier for the blocker\n * @param fn The blocker function implementation\n */\n getBlocker(key: string, fn: BlockerFunction): Blocker;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Delete a navigation blocker\n * @param key The identifier for the blocker\n */\n deleteBlocker(key: string): void;\n\n /**\n * @internal\n * PRIVATE DO NOT USE\n *\n * Patch additional children routes into an existing parent route\n * @param routeId The parent route id or a callback function accepting `patch`\n * to perform batch patching\n * @param children The additional children routes\n */\n patchRoutes(routeId: string | null, children: AgnosticRouteObject[]): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * HMR needs to pass in-flight route updates to React Router\n * TODO: Replace this with granular route update APIs (addRoute, updateRoute, deleteRoute)\n */\n _internalSetRoutes(routes: AgnosticRouteObject[]): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Internal fetch AbortControllers accessed by unit tests\n */\n _internalFetchControllers: Map;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Internal pending DeferredData instances accessed by unit tests\n */\n _internalActiveDeferreds: Map;\n}\n\n/**\n * State maintained internally by the router. During a navigation, all states\n * reflect the the \"old\" location unless otherwise noted.\n */\nexport interface RouterState {\n /**\n * The action of the most recent navigation\n */\n historyAction: HistoryAction;\n\n /**\n * The current location reflected by the router\n */\n location: Location;\n\n /**\n * The current set of route matches\n */\n matches: AgnosticDataRouteMatch[];\n\n /**\n * Tracks whether we've completed our initial data load\n */\n initialized: boolean;\n\n /**\n * Current scroll position we should start at for a new view\n * - number -> scroll position to restore to\n * - false -> do not restore scroll at all (used during submissions)\n * - null -> don't have a saved position, scroll to hash or top of page\n */\n restoreScrollPosition: number | false | null;\n\n /**\n * Indicate whether this navigation should skip resetting the scroll position\n * if we are unable to restore the scroll position\n */\n preventScrollReset: boolean;\n\n /**\n * Tracks the state of the current navigation\n */\n navigation: Navigation;\n\n /**\n * Tracks any in-progress revalidations\n */\n revalidation: RevalidationState;\n\n /**\n * Data from the loaders for the current matches\n */\n loaderData: RouteData;\n\n /**\n * Data from the action for the current matches\n */\n actionData: RouteData | null;\n\n /**\n * Errors caught from loaders for the current matches\n */\n errors: RouteData | null;\n\n /**\n * Map of current fetchers\n */\n fetchers: Map;\n\n /**\n * Map of current blockers\n */\n blockers: Map;\n}\n\n/**\n * Data that can be passed into hydrate a Router from SSR\n */\nexport type HydrationState = Partial<\n Pick\n>;\n\n/**\n * Future flags to toggle new feature behavior\n */\nexport interface FutureConfig {\n v7_fetcherPersist: boolean;\n v7_normalizeFormMethod: boolean;\n v7_partialHydration: boolean;\n v7_prependBasename: boolean;\n v7_relativeSplatPath: boolean;\n v7_skipActionErrorRevalidation: boolean;\n}\n\n/**\n * Initialization options for createRouter\n */\nexport interface RouterInit {\n routes: AgnosticRouteObject[];\n history: History;\n basename?: string;\n /**\n * @deprecated Use `mapRouteProperties` instead\n */\n detectErrorBoundary?: DetectErrorBoundaryFunction;\n mapRouteProperties?: MapRoutePropertiesFunction;\n future?: Partial;\n hydrationData?: HydrationState;\n window?: Window;\n dataStrategy?: DataStrategyFunction;\n patchRoutesOnNavigation?: AgnosticPatchRoutesOnNavigationFunction;\n}\n\n/**\n * State returned from a server-side query() call\n */\nexport interface StaticHandlerContext {\n basename: Router[\"basename\"];\n location: RouterState[\"location\"];\n matches: RouterState[\"matches\"];\n loaderData: RouterState[\"loaderData\"];\n actionData: RouterState[\"actionData\"];\n errors: RouterState[\"errors\"];\n statusCode: number;\n loaderHeaders: Record;\n actionHeaders: Record;\n activeDeferreds: Record | null;\n _deepestRenderedBoundaryId?: string | null;\n}\n\n/**\n * A StaticHandler instance manages a singular SSR navigation/fetch event\n */\nexport interface StaticHandler {\n dataRoutes: AgnosticDataRouteObject[];\n query(\n request: Request,\n opts?: {\n requestContext?: unknown;\n skipLoaderErrorBubbling?: boolean;\n dataStrategy?: DataStrategyFunction;\n }\n ): Promise;\n queryRoute(\n request: Request,\n opts?: {\n routeId?: string;\n requestContext?: unknown;\n dataStrategy?: DataStrategyFunction;\n }\n ): Promise;\n}\n\ntype ViewTransitionOpts = {\n currentLocation: Location;\n nextLocation: Location;\n};\n\n/**\n * Subscriber function signature for changes to router state\n */\nexport interface RouterSubscriber {\n (\n state: RouterState,\n opts: {\n deletedFetchers: string[];\n viewTransitionOpts?: ViewTransitionOpts;\n flushSync: boolean;\n }\n ): void;\n}\n\n/**\n * Function signature for determining the key to be used in scroll restoration\n * for a given location\n */\nexport interface GetScrollRestorationKeyFunction {\n (location: Location, matches: UIMatch[]): string | null;\n}\n\n/**\n * Function signature for determining the current scroll position\n */\nexport interface GetScrollPositionFunction {\n (): number;\n}\n\nexport type RelativeRoutingType = \"route\" | \"path\";\n\n// Allowed for any navigation or fetch\ntype BaseNavigateOrFetchOptions = {\n preventScrollReset?: boolean;\n relative?: RelativeRoutingType;\n flushSync?: boolean;\n};\n\n// Only allowed for navigations\ntype BaseNavigateOptions = BaseNavigateOrFetchOptions & {\n replace?: boolean;\n state?: any;\n fromRouteId?: string;\n viewTransition?: boolean;\n};\n\n// Only allowed for submission navigations\ntype BaseSubmissionOptions = {\n formMethod?: HTMLFormMethod;\n formEncType?: FormEncType;\n} & (\n | { formData: FormData; body?: undefined }\n | { formData?: undefined; body: any }\n);\n\n/**\n * Options for a navigate() call for a normal (non-submission) navigation\n */\ntype LinkNavigateOptions = BaseNavigateOptions;\n\n/**\n * Options for a navigate() call for a submission navigation\n */\ntype SubmissionNavigateOptions = BaseNavigateOptions & BaseSubmissionOptions;\n\n/**\n * Options to pass to navigate() for a navigation\n */\nexport type RouterNavigateOptions =\n | LinkNavigateOptions\n | SubmissionNavigateOptions;\n\n/**\n * Options for a fetch() load\n */\ntype LoadFetchOptions = BaseNavigateOrFetchOptions;\n\n/**\n * Options for a fetch() submission\n */\ntype SubmitFetchOptions = BaseNavigateOrFetchOptions & BaseSubmissionOptions;\n\n/**\n * Options to pass to fetch()\n */\nexport type RouterFetchOptions = LoadFetchOptions | SubmitFetchOptions;\n\n/**\n * Potential states for state.navigation\n */\nexport type NavigationStates = {\n Idle: {\n state: \"idle\";\n location: undefined;\n formMethod: undefined;\n formAction: undefined;\n formEncType: undefined;\n formData: undefined;\n json: undefined;\n text: undefined;\n };\n Loading: {\n state: \"loading\";\n location: Location;\n formMethod: Submission[\"formMethod\"] | undefined;\n formAction: Submission[\"formAction\"] | undefined;\n formEncType: Submission[\"formEncType\"] | undefined;\n formData: Submission[\"formData\"] | undefined;\n json: Submission[\"json\"] | undefined;\n text: Submission[\"text\"] | undefined;\n };\n Submitting: {\n state: \"submitting\";\n location: Location;\n formMethod: Submission[\"formMethod\"];\n formAction: Submission[\"formAction\"];\n formEncType: Submission[\"formEncType\"];\n formData: Submission[\"formData\"];\n json: Submission[\"json\"];\n text: Submission[\"text\"];\n };\n};\n\nexport type Navigation = NavigationStates[keyof NavigationStates];\n\nexport type RevalidationState = \"idle\" | \"loading\";\n\n/**\n * Potential states for fetchers\n */\ntype FetcherStates = {\n Idle: {\n state: \"idle\";\n formMethod: undefined;\n formAction: undefined;\n formEncType: undefined;\n text: undefined;\n formData: undefined;\n json: undefined;\n data: TData | undefined;\n };\n Loading: {\n state: \"loading\";\n formMethod: Submission[\"formMethod\"] | undefined;\n formAction: Submission[\"formAction\"] | undefined;\n formEncType: Submission[\"formEncType\"] | undefined;\n text: Submission[\"text\"] | undefined;\n formData: Submission[\"formData\"] | undefined;\n json: Submission[\"json\"] | undefined;\n data: TData | undefined;\n };\n Submitting: {\n state: \"submitting\";\n formMethod: Submission[\"formMethod\"];\n formAction: Submission[\"formAction\"];\n formEncType: Submission[\"formEncType\"];\n text: Submission[\"text\"];\n formData: Submission[\"formData\"];\n json: Submission[\"json\"];\n data: TData | undefined;\n };\n};\n\nexport type Fetcher =\n FetcherStates[keyof FetcherStates];\n\ninterface BlockerBlocked {\n state: \"blocked\";\n reset(): void;\n proceed(): void;\n location: Location;\n}\n\ninterface BlockerUnblocked {\n state: \"unblocked\";\n reset: undefined;\n proceed: undefined;\n location: undefined;\n}\n\ninterface BlockerProceeding {\n state: \"proceeding\";\n reset: undefined;\n proceed: undefined;\n location: Location;\n}\n\nexport type Blocker = BlockerUnblocked | BlockerBlocked | BlockerProceeding;\n\nexport type BlockerFunction = (args: {\n currentLocation: Location;\n nextLocation: Location;\n historyAction: HistoryAction;\n}) => boolean;\n\ninterface ShortCircuitable {\n /**\n * startNavigation does not need to complete the navigation because we\n * redirected or got interrupted\n */\n shortCircuited?: boolean;\n}\n\ntype PendingActionResult = [string, SuccessResult | ErrorResult];\n\ninterface HandleActionResult extends ShortCircuitable {\n /**\n * Route matches which may have been updated from fog of war discovery\n */\n matches?: RouterState[\"matches\"];\n /**\n * Tuple for the returned or thrown value from the current action. The routeId\n * is the action route for success and the bubbled boundary route for errors.\n */\n pendingActionResult?: PendingActionResult;\n}\n\ninterface HandleLoadersResult extends ShortCircuitable {\n /**\n * Route matches which may have been updated from fog of war discovery\n */\n matches?: RouterState[\"matches\"];\n /**\n * loaderData returned from the current set of loaders\n */\n loaderData?: RouterState[\"loaderData\"];\n /**\n * errors thrown from the current set of loaders\n */\n errors?: RouterState[\"errors\"];\n}\n\n/**\n * Cached info for active fetcher.load() instances so they can participate\n * in revalidation\n */\ninterface FetchLoadMatch {\n routeId: string;\n path: string;\n}\n\n/**\n * Identified fetcher.load() calls that need to be revalidated\n */\ninterface RevalidatingFetcher extends FetchLoadMatch {\n key: string;\n match: AgnosticDataRouteMatch | null;\n matches: AgnosticDataRouteMatch[] | null;\n controller: AbortController | null;\n}\n\nconst validMutationMethodsArr: MutationFormMethod[] = [\n \"post\",\n \"put\",\n \"patch\",\n \"delete\",\n];\nconst validMutationMethods = new Set(\n validMutationMethodsArr\n);\n\nconst validRequestMethodsArr: FormMethod[] = [\n \"get\",\n ...validMutationMethodsArr,\n];\nconst validRequestMethods = new Set(validRequestMethodsArr);\n\nconst redirectStatusCodes = new Set([301, 302, 303, 307, 308]);\nconst redirectPreserveMethodStatusCodes = new Set([307, 308]);\n\nexport const IDLE_NAVIGATION: NavigationStates[\"Idle\"] = {\n state: \"idle\",\n location: undefined,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n};\n\nexport const IDLE_FETCHER: FetcherStates[\"Idle\"] = {\n state: \"idle\",\n data: undefined,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n};\n\nexport const IDLE_BLOCKER: BlockerUnblocked = {\n state: \"unblocked\",\n proceed: undefined,\n reset: undefined,\n location: undefined,\n};\n\nconst ABSOLUTE_URL_REGEX = /^(?:[a-z][a-z0-9+.-]*:|\\/\\/)/i;\n\nconst defaultMapRouteProperties: MapRoutePropertiesFunction = (route) => ({\n hasErrorBoundary: Boolean(route.hasErrorBoundary),\n});\n\nconst TRANSITIONS_STORAGE_KEY = \"remix-router-transitions\";\n\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region createRouter\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Create a router and listen to history POP navigations\n */\nexport function createRouter(init: RouterInit): Router {\n const routerWindow = init.window\n ? init.window\n : typeof window !== \"undefined\"\n ? window\n : undefined;\n const isBrowser =\n typeof routerWindow !== \"undefined\" &&\n typeof routerWindow.document !== \"undefined\" &&\n typeof routerWindow.document.createElement !== \"undefined\";\n const isServer = !isBrowser;\n\n invariant(\n init.routes.length > 0,\n \"You must provide a non-empty routes array to createRouter\"\n );\n\n let mapRouteProperties: MapRoutePropertiesFunction;\n if (init.mapRouteProperties) {\n mapRouteProperties = init.mapRouteProperties;\n } else if (init.detectErrorBoundary) {\n // If they are still using the deprecated version, wrap it with the new API\n let detectErrorBoundary = init.detectErrorBoundary;\n mapRouteProperties = (route) => ({\n hasErrorBoundary: detectErrorBoundary(route),\n });\n } else {\n mapRouteProperties = defaultMapRouteProperties;\n }\n\n // Routes keyed by ID\n let manifest: RouteManifest = {};\n // Routes in tree format for matching\n let dataRoutes = convertRoutesToDataRoutes(\n init.routes,\n mapRouteProperties,\n undefined,\n manifest\n );\n let inFlightDataRoutes: AgnosticDataRouteObject[] | undefined;\n let basename = init.basename || \"/\";\n let dataStrategyImpl = init.dataStrategy || defaultDataStrategy;\n let patchRoutesOnNavigationImpl = init.patchRoutesOnNavigation;\n\n // Config driven behavior flags\n let future: FutureConfig = {\n v7_fetcherPersist: false,\n v7_normalizeFormMethod: false,\n v7_partialHydration: false,\n v7_prependBasename: false,\n v7_relativeSplatPath: false,\n v7_skipActionErrorRevalidation: false,\n ...init.future,\n };\n // Cleanup function for history\n let unlistenHistory: (() => void) | null = null;\n // Externally-provided functions to call on all state changes\n let subscribers = new Set();\n // Externally-provided object to hold scroll restoration locations during routing\n let savedScrollPositions: Record | null = null;\n // Externally-provided function to get scroll restoration keys\n let getScrollRestorationKey: GetScrollRestorationKeyFunction | null = null;\n // Externally-provided function to get current scroll position\n let getScrollPosition: GetScrollPositionFunction | null = null;\n // One-time flag to control the initial hydration scroll restoration. Because\n // we don't get the saved positions from until _after_\n // the initial render, we need to manually trigger a separate updateState to\n // send along the restoreScrollPosition\n // Set to true if we have `hydrationData` since we assume we were SSR'd and that\n // SSR did the initial scroll restoration.\n let initialScrollRestored = init.hydrationData != null;\n\n let initialMatches = matchRoutes(dataRoutes, init.history.location, basename);\n let initialErrors: RouteData | null = null;\n\n if (initialMatches == null && !patchRoutesOnNavigationImpl) {\n // If we do not match a user-provided-route, fall back to the root\n // to allow the error boundary to take over\n let error = getInternalRouterError(404, {\n pathname: init.history.location.pathname,\n });\n let { matches, route } = getShortCircuitMatches(dataRoutes);\n initialMatches = matches;\n initialErrors = { [route.id]: error };\n }\n\n // In SPA apps, if the user provided a patchRoutesOnNavigation implementation and\n // our initial match is a splat route, clear them out so we run through lazy\n // discovery on hydration in case there's a more accurate lazy route match.\n // In SSR apps (with `hydrationData`), we expect that the server will send\n // up the proper matched routes so we don't want to run lazy discovery on\n // initial hydration and want to hydrate into the splat route.\n if (initialMatches && !init.hydrationData) {\n let fogOfWar = checkFogOfWar(\n initialMatches,\n dataRoutes,\n init.history.location.pathname\n );\n if (fogOfWar.active) {\n initialMatches = null;\n }\n }\n\n let initialized: boolean;\n if (!initialMatches) {\n initialized = false;\n initialMatches = [];\n\n // If partial hydration and fog of war is enabled, we will be running\n // `patchRoutesOnNavigation` during hydration so include any partial matches as\n // the initial matches so we can properly render `HydrateFallback`'s\n if (future.v7_partialHydration) {\n let fogOfWar = checkFogOfWar(\n null,\n dataRoutes,\n init.history.location.pathname\n );\n if (fogOfWar.active && fogOfWar.matches) {\n initialMatches = fogOfWar.matches;\n }\n }\n } else if (initialMatches.some((m) => m.route.lazy)) {\n // All initialMatches need to be loaded before we're ready. If we have lazy\n // functions around still then we'll need to run them in initialize()\n initialized = false;\n } else if (!initialMatches.some((m) => m.route.loader)) {\n // If we've got no loaders to run, then we're good to go\n initialized = true;\n } else if (future.v7_partialHydration) {\n // If partial hydration is enabled, we're initialized so long as we were\n // provided with hydrationData for every route with a loader, and no loaders\n // were marked for explicit hydration\n let loaderData = init.hydrationData ? init.hydrationData.loaderData : null;\n let errors = init.hydrationData ? init.hydrationData.errors : null;\n // If errors exist, don't consider routes below the boundary\n if (errors) {\n let idx = initialMatches.findIndex(\n (m) => errors![m.route.id] !== undefined\n );\n initialized = initialMatches\n .slice(0, idx + 1)\n .every((m) => !shouldLoadRouteOnHydration(m.route, loaderData, errors));\n } else {\n initialized = initialMatches.every(\n (m) => !shouldLoadRouteOnHydration(m.route, loaderData, errors)\n );\n }\n } else {\n // Without partial hydration - we're initialized if we were provided any\n // hydrationData - which is expected to be complete\n initialized = init.hydrationData != null;\n }\n\n let router: Router;\n let state: RouterState = {\n historyAction: init.history.action,\n location: init.history.location,\n matches: initialMatches,\n initialized,\n navigation: IDLE_NAVIGATION,\n // Don't restore on initial updateState() if we were SSR'd\n restoreScrollPosition: init.hydrationData != null ? false : null,\n preventScrollReset: false,\n revalidation: \"idle\",\n loaderData: (init.hydrationData && init.hydrationData.loaderData) || {},\n actionData: (init.hydrationData && init.hydrationData.actionData) || null,\n errors: (init.hydrationData && init.hydrationData.errors) || initialErrors,\n fetchers: new Map(),\n blockers: new Map(),\n };\n\n // -- Stateful internal variables to manage navigations --\n // Current navigation in progress (to be committed in completeNavigation)\n let pendingAction: HistoryAction = HistoryAction.Pop;\n\n // Should the current navigation prevent the scroll reset if scroll cannot\n // be restored?\n let pendingPreventScrollReset = false;\n\n // AbortController for the active navigation\n let pendingNavigationController: AbortController | null;\n\n // Should the current navigation enable document.startViewTransition?\n let pendingViewTransitionEnabled = false;\n\n // Store applied view transitions so we can apply them on POP\n let appliedViewTransitions: Map> = new Map<\n string,\n Set\n >();\n\n // Cleanup function for persisting applied transitions to sessionStorage\n let removePageHideEventListener: (() => void) | null = null;\n\n // We use this to avoid touching history in completeNavigation if a\n // revalidation is entirely uninterrupted\n let isUninterruptedRevalidation = false;\n\n // Use this internal flag to force revalidation of all loaders:\n // - submissions (completed or interrupted)\n // - useRevalidator()\n // - X-Remix-Revalidate (from redirect)\n let isRevalidationRequired = false;\n\n // Use this internal array to capture routes that require revalidation due\n // to a cancelled deferred on action submission\n let cancelledDeferredRoutes: string[] = [];\n\n // Use this internal array to capture fetcher loads that were cancelled by an\n // action navigation and require revalidation\n let cancelledFetcherLoads: Set = new Set();\n\n // AbortControllers for any in-flight fetchers\n let fetchControllers = new Map();\n\n // Track loads based on the order in which they started\n let incrementingLoadId = 0;\n\n // Track the outstanding pending navigation data load to be compared against\n // the globally incrementing load when a fetcher load lands after a completed\n // navigation\n let pendingNavigationLoadId = -1;\n\n // Fetchers that triggered data reloads as a result of their actions\n let fetchReloadIds = new Map();\n\n // Fetchers that triggered redirect navigations\n let fetchRedirectIds = new Set();\n\n // Most recent href/match for fetcher.load calls for fetchers\n let fetchLoadMatches = new Map();\n\n // Ref-count mounted fetchers so we know when it's ok to clean them up\n let activeFetchers = new Map();\n\n // Fetchers that have requested a delete when using v7_fetcherPersist,\n // they'll be officially removed after they return to idle\n let deletedFetchers = new Set();\n\n // Store DeferredData instances for active route matches. When a\n // route loader returns defer() we stick one in here. Then, when a nested\n // promise resolves we update loaderData. If a new navigation starts we\n // cancel active deferreds for eliminated routes.\n let activeDeferreds = new Map();\n\n // Store blocker functions in a separate Map outside of router state since\n // we don't need to update UI state if they change\n let blockerFunctions = new Map();\n\n // Map of pending patchRoutesOnNavigation() promises (keyed by path/matches) so\n // that we only kick them off once for a given combo\n let pendingPatchRoutes = new Map<\n string,\n ReturnType\n >();\n\n // Flag to ignore the next history update, so we can revert the URL change on\n // a POP navigation that was blocked by the user without touching router state\n let unblockBlockerHistoryUpdate: (() => void) | undefined = undefined;\n\n // Initialize the router, all side effects should be kicked off from here.\n // Implemented as a Fluent API for ease of:\n // let router = createRouter(init).initialize();\n function initialize() {\n // If history informs us of a POP navigation, start the navigation but do not update\n // state. We'll update our own state once the navigation completes\n unlistenHistory = init.history.listen(\n ({ action: historyAction, location, delta }) => {\n // Ignore this event if it was just us resetting the URL from a\n // blocked POP navigation\n if (unblockBlockerHistoryUpdate) {\n unblockBlockerHistoryUpdate();\n unblockBlockerHistoryUpdate = undefined;\n return;\n }\n\n warning(\n blockerFunctions.size === 0 || delta != null,\n \"You are trying to use a blocker on a POP navigation to a location \" +\n \"that was not created by @remix-run/router. This will fail silently in \" +\n \"production. This can happen if you are navigating outside the router \" +\n \"via `window.history.pushState`/`window.location.hash` instead of using \" +\n \"router navigation APIs. This can also happen if you are using \" +\n \"createHashRouter and the user manually changes the URL.\"\n );\n\n let blockerKey = shouldBlockNavigation({\n currentLocation: state.location,\n nextLocation: location,\n historyAction,\n });\n\n if (blockerKey && delta != null) {\n // Restore the URL to match the current UI, but don't update router state\n let nextHistoryUpdatePromise = new Promise((resolve) => {\n unblockBlockerHistoryUpdate = resolve;\n });\n init.history.go(delta * -1);\n\n // Put the blocker into a blocked state\n updateBlocker(blockerKey, {\n state: \"blocked\",\n location,\n proceed() {\n updateBlocker(blockerKey!, {\n state: \"proceeding\",\n proceed: undefined,\n reset: undefined,\n location,\n });\n // Re-do the same POP navigation we just blocked, after the url\n // restoration is also complete. See:\n // https://github.com/remix-run/react-router/issues/11613\n nextHistoryUpdatePromise.then(() => init.history.go(delta));\n },\n reset() {\n let blockers = new Map(state.blockers);\n blockers.set(blockerKey!, IDLE_BLOCKER);\n updateState({ blockers });\n },\n });\n return;\n }\n\n return startNavigation(historyAction, location);\n }\n );\n\n if (isBrowser) {\n // FIXME: This feels gross. How can we cleanup the lines between\n // scrollRestoration/appliedTransitions persistance?\n restoreAppliedTransitions(routerWindow, appliedViewTransitions);\n let _saveAppliedTransitions = () =>\n persistAppliedTransitions(routerWindow, appliedViewTransitions);\n routerWindow.addEventListener(\"pagehide\", _saveAppliedTransitions);\n removePageHideEventListener = () =>\n routerWindow.removeEventListener(\"pagehide\", _saveAppliedTransitions);\n }\n\n // Kick off initial data load if needed. Use Pop to avoid modifying history\n // Note we don't do any handling of lazy here. For SPA's it'll get handled\n // in the normal navigation flow. For SSR it's expected that lazy modules are\n // resolved prior to router creation since we can't go into a fallbackElement\n // UI for SSR'd apps\n if (!state.initialized) {\n startNavigation(HistoryAction.Pop, state.location, {\n initialHydration: true,\n });\n }\n\n return router;\n }\n\n // Clean up a router and it's side effects\n function dispose() {\n if (unlistenHistory) {\n unlistenHistory();\n }\n if (removePageHideEventListener) {\n removePageHideEventListener();\n }\n subscribers.clear();\n pendingNavigationController && pendingNavigationController.abort();\n state.fetchers.forEach((_, key) => deleteFetcher(key));\n state.blockers.forEach((_, key) => deleteBlocker(key));\n }\n\n // Subscribe to state updates for the router\n function subscribe(fn: RouterSubscriber) {\n subscribers.add(fn);\n return () => subscribers.delete(fn);\n }\n\n // Update our state and notify the calling context of the change\n function updateState(\n newState: Partial,\n opts: {\n flushSync?: boolean;\n viewTransitionOpts?: ViewTransitionOpts;\n } = {}\n ): void {\n state = {\n ...state,\n ...newState,\n };\n\n // Prep fetcher cleanup so we can tell the UI which fetcher data entries\n // can be removed\n let completedFetchers: string[] = [];\n let deletedFetchersKeys: string[] = [];\n\n if (future.v7_fetcherPersist) {\n state.fetchers.forEach((fetcher, key) => {\n if (fetcher.state === \"idle\") {\n if (deletedFetchers.has(key)) {\n // Unmounted from the UI and can be totally removed\n deletedFetchersKeys.push(key);\n } else {\n // Returned to idle but still mounted in the UI, so semi-remains for\n // revalidations and such\n completedFetchers.push(key);\n }\n }\n });\n }\n\n // Iterate over a local copy so that if flushSync is used and we end up\n // removing and adding a new subscriber due to the useCallback dependencies,\n // we don't get ourselves into a loop calling the new subscriber immediately\n [...subscribers].forEach((subscriber) =>\n subscriber(state, {\n deletedFetchers: deletedFetchersKeys,\n viewTransitionOpts: opts.viewTransitionOpts,\n flushSync: opts.flushSync === true,\n })\n );\n\n // Remove idle fetchers from state since we only care about in-flight fetchers.\n if (future.v7_fetcherPersist) {\n completedFetchers.forEach((key) => state.fetchers.delete(key));\n deletedFetchersKeys.forEach((key) => deleteFetcher(key));\n }\n }\n\n // Complete a navigation returning the state.navigation back to the IDLE_NAVIGATION\n // and setting state.[historyAction/location/matches] to the new route.\n // - Location is a required param\n // - Navigation will always be set to IDLE_NAVIGATION\n // - Can pass any other state in newState\n function completeNavigation(\n location: Location,\n newState: Partial>,\n { flushSync }: { flushSync?: boolean } = {}\n ): void {\n // Deduce if we're in a loading/actionReload state:\n // - We have committed actionData in the store\n // - The current navigation was a mutation submission\n // - We're past the submitting state and into the loading state\n // - The location being loaded is not the result of a redirect\n let isActionReload =\n state.actionData != null &&\n state.navigation.formMethod != null &&\n isMutationMethod(state.navigation.formMethod) &&\n state.navigation.state === \"loading\" &&\n location.state?._isRedirect !== true;\n\n let actionData: RouteData | null;\n if (newState.actionData) {\n if (Object.keys(newState.actionData).length > 0) {\n actionData = newState.actionData;\n } else {\n // Empty actionData -> clear prior actionData due to an action error\n actionData = null;\n }\n } else if (isActionReload) {\n // Keep the current data if we're wrapping up the action reload\n actionData = state.actionData;\n } else {\n // Clear actionData on any other completed navigations\n actionData = null;\n }\n\n // Always preserve any existing loaderData from re-used routes\n let loaderData = newState.loaderData\n ? mergeLoaderData(\n state.loaderData,\n newState.loaderData,\n newState.matches || [],\n newState.errors\n )\n : state.loaderData;\n\n // On a successful navigation we can assume we got through all blockers\n // so we can start fresh\n let blockers = state.blockers;\n if (blockers.size > 0) {\n blockers = new Map(blockers);\n blockers.forEach((_, k) => blockers.set(k, IDLE_BLOCKER));\n }\n\n // Always respect the user flag. Otherwise don't reset on mutation\n // submission navigations unless they redirect\n let preventScrollReset =\n pendingPreventScrollReset === true ||\n (state.navigation.formMethod != null &&\n isMutationMethod(state.navigation.formMethod) &&\n location.state?._isRedirect !== true);\n\n // Commit any in-flight routes at the end of the HMR revalidation \"navigation\"\n if (inFlightDataRoutes) {\n dataRoutes = inFlightDataRoutes;\n inFlightDataRoutes = undefined;\n }\n\n if (isUninterruptedRevalidation) {\n // If this was an uninterrupted revalidation then do not touch history\n } else if (pendingAction === HistoryAction.Pop) {\n // Do nothing for POP - URL has already been updated\n } else if (pendingAction === HistoryAction.Push) {\n init.history.push(location, location.state);\n } else if (pendingAction === HistoryAction.Replace) {\n init.history.replace(location, location.state);\n }\n\n let viewTransitionOpts: ViewTransitionOpts | undefined;\n\n // On POP, enable transitions if they were enabled on the original navigation\n if (pendingAction === HistoryAction.Pop) {\n // Forward takes precedence so they behave like the original navigation\n let priorPaths = appliedViewTransitions.get(state.location.pathname);\n if (priorPaths && priorPaths.has(location.pathname)) {\n viewTransitionOpts = {\n currentLocation: state.location,\n nextLocation: location,\n };\n } else if (appliedViewTransitions.has(location.pathname)) {\n // If we don't have a previous forward nav, assume we're popping back to\n // the new location and enable if that location previously enabled\n viewTransitionOpts = {\n currentLocation: location,\n nextLocation: state.location,\n };\n }\n } else if (pendingViewTransitionEnabled) {\n // Store the applied transition on PUSH/REPLACE\n let toPaths = appliedViewTransitions.get(state.location.pathname);\n if (toPaths) {\n toPaths.add(location.pathname);\n } else {\n toPaths = new Set([location.pathname]);\n appliedViewTransitions.set(state.location.pathname, toPaths);\n }\n viewTransitionOpts = {\n currentLocation: state.location,\n nextLocation: location,\n };\n }\n\n updateState(\n {\n ...newState, // matches, errors, fetchers go through as-is\n actionData,\n loaderData,\n historyAction: pendingAction,\n location,\n initialized: true,\n navigation: IDLE_NAVIGATION,\n revalidation: \"idle\",\n restoreScrollPosition: getSavedScrollPosition(\n location,\n newState.matches || state.matches\n ),\n preventScrollReset,\n blockers,\n },\n {\n viewTransitionOpts,\n flushSync: flushSync === true,\n }\n );\n\n // Reset stateful navigation vars\n pendingAction = HistoryAction.Pop;\n pendingPreventScrollReset = false;\n pendingViewTransitionEnabled = false;\n isUninterruptedRevalidation = false;\n isRevalidationRequired = false;\n cancelledDeferredRoutes = [];\n }\n\n // Trigger a navigation event, which can either be a numerical POP or a PUSH\n // replace with an optional submission\n async function navigate(\n to: number | To | null,\n opts?: RouterNavigateOptions\n ): Promise {\n if (typeof to === \"number\") {\n init.history.go(to);\n return;\n }\n\n let normalizedPath = normalizeTo(\n state.location,\n state.matches,\n basename,\n future.v7_prependBasename,\n to,\n future.v7_relativeSplatPath,\n opts?.fromRouteId,\n opts?.relative\n );\n let { path, submission, error } = normalizeNavigateOptions(\n future.v7_normalizeFormMethod,\n false,\n normalizedPath,\n opts\n );\n\n let currentLocation = state.location;\n let nextLocation = createLocation(state.location, path, opts && opts.state);\n\n // When using navigate as a PUSH/REPLACE we aren't reading an already-encoded\n // URL from window.location, so we need to encode it here so the behavior\n // remains the same as POP and non-data-router usages. new URL() does all\n // the same encoding we'd get from a history.pushState/window.location read\n // without having to touch history\n nextLocation = {\n ...nextLocation,\n ...init.history.encodeLocation(nextLocation),\n };\n\n let userReplace = opts && opts.replace != null ? opts.replace : undefined;\n\n let historyAction = HistoryAction.Push;\n\n if (userReplace === true) {\n historyAction = HistoryAction.Replace;\n } else if (userReplace === false) {\n // no-op\n } else if (\n submission != null &&\n isMutationMethod(submission.formMethod) &&\n submission.formAction === state.location.pathname + state.location.search\n ) {\n // By default on submissions to the current location we REPLACE so that\n // users don't have to double-click the back button to get to the prior\n // location. If the user redirects to a different location from the\n // action/loader this will be ignored and the redirect will be a PUSH\n historyAction = HistoryAction.Replace;\n }\n\n let preventScrollReset =\n opts && \"preventScrollReset\" in opts\n ? opts.preventScrollReset === true\n : undefined;\n\n let flushSync = (opts && opts.flushSync) === true;\n\n let blockerKey = shouldBlockNavigation({\n currentLocation,\n nextLocation,\n historyAction,\n });\n\n if (blockerKey) {\n // Put the blocker into a blocked state\n updateBlocker(blockerKey, {\n state: \"blocked\",\n location: nextLocation,\n proceed() {\n updateBlocker(blockerKey!, {\n state: \"proceeding\",\n proceed: undefined,\n reset: undefined,\n location: nextLocation,\n });\n // Send the same navigation through\n navigate(to, opts);\n },\n reset() {\n let blockers = new Map(state.blockers);\n blockers.set(blockerKey!, IDLE_BLOCKER);\n updateState({ blockers });\n },\n });\n return;\n }\n\n return await startNavigation(historyAction, nextLocation, {\n submission,\n // Send through the formData serialization error if we have one so we can\n // render at the right error boundary after we match routes\n pendingError: error,\n preventScrollReset,\n replace: opts && opts.replace,\n enableViewTransition: opts && opts.viewTransition,\n flushSync,\n });\n }\n\n // Revalidate all current loaders. If a navigation is in progress or if this\n // is interrupted by a navigation, allow this to \"succeed\" by calling all\n // loaders during the next loader round\n function revalidate() {\n interruptActiveLoads();\n updateState({ revalidation: \"loading\" });\n\n // If we're currently submitting an action, we don't need to start a new\n // navigation, we'll just let the follow up loader execution call all loaders\n if (state.navigation.state === \"submitting\") {\n return;\n }\n\n // If we're currently in an idle state, start a new navigation for the current\n // action/location and mark it as uninterrupted, which will skip the history\n // update in completeNavigation\n if (state.navigation.state === \"idle\") {\n startNavigation(state.historyAction, state.location, {\n startUninterruptedRevalidation: true,\n });\n return;\n }\n\n // Otherwise, if we're currently in a loading state, just start a new\n // navigation to the navigation.location but do not trigger an uninterrupted\n // revalidation so that history correctly updates once the navigation completes\n startNavigation(\n pendingAction || state.historyAction,\n state.navigation.location,\n {\n overrideNavigation: state.navigation,\n // Proxy through any rending view transition\n enableViewTransition: pendingViewTransitionEnabled === true,\n }\n );\n }\n\n // Start a navigation to the given action/location. Can optionally provide a\n // overrideNavigation which will override the normalLoad in the case of a redirect\n // navigation\n async function startNavigation(\n historyAction: HistoryAction,\n location: Location,\n opts?: {\n initialHydration?: boolean;\n submission?: Submission;\n fetcherSubmission?: Submission;\n overrideNavigation?: Navigation;\n pendingError?: ErrorResponseImpl;\n startUninterruptedRevalidation?: boolean;\n preventScrollReset?: boolean;\n replace?: boolean;\n enableViewTransition?: boolean;\n flushSync?: boolean;\n }\n ): Promise {\n // Abort any in-progress navigations and start a new one. Unset any ongoing\n // uninterrupted revalidations unless told otherwise, since we want this\n // new navigation to update history normally\n pendingNavigationController && pendingNavigationController.abort();\n pendingNavigationController = null;\n pendingAction = historyAction;\n isUninterruptedRevalidation =\n (opts && opts.startUninterruptedRevalidation) === true;\n\n // Save the current scroll position every time we start a new navigation,\n // and track whether we should reset scroll on completion\n saveScrollPosition(state.location, state.matches);\n pendingPreventScrollReset = (opts && opts.preventScrollReset) === true;\n\n pendingViewTransitionEnabled = (opts && opts.enableViewTransition) === true;\n\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let loadingNavigation = opts && opts.overrideNavigation;\n let matches = matchRoutes(routesToUse, location, basename);\n let flushSync = (opts && opts.flushSync) === true;\n\n let fogOfWar = checkFogOfWar(matches, routesToUse, location.pathname);\n if (fogOfWar.active && fogOfWar.matches) {\n matches = fogOfWar.matches;\n }\n\n // Short circuit with a 404 on the root error boundary if we match nothing\n if (!matches) {\n let { error, notFoundMatches, route } = handleNavigational404(\n location.pathname\n );\n completeNavigation(\n location,\n {\n matches: notFoundMatches,\n loaderData: {},\n errors: {\n [route.id]: error,\n },\n },\n { flushSync }\n );\n return;\n }\n\n // Short circuit if it's only a hash change and not a revalidation or\n // mutation submission.\n //\n // Ignore on initial page loads because since the initial hydration will always\n // be \"same hash\". For example, on /page#hash and submit a \n // which will default to a navigation to /page\n if (\n state.initialized &&\n !isRevalidationRequired &&\n isHashChangeOnly(state.location, location) &&\n !(opts && opts.submission && isMutationMethod(opts.submission.formMethod))\n ) {\n completeNavigation(location, { matches }, { flushSync });\n return;\n }\n\n // Create a controller/Request for this navigation\n pendingNavigationController = new AbortController();\n let request = createClientSideRequest(\n init.history,\n location,\n pendingNavigationController.signal,\n opts && opts.submission\n );\n let pendingActionResult: PendingActionResult | undefined;\n\n if (opts && opts.pendingError) {\n // If we have a pendingError, it means the user attempted a GET submission\n // with binary FormData so assign here and skip to handleLoaders. That\n // way we handle calling loaders above the boundary etc. It's not really\n // different from an actionError in that sense.\n pendingActionResult = [\n findNearestBoundary(matches).route.id,\n { type: ResultType.error, error: opts.pendingError },\n ];\n } else if (\n opts &&\n opts.submission &&\n isMutationMethod(opts.submission.formMethod)\n ) {\n // Call action if we received an action submission\n let actionResult = await handleAction(\n request,\n location,\n opts.submission,\n matches,\n fogOfWar.active,\n { replace: opts.replace, flushSync }\n );\n\n if (actionResult.shortCircuited) {\n return;\n }\n\n // If we received a 404 from handleAction, it's because we couldn't lazily\n // discover the destination route so we don't want to call loaders\n if (actionResult.pendingActionResult) {\n let [routeId, result] = actionResult.pendingActionResult;\n if (\n isErrorResult(result) &&\n isRouteErrorResponse(result.error) &&\n result.error.status === 404\n ) {\n pendingNavigationController = null;\n\n completeNavigation(location, {\n matches: actionResult.matches,\n loaderData: {},\n errors: {\n [routeId]: result.error,\n },\n });\n return;\n }\n }\n\n matches = actionResult.matches || matches;\n pendingActionResult = actionResult.pendingActionResult;\n loadingNavigation = getLoadingNavigation(location, opts.submission);\n flushSync = false;\n // No need to do fog of war matching again on loader execution\n fogOfWar.active = false;\n\n // Create a GET request for the loaders\n request = createClientSideRequest(\n init.history,\n request.url,\n request.signal\n );\n }\n\n // Call loaders\n let {\n shortCircuited,\n matches: updatedMatches,\n loaderData,\n errors,\n } = await handleLoaders(\n request,\n location,\n matches,\n fogOfWar.active,\n loadingNavigation,\n opts && opts.submission,\n opts && opts.fetcherSubmission,\n opts && opts.replace,\n opts && opts.initialHydration === true,\n flushSync,\n pendingActionResult\n );\n\n if (shortCircuited) {\n return;\n }\n\n // Clean up now that the action/loaders have completed. Don't clean up if\n // we short circuited because pendingNavigationController will have already\n // been assigned to a new controller for the next navigation\n pendingNavigationController = null;\n\n completeNavigation(location, {\n matches: updatedMatches || matches,\n ...getActionDataForCommit(pendingActionResult),\n loaderData,\n errors,\n });\n }\n\n // Call the action matched by the leaf route for this navigation and handle\n // redirects/errors\n async function handleAction(\n request: Request,\n location: Location,\n submission: Submission,\n matches: AgnosticDataRouteMatch[],\n isFogOfWar: boolean,\n opts: { replace?: boolean; flushSync?: boolean } = {}\n ): Promise {\n interruptActiveLoads();\n\n // Put us in a submitting state\n let navigation = getSubmittingNavigation(location, submission);\n updateState({ navigation }, { flushSync: opts.flushSync === true });\n\n if (isFogOfWar) {\n let discoverResult = await discoverRoutes(\n matches,\n location.pathname,\n request.signal\n );\n if (discoverResult.type === \"aborted\") {\n return { shortCircuited: true };\n } else if (discoverResult.type === \"error\") {\n let boundaryId = findNearestBoundary(discoverResult.partialMatches)\n .route.id;\n return {\n matches: discoverResult.partialMatches,\n pendingActionResult: [\n boundaryId,\n {\n type: ResultType.error,\n error: discoverResult.error,\n },\n ],\n };\n } else if (!discoverResult.matches) {\n let { notFoundMatches, error, route } = handleNavigational404(\n location.pathname\n );\n return {\n matches: notFoundMatches,\n pendingActionResult: [\n route.id,\n {\n type: ResultType.error,\n error,\n },\n ],\n };\n } else {\n matches = discoverResult.matches;\n }\n }\n\n // Call our action and get the result\n let result: DataResult;\n let actionMatch = getTargetMatch(matches, location);\n\n if (!actionMatch.route.action && !actionMatch.route.lazy) {\n result = {\n type: ResultType.error,\n error: getInternalRouterError(405, {\n method: request.method,\n pathname: location.pathname,\n routeId: actionMatch.route.id,\n }),\n };\n } else {\n let results = await callDataStrategy(\n \"action\",\n state,\n request,\n [actionMatch],\n matches,\n null\n );\n result = results[actionMatch.route.id];\n\n if (request.signal.aborted) {\n return { shortCircuited: true };\n }\n }\n\n if (isRedirectResult(result)) {\n let replace: boolean;\n if (opts && opts.replace != null) {\n replace = opts.replace;\n } else {\n // If the user didn't explicity indicate replace behavior, replace if\n // we redirected to the exact same location we're currently at to avoid\n // double back-buttons\n let location = normalizeRedirectLocation(\n result.response.headers.get(\"Location\")!,\n new URL(request.url),\n basename\n );\n replace = location === state.location.pathname + state.location.search;\n }\n await startRedirectNavigation(request, result, true, {\n submission,\n replace,\n });\n return { shortCircuited: true };\n }\n\n if (isDeferredResult(result)) {\n throw getInternalRouterError(400, { type: \"defer-action\" });\n }\n\n if (isErrorResult(result)) {\n // Store off the pending error - we use it to determine which loaders\n // to call and will commit it when we complete the navigation\n let boundaryMatch = findNearestBoundary(matches, actionMatch.route.id);\n\n // By default, all submissions to the current location are REPLACE\n // navigations, but if the action threw an error that'll be rendered in\n // an errorElement, we fall back to PUSH so that the user can use the\n // back button to get back to the pre-submission form location to try\n // again\n if ((opts && opts.replace) !== true) {\n pendingAction = HistoryAction.Push;\n }\n\n return {\n matches,\n pendingActionResult: [boundaryMatch.route.id, result],\n };\n }\n\n return {\n matches,\n pendingActionResult: [actionMatch.route.id, result],\n };\n }\n\n // Call all applicable loaders for the given matches, handling redirects,\n // errors, etc.\n async function handleLoaders(\n request: Request,\n location: Location,\n matches: AgnosticDataRouteMatch[],\n isFogOfWar: boolean,\n overrideNavigation?: Navigation,\n submission?: Submission,\n fetcherSubmission?: Submission,\n replace?: boolean,\n initialHydration?: boolean,\n flushSync?: boolean,\n pendingActionResult?: PendingActionResult\n ): Promise {\n // Figure out the right navigation we want to use for data loading\n let loadingNavigation =\n overrideNavigation || getLoadingNavigation(location, submission);\n\n // If this was a redirect from an action we don't have a \"submission\" but\n // we have it on the loading navigation so use that if available\n let activeSubmission =\n submission ||\n fetcherSubmission ||\n getSubmissionFromNavigation(loadingNavigation);\n\n // If this is an uninterrupted revalidation, we remain in our current idle\n // state. If not, we need to switch to our loading state and load data,\n // preserving any new action data or existing action data (in the case of\n // a revalidation interrupting an actionReload)\n // If we have partialHydration enabled, then don't update the state for the\n // initial data load since it's not a \"navigation\"\n let shouldUpdateNavigationState =\n !isUninterruptedRevalidation &&\n (!future.v7_partialHydration || !initialHydration);\n\n // When fog of war is enabled, we enter our `loading` state earlier so we\n // can discover new routes during the `loading` state. We skip this if\n // we've already run actions since we would have done our matching already.\n // If the children() function threw then, we want to proceed with the\n // partial matches it discovered.\n if (isFogOfWar) {\n if (shouldUpdateNavigationState) {\n let actionData = getUpdatedActionData(pendingActionResult);\n updateState(\n {\n navigation: loadingNavigation,\n ...(actionData !== undefined ? { actionData } : {}),\n },\n {\n flushSync,\n }\n );\n }\n\n let discoverResult = await discoverRoutes(\n matches,\n location.pathname,\n request.signal\n );\n\n if (discoverResult.type === \"aborted\") {\n return { shortCircuited: true };\n } else if (discoverResult.type === \"error\") {\n let boundaryId = findNearestBoundary(discoverResult.partialMatches)\n .route.id;\n return {\n matches: discoverResult.partialMatches,\n loaderData: {},\n errors: {\n [boundaryId]: discoverResult.error,\n },\n };\n } else if (!discoverResult.matches) {\n let { error, notFoundMatches, route } = handleNavigational404(\n location.pathname\n );\n return {\n matches: notFoundMatches,\n loaderData: {},\n errors: {\n [route.id]: error,\n },\n };\n } else {\n matches = discoverResult.matches;\n }\n }\n\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let [matchesToLoad, revalidatingFetchers] = getMatchesToLoad(\n init.history,\n state,\n matches,\n activeSubmission,\n location,\n future.v7_partialHydration && initialHydration === true,\n future.v7_skipActionErrorRevalidation,\n isRevalidationRequired,\n cancelledDeferredRoutes,\n cancelledFetcherLoads,\n deletedFetchers,\n fetchLoadMatches,\n fetchRedirectIds,\n routesToUse,\n basename,\n pendingActionResult\n );\n\n // Cancel pending deferreds for no-longer-matched routes or routes we're\n // about to reload. Note that if this is an action reload we would have\n // already cancelled all pending deferreds so this would be a no-op\n cancelActiveDeferreds(\n (routeId) =>\n !(matches && matches.some((m) => m.route.id === routeId)) ||\n (matchesToLoad && matchesToLoad.some((m) => m.route.id === routeId))\n );\n\n pendingNavigationLoadId = ++incrementingLoadId;\n\n // Short circuit if we have no loaders to run\n if (matchesToLoad.length === 0 && revalidatingFetchers.length === 0) {\n let updatedFetchers = markFetchRedirectsDone();\n completeNavigation(\n location,\n {\n matches,\n loaderData: {},\n // Commit pending error if we're short circuiting\n errors:\n pendingActionResult && isErrorResult(pendingActionResult[1])\n ? { [pendingActionResult[0]]: pendingActionResult[1].error }\n : null,\n ...getActionDataForCommit(pendingActionResult),\n ...(updatedFetchers ? { fetchers: new Map(state.fetchers) } : {}),\n },\n { flushSync }\n );\n return { shortCircuited: true };\n }\n\n if (shouldUpdateNavigationState) {\n let updates: Partial = {};\n if (!isFogOfWar) {\n // Only update navigation/actionNData if we didn't already do it above\n updates.navigation = loadingNavigation;\n let actionData = getUpdatedActionData(pendingActionResult);\n if (actionData !== undefined) {\n updates.actionData = actionData;\n }\n }\n if (revalidatingFetchers.length > 0) {\n updates.fetchers = getUpdatedRevalidatingFetchers(revalidatingFetchers);\n }\n updateState(updates, { flushSync });\n }\n\n revalidatingFetchers.forEach((rf) => {\n abortFetcher(rf.key);\n if (rf.controller) {\n // Fetchers use an independent AbortController so that aborting a fetcher\n // (via deleteFetcher) does not abort the triggering navigation that\n // triggered the revalidation\n fetchControllers.set(rf.key, rf.controller);\n }\n });\n\n // Proxy navigation abort through to revalidation fetchers\n let abortPendingFetchRevalidations = () =>\n revalidatingFetchers.forEach((f) => abortFetcher(f.key));\n if (pendingNavigationController) {\n pendingNavigationController.signal.addEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n }\n\n let { loaderResults, fetcherResults } =\n await callLoadersAndMaybeResolveData(\n state,\n matches,\n matchesToLoad,\n revalidatingFetchers,\n request\n );\n\n if (request.signal.aborted) {\n return { shortCircuited: true };\n }\n\n // Clean up _after_ loaders have completed. Don't clean up if we short\n // circuited because fetchControllers would have been aborted and\n // reassigned to new controllers for the next navigation\n if (pendingNavigationController) {\n pendingNavigationController.signal.removeEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n }\n\n revalidatingFetchers.forEach((rf) => fetchControllers.delete(rf.key));\n\n // If any loaders returned a redirect Response, start a new REPLACE navigation\n let redirect = findRedirect(loaderResults);\n if (redirect) {\n await startRedirectNavigation(request, redirect.result, true, {\n replace,\n });\n return { shortCircuited: true };\n }\n\n redirect = findRedirect(fetcherResults);\n if (redirect) {\n // If this redirect came from a fetcher make sure we mark it in\n // fetchRedirectIds so it doesn't get revalidated on the next set of\n // loader executions\n fetchRedirectIds.add(redirect.key);\n await startRedirectNavigation(request, redirect.result, true, {\n replace,\n });\n return { shortCircuited: true };\n }\n\n // Process and commit output from loaders\n let { loaderData, errors } = processLoaderData(\n state,\n matches,\n loaderResults,\n pendingActionResult,\n revalidatingFetchers,\n fetcherResults,\n activeDeferreds\n );\n\n // Wire up subscribers to update loaderData as promises settle\n activeDeferreds.forEach((deferredData, routeId) => {\n deferredData.subscribe((aborted) => {\n // Note: No need to updateState here since the TrackedPromise on\n // loaderData is stable across resolve/reject\n // Remove this instance if we were aborted or if promises have settled\n if (aborted || deferredData.done) {\n activeDeferreds.delete(routeId);\n }\n });\n });\n\n // Preserve SSR errors during partial hydration\n if (future.v7_partialHydration && initialHydration && state.errors) {\n errors = { ...state.errors, ...errors };\n }\n\n let updatedFetchers = markFetchRedirectsDone();\n let didAbortFetchLoads = abortStaleFetchLoads(pendingNavigationLoadId);\n let shouldUpdateFetchers =\n updatedFetchers || didAbortFetchLoads || revalidatingFetchers.length > 0;\n\n return {\n matches,\n loaderData,\n errors,\n ...(shouldUpdateFetchers ? { fetchers: new Map(state.fetchers) } : {}),\n };\n }\n\n function getUpdatedActionData(\n pendingActionResult: PendingActionResult | undefined\n ): Record | null | undefined {\n if (pendingActionResult && !isErrorResult(pendingActionResult[1])) {\n // This is cast to `any` currently because `RouteData`uses any and it\n // would be a breaking change to use any.\n // TODO: v7 - change `RouteData` to use `unknown` instead of `any`\n return {\n [pendingActionResult[0]]: pendingActionResult[1].data as any,\n };\n } else if (state.actionData) {\n if (Object.keys(state.actionData).length === 0) {\n return null;\n } else {\n return state.actionData;\n }\n }\n }\n\n function getUpdatedRevalidatingFetchers(\n revalidatingFetchers: RevalidatingFetcher[]\n ) {\n revalidatingFetchers.forEach((rf) => {\n let fetcher = state.fetchers.get(rf.key);\n let revalidatingFetcher = getLoadingFetcher(\n undefined,\n fetcher ? fetcher.data : undefined\n );\n state.fetchers.set(rf.key, revalidatingFetcher);\n });\n return new Map(state.fetchers);\n }\n\n // Trigger a fetcher load/submit for the given fetcher key\n function fetch(\n key: string,\n routeId: string,\n href: string | null,\n opts?: RouterFetchOptions\n ) {\n if (isServer) {\n throw new Error(\n \"router.fetch() was called during the server render, but it shouldn't be. \" +\n \"You are likely calling a useFetcher() method in the body of your component. \" +\n \"Try moving it to a useEffect or a callback.\"\n );\n }\n\n abortFetcher(key);\n\n let flushSync = (opts && opts.flushSync) === true;\n\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let normalizedPath = normalizeTo(\n state.location,\n state.matches,\n basename,\n future.v7_prependBasename,\n href,\n future.v7_relativeSplatPath,\n routeId,\n opts?.relative\n );\n let matches = matchRoutes(routesToUse, normalizedPath, basename);\n\n let fogOfWar = checkFogOfWar(matches, routesToUse, normalizedPath);\n if (fogOfWar.active && fogOfWar.matches) {\n matches = fogOfWar.matches;\n }\n\n if (!matches) {\n setFetcherError(\n key,\n routeId,\n getInternalRouterError(404, { pathname: normalizedPath }),\n { flushSync }\n );\n return;\n }\n\n let { path, submission, error } = normalizeNavigateOptions(\n future.v7_normalizeFormMethod,\n true,\n normalizedPath,\n opts\n );\n\n if (error) {\n setFetcherError(key, routeId, error, { flushSync });\n return;\n }\n\n let match = getTargetMatch(matches, path);\n\n let preventScrollReset = (opts && opts.preventScrollReset) === true;\n\n if (submission && isMutationMethod(submission.formMethod)) {\n handleFetcherAction(\n key,\n routeId,\n path,\n match,\n matches,\n fogOfWar.active,\n flushSync,\n preventScrollReset,\n submission\n );\n return;\n }\n\n // Store off the match so we can call it's shouldRevalidate on subsequent\n // revalidations\n fetchLoadMatches.set(key, { routeId, path });\n handleFetcherLoader(\n key,\n routeId,\n path,\n match,\n matches,\n fogOfWar.active,\n flushSync,\n preventScrollReset,\n submission\n );\n }\n\n // Call the action for the matched fetcher.submit(), and then handle redirects,\n // errors, and revalidation\n async function handleFetcherAction(\n key: string,\n routeId: string,\n path: string,\n match: AgnosticDataRouteMatch,\n requestMatches: AgnosticDataRouteMatch[],\n isFogOfWar: boolean,\n flushSync: boolean,\n preventScrollReset: boolean,\n submission: Submission\n ) {\n interruptActiveLoads();\n fetchLoadMatches.delete(key);\n\n function detectAndHandle405Error(m: AgnosticDataRouteMatch) {\n if (!m.route.action && !m.route.lazy) {\n let error = getInternalRouterError(405, {\n method: submission.formMethod,\n pathname: path,\n routeId: routeId,\n });\n setFetcherError(key, routeId, error, { flushSync });\n return true;\n }\n return false;\n }\n\n if (!isFogOfWar && detectAndHandle405Error(match)) {\n return;\n }\n\n // Put this fetcher into it's submitting state\n let existingFetcher = state.fetchers.get(key);\n updateFetcherState(key, getSubmittingFetcher(submission, existingFetcher), {\n flushSync,\n });\n\n let abortController = new AbortController();\n let fetchRequest = createClientSideRequest(\n init.history,\n path,\n abortController.signal,\n submission\n );\n\n if (isFogOfWar) {\n let discoverResult = await discoverRoutes(\n requestMatches,\n path,\n fetchRequest.signal\n );\n\n if (discoverResult.type === \"aborted\") {\n return;\n } else if (discoverResult.type === \"error\") {\n setFetcherError(key, routeId, discoverResult.error, { flushSync });\n return;\n } else if (!discoverResult.matches) {\n setFetcherError(\n key,\n routeId,\n getInternalRouterError(404, { pathname: path }),\n { flushSync }\n );\n return;\n } else {\n requestMatches = discoverResult.matches;\n match = getTargetMatch(requestMatches, path);\n\n if (detectAndHandle405Error(match)) {\n return;\n }\n }\n }\n\n // Call the action for the fetcher\n fetchControllers.set(key, abortController);\n\n let originatingLoadId = incrementingLoadId;\n let actionResults = await callDataStrategy(\n \"action\",\n state,\n fetchRequest,\n [match],\n requestMatches,\n key\n );\n let actionResult = actionResults[match.route.id];\n\n if (fetchRequest.signal.aborted) {\n // We can delete this so long as we weren't aborted by our own fetcher\n // re-submit which would have put _new_ controller is in fetchControllers\n if (fetchControllers.get(key) === abortController) {\n fetchControllers.delete(key);\n }\n return;\n }\n\n // When using v7_fetcherPersist, we don't want errors bubbling up to the UI\n // or redirects processed for unmounted fetchers so we just revert them to\n // idle\n if (future.v7_fetcherPersist && deletedFetchers.has(key)) {\n if (isRedirectResult(actionResult) || isErrorResult(actionResult)) {\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n }\n // Let SuccessResult's fall through for revalidation\n } else {\n if (isRedirectResult(actionResult)) {\n fetchControllers.delete(key);\n if (pendingNavigationLoadId > originatingLoadId) {\n // A new navigation was kicked off after our action started, so that\n // should take precedence over this redirect navigation. We already\n // set isRevalidationRequired so all loaders for the new route should\n // fire unless opted out via shouldRevalidate\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n } else {\n fetchRedirectIds.add(key);\n updateFetcherState(key, getLoadingFetcher(submission));\n return startRedirectNavigation(fetchRequest, actionResult, false, {\n fetcherSubmission: submission,\n preventScrollReset,\n });\n }\n }\n\n // Process any non-redirect errors thrown\n if (isErrorResult(actionResult)) {\n setFetcherError(key, routeId, actionResult.error);\n return;\n }\n }\n\n if (isDeferredResult(actionResult)) {\n throw getInternalRouterError(400, { type: \"defer-action\" });\n }\n\n // Start the data load for current matches, or the next location if we're\n // in the middle of a navigation\n let nextLocation = state.navigation.location || state.location;\n let revalidationRequest = createClientSideRequest(\n init.history,\n nextLocation,\n abortController.signal\n );\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let matches =\n state.navigation.state !== \"idle\"\n ? matchRoutes(routesToUse, state.navigation.location, basename)\n : state.matches;\n\n invariant(matches, \"Didn't find any matches after fetcher action\");\n\n let loadId = ++incrementingLoadId;\n fetchReloadIds.set(key, loadId);\n\n let loadFetcher = getLoadingFetcher(submission, actionResult.data);\n state.fetchers.set(key, loadFetcher);\n\n let [matchesToLoad, revalidatingFetchers] = getMatchesToLoad(\n init.history,\n state,\n matches,\n submission,\n nextLocation,\n false,\n future.v7_skipActionErrorRevalidation,\n isRevalidationRequired,\n cancelledDeferredRoutes,\n cancelledFetcherLoads,\n deletedFetchers,\n fetchLoadMatches,\n fetchRedirectIds,\n routesToUse,\n basename,\n [match.route.id, actionResult]\n );\n\n // Put all revalidating fetchers into the loading state, except for the\n // current fetcher which we want to keep in it's current loading state which\n // contains it's action submission info + action data\n revalidatingFetchers\n .filter((rf) => rf.key !== key)\n .forEach((rf) => {\n let staleKey = rf.key;\n let existingFetcher = state.fetchers.get(staleKey);\n let revalidatingFetcher = getLoadingFetcher(\n undefined,\n existingFetcher ? existingFetcher.data : undefined\n );\n state.fetchers.set(staleKey, revalidatingFetcher);\n abortFetcher(staleKey);\n if (rf.controller) {\n fetchControllers.set(staleKey, rf.controller);\n }\n });\n\n updateState({ fetchers: new Map(state.fetchers) });\n\n let abortPendingFetchRevalidations = () =>\n revalidatingFetchers.forEach((rf) => abortFetcher(rf.key));\n\n abortController.signal.addEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n\n let { loaderResults, fetcherResults } =\n await callLoadersAndMaybeResolveData(\n state,\n matches,\n matchesToLoad,\n revalidatingFetchers,\n revalidationRequest\n );\n\n if (abortController.signal.aborted) {\n return;\n }\n\n abortController.signal.removeEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n\n fetchReloadIds.delete(key);\n fetchControllers.delete(key);\n revalidatingFetchers.forEach((r) => fetchControllers.delete(r.key));\n\n let redirect = findRedirect(loaderResults);\n if (redirect) {\n return startRedirectNavigation(\n revalidationRequest,\n redirect.result,\n false,\n { preventScrollReset }\n );\n }\n\n redirect = findRedirect(fetcherResults);\n if (redirect) {\n // If this redirect came from a fetcher make sure we mark it in\n // fetchRedirectIds so it doesn't get revalidated on the next set of\n // loader executions\n fetchRedirectIds.add(redirect.key);\n return startRedirectNavigation(\n revalidationRequest,\n redirect.result,\n false,\n { preventScrollReset }\n );\n }\n\n // Process and commit output from loaders\n let { loaderData, errors } = processLoaderData(\n state,\n matches,\n loaderResults,\n undefined,\n revalidatingFetchers,\n fetcherResults,\n activeDeferreds\n );\n\n // Since we let revalidations complete even if the submitting fetcher was\n // deleted, only put it back to idle if it hasn't been deleted\n if (state.fetchers.has(key)) {\n let doneFetcher = getDoneFetcher(actionResult.data);\n state.fetchers.set(key, doneFetcher);\n }\n\n abortStaleFetchLoads(loadId);\n\n // If we are currently in a navigation loading state and this fetcher is\n // more recent than the navigation, we want the newer data so abort the\n // navigation and complete it with the fetcher data\n if (\n state.navigation.state === \"loading\" &&\n loadId > pendingNavigationLoadId\n ) {\n invariant(pendingAction, \"Expected pending action\");\n pendingNavigationController && pendingNavigationController.abort();\n\n completeNavigation(state.navigation.location, {\n matches,\n loaderData,\n errors,\n fetchers: new Map(state.fetchers),\n });\n } else {\n // otherwise just update with the fetcher data, preserving any existing\n // loaderData for loaders that did not need to reload. We have to\n // manually merge here since we aren't going through completeNavigation\n updateState({\n errors,\n loaderData: mergeLoaderData(\n state.loaderData,\n loaderData,\n matches,\n errors\n ),\n fetchers: new Map(state.fetchers),\n });\n isRevalidationRequired = false;\n }\n }\n\n // Call the matched loader for fetcher.load(), handling redirects, errors, etc.\n async function handleFetcherLoader(\n key: string,\n routeId: string,\n path: string,\n match: AgnosticDataRouteMatch,\n matches: AgnosticDataRouteMatch[],\n isFogOfWar: boolean,\n flushSync: boolean,\n preventScrollReset: boolean,\n submission?: Submission\n ) {\n let existingFetcher = state.fetchers.get(key);\n updateFetcherState(\n key,\n getLoadingFetcher(\n submission,\n existingFetcher ? existingFetcher.data : undefined\n ),\n { flushSync }\n );\n\n let abortController = new AbortController();\n let fetchRequest = createClientSideRequest(\n init.history,\n path,\n abortController.signal\n );\n\n if (isFogOfWar) {\n let discoverResult = await discoverRoutes(\n matches,\n path,\n fetchRequest.signal\n );\n\n if (discoverResult.type === \"aborted\") {\n return;\n } else if (discoverResult.type === \"error\") {\n setFetcherError(key, routeId, discoverResult.error, { flushSync });\n return;\n } else if (!discoverResult.matches) {\n setFetcherError(\n key,\n routeId,\n getInternalRouterError(404, { pathname: path }),\n { flushSync }\n );\n return;\n } else {\n matches = discoverResult.matches;\n match = getTargetMatch(matches, path);\n }\n }\n\n // Call the loader for this fetcher route match\n fetchControllers.set(key, abortController);\n\n let originatingLoadId = incrementingLoadId;\n let results = await callDataStrategy(\n \"loader\",\n state,\n fetchRequest,\n [match],\n matches,\n key\n );\n let result = results[match.route.id];\n\n // Deferred isn't supported for fetcher loads, await everything and treat it\n // as a normal load. resolveDeferredData will return undefined if this\n // fetcher gets aborted, so we just leave result untouched and short circuit\n // below if that happens\n if (isDeferredResult(result)) {\n result =\n (await resolveDeferredData(result, fetchRequest.signal, true)) ||\n result;\n }\n\n // We can delete this so long as we weren't aborted by our our own fetcher\n // re-load which would have put _new_ controller is in fetchControllers\n if (fetchControllers.get(key) === abortController) {\n fetchControllers.delete(key);\n }\n\n if (fetchRequest.signal.aborted) {\n return;\n }\n\n // We don't want errors bubbling up or redirects followed for unmounted\n // fetchers, so short circuit here if it was removed from the UI\n if (deletedFetchers.has(key)) {\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n }\n\n // If the loader threw a redirect Response, start a new REPLACE navigation\n if (isRedirectResult(result)) {\n if (pendingNavigationLoadId > originatingLoadId) {\n // A new navigation was kicked off after our loader started, so that\n // should take precedence over this redirect navigation\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n } else {\n fetchRedirectIds.add(key);\n await startRedirectNavigation(fetchRequest, result, false, {\n preventScrollReset,\n });\n return;\n }\n }\n\n // Process any non-redirect errors thrown\n if (isErrorResult(result)) {\n setFetcherError(key, routeId, result.error);\n return;\n }\n\n invariant(!isDeferredResult(result), \"Unhandled fetcher deferred data\");\n\n // Put the fetcher back into an idle state\n updateFetcherState(key, getDoneFetcher(result.data));\n }\n\n /**\n * Utility function to handle redirects returned from an action or loader.\n * Normally, a redirect \"replaces\" the navigation that triggered it. So, for\n * example:\n *\n * - user is on /a\n * - user clicks a link to /b\n * - loader for /b redirects to /c\n *\n * In a non-JS app the browser would track the in-flight navigation to /b and\n * then replace it with /c when it encountered the redirect response. In\n * the end it would only ever update the URL bar with /c.\n *\n * In client-side routing using pushState/replaceState, we aim to emulate\n * this behavior and we also do not update history until the end of the\n * navigation (including processed redirects). This means that we never\n * actually touch history until we've processed redirects, so we just use\n * the history action from the original navigation (PUSH or REPLACE).\n */\n async function startRedirectNavigation(\n request: Request,\n redirect: RedirectResult,\n isNavigation: boolean,\n {\n submission,\n fetcherSubmission,\n preventScrollReset,\n replace,\n }: {\n submission?: Submission;\n fetcherSubmission?: Submission;\n preventScrollReset?: boolean;\n replace?: boolean;\n } = {}\n ) {\n if (redirect.response.headers.has(\"X-Remix-Revalidate\")) {\n isRevalidationRequired = true;\n }\n\n let location = redirect.response.headers.get(\"Location\");\n invariant(location, \"Expected a Location header on the redirect Response\");\n location = normalizeRedirectLocation(\n location,\n new URL(request.url),\n basename\n );\n let redirectLocation = createLocation(state.location, location, {\n _isRedirect: true,\n });\n\n if (isBrowser) {\n let isDocumentReload = false;\n\n if (redirect.response.headers.has(\"X-Remix-Reload-Document\")) {\n // Hard reload if the response contained X-Remix-Reload-Document\n isDocumentReload = true;\n } else if (ABSOLUTE_URL_REGEX.test(location)) {\n const url = init.history.createURL(location);\n isDocumentReload =\n // Hard reload if it's an absolute URL to a new origin\n url.origin !== routerWindow.location.origin ||\n // Hard reload if it's an absolute URL that does not match our basename\n stripBasename(url.pathname, basename) == null;\n }\n\n if (isDocumentReload) {\n if (replace) {\n routerWindow.location.replace(location);\n } else {\n routerWindow.location.assign(location);\n }\n return;\n }\n }\n\n // There's no need to abort on redirects, since we don't detect the\n // redirect until the action/loaders have settled\n pendingNavigationController = null;\n\n let redirectHistoryAction =\n replace === true || redirect.response.headers.has(\"X-Remix-Replace\")\n ? HistoryAction.Replace\n : HistoryAction.Push;\n\n // Use the incoming submission if provided, fallback on the active one in\n // state.navigation\n let { formMethod, formAction, formEncType } = state.navigation;\n if (\n !submission &&\n !fetcherSubmission &&\n formMethod &&\n formAction &&\n formEncType\n ) {\n submission = getSubmissionFromNavigation(state.navigation);\n }\n\n // If this was a 307/308 submission we want to preserve the HTTP method and\n // re-submit the GET/POST/PUT/PATCH/DELETE as a submission navigation to the\n // redirected location\n let activeSubmission = submission || fetcherSubmission;\n if (\n redirectPreserveMethodStatusCodes.has(redirect.response.status) &&\n activeSubmission &&\n isMutationMethod(activeSubmission.formMethod)\n ) {\n await startNavigation(redirectHistoryAction, redirectLocation, {\n submission: {\n ...activeSubmission,\n formAction: location,\n },\n // Preserve these flags across redirects\n preventScrollReset: preventScrollReset || pendingPreventScrollReset,\n enableViewTransition: isNavigation\n ? pendingViewTransitionEnabled\n : undefined,\n });\n } else {\n // If we have a navigation submission, we will preserve it through the\n // redirect navigation\n let overrideNavigation = getLoadingNavigation(\n redirectLocation,\n submission\n );\n await startNavigation(redirectHistoryAction, redirectLocation, {\n overrideNavigation,\n // Send fetcher submissions through for shouldRevalidate\n fetcherSubmission,\n // Preserve these flags across redirects\n preventScrollReset: preventScrollReset || pendingPreventScrollReset,\n enableViewTransition: isNavigation\n ? pendingViewTransitionEnabled\n : undefined,\n });\n }\n }\n\n // Utility wrapper for calling dataStrategy client-side without having to\n // pass around the manifest, mapRouteProperties, etc.\n async function callDataStrategy(\n type: \"loader\" | \"action\",\n state: RouterState,\n request: Request,\n matchesToLoad: AgnosticDataRouteMatch[],\n matches: AgnosticDataRouteMatch[],\n fetcherKey: string | null\n ): Promise> {\n let results: Record;\n let dataResults: Record = {};\n try {\n results = await callDataStrategyImpl(\n dataStrategyImpl,\n type,\n state,\n request,\n matchesToLoad,\n matches,\n fetcherKey,\n manifest,\n mapRouteProperties\n );\n } catch (e) {\n // If the outer dataStrategy method throws, just return the error for all\n // matches - and it'll naturally bubble to the root\n matchesToLoad.forEach((m) => {\n dataResults[m.route.id] = {\n type: ResultType.error,\n error: e,\n };\n });\n return dataResults;\n }\n\n for (let [routeId, result] of Object.entries(results)) {\n if (isRedirectDataStrategyResultResult(result)) {\n let response = result.result as Response;\n dataResults[routeId] = {\n type: ResultType.redirect,\n response: normalizeRelativeRoutingRedirectResponse(\n response,\n request,\n routeId,\n matches,\n basename,\n future.v7_relativeSplatPath\n ),\n };\n } else {\n dataResults[routeId] = await convertDataStrategyResultToDataResult(\n result\n );\n }\n }\n\n return dataResults;\n }\n\n async function callLoadersAndMaybeResolveData(\n state: RouterState,\n matches: AgnosticDataRouteMatch[],\n matchesToLoad: AgnosticDataRouteMatch[],\n fetchersToLoad: RevalidatingFetcher[],\n request: Request\n ) {\n let currentMatches = state.matches;\n\n // Kick off loaders and fetchers in parallel\n let loaderResultsPromise = callDataStrategy(\n \"loader\",\n state,\n request,\n matchesToLoad,\n matches,\n null\n );\n\n let fetcherResultsPromise = Promise.all(\n fetchersToLoad.map(async (f) => {\n if (f.matches && f.match && f.controller) {\n let results = await callDataStrategy(\n \"loader\",\n state,\n createClientSideRequest(init.history, f.path, f.controller.signal),\n [f.match],\n f.matches,\n f.key\n );\n let result = results[f.match.route.id];\n // Fetcher results are keyed by fetcher key from here on out, not routeId\n return { [f.key]: result };\n } else {\n return Promise.resolve({\n [f.key]: {\n type: ResultType.error,\n error: getInternalRouterError(404, {\n pathname: f.path,\n }),\n } as ErrorResult,\n });\n }\n })\n );\n\n let loaderResults = await loaderResultsPromise;\n let fetcherResults = (await fetcherResultsPromise).reduce(\n (acc, r) => Object.assign(acc, r),\n {}\n );\n\n await Promise.all([\n resolveNavigationDeferredResults(\n matches,\n loaderResults,\n request.signal,\n currentMatches,\n state.loaderData\n ),\n resolveFetcherDeferredResults(matches, fetcherResults, fetchersToLoad),\n ]);\n\n return {\n loaderResults,\n fetcherResults,\n };\n }\n\n function interruptActiveLoads() {\n // Every interruption triggers a revalidation\n isRevalidationRequired = true;\n\n // Cancel pending route-level deferreds and mark cancelled routes for\n // revalidation\n cancelledDeferredRoutes.push(...cancelActiveDeferreds());\n\n // Abort in-flight fetcher loads\n fetchLoadMatches.forEach((_, key) => {\n if (fetchControllers.has(key)) {\n cancelledFetcherLoads.add(key);\n }\n abortFetcher(key);\n });\n }\n\n function updateFetcherState(\n key: string,\n fetcher: Fetcher,\n opts: { flushSync?: boolean } = {}\n ) {\n state.fetchers.set(key, fetcher);\n updateState(\n { fetchers: new Map(state.fetchers) },\n { flushSync: (opts && opts.flushSync) === true }\n );\n }\n\n function setFetcherError(\n key: string,\n routeId: string,\n error: any,\n opts: { flushSync?: boolean } = {}\n ) {\n let boundaryMatch = findNearestBoundary(state.matches, routeId);\n deleteFetcher(key);\n updateState(\n {\n errors: {\n [boundaryMatch.route.id]: error,\n },\n fetchers: new Map(state.fetchers),\n },\n { flushSync: (opts && opts.flushSync) === true }\n );\n }\n\n function getFetcher(key: string): Fetcher {\n if (future.v7_fetcherPersist) {\n activeFetchers.set(key, (activeFetchers.get(key) || 0) + 1);\n // If this fetcher was previously marked for deletion, unmark it since we\n // have a new instance\n if (deletedFetchers.has(key)) {\n deletedFetchers.delete(key);\n }\n }\n return state.fetchers.get(key) || IDLE_FETCHER;\n }\n\n function deleteFetcher(key: string): void {\n let fetcher = state.fetchers.get(key);\n // Don't abort the controller if this is a deletion of a fetcher.submit()\n // in it's loading phase since - we don't want to abort the corresponding\n // revalidation and want them to complete and land\n if (\n fetchControllers.has(key) &&\n !(fetcher && fetcher.state === \"loading\" && fetchReloadIds.has(key))\n ) {\n abortFetcher(key);\n }\n fetchLoadMatches.delete(key);\n fetchReloadIds.delete(key);\n fetchRedirectIds.delete(key);\n deletedFetchers.delete(key);\n cancelledFetcherLoads.delete(key);\n state.fetchers.delete(key);\n }\n\n function deleteFetcherAndUpdateState(key: string): void {\n if (future.v7_fetcherPersist) {\n let count = (activeFetchers.get(key) || 0) - 1;\n if (count <= 0) {\n activeFetchers.delete(key);\n deletedFetchers.add(key);\n } else {\n activeFetchers.set(key, count);\n }\n } else {\n deleteFetcher(key);\n }\n updateState({ fetchers: new Map(state.fetchers) });\n }\n\n function abortFetcher(key: string) {\n let controller = fetchControllers.get(key);\n if (controller) {\n controller.abort();\n fetchControllers.delete(key);\n }\n }\n\n function markFetchersDone(keys: string[]) {\n for (let key of keys) {\n let fetcher = getFetcher(key);\n let doneFetcher = getDoneFetcher(fetcher.data);\n state.fetchers.set(key, doneFetcher);\n }\n }\n\n function markFetchRedirectsDone(): boolean {\n let doneKeys = [];\n let updatedFetchers = false;\n for (let key of fetchRedirectIds) {\n let fetcher = state.fetchers.get(key);\n invariant(fetcher, `Expected fetcher: ${key}`);\n if (fetcher.state === \"loading\") {\n fetchRedirectIds.delete(key);\n doneKeys.push(key);\n updatedFetchers = true;\n }\n }\n markFetchersDone(doneKeys);\n return updatedFetchers;\n }\n\n function abortStaleFetchLoads(landedId: number): boolean {\n let yeetedKeys = [];\n for (let [key, id] of fetchReloadIds) {\n if (id < landedId) {\n let fetcher = state.fetchers.get(key);\n invariant(fetcher, `Expected fetcher: ${key}`);\n if (fetcher.state === \"loading\") {\n abortFetcher(key);\n fetchReloadIds.delete(key);\n yeetedKeys.push(key);\n }\n }\n }\n markFetchersDone(yeetedKeys);\n return yeetedKeys.length > 0;\n }\n\n function getBlocker(key: string, fn: BlockerFunction) {\n let blocker: Blocker = state.blockers.get(key) || IDLE_BLOCKER;\n\n if (blockerFunctions.get(key) !== fn) {\n blockerFunctions.set(key, fn);\n }\n\n return blocker;\n }\n\n function deleteBlocker(key: string) {\n state.blockers.delete(key);\n blockerFunctions.delete(key);\n }\n\n // Utility function to update blockers, ensuring valid state transitions\n function updateBlocker(key: string, newBlocker: Blocker) {\n let blocker = state.blockers.get(key) || IDLE_BLOCKER;\n\n // Poor mans state machine :)\n // https://mermaid.live/edit#pako:eNqVkc9OwzAMxl8l8nnjAYrEtDIOHEBIgwvKJTReGy3_lDpIqO27k6awMG0XcrLlnz87nwdonESogKXXBuE79rq75XZO3-yHds0RJVuv70YrPlUrCEe2HfrORS3rubqZfuhtpg5C9wk5tZ4VKcRUq88q9Z8RS0-48cE1iHJkL0ugbHuFLus9L6spZy8nX9MP2CNdomVaposqu3fGayT8T8-jJQwhepo_UtpgBQaDEUom04dZhAN1aJBDlUKJBxE1ceB2Smj0Mln-IBW5AFU2dwUiktt_2Qaq2dBfaKdEup85UV7Yd-dKjlnkabl2Pvr0DTkTreM\n invariant(\n (blocker.state === \"unblocked\" && newBlocker.state === \"blocked\") ||\n (blocker.state === \"blocked\" && newBlocker.state === \"blocked\") ||\n (blocker.state === \"blocked\" && newBlocker.state === \"proceeding\") ||\n (blocker.state === \"blocked\" && newBlocker.state === \"unblocked\") ||\n (blocker.state === \"proceeding\" && newBlocker.state === \"unblocked\"),\n `Invalid blocker state transition: ${blocker.state} -> ${newBlocker.state}`\n );\n\n let blockers = new Map(state.blockers);\n blockers.set(key, newBlocker);\n updateState({ blockers });\n }\n\n function shouldBlockNavigation({\n currentLocation,\n nextLocation,\n historyAction,\n }: {\n currentLocation: Location;\n nextLocation: Location;\n historyAction: HistoryAction;\n }): string | undefined {\n if (blockerFunctions.size === 0) {\n return;\n }\n\n // We ony support a single active blocker at the moment since we don't have\n // any compelling use cases for multi-blocker yet\n if (blockerFunctions.size > 1) {\n warning(false, \"A router only supports one blocker at a time\");\n }\n\n let entries = Array.from(blockerFunctions.entries());\n let [blockerKey, blockerFunction] = entries[entries.length - 1];\n let blocker = state.blockers.get(blockerKey);\n\n if (blocker && blocker.state === \"proceeding\") {\n // If the blocker is currently proceeding, we don't need to re-check\n // it and can let this navigation continue\n return;\n }\n\n // At this point, we know we're unblocked/blocked so we need to check the\n // user-provided blocker function\n if (blockerFunction({ currentLocation, nextLocation, historyAction })) {\n return blockerKey;\n }\n }\n\n function handleNavigational404(pathname: string) {\n let error = getInternalRouterError(404, { pathname });\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let { matches, route } = getShortCircuitMatches(routesToUse);\n\n // Cancel all pending deferred on 404s since we don't keep any routes\n cancelActiveDeferreds();\n\n return { notFoundMatches: matches, route, error };\n }\n\n function cancelActiveDeferreds(\n predicate?: (routeId: string) => boolean\n ): string[] {\n let cancelledRouteIds: string[] = [];\n activeDeferreds.forEach((dfd, routeId) => {\n if (!predicate || predicate(routeId)) {\n // Cancel the deferred - but do not remove from activeDeferreds here -\n // we rely on the subscribers to do that so our tests can assert proper\n // cleanup via _internalActiveDeferreds\n dfd.cancel();\n cancelledRouteIds.push(routeId);\n activeDeferreds.delete(routeId);\n }\n });\n return cancelledRouteIds;\n }\n\n // Opt in to capturing and reporting scroll positions during navigations,\n // used by the component\n function enableScrollRestoration(\n positions: Record,\n getPosition: GetScrollPositionFunction,\n getKey?: GetScrollRestorationKeyFunction\n ) {\n savedScrollPositions = positions;\n getScrollPosition = getPosition;\n getScrollRestorationKey = getKey || null;\n\n // Perform initial hydration scroll restoration, since we miss the boat on\n // the initial updateState() because we've not yet rendered \n // and therefore have no savedScrollPositions available\n if (!initialScrollRestored && state.navigation === IDLE_NAVIGATION) {\n initialScrollRestored = true;\n let y = getSavedScrollPosition(state.location, state.matches);\n if (y != null) {\n updateState({ restoreScrollPosition: y });\n }\n }\n\n return () => {\n savedScrollPositions = null;\n getScrollPosition = null;\n getScrollRestorationKey = null;\n };\n }\n\n function getScrollKey(location: Location, matches: AgnosticDataRouteMatch[]) {\n if (getScrollRestorationKey) {\n let key = getScrollRestorationKey(\n location,\n matches.map((m) => convertRouteMatchToUiMatch(m, state.loaderData))\n );\n return key || location.key;\n }\n return location.key;\n }\n\n function saveScrollPosition(\n location: Location,\n matches: AgnosticDataRouteMatch[]\n ): void {\n if (savedScrollPositions && getScrollPosition) {\n let key = getScrollKey(location, matches);\n savedScrollPositions[key] = getScrollPosition();\n }\n }\n\n function getSavedScrollPosition(\n location: Location,\n matches: AgnosticDataRouteMatch[]\n ): number | null {\n if (savedScrollPositions) {\n let key = getScrollKey(location, matches);\n let y = savedScrollPositions[key];\n if (typeof y === \"number\") {\n return y;\n }\n }\n return null;\n }\n\n function checkFogOfWar(\n matches: AgnosticDataRouteMatch[] | null,\n routesToUse: AgnosticDataRouteObject[],\n pathname: string\n ): { active: boolean; matches: AgnosticDataRouteMatch[] | null } {\n if (patchRoutesOnNavigationImpl) {\n if (!matches) {\n let fogMatches = matchRoutesImpl(\n routesToUse,\n pathname,\n basename,\n true\n );\n\n return { active: true, matches: fogMatches || [] };\n } else {\n if (Object.keys(matches[0].params).length > 0) {\n // If we matched a dynamic param or a splat, it might only be because\n // we haven't yet discovered other routes that would match with a\n // higher score. Call patchRoutesOnNavigation just to be sure\n let partialMatches = matchRoutesImpl(\n routesToUse,\n pathname,\n basename,\n true\n );\n return { active: true, matches: partialMatches };\n }\n }\n }\n\n return { active: false, matches: null };\n }\n\n type DiscoverRoutesSuccessResult = {\n type: \"success\";\n matches: AgnosticDataRouteMatch[] | null;\n };\n type DiscoverRoutesErrorResult = {\n type: \"error\";\n error: any;\n partialMatches: AgnosticDataRouteMatch[];\n };\n type DiscoverRoutesAbortedResult = { type: \"aborted\" };\n type DiscoverRoutesResult =\n | DiscoverRoutesSuccessResult\n | DiscoverRoutesErrorResult\n | DiscoverRoutesAbortedResult;\n\n async function discoverRoutes(\n matches: AgnosticDataRouteMatch[],\n pathname: string,\n signal: AbortSignal\n ): Promise {\n if (!patchRoutesOnNavigationImpl) {\n return { type: \"success\", matches };\n }\n\n let partialMatches: AgnosticDataRouteMatch[] | null = matches;\n while (true) {\n let isNonHMR = inFlightDataRoutes == null;\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let localManifest = manifest;\n try {\n await patchRoutesOnNavigationImpl({\n path: pathname,\n matches: partialMatches,\n patch: (routeId, children) => {\n if (signal.aborted) return;\n patchRoutesImpl(\n routeId,\n children,\n routesToUse,\n localManifest,\n mapRouteProperties\n );\n },\n });\n } catch (e) {\n return { type: \"error\", error: e, partialMatches };\n } finally {\n // If we are not in the middle of an HMR revalidation and we changed the\n // routes, provide a new identity so when we `updateState` at the end of\n // this navigation/fetch `router.routes` will be a new identity and\n // trigger a re-run of memoized `router.routes` dependencies.\n // HMR will already update the identity and reflow when it lands\n // `inFlightDataRoutes` in `completeNavigation`\n if (isNonHMR && !signal.aborted) {\n dataRoutes = [...dataRoutes];\n }\n }\n\n if (signal.aborted) {\n return { type: \"aborted\" };\n }\n\n let newMatches = matchRoutes(routesToUse, pathname, basename);\n if (newMatches) {\n return { type: \"success\", matches: newMatches };\n }\n\n let newPartialMatches = matchRoutesImpl(\n routesToUse,\n pathname,\n basename,\n true\n );\n\n // Avoid loops if the second pass results in the same partial matches\n if (\n !newPartialMatches ||\n (partialMatches.length === newPartialMatches.length &&\n partialMatches.every(\n (m, i) => m.route.id === newPartialMatches![i].route.id\n ))\n ) {\n return { type: \"success\", matches: null };\n }\n\n partialMatches = newPartialMatches;\n }\n }\n\n function _internalSetRoutes(newRoutes: AgnosticDataRouteObject[]) {\n manifest = {};\n inFlightDataRoutes = convertRoutesToDataRoutes(\n newRoutes,\n mapRouteProperties,\n undefined,\n manifest\n );\n }\n\n function patchRoutes(\n routeId: string | null,\n children: AgnosticRouteObject[]\n ): void {\n let isNonHMR = inFlightDataRoutes == null;\n let routesToUse = inFlightDataRoutes || dataRoutes;\n patchRoutesImpl(\n routeId,\n children,\n routesToUse,\n manifest,\n mapRouteProperties\n );\n\n // If we are not in the middle of an HMR revalidation and we changed the\n // routes, provide a new identity and trigger a reflow via `updateState`\n // to re-run memoized `router.routes` dependencies.\n // HMR will already update the identity and reflow when it lands\n // `inFlightDataRoutes` in `completeNavigation`\n if (isNonHMR) {\n dataRoutes = [...dataRoutes];\n updateState({});\n }\n }\n\n router = {\n get basename() {\n return basename;\n },\n get future() {\n return future;\n },\n get state() {\n return state;\n },\n get routes() {\n return dataRoutes;\n },\n get window() {\n return routerWindow;\n },\n initialize,\n subscribe,\n enableScrollRestoration,\n navigate,\n fetch,\n revalidate,\n // Passthrough to history-aware createHref used by useHref so we get proper\n // hash-aware URLs in DOM paths\n createHref: (to: To) => init.history.createHref(to),\n encodeLocation: (to: To) => init.history.encodeLocation(to),\n getFetcher,\n deleteFetcher: deleteFetcherAndUpdateState,\n dispose,\n getBlocker,\n deleteBlocker,\n patchRoutes,\n _internalFetchControllers: fetchControllers,\n _internalActiveDeferreds: activeDeferreds,\n // TODO: Remove setRoutes, it's temporary to avoid dealing with\n // updating the tree while validating the update algorithm.\n _internalSetRoutes,\n };\n\n return router;\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region createStaticHandler\n////////////////////////////////////////////////////////////////////////////////\n\nexport const UNSAFE_DEFERRED_SYMBOL = Symbol(\"deferred\");\n\n/**\n * Future flags to toggle new feature behavior\n */\nexport interface StaticHandlerFutureConfig {\n v7_relativeSplatPath: boolean;\n v7_throwAbortReason: boolean;\n}\n\nexport interface CreateStaticHandlerOptions {\n basename?: string;\n /**\n * @deprecated Use `mapRouteProperties` instead\n */\n detectErrorBoundary?: DetectErrorBoundaryFunction;\n mapRouteProperties?: MapRoutePropertiesFunction;\n future?: Partial;\n}\n\nexport function createStaticHandler(\n routes: AgnosticRouteObject[],\n opts?: CreateStaticHandlerOptions\n): StaticHandler {\n invariant(\n routes.length > 0,\n \"You must provide a non-empty routes array to createStaticHandler\"\n );\n\n let manifest: RouteManifest = {};\n let basename = (opts ? opts.basename : null) || \"/\";\n let mapRouteProperties: MapRoutePropertiesFunction;\n if (opts?.mapRouteProperties) {\n mapRouteProperties = opts.mapRouteProperties;\n } else if (opts?.detectErrorBoundary) {\n // If they are still using the deprecated version, wrap it with the new API\n let detectErrorBoundary = opts.detectErrorBoundary;\n mapRouteProperties = (route) => ({\n hasErrorBoundary: detectErrorBoundary(route),\n });\n } else {\n mapRouteProperties = defaultMapRouteProperties;\n }\n // Config driven behavior flags\n let future: StaticHandlerFutureConfig = {\n v7_relativeSplatPath: false,\n v7_throwAbortReason: false,\n ...(opts ? opts.future : null),\n };\n\n let dataRoutes = convertRoutesToDataRoutes(\n routes,\n mapRouteProperties,\n undefined,\n manifest\n );\n\n /**\n * The query() method is intended for document requests, in which we want to\n * call an optional action and potentially multiple loaders for all nested\n * routes. It returns a StaticHandlerContext object, which is very similar\n * to the router state (location, loaderData, actionData, errors, etc.) and\n * also adds SSR-specific information such as the statusCode and headers\n * from action/loaders Responses.\n *\n * It _should_ never throw and should report all errors through the\n * returned context.errors object, properly associating errors to their error\n * boundary. Additionally, it tracks _deepestRenderedBoundaryId which can be\n * used to emulate React error boundaries during SSr by performing a second\n * pass only down to the boundaryId.\n *\n * The one exception where we do not return a StaticHandlerContext is when a\n * redirect response is returned or thrown from any action/loader. We\n * propagate that out and return the raw Response so the HTTP server can\n * return it directly.\n *\n * - `opts.requestContext` is an optional server context that will be passed\n * to actions/loaders in the `context` parameter\n * - `opts.skipLoaderErrorBubbling` is an optional parameter that will prevent\n * the bubbling of errors which allows single-fetch-type implementations\n * where the client will handle the bubbling and we may need to return data\n * for the handling route\n */\n async function query(\n request: Request,\n {\n requestContext,\n skipLoaderErrorBubbling,\n dataStrategy,\n }: {\n requestContext?: unknown;\n skipLoaderErrorBubbling?: boolean;\n dataStrategy?: DataStrategyFunction;\n } = {}\n ): Promise {\n let url = new URL(request.url);\n let method = request.method;\n let location = createLocation(\"\", createPath(url), null, \"default\");\n let matches = matchRoutes(dataRoutes, location, basename);\n\n // SSR supports HEAD requests while SPA doesn't\n if (!isValidMethod(method) && method !== \"HEAD\") {\n let error = getInternalRouterError(405, { method });\n let { matches: methodNotAllowedMatches, route } =\n getShortCircuitMatches(dataRoutes);\n return {\n basename,\n location,\n matches: methodNotAllowedMatches,\n loaderData: {},\n actionData: null,\n errors: {\n [route.id]: error,\n },\n statusCode: error.status,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null,\n };\n } else if (!matches) {\n let error = getInternalRouterError(404, { pathname: location.pathname });\n let { matches: notFoundMatches, route } =\n getShortCircuitMatches(dataRoutes);\n return {\n basename,\n location,\n matches: notFoundMatches,\n loaderData: {},\n actionData: null,\n errors: {\n [route.id]: error,\n },\n statusCode: error.status,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null,\n };\n }\n\n let result = await queryImpl(\n request,\n location,\n matches,\n requestContext,\n dataStrategy || null,\n skipLoaderErrorBubbling === true,\n null\n );\n if (isResponse(result)) {\n return result;\n }\n\n // When returning StaticHandlerContext, we patch back in the location here\n // since we need it for React Context. But this helps keep our submit and\n // loadRouteData operating on a Request instead of a Location\n return { location, basename, ...result };\n }\n\n /**\n * The queryRoute() method is intended for targeted route requests, either\n * for fetch ?_data requests or resource route requests. In this case, we\n * are only ever calling a single action or loader, and we are returning the\n * returned value directly. In most cases, this will be a Response returned\n * from the action/loader, but it may be a primitive or other value as well -\n * and in such cases the calling context should handle that accordingly.\n *\n * We do respect the throw/return differentiation, so if an action/loader\n * throws, then this method will throw the value. This is important so we\n * can do proper boundary identification in Remix where a thrown Response\n * must go to the Catch Boundary but a returned Response is happy-path.\n *\n * One thing to note is that any Router-initiated Errors that make sense\n * to associate with a status code will be thrown as an ErrorResponse\n * instance which include the raw Error, such that the calling context can\n * serialize the error as they see fit while including the proper response\n * code. Examples here are 404 and 405 errors that occur prior to reaching\n * any user-defined loaders.\n *\n * - `opts.routeId` allows you to specify the specific route handler to call.\n * If not provided the handler will determine the proper route by matching\n * against `request.url`\n * - `opts.requestContext` is an optional server context that will be passed\n * to actions/loaders in the `context` parameter\n */\n async function queryRoute(\n request: Request,\n {\n routeId,\n requestContext,\n dataStrategy,\n }: {\n requestContext?: unknown;\n routeId?: string;\n dataStrategy?: DataStrategyFunction;\n } = {}\n ): Promise {\n let url = new URL(request.url);\n let method = request.method;\n let location = createLocation(\"\", createPath(url), null, \"default\");\n let matches = matchRoutes(dataRoutes, location, basename);\n\n // SSR supports HEAD requests while SPA doesn't\n if (!isValidMethod(method) && method !== \"HEAD\" && method !== \"OPTIONS\") {\n throw getInternalRouterError(405, { method });\n } else if (!matches) {\n throw getInternalRouterError(404, { pathname: location.pathname });\n }\n\n let match = routeId\n ? matches.find((m) => m.route.id === routeId)\n : getTargetMatch(matches, location);\n\n if (routeId && !match) {\n throw getInternalRouterError(403, {\n pathname: location.pathname,\n routeId,\n });\n } else if (!match) {\n // This should never hit I don't think?\n throw getInternalRouterError(404, { pathname: location.pathname });\n }\n\n let result = await queryImpl(\n request,\n location,\n matches,\n requestContext,\n dataStrategy || null,\n false,\n match\n );\n\n if (isResponse(result)) {\n return result;\n }\n\n let error = result.errors ? Object.values(result.errors)[0] : undefined;\n if (error !== undefined) {\n // If we got back result.errors, that means the loader/action threw\n // _something_ that wasn't a Response, but it's not guaranteed/required\n // to be an `instanceof Error` either, so we have to use throw here to\n // preserve the \"error\" state outside of queryImpl.\n throw error;\n }\n\n // Pick off the right state value to return\n if (result.actionData) {\n return Object.values(result.actionData)[0];\n }\n\n if (result.loaderData) {\n let data = Object.values(result.loaderData)[0];\n if (result.activeDeferreds?.[match.route.id]) {\n data[UNSAFE_DEFERRED_SYMBOL] = result.activeDeferreds[match.route.id];\n }\n return data;\n }\n\n return undefined;\n }\n\n async function queryImpl(\n request: Request,\n location: Location,\n matches: AgnosticDataRouteMatch[],\n requestContext: unknown,\n dataStrategy: DataStrategyFunction | null,\n skipLoaderErrorBubbling: boolean,\n routeMatch: AgnosticDataRouteMatch | null\n ): Promise | Response> {\n invariant(\n request.signal,\n \"query()/queryRoute() requests must contain an AbortController signal\"\n );\n\n try {\n if (isMutationMethod(request.method.toLowerCase())) {\n let result = await submit(\n request,\n matches,\n routeMatch || getTargetMatch(matches, location),\n requestContext,\n dataStrategy,\n skipLoaderErrorBubbling,\n routeMatch != null\n );\n return result;\n }\n\n let result = await loadRouteData(\n request,\n matches,\n requestContext,\n dataStrategy,\n skipLoaderErrorBubbling,\n routeMatch\n );\n return isResponse(result)\n ? result\n : {\n ...result,\n actionData: null,\n actionHeaders: {},\n };\n } catch (e) {\n // If the user threw/returned a Response in callLoaderOrAction for a\n // `queryRoute` call, we throw the `DataStrategyResult` to bail out early\n // and then return or throw the raw Response here accordingly\n if (isDataStrategyResult(e) && isResponse(e.result)) {\n if (e.type === ResultType.error) {\n throw e.result;\n }\n return e.result;\n }\n // Redirects are always returned since they don't propagate to catch\n // boundaries\n if (isRedirectResponse(e)) {\n return e;\n }\n throw e;\n }\n }\n\n async function submit(\n request: Request,\n matches: AgnosticDataRouteMatch[],\n actionMatch: AgnosticDataRouteMatch,\n requestContext: unknown,\n dataStrategy: DataStrategyFunction | null,\n skipLoaderErrorBubbling: boolean,\n isRouteRequest: boolean\n ): Promise | Response> {\n let result: DataResult;\n\n if (!actionMatch.route.action && !actionMatch.route.lazy) {\n let error = getInternalRouterError(405, {\n method: request.method,\n pathname: new URL(request.url).pathname,\n routeId: actionMatch.route.id,\n });\n if (isRouteRequest) {\n throw error;\n }\n result = {\n type: ResultType.error,\n error,\n };\n } else {\n let results = await callDataStrategy(\n \"action\",\n request,\n [actionMatch],\n matches,\n isRouteRequest,\n requestContext,\n dataStrategy\n );\n result = results[actionMatch.route.id];\n\n if (request.signal.aborted) {\n throwStaticHandlerAbortedError(request, isRouteRequest, future);\n }\n }\n\n if (isRedirectResult(result)) {\n // Uhhhh - this should never happen, we should always throw these from\n // callLoaderOrAction, but the type narrowing here keeps TS happy and we\n // can get back on the \"throw all redirect responses\" train here should\n // this ever happen :/\n throw new Response(null, {\n status: result.response.status,\n headers: {\n Location: result.response.headers.get(\"Location\")!,\n },\n });\n }\n\n if (isDeferredResult(result)) {\n let error = getInternalRouterError(400, { type: \"defer-action\" });\n if (isRouteRequest) {\n throw error;\n }\n result = {\n type: ResultType.error,\n error,\n };\n }\n\n if (isRouteRequest) {\n // Note: This should only be non-Response values if we get here, since\n // isRouteRequest should throw any Response received in callLoaderOrAction\n if (isErrorResult(result)) {\n throw result.error;\n }\n\n return {\n matches: [actionMatch],\n loaderData: {},\n actionData: { [actionMatch.route.id]: result.data },\n errors: null,\n // Note: statusCode + headers are unused here since queryRoute will\n // return the raw Response or value\n statusCode: 200,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null,\n };\n }\n\n // Create a GET request for the loaders\n let loaderRequest = new Request(request.url, {\n headers: request.headers,\n redirect: request.redirect,\n signal: request.signal,\n });\n\n if (isErrorResult(result)) {\n // Store off the pending error - we use it to determine which loaders\n // to call and will commit it when we complete the navigation\n let boundaryMatch = skipLoaderErrorBubbling\n ? actionMatch\n : findNearestBoundary(matches, actionMatch.route.id);\n\n let context = await loadRouteData(\n loaderRequest,\n matches,\n requestContext,\n dataStrategy,\n skipLoaderErrorBubbling,\n null,\n [boundaryMatch.route.id, result]\n );\n\n // action status codes take precedence over loader status codes\n return {\n ...context,\n statusCode: isRouteErrorResponse(result.error)\n ? result.error.status\n : result.statusCode != null\n ? result.statusCode\n : 500,\n actionData: null,\n actionHeaders: {\n ...(result.headers ? { [actionMatch.route.id]: result.headers } : {}),\n },\n };\n }\n\n let context = await loadRouteData(\n loaderRequest,\n matches,\n requestContext,\n dataStrategy,\n skipLoaderErrorBubbling,\n null\n );\n\n return {\n ...context,\n actionData: {\n [actionMatch.route.id]: result.data,\n },\n // action status codes take precedence over loader status codes\n ...(result.statusCode ? { statusCode: result.statusCode } : {}),\n actionHeaders: result.headers\n ? { [actionMatch.route.id]: result.headers }\n : {},\n };\n }\n\n async function loadRouteData(\n request: Request,\n matches: AgnosticDataRouteMatch[],\n requestContext: unknown,\n dataStrategy: DataStrategyFunction | null,\n skipLoaderErrorBubbling: boolean,\n routeMatch: AgnosticDataRouteMatch | null,\n pendingActionResult?: PendingActionResult\n ): Promise<\n | Omit<\n StaticHandlerContext,\n \"location\" | \"basename\" | \"actionData\" | \"actionHeaders\"\n >\n | Response\n > {\n let isRouteRequest = routeMatch != null;\n\n // Short circuit if we have no loaders to run (queryRoute())\n if (\n isRouteRequest &&\n !routeMatch?.route.loader &&\n !routeMatch?.route.lazy\n ) {\n throw getInternalRouterError(400, {\n method: request.method,\n pathname: new URL(request.url).pathname,\n routeId: routeMatch?.route.id,\n });\n }\n\n let requestMatches = routeMatch\n ? [routeMatch]\n : pendingActionResult && isErrorResult(pendingActionResult[1])\n ? getLoaderMatchesUntilBoundary(matches, pendingActionResult[0])\n : matches;\n let matchesToLoad = requestMatches.filter(\n (m) => m.route.loader || m.route.lazy\n );\n\n // Short circuit if we have no loaders to run (query())\n if (matchesToLoad.length === 0) {\n return {\n matches,\n // Add a null for all matched routes for proper revalidation on the client\n loaderData: matches.reduce(\n (acc, m) => Object.assign(acc, { [m.route.id]: null }),\n {}\n ),\n errors:\n pendingActionResult && isErrorResult(pendingActionResult[1])\n ? {\n [pendingActionResult[0]]: pendingActionResult[1].error,\n }\n : null,\n statusCode: 200,\n loaderHeaders: {},\n activeDeferreds: null,\n };\n }\n\n let results = await callDataStrategy(\n \"loader\",\n request,\n matchesToLoad,\n matches,\n isRouteRequest,\n requestContext,\n dataStrategy\n );\n\n if (request.signal.aborted) {\n throwStaticHandlerAbortedError(request, isRouteRequest, future);\n }\n\n // Process and commit output from loaders\n let activeDeferreds = new Map();\n let context = processRouteLoaderData(\n matches,\n results,\n pendingActionResult,\n activeDeferreds,\n skipLoaderErrorBubbling\n );\n\n // Add a null for any non-loader matches for proper revalidation on the client\n let executedLoaders = new Set(\n matchesToLoad.map((match) => match.route.id)\n );\n matches.forEach((match) => {\n if (!executedLoaders.has(match.route.id)) {\n context.loaderData[match.route.id] = null;\n }\n });\n\n return {\n ...context,\n matches,\n activeDeferreds:\n activeDeferreds.size > 0\n ? Object.fromEntries(activeDeferreds.entries())\n : null,\n };\n }\n\n // Utility wrapper for calling dataStrategy server-side without having to\n // pass around the manifest, mapRouteProperties, etc.\n async function callDataStrategy(\n type: \"loader\" | \"action\",\n request: Request,\n matchesToLoad: AgnosticDataRouteMatch[],\n matches: AgnosticDataRouteMatch[],\n isRouteRequest: boolean,\n requestContext: unknown,\n dataStrategy: DataStrategyFunction | null\n ): Promise> {\n let results = await callDataStrategyImpl(\n dataStrategy || defaultDataStrategy,\n type,\n null,\n request,\n matchesToLoad,\n matches,\n null,\n manifest,\n mapRouteProperties,\n requestContext\n );\n\n let dataResults: Record = {};\n await Promise.all(\n matches.map(async (match) => {\n if (!(match.route.id in results)) {\n return;\n }\n let result = results[match.route.id];\n if (isRedirectDataStrategyResultResult(result)) {\n let response = result.result as Response;\n // Throw redirects and let the server handle them with an HTTP redirect\n throw normalizeRelativeRoutingRedirectResponse(\n response,\n request,\n match.route.id,\n matches,\n basename,\n future.v7_relativeSplatPath\n );\n }\n if (isResponse(result.result) && isRouteRequest) {\n // For SSR single-route requests, we want to hand Responses back\n // directly without unwrapping\n throw result;\n }\n\n dataResults[match.route.id] =\n await convertDataStrategyResultToDataResult(result);\n })\n );\n return dataResults;\n }\n\n return {\n dataRoutes,\n query,\n queryRoute,\n };\n}\n\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Helpers\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Given an existing StaticHandlerContext and an error thrown at render time,\n * provide an updated StaticHandlerContext suitable for a second SSR render\n */\nexport function getStaticContextFromError(\n routes: AgnosticDataRouteObject[],\n context: StaticHandlerContext,\n error: any\n) {\n let newContext: StaticHandlerContext = {\n ...context,\n statusCode: isRouteErrorResponse(error) ? error.status : 500,\n errors: {\n [context._deepestRenderedBoundaryId || routes[0].id]: error,\n },\n };\n return newContext;\n}\n\nfunction throwStaticHandlerAbortedError(\n request: Request,\n isRouteRequest: boolean,\n future: StaticHandlerFutureConfig\n) {\n if (future.v7_throwAbortReason && request.signal.reason !== undefined) {\n throw request.signal.reason;\n }\n\n let method = isRouteRequest ? \"queryRoute\" : \"query\";\n throw new Error(`${method}() call aborted: ${request.method} ${request.url}`);\n}\n\nfunction isSubmissionNavigation(\n opts: BaseNavigateOrFetchOptions\n): opts is SubmissionNavigateOptions {\n return (\n opts != null &&\n ((\"formData\" in opts && opts.formData != null) ||\n (\"body\" in opts && opts.body !== undefined))\n );\n}\n\nfunction normalizeTo(\n location: Path,\n matches: AgnosticDataRouteMatch[],\n basename: string,\n prependBasename: boolean,\n to: To | null,\n v7_relativeSplatPath: boolean,\n fromRouteId?: string,\n relative?: RelativeRoutingType\n) {\n let contextualMatches: AgnosticDataRouteMatch[];\n let activeRouteMatch: AgnosticDataRouteMatch | undefined;\n if (fromRouteId) {\n // Grab matches up to the calling route so our route-relative logic is\n // relative to the correct source route\n contextualMatches = [];\n for (let match of matches) {\n contextualMatches.push(match);\n if (match.route.id === fromRouteId) {\n activeRouteMatch = match;\n break;\n }\n }\n } else {\n contextualMatches = matches;\n activeRouteMatch = matches[matches.length - 1];\n }\n\n // Resolve the relative path\n let path = resolveTo(\n to ? to : \".\",\n getResolveToMatches(contextualMatches, v7_relativeSplatPath),\n stripBasename(location.pathname, basename) || location.pathname,\n relative === \"path\"\n );\n\n // When `to` is not specified we inherit search/hash from the current\n // location, unlike when to=\".\" and we just inherit the path.\n // See https://github.com/remix-run/remix/issues/927\n if (to == null) {\n path.search = location.search;\n path.hash = location.hash;\n }\n\n // Account for `?index` params when routing to the current location\n if ((to == null || to === \"\" || to === \".\") && activeRouteMatch) {\n let nakedIndex = hasNakedIndexQuery(path.search);\n if (activeRouteMatch.route.index && !nakedIndex) {\n // Add one when we're targeting an index route\n path.search = path.search\n ? path.search.replace(/^\\?/, \"?index&\")\n : \"?index\";\n } else if (!activeRouteMatch.route.index && nakedIndex) {\n // Remove existing ones when we're not\n let params = new URLSearchParams(path.search);\n let indexValues = params.getAll(\"index\");\n params.delete(\"index\");\n indexValues.filter((v) => v).forEach((v) => params.append(\"index\", v));\n let qs = params.toString();\n path.search = qs ? `?${qs}` : \"\";\n }\n }\n\n // If we're operating within a basename, prepend it to the pathname. If\n // this is a root navigation, then just use the raw basename which allows\n // the basename to have full control over the presence of a trailing slash\n // on root actions\n if (prependBasename && basename !== \"/\") {\n path.pathname =\n path.pathname === \"/\" ? basename : joinPaths([basename, path.pathname]);\n }\n\n return createPath(path);\n}\n\n// Normalize navigation options by converting formMethod=GET formData objects to\n// URLSearchParams so they behave identically to links with query params\nfunction normalizeNavigateOptions(\n normalizeFormMethod: boolean,\n isFetcher: boolean,\n path: string,\n opts?: BaseNavigateOrFetchOptions\n): {\n path: string;\n submission?: Submission;\n error?: ErrorResponseImpl;\n} {\n // Return location verbatim on non-submission navigations\n if (!opts || !isSubmissionNavigation(opts)) {\n return { path };\n }\n\n if (opts.formMethod && !isValidMethod(opts.formMethod)) {\n return {\n path,\n error: getInternalRouterError(405, { method: opts.formMethod }),\n };\n }\n\n let getInvalidBodyError = () => ({\n path,\n error: getInternalRouterError(400, { type: \"invalid-body\" }),\n });\n\n // Create a Submission on non-GET navigations\n let rawFormMethod = opts.formMethod || \"get\";\n let formMethod = normalizeFormMethod\n ? (rawFormMethod.toUpperCase() as V7_FormMethod)\n : (rawFormMethod.toLowerCase() as FormMethod);\n let formAction = stripHashFromPath(path);\n\n if (opts.body !== undefined) {\n if (opts.formEncType === \"text/plain\") {\n // text only support POST/PUT/PATCH/DELETE submissions\n if (!isMutationMethod(formMethod)) {\n return getInvalidBodyError();\n }\n\n let text =\n typeof opts.body === \"string\"\n ? opts.body\n : opts.body instanceof FormData ||\n opts.body instanceof URLSearchParams\n ? // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#plain-text-form-data\n Array.from(opts.body.entries()).reduce(\n (acc, [name, value]) => `${acc}${name}=${value}\\n`,\n \"\"\n )\n : String(opts.body);\n\n return {\n path,\n submission: {\n formMethod,\n formAction,\n formEncType: opts.formEncType,\n formData: undefined,\n json: undefined,\n text,\n },\n };\n } else if (opts.formEncType === \"application/json\") {\n // json only supports POST/PUT/PATCH/DELETE submissions\n if (!isMutationMethod(formMethod)) {\n return getInvalidBodyError();\n }\n\n try {\n let json =\n typeof opts.body === \"string\" ? JSON.parse(opts.body) : opts.body;\n\n return {\n path,\n submission: {\n formMethod,\n formAction,\n formEncType: opts.formEncType,\n formData: undefined,\n json,\n text: undefined,\n },\n };\n } catch (e) {\n return getInvalidBodyError();\n }\n }\n }\n\n invariant(\n typeof FormData === \"function\",\n \"FormData is not available in this environment\"\n );\n\n let searchParams: URLSearchParams;\n let formData: FormData;\n\n if (opts.formData) {\n searchParams = convertFormDataToSearchParams(opts.formData);\n formData = opts.formData;\n } else if (opts.body instanceof FormData) {\n searchParams = convertFormDataToSearchParams(opts.body);\n formData = opts.body;\n } else if (opts.body instanceof URLSearchParams) {\n searchParams = opts.body;\n formData = convertSearchParamsToFormData(searchParams);\n } else if (opts.body == null) {\n searchParams = new URLSearchParams();\n formData = new FormData();\n } else {\n try {\n searchParams = new URLSearchParams(opts.body);\n formData = convertSearchParamsToFormData(searchParams);\n } catch (e) {\n return getInvalidBodyError();\n }\n }\n\n let submission: Submission = {\n formMethod,\n formAction,\n formEncType:\n (opts && opts.formEncType) || \"application/x-www-form-urlencoded\",\n formData,\n json: undefined,\n text: undefined,\n };\n\n if (isMutationMethod(submission.formMethod)) {\n return { path, submission };\n }\n\n // Flatten submission onto URLSearchParams for GET submissions\n let parsedPath = parsePath(path);\n // On GET navigation submissions we can drop the ?index param from the\n // resulting location since all loaders will run. But fetcher GET submissions\n // only run a single loader so we need to preserve any incoming ?index params\n if (isFetcher && parsedPath.search && hasNakedIndexQuery(parsedPath.search)) {\n searchParams.append(\"index\", \"\");\n }\n parsedPath.search = `?${searchParams}`;\n\n return { path: createPath(parsedPath), submission };\n}\n\n// Filter out all routes at/below any caught error as they aren't going to\n// render so we don't need to load them\nfunction getLoaderMatchesUntilBoundary(\n matches: AgnosticDataRouteMatch[],\n boundaryId: string,\n includeBoundary = false\n) {\n let index = matches.findIndex((m) => m.route.id === boundaryId);\n if (index >= 0) {\n return matches.slice(0, includeBoundary ? index + 1 : index);\n }\n return matches;\n}\n\nfunction getMatchesToLoad(\n history: History,\n state: RouterState,\n matches: AgnosticDataRouteMatch[],\n submission: Submission | undefined,\n location: Location,\n initialHydration: boolean,\n skipActionErrorRevalidation: boolean,\n isRevalidationRequired: boolean,\n cancelledDeferredRoutes: string[],\n cancelledFetcherLoads: Set,\n deletedFetchers: Set,\n fetchLoadMatches: Map,\n fetchRedirectIds: Set,\n routesToUse: AgnosticDataRouteObject[],\n basename: string | undefined,\n pendingActionResult?: PendingActionResult\n): [AgnosticDataRouteMatch[], RevalidatingFetcher[]] {\n let actionResult = pendingActionResult\n ? isErrorResult(pendingActionResult[1])\n ? pendingActionResult[1].error\n : pendingActionResult[1].data\n : undefined;\n let currentUrl = history.createURL(state.location);\n let nextUrl = history.createURL(location);\n\n // Pick navigation matches that are net-new or qualify for revalidation\n let boundaryMatches = matches;\n if (initialHydration && state.errors) {\n // On initial hydration, only consider matches up to _and including_ the boundary.\n // This is inclusive to handle cases where a server loader ran successfully,\n // a child server loader bubbled up to this route, but this route has\n // `clientLoader.hydrate` so we want to still run the `clientLoader` so that\n // we have a complete version of `loaderData`\n boundaryMatches = getLoaderMatchesUntilBoundary(\n matches,\n Object.keys(state.errors)[0],\n true\n );\n } else if (pendingActionResult && isErrorResult(pendingActionResult[1])) {\n // If an action threw an error, we call loaders up to, but not including the\n // boundary\n boundaryMatches = getLoaderMatchesUntilBoundary(\n matches,\n pendingActionResult[0]\n );\n }\n\n // Don't revalidate loaders by default after action 4xx/5xx responses\n // when the flag is enabled. They can still opt-into revalidation via\n // `shouldRevalidate` via `actionResult`\n let actionStatus = pendingActionResult\n ? pendingActionResult[1].statusCode\n : undefined;\n let shouldSkipRevalidation =\n skipActionErrorRevalidation && actionStatus && actionStatus >= 400;\n\n let navigationMatches = boundaryMatches.filter((match, index) => {\n let { route } = match;\n if (route.lazy) {\n // We haven't loaded this route yet so we don't know if it's got a loader!\n return true;\n }\n\n if (route.loader == null) {\n return false;\n }\n\n if (initialHydration) {\n return shouldLoadRouteOnHydration(route, state.loaderData, state.errors);\n }\n\n // Always call the loader on new route instances and pending defer cancellations\n if (\n isNewLoader(state.loaderData, state.matches[index], match) ||\n cancelledDeferredRoutes.some((id) => id === match.route.id)\n ) {\n return true;\n }\n\n // This is the default implementation for when we revalidate. If the route\n // provides it's own implementation, then we give them full control but\n // provide this value so they can leverage it if needed after they check\n // their own specific use cases\n let currentRouteMatch = state.matches[index];\n let nextRouteMatch = match;\n\n return shouldRevalidateLoader(match, {\n currentUrl,\n currentParams: currentRouteMatch.params,\n nextUrl,\n nextParams: nextRouteMatch.params,\n ...submission,\n actionResult,\n actionStatus,\n defaultShouldRevalidate: shouldSkipRevalidation\n ? false\n : // Forced revalidation due to submission, useRevalidator, or X-Remix-Revalidate\n isRevalidationRequired ||\n currentUrl.pathname + currentUrl.search ===\n nextUrl.pathname + nextUrl.search ||\n // Search params affect all loaders\n currentUrl.search !== nextUrl.search ||\n isNewRouteInstance(currentRouteMatch, nextRouteMatch),\n });\n });\n\n // Pick fetcher.loads that need to be revalidated\n let revalidatingFetchers: RevalidatingFetcher[] = [];\n fetchLoadMatches.forEach((f, key) => {\n // Don't revalidate:\n // - on initial hydration (shouldn't be any fetchers then anyway)\n // - if fetcher won't be present in the subsequent render\n // - no longer matches the URL (v7_fetcherPersist=false)\n // - was unmounted but persisted due to v7_fetcherPersist=true\n if (\n initialHydration ||\n !matches.some((m) => m.route.id === f.routeId) ||\n deletedFetchers.has(key)\n ) {\n return;\n }\n\n let fetcherMatches = matchRoutes(routesToUse, f.path, basename);\n\n // If the fetcher path no longer matches, push it in with null matches so\n // we can trigger a 404 in callLoadersAndMaybeResolveData. Note this is\n // currently only a use-case for Remix HMR where the route tree can change\n // at runtime and remove a route previously loaded via a fetcher\n if (!fetcherMatches) {\n revalidatingFetchers.push({\n key,\n routeId: f.routeId,\n path: f.path,\n matches: null,\n match: null,\n controller: null,\n });\n return;\n }\n\n // Revalidating fetchers are decoupled from the route matches since they\n // load from a static href. They revalidate based on explicit revalidation\n // (submission, useRevalidator, or X-Remix-Revalidate)\n let fetcher = state.fetchers.get(key);\n let fetcherMatch = getTargetMatch(fetcherMatches, f.path);\n\n let shouldRevalidate = false;\n if (fetchRedirectIds.has(key)) {\n // Never trigger a revalidation of an actively redirecting fetcher\n shouldRevalidate = false;\n } else if (cancelledFetcherLoads.has(key)) {\n // Always mark for revalidation if the fetcher was cancelled\n cancelledFetcherLoads.delete(key);\n shouldRevalidate = true;\n } else if (\n fetcher &&\n fetcher.state !== \"idle\" &&\n fetcher.data === undefined\n ) {\n // If the fetcher hasn't ever completed loading yet, then this isn't a\n // revalidation, it would just be a brand new load if an explicit\n // revalidation is required\n shouldRevalidate = isRevalidationRequired;\n } else {\n // Otherwise fall back on any user-defined shouldRevalidate, defaulting\n // to explicit revalidations only\n shouldRevalidate = shouldRevalidateLoader(fetcherMatch, {\n currentUrl,\n currentParams: state.matches[state.matches.length - 1].params,\n nextUrl,\n nextParams: matches[matches.length - 1].params,\n ...submission,\n actionResult,\n actionStatus,\n defaultShouldRevalidate: shouldSkipRevalidation\n ? false\n : isRevalidationRequired,\n });\n }\n\n if (shouldRevalidate) {\n revalidatingFetchers.push({\n key,\n routeId: f.routeId,\n path: f.path,\n matches: fetcherMatches,\n match: fetcherMatch,\n controller: new AbortController(),\n });\n }\n });\n\n return [navigationMatches, revalidatingFetchers];\n}\n\nfunction shouldLoadRouteOnHydration(\n route: AgnosticDataRouteObject,\n loaderData: RouteData | null | undefined,\n errors: RouteData | null | undefined\n) {\n // We dunno if we have a loader - gotta find out!\n if (route.lazy) {\n return true;\n }\n\n // No loader, nothing to initialize\n if (!route.loader) {\n return false;\n }\n\n let hasData = loaderData != null && loaderData[route.id] !== undefined;\n let hasError = errors != null && errors[route.id] !== undefined;\n\n // Don't run if we error'd during SSR\n if (!hasData && hasError) {\n return false;\n }\n\n // Explicitly opting-in to running on hydration\n if (typeof route.loader === \"function\" && route.loader.hydrate === true) {\n return true;\n }\n\n // Otherwise, run if we're not yet initialized with anything\n return !hasData && !hasError;\n}\n\nfunction isNewLoader(\n currentLoaderData: RouteData,\n currentMatch: AgnosticDataRouteMatch,\n match: AgnosticDataRouteMatch\n) {\n let isNew =\n // [a] -> [a, b]\n !currentMatch ||\n // [a, b] -> [a, c]\n match.route.id !== currentMatch.route.id;\n\n // Handle the case that we don't have data for a re-used route, potentially\n // from a prior error or from a cancelled pending deferred\n let isMissingData = currentLoaderData[match.route.id] === undefined;\n\n // Always load if this is a net-new route or we don't yet have data\n return isNew || isMissingData;\n}\n\nfunction isNewRouteInstance(\n currentMatch: AgnosticDataRouteMatch,\n match: AgnosticDataRouteMatch\n) {\n let currentPath = currentMatch.route.path;\n return (\n // param change for this match, /users/123 -> /users/456\n currentMatch.pathname !== match.pathname ||\n // splat param changed, which is not present in match.path\n // e.g. /files/images/avatar.jpg -> files/finances.xls\n (currentPath != null &&\n currentPath.endsWith(\"*\") &&\n currentMatch.params[\"*\"] !== match.params[\"*\"])\n );\n}\n\nfunction shouldRevalidateLoader(\n loaderMatch: AgnosticDataRouteMatch,\n arg: ShouldRevalidateFunctionArgs\n) {\n if (loaderMatch.route.shouldRevalidate) {\n let routeChoice = loaderMatch.route.shouldRevalidate(arg);\n if (typeof routeChoice === \"boolean\") {\n return routeChoice;\n }\n }\n\n return arg.defaultShouldRevalidate;\n}\n\nfunction patchRoutesImpl(\n routeId: string | null,\n children: AgnosticRouteObject[],\n routesToUse: AgnosticDataRouteObject[],\n manifest: RouteManifest,\n mapRouteProperties: MapRoutePropertiesFunction\n) {\n let childrenToPatch: AgnosticDataRouteObject[];\n if (routeId) {\n let route = manifest[routeId];\n invariant(\n route,\n `No route found to patch children into: routeId = ${routeId}`\n );\n if (!route.children) {\n route.children = [];\n }\n childrenToPatch = route.children;\n } else {\n childrenToPatch = routesToUse;\n }\n\n // Don't patch in routes we already know about so that `patch` is idempotent\n // to simplify user-land code. This is useful because we re-call the\n // `patchRoutesOnNavigation` function for matched routes with params.\n let uniqueChildren = children.filter(\n (newRoute) =>\n !childrenToPatch.some((existingRoute) =>\n isSameRoute(newRoute, existingRoute)\n )\n );\n\n let newRoutes = convertRoutesToDataRoutes(\n uniqueChildren,\n mapRouteProperties,\n [routeId || \"_\", \"patch\", String(childrenToPatch?.length || \"0\")],\n manifest\n );\n\n childrenToPatch.push(...newRoutes);\n}\n\nfunction isSameRoute(\n newRoute: AgnosticRouteObject,\n existingRoute: AgnosticRouteObject\n): boolean {\n // Most optimal check is by id\n if (\n \"id\" in newRoute &&\n \"id\" in existingRoute &&\n newRoute.id === existingRoute.id\n ) {\n return true;\n }\n\n // Second is by pathing differences\n if (\n !(\n newRoute.index === existingRoute.index &&\n newRoute.path === existingRoute.path &&\n newRoute.caseSensitive === existingRoute.caseSensitive\n )\n ) {\n return false;\n }\n\n // Pathless layout routes are trickier since we need to check children.\n // If they have no children then they're the same as far as we can tell\n if (\n (!newRoute.children || newRoute.children.length === 0) &&\n (!existingRoute.children || existingRoute.children.length === 0)\n ) {\n return true;\n }\n\n // Otherwise, we look to see if every child in the new route is already\n // represented in the existing route's children\n return newRoute.children!.every((aChild, i) =>\n existingRoute.children?.some((bChild) => isSameRoute(aChild, bChild))\n );\n}\n\n/**\n * Execute route.lazy() methods to lazily load route modules (loader, action,\n * shouldRevalidate) and update the routeManifest in place which shares objects\n * with dataRoutes so those get updated as well.\n */\nasync function loadLazyRouteModule(\n route: AgnosticDataRouteObject,\n mapRouteProperties: MapRoutePropertiesFunction,\n manifest: RouteManifest\n) {\n if (!route.lazy) {\n return;\n }\n\n let lazyRoute = await route.lazy();\n\n // If the lazy route function was executed and removed by another parallel\n // call then we can return - first lazy() to finish wins because the return\n // value of lazy is expected to be static\n if (!route.lazy) {\n return;\n }\n\n let routeToUpdate = manifest[route.id];\n invariant(routeToUpdate, \"No route found in manifest\");\n\n // Update the route in place. This should be safe because there's no way\n // we could yet be sitting on this route as we can't get there without\n // resolving lazy() first.\n //\n // This is different than the HMR \"update\" use-case where we may actively be\n // on the route being updated. The main concern boils down to \"does this\n // mutation affect any ongoing navigations or any current state.matches\n // values?\". If not, it should be safe to update in place.\n let routeUpdates: Record = {};\n for (let lazyRouteProperty in lazyRoute) {\n let staticRouteValue =\n routeToUpdate[lazyRouteProperty as keyof typeof routeToUpdate];\n\n let isPropertyStaticallyDefined =\n staticRouteValue !== undefined &&\n // This property isn't static since it should always be updated based\n // on the route updates\n lazyRouteProperty !== \"hasErrorBoundary\";\n\n warning(\n !isPropertyStaticallyDefined,\n `Route \"${routeToUpdate.id}\" has a static property \"${lazyRouteProperty}\" ` +\n `defined but its lazy function is also returning a value for this property. ` +\n `The lazy route property \"${lazyRouteProperty}\" will be ignored.`\n );\n\n if (\n !isPropertyStaticallyDefined &&\n !immutableRouteKeys.has(lazyRouteProperty as ImmutableRouteKey)\n ) {\n routeUpdates[lazyRouteProperty] =\n lazyRoute[lazyRouteProperty as keyof typeof lazyRoute];\n }\n }\n\n // Mutate the route with the provided updates. Do this first so we pass\n // the updated version to mapRouteProperties\n Object.assign(routeToUpdate, routeUpdates);\n\n // Mutate the `hasErrorBoundary` property on the route based on the route\n // updates and remove the `lazy` function so we don't resolve the lazy\n // route again.\n Object.assign(routeToUpdate, {\n // To keep things framework agnostic, we use the provided\n // `mapRouteProperties` (or wrapped `detectErrorBoundary`) function to\n // set the framework-aware properties (`element`/`hasErrorBoundary`) since\n // the logic will differ between frameworks.\n ...mapRouteProperties(routeToUpdate),\n lazy: undefined,\n });\n}\n\n// Default implementation of `dataStrategy` which fetches all loaders in parallel\nasync function defaultDataStrategy({\n matches,\n}: DataStrategyFunctionArgs): ReturnType {\n let matchesToLoad = matches.filter((m) => m.shouldLoad);\n let results = await Promise.all(matchesToLoad.map((m) => m.resolve()));\n return results.reduce(\n (acc, result, i) =>\n Object.assign(acc, { [matchesToLoad[i].route.id]: result }),\n {}\n );\n}\n\nasync function callDataStrategyImpl(\n dataStrategyImpl: DataStrategyFunction,\n type: \"loader\" | \"action\",\n state: RouterState | null,\n request: Request,\n matchesToLoad: AgnosticDataRouteMatch[],\n matches: AgnosticDataRouteMatch[],\n fetcherKey: string | null,\n manifest: RouteManifest,\n mapRouteProperties: MapRoutePropertiesFunction,\n requestContext?: unknown\n): Promise> {\n let loadRouteDefinitionsPromises = matches.map((m) =>\n m.route.lazy\n ? loadLazyRouteModule(m.route, mapRouteProperties, manifest)\n : undefined\n );\n\n let dsMatches = matches.map((match, i) => {\n let loadRoutePromise = loadRouteDefinitionsPromises[i];\n let shouldLoad = matchesToLoad.some((m) => m.route.id === match.route.id);\n // `resolve` encapsulates route.lazy(), executing the loader/action,\n // and mapping return values/thrown errors to a `DataStrategyResult`. Users\n // can pass a callback to take fine-grained control over the execution\n // of the loader/action\n let resolve: DataStrategyMatch[\"resolve\"] = async (handlerOverride) => {\n if (\n handlerOverride &&\n request.method === \"GET\" &&\n (match.route.lazy || match.route.loader)\n ) {\n shouldLoad = true;\n }\n return shouldLoad\n ? callLoaderOrAction(\n type,\n request,\n match,\n loadRoutePromise,\n handlerOverride,\n requestContext\n )\n : Promise.resolve({ type: ResultType.data, result: undefined });\n };\n\n return {\n ...match,\n shouldLoad,\n resolve,\n };\n });\n\n // Send all matches here to allow for a middleware-type implementation.\n // handler will be a no-op for unneeded routes and we filter those results\n // back out below.\n let results = await dataStrategyImpl({\n matches: dsMatches,\n request,\n params: matches[0].params,\n fetcherKey,\n context: requestContext,\n });\n\n // Wait for all routes to load here but 'swallow the error since we want\n // it to bubble up from the `await loadRoutePromise` in `callLoaderOrAction` -\n // called from `match.resolve()`\n try {\n await Promise.all(loadRouteDefinitionsPromises);\n } catch (e) {\n // No-op\n }\n\n return results;\n}\n\n// Default logic for calling a loader/action is the user has no specified a dataStrategy\nasync function callLoaderOrAction(\n type: \"loader\" | \"action\",\n request: Request,\n match: AgnosticDataRouteMatch,\n loadRoutePromise: Promise | undefined,\n handlerOverride: Parameters[0],\n staticContext?: unknown\n): Promise {\n let result: DataStrategyResult;\n let onReject: (() => void) | undefined;\n\n let runHandler = (\n handler: AgnosticRouteObject[\"loader\"] | AgnosticRouteObject[\"action\"]\n ): Promise => {\n // Setup a promise we can race against so that abort signals short circuit\n let reject: () => void;\n // This will never resolve so safe to type it as Promise to\n // satisfy the function return value\n let abortPromise = new Promise((_, r) => (reject = r));\n onReject = () => reject();\n request.signal.addEventListener(\"abort\", onReject);\n\n let actualHandler = (ctx?: unknown) => {\n if (typeof handler !== \"function\") {\n return Promise.reject(\n new Error(\n `You cannot call the handler for a route which defines a boolean ` +\n `\"${type}\" [routeId: ${match.route.id}]`\n )\n );\n }\n return handler(\n {\n request,\n params: match.params,\n context: staticContext,\n },\n ...(ctx !== undefined ? [ctx] : [])\n );\n };\n\n let handlerPromise: Promise = (async () => {\n try {\n let val = await (handlerOverride\n ? handlerOverride((ctx: unknown) => actualHandler(ctx))\n : actualHandler());\n return { type: \"data\", result: val };\n } catch (e) {\n return { type: \"error\", result: e };\n }\n })();\n\n return Promise.race([handlerPromise, abortPromise]);\n };\n\n try {\n let handler = match.route[type];\n\n // If we have a route.lazy promise, await that first\n if (loadRoutePromise) {\n if (handler) {\n // Run statically defined handler in parallel with lazy()\n let handlerError;\n let [value] = await Promise.all([\n // If the handler throws, don't let it immediately bubble out,\n // since we need to let the lazy() execution finish so we know if this\n // route has a boundary that can handle the error\n runHandler(handler).catch((e) => {\n handlerError = e;\n }),\n loadRoutePromise,\n ]);\n if (handlerError !== undefined) {\n throw handlerError;\n }\n result = value!;\n } else {\n // Load lazy route module, then run any returned handler\n await loadRoutePromise;\n\n handler = match.route[type];\n if (handler) {\n // Handler still runs even if we got interrupted to maintain consistency\n // with un-abortable behavior of handler execution on non-lazy or\n // previously-lazy-loaded routes\n result = await runHandler(handler);\n } else if (type === \"action\") {\n let url = new URL(request.url);\n let pathname = url.pathname + url.search;\n throw getInternalRouterError(405, {\n method: request.method,\n pathname,\n routeId: match.route.id,\n });\n } else {\n // lazy() route has no loader to run. Short circuit here so we don't\n // hit the invariant below that errors on returning undefined.\n return { type: ResultType.data, result: undefined };\n }\n }\n } else if (!handler) {\n let url = new URL(request.url);\n let pathname = url.pathname + url.search;\n throw getInternalRouterError(404, {\n pathname,\n });\n } else {\n result = await runHandler(handler);\n }\n\n invariant(\n result.result !== undefined,\n `You defined ${type === \"action\" ? \"an action\" : \"a loader\"} for route ` +\n `\"${match.route.id}\" but didn't return anything from your \\`${type}\\` ` +\n `function. Please return a value or \\`null\\`.`\n );\n } catch (e) {\n // We should already be catching and converting normal handler executions to\n // DataStrategyResults and returning them, so anything that throws here is an\n // unexpected error we still need to wrap\n return { type: ResultType.error, result: e };\n } finally {\n if (onReject) {\n request.signal.removeEventListener(\"abort\", onReject);\n }\n }\n\n return result;\n}\n\nasync function convertDataStrategyResultToDataResult(\n dataStrategyResult: DataStrategyResult\n): Promise {\n let { result, type } = dataStrategyResult;\n\n if (isResponse(result)) {\n let data: any;\n\n try {\n let contentType = result.headers.get(\"Content-Type\");\n // Check between word boundaries instead of startsWith() due to the last\n // paragraph of https://httpwg.org/specs/rfc9110.html#field.content-type\n if (contentType && /\\bapplication\\/json\\b/.test(contentType)) {\n if (result.body == null) {\n data = null;\n } else {\n data = await result.json();\n }\n } else {\n data = await result.text();\n }\n } catch (e) {\n return { type: ResultType.error, error: e };\n }\n\n if (type === ResultType.error) {\n return {\n type: ResultType.error,\n error: new ErrorResponseImpl(result.status, result.statusText, data),\n statusCode: result.status,\n headers: result.headers,\n };\n }\n\n return {\n type: ResultType.data,\n data,\n statusCode: result.status,\n headers: result.headers,\n };\n }\n\n if (type === ResultType.error) {\n if (isDataWithResponseInit(result)) {\n if (result.data instanceof Error) {\n return {\n type: ResultType.error,\n error: result.data,\n statusCode: result.init?.status,\n };\n }\n\n // Convert thrown data() to ErrorResponse instances\n result = new ErrorResponseImpl(\n result.init?.status || 500,\n undefined,\n result.data\n );\n }\n return {\n type: ResultType.error,\n error: result,\n statusCode: isRouteErrorResponse(result) ? result.status : undefined,\n };\n }\n\n if (isDeferredData(result)) {\n return {\n type: ResultType.deferred,\n deferredData: result,\n statusCode: result.init?.status,\n headers: result.init?.headers && new Headers(result.init.headers),\n };\n }\n\n if (isDataWithResponseInit(result)) {\n return {\n type: ResultType.data,\n data: result.data,\n statusCode: result.init?.status,\n headers: result.init?.headers\n ? new Headers(result.init.headers)\n : undefined,\n };\n }\n\n return { type: ResultType.data, data: result };\n}\n\n// Support relative routing in internal redirects\nfunction normalizeRelativeRoutingRedirectResponse(\n response: Response,\n request: Request,\n routeId: string,\n matches: AgnosticDataRouteMatch[],\n basename: string,\n v7_relativeSplatPath: boolean\n) {\n let location = response.headers.get(\"Location\");\n invariant(\n location,\n \"Redirects returned/thrown from loaders/actions must have a Location header\"\n );\n\n if (!ABSOLUTE_URL_REGEX.test(location)) {\n let trimmedMatches = matches.slice(\n 0,\n matches.findIndex((m) => m.route.id === routeId) + 1\n );\n location = normalizeTo(\n new URL(request.url),\n trimmedMatches,\n basename,\n true,\n location,\n v7_relativeSplatPath\n );\n response.headers.set(\"Location\", location);\n }\n\n return response;\n}\n\nfunction normalizeRedirectLocation(\n location: string,\n currentUrl: URL,\n basename: string\n): string {\n if (ABSOLUTE_URL_REGEX.test(location)) {\n // Strip off the protocol+origin for same-origin + same-basename absolute redirects\n let normalizedLocation = location;\n let url = normalizedLocation.startsWith(\"//\")\n ? new URL(currentUrl.protocol + normalizedLocation)\n : new URL(normalizedLocation);\n let isSameBasename = stripBasename(url.pathname, basename) != null;\n if (url.origin === currentUrl.origin && isSameBasename) {\n return url.pathname + url.search + url.hash;\n }\n }\n return location;\n}\n\n// Utility method for creating the Request instances for loaders/actions during\n// client-side navigations and fetches. During SSR we will always have a\n// Request instance from the static handler (query/queryRoute)\nfunction createClientSideRequest(\n history: History,\n location: string | Location,\n signal: AbortSignal,\n submission?: Submission\n): Request {\n let url = history.createURL(stripHashFromPath(location)).toString();\n let init: RequestInit = { signal };\n\n if (submission && isMutationMethod(submission.formMethod)) {\n let { formMethod, formEncType } = submission;\n // Didn't think we needed this but it turns out unlike other methods, patch\n // won't be properly normalized to uppercase and results in a 405 error.\n // See: https://fetch.spec.whatwg.org/#concept-method\n init.method = formMethod.toUpperCase();\n\n if (formEncType === \"application/json\") {\n init.headers = new Headers({ \"Content-Type\": formEncType });\n init.body = JSON.stringify(submission.json);\n } else if (formEncType === \"text/plain\") {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = submission.text;\n } else if (\n formEncType === \"application/x-www-form-urlencoded\" &&\n submission.formData\n ) {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = convertFormDataToSearchParams(submission.formData);\n } else {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = submission.formData;\n }\n }\n\n return new Request(url, init);\n}\n\nfunction convertFormDataToSearchParams(formData: FormData): URLSearchParams {\n let searchParams = new URLSearchParams();\n\n for (let [key, value] of formData.entries()) {\n // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#converting-an-entry-list-to-a-list-of-name-value-pairs\n searchParams.append(key, typeof value === \"string\" ? value : value.name);\n }\n\n return searchParams;\n}\n\nfunction convertSearchParamsToFormData(\n searchParams: URLSearchParams\n): FormData {\n let formData = new FormData();\n for (let [key, value] of searchParams.entries()) {\n formData.append(key, value);\n }\n return formData;\n}\n\nfunction processRouteLoaderData(\n matches: AgnosticDataRouteMatch[],\n results: Record,\n pendingActionResult: PendingActionResult | undefined,\n activeDeferreds: Map,\n skipLoaderErrorBubbling: boolean\n): {\n loaderData: RouterState[\"loaderData\"];\n errors: RouterState[\"errors\"] | null;\n statusCode: number;\n loaderHeaders: Record;\n} {\n // Fill in loaderData/errors from our loaders\n let loaderData: RouterState[\"loaderData\"] = {};\n let errors: RouterState[\"errors\"] | null = null;\n let statusCode: number | undefined;\n let foundError = false;\n let loaderHeaders: Record = {};\n let pendingError =\n pendingActionResult && isErrorResult(pendingActionResult[1])\n ? pendingActionResult[1].error\n : undefined;\n\n // Process loader results into state.loaderData/state.errors\n matches.forEach((match) => {\n if (!(match.route.id in results)) {\n return;\n }\n let id = match.route.id;\n let result = results[id];\n invariant(\n !isRedirectResult(result),\n \"Cannot handle redirect results in processLoaderData\"\n );\n if (isErrorResult(result)) {\n let error = result.error;\n // If we have a pending action error, we report it at the highest-route\n // that throws a loader error, and then clear it out to indicate that\n // it was consumed\n if (pendingError !== undefined) {\n error = pendingError;\n pendingError = undefined;\n }\n\n errors = errors || {};\n\n if (skipLoaderErrorBubbling) {\n errors[id] = error;\n } else {\n // Look upwards from the matched route for the closest ancestor error\n // boundary, defaulting to the root match. Prefer higher error values\n // if lower errors bubble to the same boundary\n let boundaryMatch = findNearestBoundary(matches, id);\n if (errors[boundaryMatch.route.id] == null) {\n errors[boundaryMatch.route.id] = error;\n }\n }\n\n // Clear our any prior loaderData for the throwing route\n loaderData[id] = undefined;\n\n // Once we find our first (highest) error, we set the status code and\n // prevent deeper status codes from overriding\n if (!foundError) {\n foundError = true;\n statusCode = isRouteErrorResponse(result.error)\n ? result.error.status\n : 500;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n } else {\n if (isDeferredResult(result)) {\n activeDeferreds.set(id, result.deferredData);\n loaderData[id] = result.deferredData.data;\n // Error status codes always override success status codes, but if all\n // loaders are successful we take the deepest status code.\n if (\n result.statusCode != null &&\n result.statusCode !== 200 &&\n !foundError\n ) {\n statusCode = result.statusCode;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n } else {\n loaderData[id] = result.data;\n // Error status codes always override success status codes, but if all\n // loaders are successful we take the deepest status code.\n if (result.statusCode && result.statusCode !== 200 && !foundError) {\n statusCode = result.statusCode;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n }\n }\n });\n\n // If we didn't consume the pending action error (i.e., all loaders\n // resolved), then consume it here. Also clear out any loaderData for the\n // throwing route\n if (pendingError !== undefined && pendingActionResult) {\n errors = { [pendingActionResult[0]]: pendingError };\n loaderData[pendingActionResult[0]] = undefined;\n }\n\n return {\n loaderData,\n errors,\n statusCode: statusCode || 200,\n loaderHeaders,\n };\n}\n\nfunction processLoaderData(\n state: RouterState,\n matches: AgnosticDataRouteMatch[],\n results: Record,\n pendingActionResult: PendingActionResult | undefined,\n revalidatingFetchers: RevalidatingFetcher[],\n fetcherResults: Record,\n activeDeferreds: Map\n): {\n loaderData: RouterState[\"loaderData\"];\n errors?: RouterState[\"errors\"];\n} {\n let { loaderData, errors } = processRouteLoaderData(\n matches,\n results,\n pendingActionResult,\n activeDeferreds,\n false // This method is only called client side so we always want to bubble\n );\n\n // Process results from our revalidating fetchers\n revalidatingFetchers.forEach((rf) => {\n let { key, match, controller } = rf;\n let result = fetcherResults[key];\n invariant(result, \"Did not find corresponding fetcher result\");\n\n // Process fetcher non-redirect errors\n if (controller && controller.signal.aborted) {\n // Nothing to do for aborted fetchers\n return;\n } else if (isErrorResult(result)) {\n let boundaryMatch = findNearestBoundary(state.matches, match?.route.id);\n if (!(errors && errors[boundaryMatch.route.id])) {\n errors = {\n ...errors,\n [boundaryMatch.route.id]: result.error,\n };\n }\n state.fetchers.delete(key);\n } else if (isRedirectResult(result)) {\n // Should never get here, redirects should get processed above, but we\n // keep this to type narrow to a success result in the else\n invariant(false, \"Unhandled fetcher revalidation redirect\");\n } else if (isDeferredResult(result)) {\n // Should never get here, deferred data should be awaited for fetchers\n // in resolveDeferredResults\n invariant(false, \"Unhandled fetcher deferred data\");\n } else {\n let doneFetcher = getDoneFetcher(result.data);\n state.fetchers.set(key, doneFetcher);\n }\n });\n\n return { loaderData, errors };\n}\n\nfunction mergeLoaderData(\n loaderData: RouteData,\n newLoaderData: RouteData,\n matches: AgnosticDataRouteMatch[],\n errors: RouteData | null | undefined\n): RouteData {\n let mergedLoaderData = { ...newLoaderData };\n for (let match of matches) {\n let id = match.route.id;\n if (newLoaderData.hasOwnProperty(id)) {\n if (newLoaderData[id] !== undefined) {\n mergedLoaderData[id] = newLoaderData[id];\n } else {\n // No-op - this is so we ignore existing data if we have a key in the\n // incoming object with an undefined value, which is how we unset a prior\n // loaderData if we encounter a loader error\n }\n } else if (loaderData[id] !== undefined && match.route.loader) {\n // Preserve existing keys not included in newLoaderData and where a loader\n // wasn't removed by HMR\n mergedLoaderData[id] = loaderData[id];\n }\n\n if (errors && errors.hasOwnProperty(id)) {\n // Don't keep any loader data below the boundary\n break;\n }\n }\n return mergedLoaderData;\n}\n\nfunction getActionDataForCommit(\n pendingActionResult: PendingActionResult | undefined\n) {\n if (!pendingActionResult) {\n return {};\n }\n return isErrorResult(pendingActionResult[1])\n ? {\n // Clear out prior actionData on errors\n actionData: {},\n }\n : {\n actionData: {\n [pendingActionResult[0]]: pendingActionResult[1].data,\n },\n };\n}\n\n// Find the nearest error boundary, looking upwards from the leaf route (or the\n// route specified by routeId) for the closest ancestor error boundary,\n// defaulting to the root match\nfunction findNearestBoundary(\n matches: AgnosticDataRouteMatch[],\n routeId?: string\n): AgnosticDataRouteMatch {\n let eligibleMatches = routeId\n ? matches.slice(0, matches.findIndex((m) => m.route.id === routeId) + 1)\n : [...matches];\n return (\n eligibleMatches.reverse().find((m) => m.route.hasErrorBoundary === true) ||\n matches[0]\n );\n}\n\nfunction getShortCircuitMatches(routes: AgnosticDataRouteObject[]): {\n matches: AgnosticDataRouteMatch[];\n route: AgnosticDataRouteObject;\n} {\n // Prefer a root layout route if present, otherwise shim in a route object\n let route =\n routes.length === 1\n ? routes[0]\n : routes.find((r) => r.index || !r.path || r.path === \"/\") || {\n id: `__shim-error-route__`,\n };\n\n return {\n matches: [\n {\n params: {},\n pathname: \"\",\n pathnameBase: \"\",\n route,\n },\n ],\n route,\n };\n}\n\nfunction getInternalRouterError(\n status: number,\n {\n pathname,\n routeId,\n method,\n type,\n message,\n }: {\n pathname?: string;\n routeId?: string;\n method?: string;\n type?: \"defer-action\" | \"invalid-body\";\n message?: string;\n } = {}\n) {\n let statusText = \"Unknown Server Error\";\n let errorMessage = \"Unknown @remix-run/router error\";\n\n if (status === 400) {\n statusText = \"Bad Request\";\n if (method && pathname && routeId) {\n errorMessage =\n `You made a ${method} request to \"${pathname}\" but ` +\n `did not provide a \\`loader\\` for route \"${routeId}\", ` +\n `so there is no way to handle the request.`;\n } else if (type === \"defer-action\") {\n errorMessage = \"defer() is not supported in actions\";\n } else if (type === \"invalid-body\") {\n errorMessage = \"Unable to encode submission body\";\n }\n } else if (status === 403) {\n statusText = \"Forbidden\";\n errorMessage = `Route \"${routeId}\" does not match URL \"${pathname}\"`;\n } else if (status === 404) {\n statusText = \"Not Found\";\n errorMessage = `No route matches URL \"${pathname}\"`;\n } else if (status === 405) {\n statusText = \"Method Not Allowed\";\n if (method && pathname && routeId) {\n errorMessage =\n `You made a ${method.toUpperCase()} request to \"${pathname}\" but ` +\n `did not provide an \\`action\\` for route \"${routeId}\", ` +\n `so there is no way to handle the request.`;\n } else if (method) {\n errorMessage = `Invalid request method \"${method.toUpperCase()}\"`;\n }\n }\n\n return new ErrorResponseImpl(\n status || 500,\n statusText,\n new Error(errorMessage),\n true\n );\n}\n\n// Find any returned redirect errors, starting from the lowest match\nfunction findRedirect(\n results: Record\n): { key: string; result: RedirectResult } | undefined {\n let entries = Object.entries(results);\n for (let i = entries.length - 1; i >= 0; i--) {\n let [key, result] = entries[i];\n if (isRedirectResult(result)) {\n return { key, result };\n }\n }\n}\n\nfunction stripHashFromPath(path: To) {\n let parsedPath = typeof path === \"string\" ? parsePath(path) : path;\n return createPath({ ...parsedPath, hash: \"\" });\n}\n\nfunction isHashChangeOnly(a: Location, b: Location): boolean {\n if (a.pathname !== b.pathname || a.search !== b.search) {\n return false;\n }\n\n if (a.hash === \"\") {\n // /page -> /page#hash\n return b.hash !== \"\";\n } else if (a.hash === b.hash) {\n // /page#hash -> /page#hash\n return true;\n } else if (b.hash !== \"\") {\n // /page#hash -> /page#other\n return true;\n }\n\n // If the hash is removed the browser will re-perform a request to the server\n // /page#hash -> /page\n return false;\n}\n\nfunction isPromise(val: unknown): val is Promise {\n return typeof val === \"object\" && val != null && \"then\" in val;\n}\n\nfunction isDataStrategyResult(result: unknown): result is DataStrategyResult {\n return (\n result != null &&\n typeof result === \"object\" &&\n \"type\" in result &&\n \"result\" in result &&\n (result.type === ResultType.data || result.type === ResultType.error)\n );\n}\n\nfunction isRedirectDataStrategyResultResult(result: DataStrategyResult) {\n return (\n isResponse(result.result) && redirectStatusCodes.has(result.result.status)\n );\n}\n\nfunction isDeferredResult(result: DataResult): result is DeferredResult {\n return result.type === ResultType.deferred;\n}\n\nfunction isErrorResult(result: DataResult): result is ErrorResult {\n return result.type === ResultType.error;\n}\n\nfunction isRedirectResult(result?: DataResult): result is RedirectResult {\n return (result && result.type) === ResultType.redirect;\n}\n\nexport function isDataWithResponseInit(\n value: any\n): value is DataWithResponseInit {\n return (\n typeof value === \"object\" &&\n value != null &&\n \"type\" in value &&\n \"data\" in value &&\n \"init\" in value &&\n value.type === \"DataWithResponseInit\"\n );\n}\n\nexport function isDeferredData(value: any): value is DeferredData {\n let deferred: DeferredData = value;\n return (\n deferred &&\n typeof deferred === \"object\" &&\n typeof deferred.data === \"object\" &&\n typeof deferred.subscribe === \"function\" &&\n typeof deferred.cancel === \"function\" &&\n typeof deferred.resolveData === \"function\"\n );\n}\n\nfunction isResponse(value: any): value is Response {\n return (\n value != null &&\n typeof value.status === \"number\" &&\n typeof value.statusText === \"string\" &&\n typeof value.headers === \"object\" &&\n typeof value.body !== \"undefined\"\n );\n}\n\nfunction isRedirectResponse(result: any): result is Response {\n if (!isResponse(result)) {\n return false;\n }\n\n let status = result.status;\n let location = result.headers.get(\"Location\");\n return status >= 300 && status <= 399 && location != null;\n}\n\nfunction isValidMethod(method: string): method is FormMethod | V7_FormMethod {\n return validRequestMethods.has(method.toLowerCase() as FormMethod);\n}\n\nfunction isMutationMethod(\n method: string\n): method is MutationFormMethod | V7_MutationFormMethod {\n return validMutationMethods.has(method.toLowerCase() as MutationFormMethod);\n}\n\nasync function resolveNavigationDeferredResults(\n matches: (AgnosticDataRouteMatch | null)[],\n results: Record,\n signal: AbortSignal,\n currentMatches: AgnosticDataRouteMatch[],\n currentLoaderData: RouteData\n) {\n let entries = Object.entries(results);\n for (let index = 0; index < entries.length; index++) {\n let [routeId, result] = entries[index];\n let match = matches.find((m) => m?.route.id === routeId);\n // If we don't have a match, then we can have a deferred result to do\n // anything with. This is for revalidating fetchers where the route was\n // removed during HMR\n if (!match) {\n continue;\n }\n\n let currentMatch = currentMatches.find(\n (m) => m.route.id === match!.route.id\n );\n let isRevalidatingLoader =\n currentMatch != null &&\n !isNewRouteInstance(currentMatch, match) &&\n (currentLoaderData && currentLoaderData[match.route.id]) !== undefined;\n\n if (isDeferredResult(result) && isRevalidatingLoader) {\n // Note: we do not have to touch activeDeferreds here since we race them\n // against the signal in resolveDeferredData and they'll get aborted\n // there if needed\n await resolveDeferredData(result, signal, false).then((result) => {\n if (result) {\n results[routeId] = result;\n }\n });\n }\n }\n}\n\nasync function resolveFetcherDeferredResults(\n matches: (AgnosticDataRouteMatch | null)[],\n results: Record,\n revalidatingFetchers: RevalidatingFetcher[]\n) {\n for (let index = 0; index < revalidatingFetchers.length; index++) {\n let { key, routeId, controller } = revalidatingFetchers[index];\n let result = results[key];\n let match = matches.find((m) => m?.route.id === routeId);\n // If we don't have a match, then we can have a deferred result to do\n // anything with. This is for revalidating fetchers where the route was\n // removed during HMR\n if (!match) {\n continue;\n }\n\n if (isDeferredResult(result)) {\n // Note: we do not have to touch activeDeferreds here since we race them\n // against the signal in resolveDeferredData and they'll get aborted\n // there if needed\n invariant(\n controller,\n \"Expected an AbortController for revalidating fetcher deferred result\"\n );\n await resolveDeferredData(result, controller.signal, true).then(\n (result) => {\n if (result) {\n results[key] = result;\n }\n }\n );\n }\n }\n}\n\nasync function resolveDeferredData(\n result: DeferredResult,\n signal: AbortSignal,\n unwrap = false\n): Promise {\n let aborted = await result.deferredData.resolveData(signal);\n if (aborted) {\n return;\n }\n\n if (unwrap) {\n try {\n return {\n type: ResultType.data,\n data: result.deferredData.unwrappedData,\n };\n } catch (e) {\n // Handle any TrackedPromise._error values encountered while unwrapping\n return {\n type: ResultType.error,\n error: e,\n };\n }\n }\n\n return {\n type: ResultType.data,\n data: result.deferredData.data,\n };\n}\n\nfunction hasNakedIndexQuery(search: string): boolean {\n return new URLSearchParams(search).getAll(\"index\").some((v) => v === \"\");\n}\n\nfunction getTargetMatch(\n matches: AgnosticDataRouteMatch[],\n location: Location | string\n) {\n let search =\n typeof location === \"string\" ? parsePath(location).search : location.search;\n if (\n matches[matches.length - 1].route.index &&\n hasNakedIndexQuery(search || \"\")\n ) {\n // Return the leaf index route when index is present\n return matches[matches.length - 1];\n }\n // Otherwise grab the deepest \"path contributing\" match (ignoring index and\n // pathless layout routes)\n let pathMatches = getPathContributingMatches(matches);\n return pathMatches[pathMatches.length - 1];\n}\n\nfunction getSubmissionFromNavigation(\n navigation: Navigation\n): Submission | undefined {\n let { formMethod, formAction, formEncType, text, formData, json } =\n navigation;\n if (!formMethod || !formAction || !formEncType) {\n return;\n }\n\n if (text != null) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData: undefined,\n json: undefined,\n text,\n };\n } else if (formData != null) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData,\n json: undefined,\n text: undefined,\n };\n } else if (json !== undefined) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData: undefined,\n json,\n text: undefined,\n };\n }\n}\n\nfunction getLoadingNavigation(\n location: Location,\n submission?: Submission\n): NavigationStates[\"Loading\"] {\n if (submission) {\n let navigation: NavigationStates[\"Loading\"] = {\n state: \"loading\",\n location,\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n };\n return navigation;\n } else {\n let navigation: NavigationStates[\"Loading\"] = {\n state: \"loading\",\n location,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n };\n return navigation;\n }\n}\n\nfunction getSubmittingNavigation(\n location: Location,\n submission: Submission\n): NavigationStates[\"Submitting\"] {\n let navigation: NavigationStates[\"Submitting\"] = {\n state: \"submitting\",\n location,\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n };\n return navigation;\n}\n\nfunction getLoadingFetcher(\n submission?: Submission,\n data?: Fetcher[\"data\"]\n): FetcherStates[\"Loading\"] {\n if (submission) {\n let fetcher: FetcherStates[\"Loading\"] = {\n state: \"loading\",\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n data,\n };\n return fetcher;\n } else {\n let fetcher: FetcherStates[\"Loading\"] = {\n state: \"loading\",\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n data,\n };\n return fetcher;\n }\n}\n\nfunction getSubmittingFetcher(\n submission: Submission,\n existingFetcher?: Fetcher\n): FetcherStates[\"Submitting\"] {\n let fetcher: FetcherStates[\"Submitting\"] = {\n state: \"submitting\",\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n data: existingFetcher ? existingFetcher.data : undefined,\n };\n return fetcher;\n}\n\nfunction getDoneFetcher(data: Fetcher[\"data\"]): FetcherStates[\"Idle\"] {\n let fetcher: FetcherStates[\"Idle\"] = {\n state: \"idle\",\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n data,\n };\n return fetcher;\n}\n\nfunction restoreAppliedTransitions(\n _window: Window,\n transitions: Map>\n) {\n try {\n let sessionPositions = _window.sessionStorage.getItem(\n TRANSITIONS_STORAGE_KEY\n );\n if (sessionPositions) {\n let json = JSON.parse(sessionPositions);\n for (let [k, v] of Object.entries(json || {})) {\n if (v && Array.isArray(v)) {\n transitions.set(k, new Set(v || []));\n }\n }\n }\n } catch (e) {\n // no-op, use default empty object\n }\n}\n\nfunction persistAppliedTransitions(\n _window: Window,\n transitions: Map>\n) {\n if (transitions.size > 0) {\n let json: Record = {};\n for (let [k, v] of transitions) {\n json[k] = [...v];\n }\n try {\n _window.sessionStorage.setItem(\n TRANSITIONS_STORAGE_KEY,\n JSON.stringify(json)\n );\n } catch (error) {\n warning(\n false,\n `Failed to save applied view transitions in sessionStorage (${error}).`\n );\n }\n }\n}\n//#endregion\n","import * as React from \"react\";\nimport type {\n AgnosticIndexRouteObject,\n AgnosticNonIndexRouteObject,\n AgnosticRouteMatch,\n History,\n LazyRouteFunction,\n Location,\n Action as NavigationType,\n RelativeRoutingType,\n Router,\n StaticHandlerContext,\n To,\n TrackedPromise,\n} from \"@remix-run/router\";\n\n// Create react-specific types from the agnostic types in @remix-run/router to\n// export from react-router\nexport interface IndexRouteObject {\n caseSensitive?: AgnosticIndexRouteObject[\"caseSensitive\"];\n path?: AgnosticIndexRouteObject[\"path\"];\n id?: AgnosticIndexRouteObject[\"id\"];\n loader?: AgnosticIndexRouteObject[\"loader\"];\n action?: AgnosticIndexRouteObject[\"action\"];\n hasErrorBoundary?: AgnosticIndexRouteObject[\"hasErrorBoundary\"];\n shouldRevalidate?: AgnosticIndexRouteObject[\"shouldRevalidate\"];\n handle?: AgnosticIndexRouteObject[\"handle\"];\n index: true;\n children?: undefined;\n element?: React.ReactNode | null;\n hydrateFallbackElement?: React.ReactNode | null;\n errorElement?: React.ReactNode | null;\n Component?: React.ComponentType | null;\n HydrateFallback?: React.ComponentType | null;\n ErrorBoundary?: React.ComponentType | null;\n lazy?: LazyRouteFunction;\n}\n\nexport interface NonIndexRouteObject {\n caseSensitive?: AgnosticNonIndexRouteObject[\"caseSensitive\"];\n path?: AgnosticNonIndexRouteObject[\"path\"];\n id?: AgnosticNonIndexRouteObject[\"id\"];\n loader?: AgnosticNonIndexRouteObject[\"loader\"];\n action?: AgnosticNonIndexRouteObject[\"action\"];\n hasErrorBoundary?: AgnosticNonIndexRouteObject[\"hasErrorBoundary\"];\n shouldRevalidate?: AgnosticNonIndexRouteObject[\"shouldRevalidate\"];\n handle?: AgnosticNonIndexRouteObject[\"handle\"];\n index?: false;\n children?: RouteObject[];\n element?: React.ReactNode | null;\n hydrateFallbackElement?: React.ReactNode | null;\n errorElement?: React.ReactNode | null;\n Component?: React.ComponentType | null;\n HydrateFallback?: React.ComponentType | null;\n ErrorBoundary?: React.ComponentType | null;\n lazy?: LazyRouteFunction;\n}\n\nexport type RouteObject = IndexRouteObject | NonIndexRouteObject;\n\nexport type DataRouteObject = RouteObject & {\n children?: DataRouteObject[];\n id: string;\n};\n\nexport interface RouteMatch<\n ParamKey extends string = string,\n RouteObjectType extends RouteObject = RouteObject\n> extends AgnosticRouteMatch {}\n\nexport interface DataRouteMatch extends RouteMatch {}\n\nexport interface DataRouterContextObject\n // Omit `future` since those can be pulled from the `router`\n // `NavigationContext` needs future since it doesn't have a `router` in all cases\n extends Omit {\n router: Router;\n staticContext?: StaticHandlerContext;\n}\n\nexport const DataRouterContext =\n React.createContext(null);\nif (__DEV__) {\n DataRouterContext.displayName = \"DataRouter\";\n}\n\nexport const DataRouterStateContext = React.createContext<\n Router[\"state\"] | null\n>(null);\nif (__DEV__) {\n DataRouterStateContext.displayName = \"DataRouterState\";\n}\n\nexport const AwaitContext = React.createContext(null);\nif (__DEV__) {\n AwaitContext.displayName = \"Await\";\n}\n\nexport interface NavigateOptions {\n replace?: boolean;\n state?: any;\n preventScrollReset?: boolean;\n relative?: RelativeRoutingType;\n flushSync?: boolean;\n viewTransition?: boolean;\n}\n\n/**\n * A Navigator is a \"location changer\"; it's how you get to different locations.\n *\n * Every history instance conforms to the Navigator interface, but the\n * distinction is useful primarily when it comes to the low-level `` API\n * where both the location and a navigator must be provided separately in order\n * to avoid \"tearing\" that may occur in a suspense-enabled app if the action\n * and/or location were to be read directly from the history instance.\n */\nexport interface Navigator {\n createHref: History[\"createHref\"];\n // Optional for backwards-compat with Router/HistoryRouter usage (edge case)\n encodeLocation?: History[\"encodeLocation\"];\n go: History[\"go\"];\n push(to: To, state?: any, opts?: NavigateOptions): void;\n replace(to: To, state?: any, opts?: NavigateOptions): void;\n}\n\ninterface NavigationContextObject {\n basename: string;\n navigator: Navigator;\n static: boolean;\n future: {\n v7_relativeSplatPath: boolean;\n };\n}\n\nexport const NavigationContext = React.createContext(\n null!\n);\n\nif (__DEV__) {\n NavigationContext.displayName = \"Navigation\";\n}\n\ninterface LocationContextObject {\n location: Location;\n navigationType: NavigationType;\n}\n\nexport const LocationContext = React.createContext(\n null!\n);\n\nif (__DEV__) {\n LocationContext.displayName = \"Location\";\n}\n\nexport interface RouteContextObject {\n outlet: React.ReactElement | null;\n matches: RouteMatch[];\n isDataRoute: boolean;\n}\n\nexport const RouteContext = React.createContext({\n outlet: null,\n matches: [],\n isDataRoute: false,\n});\n\nif (__DEV__) {\n RouteContext.displayName = \"Route\";\n}\n\nexport const RouteErrorContext = React.createContext(null);\n\nif (__DEV__) {\n RouteErrorContext.displayName = \"RouteError\";\n}\n","import * as React from \"react\";\nimport type {\n Blocker,\n BlockerFunction,\n Location,\n ParamParseKey,\n Params,\n Path,\n PathMatch,\n PathPattern,\n RelativeRoutingType,\n Router as RemixRouter,\n RevalidationState,\n To,\n UIMatch,\n} from \"@remix-run/router\";\nimport {\n IDLE_BLOCKER,\n Action as NavigationType,\n UNSAFE_convertRouteMatchToUiMatch as convertRouteMatchToUiMatch,\n UNSAFE_decodePath as decodePath,\n UNSAFE_getResolveToMatches as getResolveToMatches,\n UNSAFE_invariant as invariant,\n isRouteErrorResponse,\n joinPaths,\n matchPath,\n matchRoutes,\n parsePath,\n resolveTo,\n stripBasename,\n UNSAFE_warning as warning,\n} from \"@remix-run/router\";\n\nimport type {\n DataRouteMatch,\n NavigateOptions,\n RouteContextObject,\n RouteMatch,\n RouteObject,\n} from \"./context\";\nimport {\n AwaitContext,\n DataRouterContext,\n DataRouterStateContext,\n LocationContext,\n NavigationContext,\n RouteContext,\n RouteErrorContext,\n} from \"./context\";\n\n/**\n * Returns the full href for the given \"to\" value. This is useful for building\n * custom links that are also accessible and preserve right-click behavior.\n *\n * @see https://reactrouter.com/v6/hooks/use-href\n */\nexport function useHref(\n to: To,\n { relative }: { relative?: RelativeRoutingType } = {}\n): string {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useHref() may be used only in the context of a component.`\n );\n\n let { basename, navigator } = React.useContext(NavigationContext);\n let { hash, pathname, search } = useResolvedPath(to, { relative });\n\n let joinedPathname = pathname;\n\n // If we're operating within a basename, prepend it to the pathname prior\n // to creating the href. If this is a root navigation, then just use the raw\n // basename which allows the basename to have full control over the presence\n // of a trailing slash on root links\n if (basename !== \"/\") {\n joinedPathname =\n pathname === \"/\" ? basename : joinPaths([basename, pathname]);\n }\n\n return navigator.createHref({ pathname: joinedPathname, search, hash });\n}\n\n/**\n * Returns true if this component is a descendant of a ``.\n *\n * @see https://reactrouter.com/v6/hooks/use-in-router-context\n */\nexport function useInRouterContext(): boolean {\n return React.useContext(LocationContext) != null;\n}\n\n/**\n * Returns the current location object, which represents the current URL in web\n * browsers.\n *\n * Note: If you're using this it may mean you're doing some of your own\n * \"routing\" in your app, and we'd like to know what your use case is. We may\n * be able to provide something higher-level to better suit your needs.\n *\n * @see https://reactrouter.com/v6/hooks/use-location\n */\nexport function useLocation(): Location {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useLocation() may be used only in the context of a component.`\n );\n\n return React.useContext(LocationContext).location;\n}\n\n/**\n * Returns the current navigation action which describes how the router came to\n * the current location, either by a pop, push, or replace on the history stack.\n *\n * @see https://reactrouter.com/v6/hooks/use-navigation-type\n */\nexport function useNavigationType(): NavigationType {\n return React.useContext(LocationContext).navigationType;\n}\n\n/**\n * Returns a PathMatch object if the given pattern matches the current URL.\n * This is useful for components that need to know \"active\" state, e.g.\n * ``.\n *\n * @see https://reactrouter.com/v6/hooks/use-match\n */\nexport function useMatch<\n ParamKey extends ParamParseKey,\n Path extends string\n>(pattern: PathPattern | Path): PathMatch | null {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useMatch() may be used only in the context of a component.`\n );\n\n let { pathname } = useLocation();\n return React.useMemo(\n () => matchPath(pattern, decodePath(pathname)),\n [pathname, pattern]\n );\n}\n\n/**\n * The interface for the navigate() function returned from useNavigate().\n */\nexport interface NavigateFunction {\n (to: To, options?: NavigateOptions): void;\n (delta: number): void;\n}\n\nconst navigateEffectWarning =\n `You should call navigate() in a React.useEffect(), not when ` +\n `your component is first rendered.`;\n\n// Mute warnings for calls to useNavigate in SSR environments\nfunction useIsomorphicLayoutEffect(\n cb: Parameters[0]\n) {\n let isStatic = React.useContext(NavigationContext).static;\n if (!isStatic) {\n // We should be able to get rid of this once react 18.3 is released\n // See: https://github.com/facebook/react/pull/26395\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useLayoutEffect(cb);\n }\n}\n\n/**\n * Returns an imperative method for changing the location. Used by ``s, but\n * may also be used by other elements to change the location.\n *\n * @see https://reactrouter.com/v6/hooks/use-navigate\n */\nexport function useNavigate(): NavigateFunction {\n let { isDataRoute } = React.useContext(RouteContext);\n // Conditional usage is OK here because the usage of a data router is static\n // eslint-disable-next-line react-hooks/rules-of-hooks\n return isDataRoute ? useNavigateStable() : useNavigateUnstable();\n}\n\nfunction useNavigateUnstable(): NavigateFunction {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useNavigate() may be used only in the context of a component.`\n );\n\n let dataRouterContext = React.useContext(DataRouterContext);\n let { basename, future, navigator } = React.useContext(NavigationContext);\n let { matches } = React.useContext(RouteContext);\n let { pathname: locationPathname } = useLocation();\n\n let routePathnamesJson = JSON.stringify(\n getResolveToMatches(matches, future.v7_relativeSplatPath)\n );\n\n let activeRef = React.useRef(false);\n useIsomorphicLayoutEffect(() => {\n activeRef.current = true;\n });\n\n let navigate: NavigateFunction = React.useCallback(\n (to: To | number, options: NavigateOptions = {}) => {\n warning(activeRef.current, navigateEffectWarning);\n\n // Short circuit here since if this happens on first render the navigate\n // is useless because we haven't wired up our history listener yet\n if (!activeRef.current) return;\n\n if (typeof to === \"number\") {\n navigator.go(to);\n return;\n }\n\n let path = resolveTo(\n to,\n JSON.parse(routePathnamesJson),\n locationPathname,\n options.relative === \"path\"\n );\n\n // If we're operating within a basename, prepend it to the pathname prior\n // to handing off to history (but only if we're not in a data router,\n // otherwise it'll prepend the basename inside of the router).\n // If this is a root navigation, then we navigate to the raw basename\n // which allows the basename to have full control over the presence of a\n // trailing slash on root links\n if (dataRouterContext == null && basename !== \"/\") {\n path.pathname =\n path.pathname === \"/\"\n ? basename\n : joinPaths([basename, path.pathname]);\n }\n\n (!!options.replace ? navigator.replace : navigator.push)(\n path,\n options.state,\n options\n );\n },\n [\n basename,\n navigator,\n routePathnamesJson,\n locationPathname,\n dataRouterContext,\n ]\n );\n\n return navigate;\n}\n\nconst OutletContext = React.createContext(null);\n\n/**\n * Returns the context (if provided) for the child route at this level of the route\n * hierarchy.\n * @see https://reactrouter.com/v6/hooks/use-outlet-context\n */\nexport function useOutletContext(): Context {\n return React.useContext(OutletContext) as Context;\n}\n\n/**\n * Returns the element for the child route at this level of the route\n * hierarchy. Used internally by `` to render child routes.\n *\n * @see https://reactrouter.com/v6/hooks/use-outlet\n */\nexport function useOutlet(context?: unknown): React.ReactElement | null {\n let outlet = React.useContext(RouteContext).outlet;\n if (outlet) {\n return (\n {outlet}\n );\n }\n return outlet;\n}\n\n/**\n * Returns an object of key/value pairs of the dynamic params from the current\n * URL that were matched by the route path.\n *\n * @see https://reactrouter.com/v6/hooks/use-params\n */\nexport function useParams<\n ParamsOrKey extends string | Record = string\n>(): Readonly<\n [ParamsOrKey] extends [string] ? Params : Partial\n> {\n let { matches } = React.useContext(RouteContext);\n let routeMatch = matches[matches.length - 1];\n return routeMatch ? (routeMatch.params as any) : {};\n}\n\n/**\n * Resolves the pathname of the given `to` value against the current location.\n *\n * @see https://reactrouter.com/v6/hooks/use-resolved-path\n */\nexport function useResolvedPath(\n to: To,\n { relative }: { relative?: RelativeRoutingType } = {}\n): Path {\n let { future } = React.useContext(NavigationContext);\n let { matches } = React.useContext(RouteContext);\n let { pathname: locationPathname } = useLocation();\n let routePathnamesJson = JSON.stringify(\n getResolveToMatches(matches, future.v7_relativeSplatPath)\n );\n\n return React.useMemo(\n () =>\n resolveTo(\n to,\n JSON.parse(routePathnamesJson),\n locationPathname,\n relative === \"path\"\n ),\n [to, routePathnamesJson, locationPathname, relative]\n );\n}\n\n/**\n * Returns the element of the route that matched the current location, prepared\n * with the correct context to render the remainder of the route tree. Route\n * elements in the tree must render an `` to render their child route's\n * element.\n *\n * @see https://reactrouter.com/v6/hooks/use-routes\n */\nexport function useRoutes(\n routes: RouteObject[],\n locationArg?: Partial | string\n): React.ReactElement | null {\n return useRoutesImpl(routes, locationArg);\n}\n\n// Internal implementation with accept optional param for RouterProvider usage\nexport function useRoutesImpl(\n routes: RouteObject[],\n locationArg?: Partial | string,\n dataRouterState?: RemixRouter[\"state\"],\n future?: RemixRouter[\"future\"]\n): React.ReactElement | null {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useRoutes() may be used only in the context of a component.`\n );\n\n let { navigator } = React.useContext(NavigationContext);\n let { matches: parentMatches } = React.useContext(RouteContext);\n let routeMatch = parentMatches[parentMatches.length - 1];\n let parentParams = routeMatch ? routeMatch.params : {};\n let parentPathname = routeMatch ? routeMatch.pathname : \"/\";\n let parentPathnameBase = routeMatch ? routeMatch.pathnameBase : \"/\";\n let parentRoute = routeMatch && routeMatch.route;\n\n if (__DEV__) {\n // You won't get a warning about 2 different under a \n // without a trailing *, but this is a best-effort warning anyway since we\n // cannot even give the warning unless they land at the parent route.\n //\n // Example:\n //\n // \n // {/* This route path MUST end with /* because otherwise\n // it will never match /blog/post/123 */}\n // } />\n // } />\n // \n //\n // function Blog() {\n // return (\n // \n // } />\n // \n // );\n // }\n let parentPath = (parentRoute && parentRoute.path) || \"\";\n warningOnce(\n parentPathname,\n !parentRoute || parentPath.endsWith(\"*\"),\n `You rendered descendant (or called \\`useRoutes()\\`) at ` +\n `\"${parentPathname}\" (under ) but the ` +\n `parent route path has no trailing \"*\". This means if you navigate ` +\n `deeper, the parent won't match anymore and therefore the child ` +\n `routes will never render.\\n\\n` +\n `Please change the parent to .`\n );\n }\n\n let locationFromContext = useLocation();\n\n let location;\n if (locationArg) {\n let parsedLocationArg =\n typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n\n invariant(\n parentPathnameBase === \"/\" ||\n parsedLocationArg.pathname?.startsWith(parentPathnameBase),\n `When overriding the location using \\`\\` or \\`useRoutes(routes, location)\\`, ` +\n `the location pathname must begin with the portion of the URL pathname that was ` +\n `matched by all parent routes. The current pathname base is \"${parentPathnameBase}\" ` +\n `but pathname \"${parsedLocationArg.pathname}\" was given in the \\`location\\` prop.`\n );\n\n location = parsedLocationArg;\n } else {\n location = locationFromContext;\n }\n\n let pathname = location.pathname || \"/\";\n\n let remainingPathname = pathname;\n if (parentPathnameBase !== \"/\") {\n // Determine the remaining pathname by removing the # of URL segments the\n // parentPathnameBase has, instead of removing based on character count.\n // This is because we can't guarantee that incoming/outgoing encodings/\n // decodings will match exactly.\n // We decode paths before matching on a per-segment basis with\n // decodeURIComponent(), but we re-encode pathnames via `new URL()` so they\n // match what `window.location.pathname` would reflect. Those don't 100%\n // align when it comes to encoded URI characters such as % and &.\n //\n // So we may end up with:\n // pathname: \"/descendant/a%25b/match\"\n // parentPathnameBase: \"/descendant/a%b\"\n //\n // And the direct substring removal approach won't work :/\n let parentSegments = parentPathnameBase.replace(/^\\//, \"\").split(\"/\");\n let segments = pathname.replace(/^\\//, \"\").split(\"/\");\n remainingPathname = \"/\" + segments.slice(parentSegments.length).join(\"/\");\n }\n\n let matches = matchRoutes(routes, { pathname: remainingPathname });\n\n if (__DEV__) {\n warning(\n parentRoute || matches != null,\n `No routes matched location \"${location.pathname}${location.search}${location.hash}\" `\n );\n\n warning(\n matches == null ||\n matches[matches.length - 1].route.element !== undefined ||\n matches[matches.length - 1].route.Component !== undefined ||\n matches[matches.length - 1].route.lazy !== undefined,\n `Matched leaf route at location \"${location.pathname}${location.search}${location.hash}\" ` +\n `does not have an element or Component. This means it will render an with a ` +\n `null value by default resulting in an \"empty\" page.`\n );\n }\n\n let renderedMatches = _renderMatches(\n matches &&\n matches.map((match) =>\n Object.assign({}, match, {\n params: Object.assign({}, parentParams, match.params),\n pathname: joinPaths([\n parentPathnameBase,\n // Re-encode pathnames that were decoded inside matchRoutes\n navigator.encodeLocation\n ? navigator.encodeLocation(match.pathname).pathname\n : match.pathname,\n ]),\n pathnameBase:\n match.pathnameBase === \"/\"\n ? parentPathnameBase\n : joinPaths([\n parentPathnameBase,\n // Re-encode pathnames that were decoded inside matchRoutes\n navigator.encodeLocation\n ? navigator.encodeLocation(match.pathnameBase).pathname\n : match.pathnameBase,\n ]),\n })\n ),\n parentMatches,\n dataRouterState,\n future\n );\n\n // When a user passes in a `locationArg`, the associated routes need to\n // be wrapped in a new `LocationContext.Provider` in order for `useLocation`\n // to use the scoped location instead of the global location.\n if (locationArg && renderedMatches) {\n return (\n \n {renderedMatches}\n \n );\n }\n\n return renderedMatches;\n}\n\nfunction DefaultErrorComponent() {\n let error = useRouteError();\n let message = isRouteErrorResponse(error)\n ? `${error.status} ${error.statusText}`\n : error instanceof Error\n ? error.message\n : JSON.stringify(error);\n let stack = error instanceof Error ? error.stack : null;\n let lightgrey = \"rgba(200,200,200, 0.5)\";\n let preStyles = { padding: \"0.5rem\", backgroundColor: lightgrey };\n let codeStyles = { padding: \"2px 4px\", backgroundColor: lightgrey };\n\n let devInfo = null;\n if (__DEV__) {\n console.error(\n \"Error handled by React Router default ErrorBoundary:\",\n error\n );\n\n devInfo = (\n <>\n

💿 Hey developer 👋

\n

\n You can provide a way better UX than this when your app throws errors\n by providing your own ErrorBoundary or{\" \"}\n errorElement prop on your route.\n

\n \n );\n }\n\n return (\n <>\n

Unexpected Application Error!

\n

{message}

\n {stack ?
{stack}
: null}\n {devInfo}\n \n );\n}\n\nconst defaultErrorElement = ;\n\ntype RenderErrorBoundaryProps = React.PropsWithChildren<{\n location: Location;\n revalidation: RevalidationState;\n error: any;\n component: React.ReactNode;\n routeContext: RouteContextObject;\n}>;\n\ntype RenderErrorBoundaryState = {\n location: Location;\n revalidation: RevalidationState;\n error: any;\n};\n\nexport class RenderErrorBoundary extends React.Component<\n RenderErrorBoundaryProps,\n RenderErrorBoundaryState\n> {\n constructor(props: RenderErrorBoundaryProps) {\n super(props);\n this.state = {\n location: props.location,\n revalidation: props.revalidation,\n error: props.error,\n };\n }\n\n static getDerivedStateFromError(error: any) {\n return { error: error };\n }\n\n static getDerivedStateFromProps(\n props: RenderErrorBoundaryProps,\n state: RenderErrorBoundaryState\n ) {\n // When we get into an error state, the user will likely click \"back\" to the\n // previous page that didn't have an error. Because this wraps the entire\n // application, that will have no effect--the error page continues to display.\n // This gives us a mechanism to recover from the error when the location changes.\n //\n // Whether we're in an error state or not, we update the location in state\n // so that when we are in an error state, it gets reset when a new location\n // comes in and the user recovers from the error.\n if (\n state.location !== props.location ||\n (state.revalidation !== \"idle\" && props.revalidation === \"idle\")\n ) {\n return {\n error: props.error,\n location: props.location,\n revalidation: props.revalidation,\n };\n }\n\n // If we're not changing locations, preserve the location but still surface\n // any new errors that may come through. We retain the existing error, we do\n // this because the error provided from the app state may be cleared without\n // the location changing.\n return {\n error: props.error !== undefined ? props.error : state.error,\n location: state.location,\n revalidation: props.revalidation || state.revalidation,\n };\n }\n\n componentDidCatch(error: any, errorInfo: any) {\n console.error(\n \"React Router caught the following error during render\",\n error,\n errorInfo\n );\n }\n\n render() {\n return this.state.error !== undefined ? (\n \n \n \n ) : (\n this.props.children\n );\n }\n}\n\ninterface RenderedRouteProps {\n routeContext: RouteContextObject;\n match: RouteMatch;\n children: React.ReactNode | null;\n}\n\nfunction RenderedRoute({ routeContext, match, children }: RenderedRouteProps) {\n let dataRouterContext = React.useContext(DataRouterContext);\n\n // Track how deep we got in our render pass to emulate SSR componentDidCatch\n // in a DataStaticRouter\n if (\n dataRouterContext &&\n dataRouterContext.static &&\n dataRouterContext.staticContext &&\n (match.route.errorElement || match.route.ErrorBoundary)\n ) {\n dataRouterContext.staticContext._deepestRenderedBoundaryId = match.route.id;\n }\n\n return (\n \n {children}\n \n );\n}\n\nexport function _renderMatches(\n matches: RouteMatch[] | null,\n parentMatches: RouteMatch[] = [],\n dataRouterState: RemixRouter[\"state\"] | null = null,\n future: RemixRouter[\"future\"] | null = null\n): React.ReactElement | null {\n if (matches == null) {\n if (!dataRouterState) {\n return null;\n }\n\n if (dataRouterState.errors) {\n // Don't bail if we have data router errors so we can render them in the\n // boundary. Use the pre-matched (or shimmed) matches\n matches = dataRouterState.matches as DataRouteMatch[];\n } else if (\n future?.v7_partialHydration &&\n parentMatches.length === 0 &&\n !dataRouterState.initialized &&\n dataRouterState.matches.length > 0\n ) {\n // Don't bail if we're initializing with partial hydration and we have\n // router matches. That means we're actively running `patchRoutesOnNavigation`\n // so we should render down the partial matches to the appropriate\n // `HydrateFallback`. We only do this if `parentMatches` is empty so it\n // only impacts the root matches for `RouterProvider` and no descendant\n // ``\n matches = dataRouterState.matches as DataRouteMatch[];\n } else {\n return null;\n }\n }\n\n let renderedMatches = matches;\n\n // If we have data errors, trim matches to the highest error boundary\n let errors = dataRouterState?.errors;\n if (errors != null) {\n let errorIndex = renderedMatches.findIndex(\n (m) => m.route.id && errors?.[m.route.id] !== undefined\n );\n invariant(\n errorIndex >= 0,\n `Could not find a matching route for errors on route IDs: ${Object.keys(\n errors\n ).join(\",\")}`\n );\n renderedMatches = renderedMatches.slice(\n 0,\n Math.min(renderedMatches.length, errorIndex + 1)\n );\n }\n\n // If we're in a partial hydration mode, detect if we need to render down to\n // a given HydrateFallback while we load the rest of the hydration data\n let renderFallback = false;\n let fallbackIndex = -1;\n if (dataRouterState && future && future.v7_partialHydration) {\n for (let i = 0; i < renderedMatches.length; i++) {\n let match = renderedMatches[i];\n // Track the deepest fallback up until the first route without data\n if (match.route.HydrateFallback || match.route.hydrateFallbackElement) {\n fallbackIndex = i;\n }\n\n if (match.route.id) {\n let { loaderData, errors } = dataRouterState;\n let needsToRunLoader =\n match.route.loader &&\n loaderData[match.route.id] === undefined &&\n (!errors || errors[match.route.id] === undefined);\n if (match.route.lazy || needsToRunLoader) {\n // We found the first route that's not ready to render (waiting on\n // lazy, or has a loader that hasn't run yet). Flag that we need to\n // render a fallback and render up until the appropriate fallback\n renderFallback = true;\n if (fallbackIndex >= 0) {\n renderedMatches = renderedMatches.slice(0, fallbackIndex + 1);\n } else {\n renderedMatches = [renderedMatches[0]];\n }\n break;\n }\n }\n }\n }\n\n return renderedMatches.reduceRight((outlet, match, index) => {\n // Only data routers handle errors/fallbacks\n let error: any;\n let shouldRenderHydrateFallback = false;\n let errorElement: React.ReactNode | null = null;\n let hydrateFallbackElement: React.ReactNode | null = null;\n if (dataRouterState) {\n error = errors && match.route.id ? errors[match.route.id] : undefined;\n errorElement = match.route.errorElement || defaultErrorElement;\n\n if (renderFallback) {\n if (fallbackIndex < 0 && index === 0) {\n warningOnce(\n \"route-fallback\",\n false,\n \"No `HydrateFallback` element provided to render during initial hydration\"\n );\n shouldRenderHydrateFallback = true;\n hydrateFallbackElement = null;\n } else if (fallbackIndex === index) {\n shouldRenderHydrateFallback = true;\n hydrateFallbackElement = match.route.hydrateFallbackElement || null;\n }\n }\n }\n\n let matches = parentMatches.concat(renderedMatches.slice(0, index + 1));\n let getChildren = () => {\n let children: React.ReactNode;\n if (error) {\n children = errorElement;\n } else if (shouldRenderHydrateFallback) {\n children = hydrateFallbackElement;\n } else if (match.route.Component) {\n // Note: This is a de-optimized path since React won't re-use the\n // ReactElement since it's identity changes with each new\n // React.createElement call. We keep this so folks can use\n // `` in `` but generally `Component`\n // usage is only advised in `RouterProvider` when we can convert it to\n // `element` ahead of time.\n children = ;\n } else if (match.route.element) {\n children = match.route.element;\n } else {\n children = outlet;\n }\n return (\n \n );\n };\n // Only wrap in an error boundary within data router usages when we have an\n // ErrorBoundary/errorElement on this route. Otherwise let it bubble up to\n // an ancestor ErrorBoundary/errorElement\n return dataRouterState &&\n (match.route.ErrorBoundary || match.route.errorElement || index === 0) ? (\n \n ) : (\n getChildren()\n );\n }, null as React.ReactElement | null);\n}\n\nenum DataRouterHook {\n UseBlocker = \"useBlocker\",\n UseRevalidator = \"useRevalidator\",\n UseNavigateStable = \"useNavigate\",\n}\n\nenum DataRouterStateHook {\n UseBlocker = \"useBlocker\",\n UseLoaderData = \"useLoaderData\",\n UseActionData = \"useActionData\",\n UseRouteError = \"useRouteError\",\n UseNavigation = \"useNavigation\",\n UseRouteLoaderData = \"useRouteLoaderData\",\n UseMatches = \"useMatches\",\n UseRevalidator = \"useRevalidator\",\n UseNavigateStable = \"useNavigate\",\n UseRouteId = \"useRouteId\",\n}\n\nfunction getDataRouterConsoleError(\n hookName: DataRouterHook | DataRouterStateHook\n) {\n return `${hookName} must be used within a data router. See https://reactrouter.com/v6/routers/picking-a-router.`;\n}\n\nfunction useDataRouterContext(hookName: DataRouterHook) {\n let ctx = React.useContext(DataRouterContext);\n invariant(ctx, getDataRouterConsoleError(hookName));\n return ctx;\n}\n\nfunction useDataRouterState(hookName: DataRouterStateHook) {\n let state = React.useContext(DataRouterStateContext);\n invariant(state, getDataRouterConsoleError(hookName));\n return state;\n}\n\nfunction useRouteContext(hookName: DataRouterStateHook) {\n let route = React.useContext(RouteContext);\n invariant(route, getDataRouterConsoleError(hookName));\n return route;\n}\n\n// Internal version with hookName-aware debugging\nfunction useCurrentRouteId(hookName: DataRouterStateHook) {\n let route = useRouteContext(hookName);\n let thisRoute = route.matches[route.matches.length - 1];\n invariant(\n thisRoute.route.id,\n `${hookName} can only be used on routes that contain a unique \"id\"`\n );\n return thisRoute.route.id;\n}\n\n/**\n * Returns the ID for the nearest contextual route\n */\nexport function useRouteId() {\n return useCurrentRouteId(DataRouterStateHook.UseRouteId);\n}\n\n/**\n * Returns the current navigation, defaulting to an \"idle\" navigation when\n * no navigation is in progress\n */\nexport function useNavigation() {\n let state = useDataRouterState(DataRouterStateHook.UseNavigation);\n return state.navigation;\n}\n\n/**\n * Returns a revalidate function for manually triggering revalidation, as well\n * as the current state of any manual revalidations\n */\nexport function useRevalidator() {\n let dataRouterContext = useDataRouterContext(DataRouterHook.UseRevalidator);\n let state = useDataRouterState(DataRouterStateHook.UseRevalidator);\n return React.useMemo(\n () => ({\n revalidate: dataRouterContext.router.revalidate,\n state: state.revalidation,\n }),\n [dataRouterContext.router.revalidate, state.revalidation]\n );\n}\n\n/**\n * Returns the active route matches, useful for accessing loaderData for\n * parent/child routes or the route \"handle\" property\n */\nexport function useMatches(): UIMatch[] {\n let { matches, loaderData } = useDataRouterState(\n DataRouterStateHook.UseMatches\n );\n return React.useMemo(\n () => matches.map((m) => convertRouteMatchToUiMatch(m, loaderData)),\n [matches, loaderData]\n );\n}\n\n/**\n * Returns the loader data for the nearest ancestor Route loader\n */\nexport function useLoaderData(): unknown {\n let state = useDataRouterState(DataRouterStateHook.UseLoaderData);\n let routeId = useCurrentRouteId(DataRouterStateHook.UseLoaderData);\n\n if (state.errors && state.errors[routeId] != null) {\n console.error(\n `You cannot \\`useLoaderData\\` in an errorElement (routeId: ${routeId})`\n );\n return undefined;\n }\n return state.loaderData[routeId];\n}\n\n/**\n * Returns the loaderData for the given routeId\n */\nexport function useRouteLoaderData(routeId: string): unknown {\n let state = useDataRouterState(DataRouterStateHook.UseRouteLoaderData);\n return state.loaderData[routeId];\n}\n\n/**\n * Returns the action data for the nearest ancestor Route action\n */\nexport function useActionData(): unknown {\n let state = useDataRouterState(DataRouterStateHook.UseActionData);\n let routeId = useCurrentRouteId(DataRouterStateHook.UseLoaderData);\n return state.actionData ? state.actionData[routeId] : undefined;\n}\n\n/**\n * Returns the nearest ancestor Route error, which could be a loader/action\n * error or a render error. This is intended to be called from your\n * ErrorBoundary/errorElement to display a proper error message.\n */\nexport function useRouteError(): unknown {\n let error = React.useContext(RouteErrorContext);\n let state = useDataRouterState(DataRouterStateHook.UseRouteError);\n let routeId = useCurrentRouteId(DataRouterStateHook.UseRouteError);\n\n // If this was a render error, we put it in a RouteError context inside\n // of RenderErrorBoundary\n if (error !== undefined) {\n return error;\n }\n\n // Otherwise look for errors from our data router state\n return state.errors?.[routeId];\n}\n\n/**\n * Returns the happy-path data from the nearest ancestor `` value\n */\nexport function useAsyncValue(): unknown {\n let value = React.useContext(AwaitContext);\n return value?._data;\n}\n\n/**\n * Returns the error from the nearest ancestor `` value\n */\nexport function useAsyncError(): unknown {\n let value = React.useContext(AwaitContext);\n return value?._error;\n}\n\nlet blockerId = 0;\n\n/**\n * Allow the application to block navigations within the SPA and present the\n * user a confirmation dialog to confirm the navigation. Mostly used to avoid\n * using half-filled form data. This does not handle hard-reloads or\n * cross-origin navigations.\n */\nexport function useBlocker(shouldBlock: boolean | BlockerFunction): Blocker {\n let { router, basename } = useDataRouterContext(DataRouterHook.UseBlocker);\n let state = useDataRouterState(DataRouterStateHook.UseBlocker);\n\n let [blockerKey, setBlockerKey] = React.useState(\"\");\n let blockerFunction = React.useCallback(\n (arg) => {\n if (typeof shouldBlock !== \"function\") {\n return !!shouldBlock;\n }\n if (basename === \"/\") {\n return shouldBlock(arg);\n }\n\n // If they provided us a function and we've got an active basename, strip\n // it from the locations we expose to the user to match the behavior of\n // useLocation\n let { currentLocation, nextLocation, historyAction } = arg;\n return shouldBlock({\n currentLocation: {\n ...currentLocation,\n pathname:\n stripBasename(currentLocation.pathname, basename) ||\n currentLocation.pathname,\n },\n nextLocation: {\n ...nextLocation,\n pathname:\n stripBasename(nextLocation.pathname, basename) ||\n nextLocation.pathname,\n },\n historyAction,\n });\n },\n [basename, shouldBlock]\n );\n\n // This effect is in charge of blocker key assignment and deletion (which is\n // tightly coupled to the key)\n React.useEffect(() => {\n let key = String(++blockerId);\n setBlockerKey(key);\n return () => router.deleteBlocker(key);\n }, [router]);\n\n // This effect handles assigning the blockerFunction. This is to handle\n // unstable blocker function identities, and happens only after the prior\n // effect so we don't get an orphaned blockerFunction in the router with a\n // key of \"\". Until then we just have the IDLE_BLOCKER.\n React.useEffect(() => {\n if (blockerKey !== \"\") {\n router.getBlocker(blockerKey, blockerFunction);\n }\n }, [router, blockerKey, blockerFunction]);\n\n // Prefer the blocker from `state` not `router.state` since DataRouterContext\n // is memoized so this ensures we update on blocker state updates\n return blockerKey && state.blockers.has(blockerKey)\n ? state.blockers.get(blockerKey)!\n : IDLE_BLOCKER;\n}\n\n/**\n * Stable version of useNavigate that is used when we are in the context of\n * a RouterProvider.\n */\nfunction useNavigateStable(): NavigateFunction {\n let { router } = useDataRouterContext(DataRouterHook.UseNavigateStable);\n let id = useCurrentRouteId(DataRouterStateHook.UseNavigateStable);\n\n let activeRef = React.useRef(false);\n useIsomorphicLayoutEffect(() => {\n activeRef.current = true;\n });\n\n let navigate: NavigateFunction = React.useCallback(\n (to: To | number, options: NavigateOptions = {}) => {\n warning(activeRef.current, navigateEffectWarning);\n\n // Short circuit here since if this happens on first render the navigate\n // is useless because we haven't wired up our router subscriber yet\n if (!activeRef.current) return;\n\n if (typeof to === \"number\") {\n router.navigate(to);\n } else {\n router.navigate(to, { fromRouteId: id, ...options });\n }\n },\n [router, id]\n );\n\n return navigate;\n}\n\nconst alreadyWarned: Record = {};\n\nfunction warningOnce(key: string, cond: boolean, message: string) {\n if (!cond && !alreadyWarned[key]) {\n alreadyWarned[key] = true;\n warning(false, message);\n }\n}\n","import type { FutureConfig as RouterFutureConfig } from \"@remix-run/router\";\nimport type { FutureConfig as RenderFutureConfig } from \"./components\";\n\nconst alreadyWarned: { [key: string]: boolean } = {};\n\nexport function warnOnce(key: string, message: string): void {\n if (!alreadyWarned[message]) {\n alreadyWarned[message] = true;\n console.warn(message);\n }\n}\n\nconst logDeprecation = (flag: string, msg: string, link: string) =>\n warnOnce(\n flag,\n `⚠️ React Router Future Flag Warning: ${msg}. ` +\n `You can use the \\`${flag}\\` future flag to opt-in early. ` +\n `For more information, see ${link}.`\n );\n\nexport function logV6DeprecationWarnings(\n renderFuture: Partial | undefined,\n routerFuture?: Omit\n) {\n if (!renderFuture?.v7_startTransition) {\n logDeprecation(\n \"v7_startTransition\",\n \"React Router will begin wrapping state updates in `React.startTransition` in v7\",\n \"https://reactrouter.com/v6/upgrading/future#v7_starttransition\"\n );\n }\n\n if (\n !renderFuture?.v7_relativeSplatPath &&\n (!routerFuture || !routerFuture.v7_relativeSplatPath)\n ) {\n logDeprecation(\n \"v7_relativeSplatPath\",\n \"Relative route resolution within Splat routes is changing in v7\",\n \"https://reactrouter.com/v6/upgrading/future#v7_relativesplatpath\"\n );\n }\n\n if (routerFuture) {\n if (!routerFuture.v7_fetcherPersist) {\n logDeprecation(\n \"v7_fetcherPersist\",\n \"The persistence behavior of fetchers is changing in v7\",\n \"https://reactrouter.com/v6/upgrading/future#v7_fetcherpersist\"\n );\n }\n\n if (!routerFuture.v7_normalizeFormMethod) {\n logDeprecation(\n \"v7_normalizeFormMethod\",\n \"Casing of `formMethod` fields is being normalized to uppercase in v7\",\n \"https://reactrouter.com/v6/upgrading/future#v7_normalizeformmethod\"\n );\n }\n\n if (!routerFuture.v7_partialHydration) {\n logDeprecation(\n \"v7_partialHydration\",\n \"`RouterProvider` hydration behavior is changing in v7\",\n \"https://reactrouter.com/v6/upgrading/future#v7_partialhydration\"\n );\n }\n\n if (!routerFuture.v7_skipActionErrorRevalidation) {\n logDeprecation(\n \"v7_skipActionErrorRevalidation\",\n \"The revalidation behavior after 4xx/5xx `action` responses is changing in v7\",\n \"https://reactrouter.com/v6/upgrading/future#v7_skipactionerrorrevalidation\"\n );\n }\n }\n}\n","import type {\n InitialEntry,\n LazyRouteFunction,\n Location,\n MemoryHistory,\n RelativeRoutingType,\n Router as RemixRouter,\n RouterState,\n RouterSubscriber,\n To,\n TrackedPromise,\n} from \"@remix-run/router\";\nimport {\n AbortedDeferredError,\n Action as NavigationType,\n createMemoryHistory,\n UNSAFE_getResolveToMatches as getResolveToMatches,\n UNSAFE_invariant as invariant,\n parsePath,\n resolveTo,\n stripBasename,\n UNSAFE_warning as warning,\n} from \"@remix-run/router\";\nimport * as React from \"react\";\n\nimport type {\n DataRouteObject,\n IndexRouteObject,\n Navigator,\n NonIndexRouteObject,\n RouteMatch,\n RouteObject,\n} from \"./context\";\nimport {\n AwaitContext,\n DataRouterContext,\n DataRouterStateContext,\n LocationContext,\n NavigationContext,\n RouteContext,\n} from \"./context\";\nimport {\n _renderMatches,\n useAsyncValue,\n useInRouterContext,\n useLocation,\n useNavigate,\n useOutlet,\n useRoutes,\n useRoutesImpl,\n} from \"./hooks\";\nimport { logV6DeprecationWarnings } from \"./deprecations\";\n\nexport interface FutureConfig {\n v7_relativeSplatPath: boolean;\n v7_startTransition: boolean;\n}\n\nexport interface RouterProviderProps {\n fallbackElement?: React.ReactNode;\n router: RemixRouter;\n // Only accept future flags relevant to rendering behavior\n // routing flags should be accessed via router.future\n future?: Partial>;\n}\n\n/**\n Webpack + React 17 fails to compile on any of the following because webpack\n complains that `startTransition` doesn't exist in `React`:\n * import { startTransition } from \"react\"\n * import * as React from from \"react\";\n \"startTransition\" in React ? React.startTransition(() => setState()) : setState()\n * import * as React from from \"react\";\n \"startTransition\" in React ? React[\"startTransition\"](() => setState()) : setState()\n\n Moving it to a constant such as the following solves the Webpack/React 17 issue:\n * import * as React from from \"react\";\n const START_TRANSITION = \"startTransition\";\n START_TRANSITION in React ? React[START_TRANSITION](() => setState()) : setState()\n\n However, that introduces webpack/terser minification issues in production builds\n in React 18 where minification/obfuscation ends up removing the call of\n React.startTransition entirely from the first half of the ternary. Grabbing\n this exported reference once up front resolves that issue.\n\n See https://github.com/remix-run/react-router/issues/10579\n*/\nconst START_TRANSITION = \"startTransition\";\nconst startTransitionImpl = React[START_TRANSITION];\n\n/**\n * Given a Remix Router instance, render the appropriate UI\n */\nexport function RouterProvider({\n fallbackElement,\n router,\n future,\n}: RouterProviderProps): React.ReactElement {\n let [state, setStateImpl] = React.useState(router.state);\n let { v7_startTransition } = future || {};\n\n let setState = React.useCallback(\n (newState: RouterState) => {\n if (v7_startTransition && startTransitionImpl) {\n startTransitionImpl(() => setStateImpl(newState));\n } else {\n setStateImpl(newState);\n }\n },\n [setStateImpl, v7_startTransition]\n );\n\n // Need to use a layout effect here so we are subscribed early enough to\n // pick up on any render-driven redirects/navigations (useEffect/)\n React.useLayoutEffect(() => router.subscribe(setState), [router, setState]);\n\n React.useEffect(() => {\n warning(\n fallbackElement == null || !router.future.v7_partialHydration,\n \"`` is deprecated when using \" +\n \"`v7_partialHydration`, use a `HydrateFallback` component instead\"\n );\n // Only log this once on initial mount\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n let navigator = React.useMemo((): Navigator => {\n return {\n createHref: router.createHref,\n encodeLocation: router.encodeLocation,\n go: (n) => router.navigate(n),\n push: (to, state, opts) =>\n router.navigate(to, {\n state,\n preventScrollReset: opts?.preventScrollReset,\n }),\n replace: (to, state, opts) =>\n router.navigate(to, {\n replace: true,\n state,\n preventScrollReset: opts?.preventScrollReset,\n }),\n };\n }, [router]);\n\n let basename = router.basename || \"/\";\n\n let dataRouterContext = React.useMemo(\n () => ({\n router,\n navigator,\n static: false,\n basename,\n }),\n [router, navigator, basename]\n );\n\n React.useEffect(\n () => logV6DeprecationWarnings(future, router.future),\n [router, future]\n );\n\n // The fragment and {null} here are important! We need them to keep React 18's\n // useId happy when we are server-rendering since we may have a \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 */\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 {void}\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').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 {text, string} from './initialize/text.js'\nimport {createTokenizer} from './create-tokenizer.js'\nimport * as defaultConstructs from './constructs.js'\n\n/**\n * @param {ParseOptions | null | undefined} [options]\n * @returns {ParseContext}\n */\nexport function parse(options) {\n const settings = options || {}\n const constructs =\n /** @type {FullNormalizedExtension} */\n combineExtensions([defaultConstructs, ...(settings.extensions || [])])\n\n /** @type {ParseContext} */\n const parser = {\n defined: [],\n lazy: {},\n constructs,\n content: create(content),\n document: create(document),\n flow: create(flow),\n string: create(string),\n text: create(text)\n }\n return parser\n\n /**\n * @param {InitialConstruct} initial\n */\n function create(initial) {\n return creator\n /** @type {Create} */\n function creator(from) {\n return createTokenizer(parser, initial, from)\n }\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Chunk} Chunk\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Encoding} Encoding\n * @typedef {import('micromark-util-types').Value} Value\n */\n\n/**\n * @callback Preprocessor\n * @param {Value} value\n * @param {Encoding | null | undefined} [encoding]\n * @param {boolean | null | undefined} [end=false]\n * @returns {Array}\n */\n\nconst search = /[\\0\\t\\n\\r]/g\n\n/**\n * @returns {Preprocessor}\n */\nexport function preprocess() {\n let column = 1\n let buffer = ''\n /** @type {boolean | undefined} */\n let start = true\n /** @type {boolean | undefined} */\n let atCarriageReturn\n return preprocessor\n\n /** @type {Preprocessor} */\n 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\n // @ts-expect-error `Buffer` does allow an encoding.\n value = buffer + value.toString(encoding)\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.fromCharCode(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 ||\n code === 11 ||\n (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 > 55295 && code < 57344) ||\n // Noncharacters.\n (code > 64975 && code < 65008) /* eslint-disable no-bitwise */ ||\n (code & 65535) === 65535 ||\n (code & 65535) === 65534 /* eslint-enable no-bitwise */ ||\n // Out of range\n code > 1114111\n ) {\n return '\\uFFFD'\n }\n return String.fromCharCode(code)\n}\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('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').Parent} UnistParent\n * @typedef {import('unist').Point} Point\n *\n * @typedef {import('mdast').PhrasingContent} PhrasingContent\n * @typedef {import('mdast').StaticPhrasingContent} StaticPhrasingContent\n * @typedef {import('mdast').Content} Content\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').ImageReference} ImageReference\n * @typedef {import('mdast').InlineCode} InlineCode\n * @typedef {import('mdast').Link} Link\n * @typedef {import('mdast').LinkReference} LinkReference\n * @typedef {import('mdast').List} List\n * @typedef {import('mdast').ListItem} ListItem\n * @typedef {import('mdast').Paragraph} Paragraph\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 * @typedef {import('mdast').ReferenceType} ReferenceType\n * @typedef {import('../index.js').CompileData} CompileData\n */\n\n/**\n * @typedef {Root | Content} Node\n * @typedef {Extract} Parent\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 | undefined | null | 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 {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 {void}\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 {void}\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 {(key: Key) => CompileData[Key]} getData\n * Get data from the key/value store.\n * @property {(key: Key, value?: CompileData[Key]) => void} setData\n * Set data into the key/value store.\n * @property {(this: CompileContext) => void} 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: Kind, token: Token, onError?: OnEnterError) => Kind} enter\n * Enter a token.\n * @property {(this: CompileContext, token: Token, onError?: OnExitError) => Node} exit\n * Exit a token.\n * @property {TokenizeContext['sliceSerialize']} sliceSerialize\n * Get the string value of a token.\n * @property {Config} config\n * Configuration.\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\n// To do: micromark: create a registry of tokens?\n// To do: next major: don’t return given `Node` from `enter`.\n// To do: next major: remove setter/getter.\n\nimport {toString} from 'mdast-util-to-string'\nimport {parse} from 'micromark/lib/parse.js'\nimport {preprocess} from 'micromark/lib/preprocess.js'\nimport {postprocess} from 'micromark/lib/postprocess.js'\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 * @param value\n * Markdown to parse.\n * @param encoding\n * Character encoding for when `value` is `Buffer`.\n * @param options\n * Configuration.\n * @returns\n * mdast tree.\n */\nexport const fromMarkdown =\n /**\n * @type {(\n * ((value: Value, encoding: Encoding, options?: Options | null | undefined) => Root) &\n * ((value: Value, options?: Options | null | undefined) => Root)\n * )}\n */\n\n /**\n * @param {Value} value\n * @param {Encoding | Options | null | undefined} [encoding]\n * @param {Options | null | undefined} [options]\n * @returns {Root}\n */\n function (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 setData,\n getData\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 if (\n event[1].type === 'listUnordered' ||\n event[1].type === 'listOrdered' ||\n event[1].type === 'blockQuote'\n ) {\n if (event[0] === 'enter') {\n containerBalance++\n } else {\n containerBalance--\n }\n atMarker = undefined\n } else if (event[1].type === '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 } else if (\n event[1].type === 'linePrefix' ||\n event[1].type === 'listItemValue' ||\n event[1].type === 'listItemMarker' ||\n event[1].type === 'listItemPrefix' ||\n event[1].type === 'listItemPrefixWhitespace'\n ) {\n // Empty.\n } else {\n atMarker = undefined\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 listItem = {\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 // @ts-expect-error: `listItem` is most definitely defined, TS...\n events.splice(index, 0, ['enter', listItem, 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 * Set data.\n *\n * @template {keyof CompileData} Key\n * Field type.\n * @param {Key} key\n * Key of field.\n * @param {CompileData[Key]} [value]\n * New value.\n * @returns {void}\n * Nothing.\n */\n function setData(key, value) {\n data[key] = value\n }\n\n /**\n * Get data.\n *\n * @template {keyof CompileData} Key\n * Field type.\n * @param {Key} key\n * Key of field.\n * @returns {CompileData[Key]}\n * Value.\n */\n function getData(key) {\n return data[key]\n }\n\n /**\n * Create an opener handle.\n *\n * @param {(token: Token) => Node} create\n * Create a node.\n * @param {Handle} [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 {void}\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 {void}\n */\n function buffer() {\n this.stack.push({\n type: 'fragment',\n children: []\n })\n }\n\n /**\n * @template {Node} Kind\n * Node type.\n * @this {CompileContext}\n * Context.\n * @param {Kind} 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 {Kind}\n * The given node.\n */\n function enter(node, token, errorHandler) {\n const parent = this.stack[this.stack.length - 1]\n // @ts-expect-error: Assume `Node` can exist as a child of `parent`.\n parent.children.push(node)\n this.stack.push(node)\n this.tokenStack.push([token, errorHandler])\n // @ts-expect-error: `end` will be patched later.\n node.position = {\n start: point(token.start)\n }\n return node\n }\n\n /**\n * Create a closer handle.\n *\n * @param {Handle} [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 {void}\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 {Node}\n * The closed node.\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 return node\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 setData('expectingFirstListItemValue', true)\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onenterlistitemvalue(token) {\n if (getData('expectingFirstListItemValue')) {\n const ancestor = this.stack[this.stack.length - 2]\n ancestor.start = Number.parseInt(this.sliceSerialize(token), 10)\n setData('expectingFirstListItemValue')\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 (getData('flowCodeInside')) return\n this.buffer()\n setData('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 setData('flowCodeInside')\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 setData('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).charCodeAt(0) === 61 ? 1 : 2\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitsetextheading() {\n setData('setextHeadingSlurpLineEnding')\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 let tail = node.children[node.children.length - 1]\n if (!tail || tail.type !== 'text') {\n // Add a new text node.\n tail = text()\n // @ts-expect-error: we’ll add `end` later.\n tail.position = {\n start: point(token.start)\n }\n // @ts-expect-error: Assume `parent` accepts `text`.\n node.children.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 (getData('atHardBreak')) {\n const tail = context.children[context.children.length - 1]\n tail.position.end = point(token.end)\n setData('atHardBreak')\n return\n }\n if (\n !getData('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 setData('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 (getData('inReference')) {\n /** @type {ReferenceType} */\n const referenceType = getData('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 setData('referenceType')\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 (getData('inReference')) {\n /** @type {ReferenceType} */\n const referenceType = getData('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 setData('referenceType')\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 setData('inReference', true)\n if (node.type === 'link') {\n /** @type {Array} */\n // @ts-expect-error: Assume static phrasing content.\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 setData('inReference')\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onenterreference() {\n setData('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 setData('referenceType', 'full')\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitcharacterreferencemarker(token) {\n setData('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 = getData('characterReferenceType')\n /** @type {string} */\n let value\n if (type) {\n value = decodeNumericCharacterReference(\n data,\n type === 'characterReferenceMarkerNumeric' ? 10 : 16\n )\n setData('characterReferenceType')\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 // @ts-expect-error `depth` will be set later.\n return {\n type: 'heading',\n depth: undefined,\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>} extensions\n * @returns {void}\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 {void}\n */\nfunction extension(combined, extension) {\n /** @type {keyof Extension} */\n let key\n for (key in extension) {\n if (own.call(extension, key)) {\n if (key === 'canContainEols') {\n const right = extension[key]\n if (right) {\n combined[key].push(...right)\n }\n } else if (key === 'transforms') {\n const right = extension[key]\n if (right) {\n combined[key].push(...right)\n }\n } else if (key === 'enter' || key === 'exit') {\n const right = extension[key]\n if (right) {\n Object.assign(combined[key], right)\n }\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('mdast').Root} Root\n * @typedef {import('mdast-util-from-markdown').Options} Options\n */\n\nimport {fromMarkdown} from 'mdast-util-from-markdown'\n\n/**\n * @this {import('unified').Processor}\n * @type {import('unified').Plugin<[Options?] | void[], string, Root>}\n */\nexport default function remarkParse(options) {\n /** @type {import('unified').ParserFunction} */\n const parser = (doc) => {\n // Assume options.\n const settings = /** @type {Options} */ (this.data('settings'))\n\n return fromMarkdown(\n doc,\n Object.assign({}, settings, 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: this.data('micromarkExtensions') || [],\n mdastExtensions: this.data('fromMarkdownExtensions') || []\n })\n )\n }\n\n Object.assign(this, {Parser: parser})\n}\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 | 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 > 55295 && code < 57344) {\n const next = value.charCodeAt(index + 1)\n\n // A correct surrogate pair.\n if (code < 56320 && next > 56319 && next < 57344) {\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('unist').Node} Node\n * @typedef {import('unist').Parent} Parent\n */\n\n/**\n * @typedef {Record} Props\n * @typedef {null | undefined | string | Props | TestFunctionAnything | Array} Test\n * Check for an arbitrary node, unaware of TypeScript inferral.\n *\n * @callback TestFunctionAnything\n * Check if a node passes a test, unaware of TypeScript inferral.\n * @param {unknown} this\n * The given context.\n * @param {Node} node\n * 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 | void}\n * Whether this node passes the test.\n */\n\n/**\n * @template {Node} Kind\n * Node type.\n * @typedef {Kind['type'] | Partial | TestFunctionPredicate | Array | TestFunctionPredicate>} PredicateTest\n * Check for a node that can be inferred by TypeScript.\n */\n\n/**\n * Check if a node passes a certain test.\n *\n * @template {Node} Kind\n * Node type.\n * @callback TestFunctionPredicate\n * Complex test function for a node that can be inferred by TypeScript.\n * @param {Node} node\n * 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 {node is Kind}\n * Whether this node passes the test.\n */\n\n/**\n * @callback AssertAnything\n * Check that an arbitrary value is a node, unaware of TypeScript inferral.\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\n/**\n * Check if a node is a node and passes a certain node test.\n *\n * @template {Node} Kind\n * Node type.\n * @callback AssertPredicate\n * Check that an arbitrary value is a specific node, aware of TypeScript.\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 {node is Kind}\n * Whether this is a node and passes a test.\n */\n\n/**\n * Check if `node` is a `Node` and whether it passes the given test.\n *\n * @param node\n * Thing to check, typically `Node`.\n * @param test\n * A check for a specific node.\n * @param index\n * The node’s position in its parent.\n * @param parent\n * The node’s parent.\n * @returns\n * Whether `node` is a node and passes a test.\n */\nexport const is =\n /**\n * @type {(\n * (() => false) &\n * ((node: unknown, test: PredicateTest, index: number, parent: Parent, context?: unknown) => node is Kind) &\n * ((node: unknown, test: PredicateTest, index?: null | undefined, parent?: null | undefined, context?: unknown) => node is Kind) &\n * ((node: unknown, test: Test, index: number, parent: Parent, context?: unknown) => boolean) &\n * ((node: unknown, test?: Test, index?: null | undefined, 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 is(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 // @ts-expect-error Looks like a node.\n return node && node.type && typeof node.type === 'string'\n ? Boolean(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\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\n * An assertion.\n */\nexport const convert =\n /**\n * @type {(\n * ((test: PredicateTest) => AssertPredicate) &\n * ((test?: Test) => AssertAnything)\n * )}\n */\n (\n /**\n * @param {Test} [test]\n * @returns {AssertAnything}\n */\n function (test) {\n if (test === undefined || test === null) {\n return ok\n }\n\n if (typeof test === 'string') {\n return typeFactory(test)\n }\n\n if (typeof test === 'object') {\n return Array.isArray(test) ? anyFactory(test) : propsFactory(test)\n }\n\n if (typeof test === 'function') {\n return castFactory(test)\n }\n\n throw new Error('Expected function, string, or object as test')\n }\n )\n\n/**\n * @param {Array} tests\n * @returns {AssertAnything}\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 * @param {Array} parameters\n * @returns {boolean}\n */\n function any(...parameters) {\n let index = -1\n\n while (++index < checks.length) {\n if (checks[index].call(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 {AssertAnything}\n */\nfunction propsFactory(check) {\n return castFactory(all)\n\n /**\n * @param {Node} node\n * @returns {boolean}\n */\n function all(node) {\n /** @type {string} */\n let key\n\n for (key in check) {\n // @ts-expect-error: hush, it sure works as an index.\n if (node[key] !== check[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 {AssertAnything}\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 {TestFunctionAnything} check\n * @returns {AssertAnything}\n */\nfunction castFactory(check) {\n return assertion\n\n /**\n * @this {unknown}\n * @param {unknown} node\n * @param {Array} parameters\n * @returns {boolean}\n */\n function assertion(node, ...parameters) {\n return Boolean(\n node &&\n typeof node === 'object' &&\n 'type' in node &&\n // @ts-expect-error: fine.\n Boolean(check.call(this, node, ...parameters))\n )\n }\n}\n\nfunction ok() {\n return true\n}\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Parent} Parent\n * @typedef {import('unist-util-is').Test} Test\n */\n\n/**\n * @typedef {boolean | 'skip'} 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 * @template {Node} [Visited=Node]\n * Visited node type.\n * @template {Parent} [Ancestor=Parent]\n * Ancestor type.\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 */\n\n/**\n * @template {Node} [Tree=Node]\n * Tree type.\n * @template {Test} [Check=string]\n * Test type.\n * @typedef {Visitor, Check>, Extract, Parent>>} 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 */\n\nimport {convert} from 'unist-util-is'\nimport {color} from './color.js'\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 * @param tree\n * Tree to traverse.\n * @param test\n * `unist-util-is`-compatible test\n * @param visitor\n * Handle each node.\n * @param reverse\n * Traverse in reverse preorder (NRL) instead of the default preorder (NLR).\n * @returns\n * Nothing.\n */\nexport const visitParents =\n /**\n * @type {(\n * ((tree: Tree, test: Check, visitor: BuildVisitor, reverse?: boolean | null | undefined) => void) &\n * ((tree: Tree, visitor: BuildVisitor, reverse?: boolean | null | undefined) => void)\n * )}\n */\n (\n /**\n * @param {Node} tree\n * @param {Test} test\n * @param {Visitor} visitor\n * @param {boolean | null | undefined} [reverse]\n * @returns {void}\n */\n function (tree, test, visitor, reverse) {\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 test = null\n }\n\n const is = convert(test)\n const step = reverse ? -1 : 1\n\n factory(tree, undefined, [])()\n\n /**\n * @param {Node} node\n * @param {number | undefined} index\n * @param {Array} parents\n */\n function factory(node, index, parents) {\n /** @type {Record} */\n // @ts-expect-error: hush\n const value = node && typeof node === 'object' ? node : {}\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 {ActionTuple} */\n let result = []\n /** @type {ActionTuple} */\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] || null)) {\n result = toResult(visitor(node, parents))\n\n if (result[0] === EXIT) {\n return result\n }\n }\n\n // @ts-expect-error looks like a parent.\n if (node.children && result[0] !== SKIP) {\n // @ts-expect-error looks like a parent.\n offset = (reverse ? node.children.length : -1) + step\n // @ts-expect-error looks like a parent.\n grandparents = parents.concat(node)\n\n // @ts-expect-error looks like a parent.\n while (offset > -1 && offset < node.children.length) {\n // @ts-expect-error looks like a parent.\n subresult = factory(node.children[offset], 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 return result\n }\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 {ActionTuple}\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]\n}\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Parent} Parent\n * @typedef {import('unist-util-is').Test} Test\n * @typedef {import('unist-util-visit-parents').VisitorResult} VisitorResult\n */\n\n/**\n * Check if `Child` can be a child of `Ancestor`.\n *\n * Returns the ancestor when `Child` can be a child of `Ancestor`, or returns\n * `never`.\n *\n * @template {Node} Ancestor\n * Node type.\n * @template {Node} Child\n * Node type.\n * @typedef {(\n * Ancestor extends Parent\n * ? Child extends Ancestor['children'][number]\n * ? Ancestor\n * : never\n * : never\n * )} ParentsOf\n */\n\n/**\n * @template {Node} [Visited=Node]\n * Visited node type.\n * @template {Parent} [Ancestor=Parent]\n * Ancestor type.\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 Node ? number | null : never} index\n * Index of `node` in `parent`.\n * @param {Ancestor extends Node ? Ancestor | null : 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 */\n\n/**\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 *\n * @template {Node} Visited\n * Node type.\n * @template {Parent} Ancestor\n * Parent type.\n * @typedef {Visitor>} BuildVisitorFromMatch\n */\n\n/**\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 *\n * @template {Node} Descendant\n * Node type.\n * @template {Test} Check\n * Test type.\n * @typedef {(\n * BuildVisitorFromMatch<\n * import('unist-util-visit-parents/complex-types.js').Matches,\n * Extract\n * >\n * )} BuildVisitorFromDescendants\n */\n\n/**\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 *\n * @template {Node} [Tree=Node]\n * Node type.\n * @template {Test} [Check=string]\n * Test type.\n * @typedef {(\n * BuildVisitorFromDescendants<\n * import('unist-util-visit-parents/complex-types.js').InclusiveDescendant,\n * Check\n * >\n * )} BuildVisitor\n */\n\nimport {visitParents} 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 * @param tree\n * Tree to traverse.\n * @param test\n * `unist-util-is`-compatible test\n * @param visitor\n * Handle each node.\n * @param reverse\n * Traverse in reverse preorder (NRL) instead of the default preorder (NLR).\n * @returns\n * Nothing.\n */\nexport const visit =\n /**\n * @type {(\n * ((tree: Tree, test: Check, visitor: BuildVisitor, reverse?: boolean | null | undefined) => void) &\n * ((tree: Tree, visitor: BuildVisitor, reverse?: boolean | null | undefined) => void)\n * )}\n */\n (\n /**\n * @param {Node} tree\n * @param {Test} test\n * @param {Visitor} visitor\n * @param {boolean | null | undefined} [reverse]\n * @returns {void}\n */\n function (tree, test, visitor, reverse) {\n if (typeof test === 'function' && typeof visitor !== 'function') {\n reverse = visitor\n visitor = test\n test = null\n }\n\n visitParents(tree, test, overload, reverse)\n\n /**\n * @param {Node} node\n * @param {Array} parents\n */\n function overload(node, parents) {\n const parent = parents[parents.length - 1]\n return visitor(\n node,\n parent ? parent.children.indexOf(node) : null,\n parent\n )\n }\n }\n )\n\nexport {CONTINUE, EXIT, SKIP} from 'unist-util-visit-parents'\n","/**\n * @typedef {import('unist').Position} Position\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Point} Point\n */\n\n/**\n * @typedef NodeLike\n * @property {string} type\n * @property {PositionLike | null | undefined} [position]\n *\n * @typedef PositionLike\n * @property {PointLike | null | undefined} [start]\n * @property {PointLike | null | undefined} [end]\n *\n * @typedef PointLike\n * @property {number | null | undefined} [line]\n * @property {number | null | undefined} [column]\n * @property {number | null | undefined} [offset]\n */\n\n/**\n * Get the starting point of `node`.\n *\n * @param node\n * Node.\n * @returns\n * Point.\n */\nexport const pointStart = point('start')\n\n/**\n * Get the ending point of `node`.\n *\n * @param node\n * Node.\n * @returns\n * Point.\n */\nexport const pointEnd = point('end')\n\n/**\n * Get the positional info of `node`.\n *\n * @param {NodeLike | Node | null | undefined} [node]\n * Node.\n * @returns {Position}\n * Position.\n */\nexport function position(node) {\n return {start: pointStart(node), end: pointEnd(node)}\n}\n\n/**\n * Get the positional info of `node`.\n *\n * @param {'start' | 'end'} type\n * Side.\n * @returns\n * Getter.\n */\nfunction point(type) {\n return point\n\n /**\n * Get the point info of `node` at a bound side.\n *\n * @param {NodeLike | Node | null | undefined} [node]\n * @returns {Point}\n */\n function point(node) {\n const point = (node && node.position && node.position[type]) || {}\n\n // To do: next major: don’t return points when invalid.\n return {\n // @ts-expect-error: in practice, null is allowed.\n line: point.line || null,\n // @ts-expect-error: in practice, null is allowed.\n column: point.column || null,\n // @ts-expect-error: in practice, null is allowed.\n offset: point.offset > -1 ? point.offset : null\n }\n }\n}\n","/**\n * @typedef {import('mdast').Root} Root\n * @typedef {import('mdast').Content} Content\n * @typedef {import('mdast').Definition} Definition\n */\n\n/**\n * @typedef {Root | Content} Node\n *\n * @callback GetDefinition\n * Get a definition by identifier.\n * @param {string | null | undefined} [identifier]\n * Identifier of definition.\n * @returns {Definition | null}\n * Definition corresponding to `identifier` or `null`.\n */\n\nimport {visit} from 'unist-util-visit'\n\nconst own = {}.hasOwnProperty\n\n/**\n * Find definitions in `tree`.\n *\n * Uses CommonMark precedence, which means that earlier definitions are\n * preferred over duplicate later definitions.\n *\n * @param {Node} tree\n * Tree to check.\n * @returns {GetDefinition}\n * Getter.\n */\nexport function definitions(tree) {\n /** @type {Record} */\n const cache = Object.create(null)\n\n if (!tree || !tree.type) {\n throw new Error('mdast-util-definitions expected node')\n }\n\n visit(tree, 'definition', (definition) => {\n const id = clean(definition.identifier)\n if (id && !own.call(cache, id)) {\n cache[id] = definition\n }\n })\n\n return definition\n\n /** @type {GetDefinition} */\n function definition(identifier) {\n const id = clean(identifier)\n // To do: next major: return `undefined` when not found.\n return id && own.call(cache, id) ? cache[id] : null\n }\n}\n\n/**\n * @param {string | null | undefined} [value]\n * @returns {string}\n */\nfunction clean(value) {\n return String(value || '').toUpperCase()\n}\n","/**\n * @typedef {import('mdast').FootnoteReference} FootnoteReference\n * @typedef {import('hast').Element} Element\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 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 if (index === -1) {\n state.footnoteOrder.push(id)\n state.footnoteCounts[id] = 1\n counter = state.footnoteOrder.length\n } else {\n state.footnoteCounts[id]++\n counter = index + 1\n }\n\n const reuseCounter = state.footnoteCounts[id]\n\n /** @type {Element} */\n const link = {\n type: 'element',\n tagName: 'a',\n properties: {\n href: '#' + state.clobberPrefix + 'fn-' + safeId,\n id:\n state.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').ElementContent} ElementContent\n *\n * @typedef {import('mdast').Content} Content\n * @typedef {import('mdast').Reference} Reference\n * @typedef {import('mdast').Root} Root\n *\n * @typedef {import('./state.js').State} State\n */\n\n/**\n * @typedef {Root | Content} Nodes\n * @typedef {Extract} References\n */\n\n// To do: next major: always return array.\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 {References} node\n * Reference node (image, link).\n * @returns {ElementContent | 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').Content} Content\n * @typedef {import('mdast').ListItem} ListItem\n * @typedef {import('mdast').Parent} Parent\n * @typedef {import('mdast').Root} Root\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * @typedef {Root | Content} Nodes\n * @typedef {Extract} Parents\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 | null | 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 === undefined || spread === null\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 {footnote} from './footnote.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 */\nexport const handlers = {\n blockquote,\n break: hardBreak,\n code,\n delete: strikethrough,\n emphasis,\n footnoteReference,\n footnote,\n heading,\n html,\n imageReference,\n image,\n inlineCode,\n linkReference,\n link,\n listItem,\n list,\n paragraph,\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 // To do: next major: return `undefined`.\n return null\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Blockquote} Blockquote\n * @typedef {import('../state.js').State} State\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/**\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\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 // To do: next major, use `node.lang` w/o regex, the splitting’s been going\n // on for years in remark now.\n const lang = node.lang ? node.lang.match(/^[^ \\t]+(?=[ \\t]|$)/) : null\n /** @type {Properties} */\n const properties = {}\n\n if (lang) {\n properties.className = ['language-' + 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\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/**\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').Footnote} Footnote\n * @typedef {import('../state.js').State} State\n */\n\nimport {footnoteReference} from './footnote-reference.js'\n\n// To do: when both:\n// * \n// * \n// …are archived, remove this (also from mdast).\n// These inline notes are not used in GFM.\n\n/**\n * Turn an mdast `footnote` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Footnote} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function footnote(state, node) {\n  const footnoteById = state.footnoteById\n  let no = 1\n\n  while (no in footnoteById) no++\n\n  const identifier = String(no)\n\n  footnoteById[identifier] = {\n    type: 'footnoteDefinition',\n    identifier,\n    children: [{type: 'paragraph', children: node.children}],\n    position: node.position\n  }\n\n  return footnoteReference(state, {\n    type: 'footnoteReference',\n    identifier,\n    position: node.position\n  })\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Heading} Heading\n * @typedef {import('../state.js').State} State\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/**\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 {Raw | Element | null}\n *   hast node.\n */\nexport function html(state, node) {\n  if (state.dangerous) {\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  // To do: next major: return `undefined`.\n  return null\n}\n","/**\n * @typedef {import('hast').ElementContent} ElementContent\n * @typedef {import('hast').Element} Element\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 {ElementContent | Array}\n *   hast node.\n */\nexport function imageReference(state, node) {\n  const def = state.definition(node.identifier)\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/**\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 {ElementContent | Array}\n *   hast node.\n */\nexport function linkReference(state, node) {\n  const def = state.definition(node.identifier)\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/**\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/**\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').Root} HastRoot\n * @typedef {import('hast').Element} HastElement\n * @typedef {import('mdast').Root} MdastRoot\n * @typedef {import('../state.js').State} State\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 {HastRoot | HastElement}\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/**\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 {pointStart, pointEnd} 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.line && end.line) 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/**\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').Properties} Properties\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').ElementContent} ElementContent\n * @typedef {import('mdast').Content} Content\n * @typedef {import('mdast').Parent} Parent\n * @typedef {import('mdast').Root} Root\n * @typedef {import('mdast').TableRow} TableRow\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * @typedef {Root | Content} Nodes\n * @typedef {Extract} Parents\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 | null | 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  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(node, 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 {HastText | HastElement}\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/**\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').Content} HastContent\n * @typedef {import('hast').Element} HastElement\n * @typedef {import('hast').ElementContent} HastElementContent\n * @typedef {import('hast').Properties} HastProperties\n * @typedef {import('hast').Root} HastRoot\n * @typedef {import('hast').Text} HastText\n *\n * @typedef {import('mdast').Content} MdastContent\n * @typedef {import('mdast').Definition} MdastDefinition\n * @typedef {import('mdast').FootnoteDefinition} MdastFootnoteDefinition\n * @typedef {import('mdast').Parent} MdastParent\n * @typedef {import('mdast').Root} MdastRoot\n */\n\n/**\n * @typedef {HastRoot | HastContent} HastNodes\n * @typedef {MdastRoot | MdastContent} MdastNodes\n * @typedef {Extract} MdastParents\n *\n * @typedef EmbeddedHastFields\n *   hast fields.\n * @property {string | null | undefined} [hName]\n *   Generate a specific element with this tag name instead.\n * @property {HastProperties | null | undefined} [hProperties]\n *   Generate an element with these properties instead.\n * @property {Array | null | undefined} [hChildren]\n *   Generate an element with this content instead.\n *\n * @typedef {Record & EmbeddedHastFields} MdastData\n *   mdast data with embedded hast fields.\n *\n * @typedef {MdastNodes & {data?: MdastData | null | undefined}} MdastNodeWithData\n *   mdast node with embedded hast data.\n *\n * @typedef PointLike\n *   Point-like value.\n * @property {number | null | undefined} [line]\n *   Line.\n * @property {number | null | undefined} [column]\n *   Column.\n * @property {number | null | undefined} [offset]\n *   Offset.\n *\n * @typedef PositionLike\n *   Position-like value.\n * @property {PointLike | null | undefined} [start]\n *   Point-like value.\n * @property {PointLike | null | undefined} [end]\n *   Point-like value.\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 | null | undefined} parent\n *   Parent of `node`.\n * @returns {HastElementContent | Array | null | undefined}\n *   hast node.\n *\n * @callback HFunctionProps\n *   Signature of `state` for when props are passed.\n * @param {MdastNodes | PositionLike | null | undefined} node\n *   mdast node or unist position.\n * @param {string} tagName\n *   HTML tag name.\n * @param {HastProperties} props\n *   Properties.\n * @param {Array | null | undefined} [children]\n *   hast content.\n * @returns {HastElement}\n *   Compiled element.\n *\n * @callback HFunctionNoProps\n *   Signature of `state` for when no props are passed.\n * @param {MdastNodes | PositionLike | null | undefined} node\n *   mdast node or unist position.\n * @param {string} tagName\n *   HTML tag name.\n * @param {Array | null | undefined} [children]\n *   hast content.\n * @returns {HastElement}\n *   Compiled element.\n *\n * @typedef HFields\n *   Info on `state`.\n * @property {boolean} dangerous\n *   Whether HTML is allowed.\n * @property {string} clobberPrefix\n *   Prefix to use to prevent DOM clobbering.\n * @property {string} footnoteLabel\n *   Label to use to introduce the footnote section.\n * @property {string} footnoteLabelTagName\n *   HTML used for the footnote label.\n * @property {HastProperties} footnoteLabelProperties\n *   Properties on the HTML tag used for the footnote label.\n * @property {string} footnoteBackLabel\n *   Label to use from backreferences back to their footnote call.\n * @property {(identifier: string) => MdastDefinition | null} definition\n *   Definition cache.\n * @property {Record} footnoteById\n *   Footnote definitions by their identifier.\n * @property {Array} footnoteOrder\n *   Identifiers of order when footnote calls first appear in tree order.\n * @property {Record} footnoteCounts\n *   Counts for how often the same footnote was called.\n * @property {Handlers} handlers\n *   Applied handlers.\n * @property {Handler} unknownHandler\n *   Handler for any none not in `passThrough` or otherwise handled.\n * @property {(from: MdastNodes, node: HastNodes) => void} patch\n *   Copy a node’s positional info.\n * @property {(from: MdastNodes, to: Type) => Type | HastElement} applyData\n *   Honor the `data` of `from`, and generate an element instead of `node`.\n * @property {(node: MdastNodes, parent: MdastParents | null | undefined) => HastElementContent | Array | null | undefined} one\n *   Transform an mdast node to hast.\n * @property {(node: MdastNodes) => Array} all\n *   Transform the children of an mdast parent to hast.\n * @property {(nodes: Array, loose?: boolean | null | undefined) => Array} wrap\n *   Wrap `nodes` with line endings between each node, adds initial/final line endings when `loose`.\n * @property {(left: MdastNodeWithData | PositionLike | null | undefined, right: HastElementContent) => HastElementContent} augment\n *   Like `state` but lower-level and usable on non-elements.\n *   Deprecated: use `patch` and `applyData`.\n * @property {Array} passThrough\n *   List of node types to pass through untouched (except for their children).\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.\n * @property {string | null | undefined} [clobberPrefix='user-content-']\n *   Prefix to use before the `id` attribute on footnotes to prevent it from\n *   *clobbering*.\n * @property {string | null | undefined} [footnoteBackLabel='Back to content']\n *   Label to use from backreferences back to their footnote call (affects\n *   screen readers).\n * @property {string | null | undefined} [footnoteLabel='Footnotes']\n *   Label to use for the footnotes section (affects screen readers).\n * @property {HastProperties | null | undefined} [footnoteLabelProperties={className: ['sr-only']}]\n *   Properties to use on the footnote label (note that `id: 'footnote-label'`\n *   is always added as footnote calls use it with `aria-describedby` to\n *   provide an accessible label).\n * @property {string | null | undefined} [footnoteLabelTagName='h2']\n *   Tag name to use for the footnote label.\n * @property {Handlers | null | undefined} [handlers]\n *   Extra handlers for nodes.\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 * @property {Handler | null | undefined} [unknownHandler]\n *   Handler for all unknown nodes.\n *\n * @typedef {Record} Handlers\n *   Handle nodes.\n *\n * @typedef {HFunctionProps & HFunctionNoProps & HFields} State\n *   Info passed around.\n */\n\nimport {visit} from 'unist-util-visit'\nimport {position, pointStart, pointEnd} from 'unist-util-position'\nimport {generated} from 'unist-util-generated'\nimport {definitions} from 'mdast-util-definitions'\nimport {handlers} from './handlers/index.js'\n\nconst own = {}.hasOwnProperty\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.\n * @returns {State}\n *   `state` function.\n */\nexport function createState(tree, options) {\n  const settings = options || {}\n  const dangerous = settings.allowDangerousHtml || false\n  /** @type {Record} */\n  const footnoteById = {}\n\n  // To do: next major: add `options` to state, remove:\n  // `dangerous`, `clobberPrefix`, `footnoteLabel`, `footnoteLabelTagName`,\n  // `footnoteLabelProperties`, `footnoteBackLabel`, `passThrough`,\n  // `unknownHandler`.\n\n  // To do: next major: move to `state.options.allowDangerousHtml`.\n  state.dangerous = dangerous\n  // To do: next major: move to `state.options`.\n  state.clobberPrefix =\n    settings.clobberPrefix === undefined || settings.clobberPrefix === null\n      ? 'user-content-'\n      : settings.clobberPrefix\n  // To do: next major: move to `state.options`.\n  state.footnoteLabel = settings.footnoteLabel || 'Footnotes'\n  // To do: next major: move to `state.options`.\n  state.footnoteLabelTagName = settings.footnoteLabelTagName || 'h2'\n  // To do: next major: move to `state.options`.\n  state.footnoteLabelProperties = settings.footnoteLabelProperties || {\n    className: ['sr-only']\n  }\n  // To do: next major: move to `state.options`.\n  state.footnoteBackLabel = settings.footnoteBackLabel || 'Back to content'\n  // To do: next major: move to `state.options`.\n  state.unknownHandler = settings.unknownHandler\n  // To do: next major: move to `state.options`.\n  state.passThrough = settings.passThrough\n\n  state.handlers = {...handlers, ...settings.handlers}\n\n  // To do: next major: replace utility with `definitionById` object, so we\n  // only walk once (as we need footnotes too).\n  state.definition = definitions(tree)\n  state.footnoteById = footnoteById\n  /** @type {Array} */\n  state.footnoteOrder = []\n  /** @type {Record} */\n  state.footnoteCounts = {}\n\n  state.patch = patch\n  state.applyData = applyData\n  state.one = oneBound\n  state.all = allBound\n  state.wrap = wrap\n  // To do: next major: remove `augment`.\n  state.augment = augment\n\n  visit(tree, 'footnoteDefinition', (definition) => {\n    const id = String(definition.identifier).toUpperCase()\n\n    // Mimick CM behavior of link definitions.\n    // See: .\n    if (!own.call(footnoteById, id)) {\n      footnoteById[id] = definition\n    }\n  })\n\n  // @ts-expect-error Hush, it’s fine!\n  return state\n\n  /**\n   * Finalise the created `right`, a hast node, from `left`, an mdast node.\n   *\n   * @param {MdastNodeWithData | PositionLike | null | undefined} left\n   * @param {HastElementContent} right\n   * @returns {HastElementContent}\n   */\n  /* c8 ignore start */\n  // To do: next major: remove.\n  function augment(left, right) {\n    // Handle `data.hName`, `data.hProperties, `data.hChildren`.\n    if (left && 'data' in left && left.data) {\n      /** @type {MdastData} */\n      const data = left.data\n\n      if (data.hName) {\n        if (right.type !== 'element') {\n          right = {\n            type: 'element',\n            tagName: '',\n            properties: {},\n            children: []\n          }\n        }\n\n        right.tagName = data.hName\n      }\n\n      if (right.type === 'element' && data.hProperties) {\n        right.properties = {...right.properties, ...data.hProperties}\n      }\n\n      if ('children' in right && right.children && data.hChildren) {\n        right.children = data.hChildren\n      }\n    }\n\n    if (left) {\n      const ctx = 'type' in left ? left : {position: left}\n\n      if (!generated(ctx)) {\n        // @ts-expect-error: fine.\n        right.position = {start: pointStart(ctx), end: pointEnd(ctx)}\n      }\n    }\n\n    return right\n  }\n  /* c8 ignore stop */\n\n  /**\n   * Create an element for `node`.\n   *\n   * @type {HFunctionProps}\n   */\n  /* c8 ignore start */\n  // To do: next major: remove.\n  function state(node, tagName, props, children) {\n    if (Array.isArray(props)) {\n      children = props\n      props = {}\n    }\n\n    // @ts-expect-error augmenting an element yields an element.\n    return augment(node, {\n      type: 'element',\n      tagName,\n      properties: props || {},\n      children: children || []\n    })\n  }\n  /* c8 ignore stop */\n\n  /**\n   * Transform an mdast node into a hast node.\n   *\n   * @param {MdastNodes} node\n   *   mdast node.\n   * @param {MdastParents | null | undefined} [parent]\n   *   Parent of `node`.\n   * @returns {HastElementContent | Array | null | undefined}\n   *   Resulting hast node.\n   */\n  function oneBound(node, parent) {\n    // @ts-expect-error: that’s a state :)\n    return one(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 allBound(parent) {\n    // @ts-expect-error: that’s a state :)\n    return all(state, parent)\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 {void}\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 {Type | HastElement}\n *   Nothing.\n */\nfunction applyData(from, to) {\n  /** @type {Type | HastElement} */\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 is likely to keep the content around (otherwise: pass\n      // `hChildren`).\n      else {\n        result = {\n          type: 'element',\n          tagName: hName,\n          properties: {},\n          children: []\n        }\n\n        // To do: next major: take the children from the `root`, or inject the\n        // raw/text/comment or so into the element?\n        // if ('children' in node) {\n        //   // @ts-expect-error: assume `children` are allowed in elements.\n        //   result.children = node.children\n        // } else {\n        //   // @ts-expect-error: assume `node` is allowed in elements.\n        //   result.children.push(node)\n        // }\n      }\n    }\n\n    if (result.type === 'element' && hProperties) {\n      result.properties = {...result.properties, ...hProperties}\n    }\n\n    if (\n      'children' in result &&\n      result.children &&\n      hChildren !== null &&\n      hChildren !== undefined\n    ) {\n      // @ts-expect-error: assume valid children are defined.\n      result.children = hChildren\n    }\n  }\n\n  return result\n}\n\n/**\n * Transform an mdast node into a hast node.\n *\n * @param {State} state\n *   Info passed around.\n * @param {MdastNodes} node\n *   mdast node.\n * @param {MdastParents | null | undefined} [parent]\n *   Parent of `node`.\n * @returns {HastElementContent | Array | null | undefined}\n *   Resulting hast node.\n */\n// To do: next major: do not expose, keep bound.\nexport function one(state, node, parent) {\n  const type = node && node.type\n\n  // Fail on non-nodes.\n  if (!type) {\n    throw new Error('Expected node, got `' + node + '`')\n  }\n\n  if (own.call(state.handlers, type)) {\n    return state.handlers[type](state, node, parent)\n  }\n\n  if (state.passThrough && state.passThrough.includes(type)) {\n    // To do: next major: deep clone.\n    // @ts-expect-error: types of passed through nodes are expected to be added manually.\n    return 'children' in node ? {...node, children: all(state, node)} : node\n  }\n\n  if (state.unknownHandler) {\n    return state.unknownHandler(state, node, parent)\n  }\n\n  return defaultUnknownHandler(state, node)\n}\n\n/**\n * Transform the children of an mdast node into hast nodes.\n *\n * @param {State} state\n *   Info passed around.\n * @param {MdastNodes} parent\n *   mdast node to compile\n * @returns {Array}\n *   Resulting hast nodes.\n */\n// To do: next major: do not expose, keep bound.\nexport function all(state, 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 = one(state, 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 = result.value.replace(/^\\s+/, '')\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 = head.value.replace(/^\\s+/, '')\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 * Transform an unknown node.\n *\n * @param {State} state\n *   Info passed around.\n * @param {MdastNodes} node\n *   Unknown mdast node.\n * @returns {HastText | HastElement}\n *   Resulting hast node.\n */\nfunction defaultUnknownHandler(state, node) {\n  const data = node.data || {}\n  /** @type {HastText | HastElement} */\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: all(state, 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 {HastContent} Type\n *   Node type.\n * @param {Array} nodes\n *   List of nodes to wrap.\n * @param {boolean | null | undefined} [loose=false]\n *   Whether to add line endings at start and end.\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 * @typedef PointLike\n * @property {number | null | undefined} [line]\n * @property {number | null | undefined} [column]\n * @property {number | null | undefined} [offset]\n *\n * @typedef PositionLike\n * @property {PointLike | null | undefined} [start]\n * @property {PointLike | null | undefined} [end]\n *\n * @typedef NodeLike\n * @property {PositionLike | null | undefined} [position]\n */\n\n/**\n * Check if `node` is generated.\n *\n * @param {NodeLike | null | undefined} [node]\n *   Node to check.\n * @returns {boolean}\n *   Whether `node` is generated (does not have positional info).\n */\nexport function generated(node) {\n  return (\n    !node ||\n    !node.position ||\n    !node.position.start ||\n    !node.position.start.line ||\n    !node.position.start.column ||\n    !node.position.end ||\n    !node.position.end.line ||\n    !node.position.end.column\n  )\n}\n","/**\n * @typedef {import('hast').Content} HastContent\n * @typedef {import('hast').Root} HastRoot\n *\n * @typedef {import('mdast').Content} MdastContent\n * @typedef {import('mdast').Root} MdastRoot\n *\n * @typedef {import('./state.js').Options} Options\n */\n\n/**\n * @typedef {HastRoot | HastContent} HastNodes\n * @typedef {MdastRoot | MdastContent} MdastNodes\n */\n\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.\n * @returns {HastNodes | null | undefined}\n * hast tree.\n */\n// To do: next major: always return a single `root`.\nexport function toHast(tree, options) {\n const state = createState(tree, options)\n const node = state.one(tree, null)\n const foot = footer(state)\n\n if (foot) {\n // @ts-expect-error If there’s a footer, there were definitions, meaning block\n // content.\n // So assume `node` is a parent node.\n node.children.push({type: 'text', value: '\\n'}, foot)\n }\n\n // To do: next major: always return root?\n return Array.isArray(node) ? {type: 'root', children: node} : node\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').ElementContent} ElementContent\n *\n * @typedef {import('./state.js').State} State\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\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 */\nexport function footer(state) {\n /** @type {Array} */\n const listItems = []\n let index = -1\n\n while (++index < state.footnoteOrder.length) {\n const def = state.footnoteById[state.footnoteOrder[index]]\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 referenceIndex = 0\n /** @type {Array} */\n const backReferences = []\n\n while (++referenceIndex <= state.footnoteCounts[id]) {\n /** @type {Element} */\n const backReference = {\n type: 'element',\n tagName: 'a',\n properties: {\n href:\n '#' +\n state.clobberPrefix +\n 'fnref-' +\n safeId +\n (referenceIndex > 1 ? '-' + referenceIndex : ''),\n dataFootnoteBackref: true,\n className: ['data-footnote-backref'],\n ariaLabel: state.footnoteBackLabel\n },\n children: [{type: 'text', value: '↩'}]\n }\n\n if (referenceIndex > 1) {\n backReference.children.push({\n type: 'element',\n tagName: 'sup',\n children: [{type: 'text', value: String(referenceIndex)}]\n })\n }\n\n if (backReferences.length > 0) {\n backReferences.push({type: 'text', value: ' '})\n }\n\n backReferences.push(backReference)\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: state.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: state.footnoteLabelTagName,\n properties: {\n // To do: use structured clone.\n ...JSON.parse(JSON.stringify(state.footnoteLabelProperties)),\n id: 'footnote-label'\n },\n children: [{type: 'text', value: state.footnoteLabel}]\n },\n {type: 'text', value: '\\n'},\n {\n type: 'element',\n tagName: 'ol',\n properties: {},\n children: state.wrap(listItems, true)\n },\n {type: 'text', value: '\\n'}\n ]\n }\n}\n","/**\n * @typedef {import('hast').Root} HastRoot\n * @typedef {import('mdast').Root} MdastRoot\n * @typedef {import('mdast-util-to-hast').Options} Options\n * @typedef {import('unified').Processor} Processor\n *\n * @typedef {import('mdast-util-to-hast')} DoNotTouchAsThisImportIncludesRawInTree\n */\n\nimport {toHast} from 'mdast-util-to-hast'\n\n// Note: the `` overload doesn’t seem to work :'(\n\n/**\n * Plugin that turns markdown into HTML to support rehype.\n *\n * * If a destination processor is given, that processor runs with a new HTML\n * (hast) tree (bridge-mode).\n * As the given processor runs with a hast tree, and rehype plugins support\n * hast, that means rehype plugins can be used with the given processor.\n * The hast tree is discarded in the end.\n * It’s highly unlikely that you want to do this.\n * * The common case is to not pass a destination processor, in which case the\n * current processor continues running with a new HTML (hast) tree\n * (mutate-mode).\n * As the current processor continues with a hast tree, and rehype plugins\n * support hast, that means rehype plugins can be used after\n * `remark-rehype`.\n * It’s likely that this is what you want to do.\n *\n * @param destination\n * Optional unified processor.\n * @param options\n * Options passed to `mdast-util-to-hast`.\n */\nconst remarkRehype =\n /** @type {(import('unified').Plugin<[Processor, Options?]|[null|undefined, Options?]|[Options]|[], MdastRoot>)} */\n (\n function (destination, options) {\n return destination && 'run' in destination\n ? bridge(destination, options)\n : mutate(destination || options)\n }\n )\n\nexport default remarkRehype\n\n/**\n * Bridge-mode.\n * Runs the destination with the new hast tree.\n *\n * @type {import('unified').Plugin<[Processor, Options?], MdastRoot>}\n */\nfunction bridge(destination, options) {\n return (node, file, next) => {\n destination.run(toHast(node, options), file, (error) => {\n next(error)\n })\n }\n}\n\n/**\n * Mutate-mode.\n * Further plugins run on the hast tree.\n *\n * @type {import('unified').Plugin<[Options?]|void[], MdastRoot, HastRoot>}\n */\nfunction mutate(options) {\n // @ts-expect-error: assume a corresponding node is returned by `toHast`.\n return (node) => toHast(node, options)\n}\n","/**\n * @typedef {import('./info.js').Info} Info\n * @typedef {Record} Properties\n * @typedef {Record} Normal\n */\n\nexport class Schema {\n /**\n * @constructor\n * @param {Properties} property\n * @param {Normal} normal\n * @param {string} [space]\n */\n constructor(property, normal, space) {\n this.property = property\n this.normal = normal\n if (space) {\n this.space = space\n }\n }\n}\n\n/** @type {Properties} */\nSchema.prototype.property = {}\n/** @type {Normal} */\nSchema.prototype.normal = {}\n/** @type {string|null} */\nSchema.prototype.space = null\n","/**\n * @typedef {import('./schema.js').Properties} Properties\n * @typedef {import('./schema.js').Normal} Normal\n */\n\nimport {Schema} from './schema.js'\n\n/**\n * @param {Schema[]} definitions\n * @param {string} [space]\n * @returns {Schema}\n */\nexport function merge(definitions, space) {\n /** @type {Properties} */\n const property = {}\n /** @type {Normal} */\n const normal = {}\n let index = -1\n\n while (++index < definitions.length) {\n Object.assign(property, definitions[index].property)\n Object.assign(normal, definitions[index].normal)\n }\n\n return new Schema(property, normal, space)\n}\n","/**\n * @param {string} value\n * @returns {string}\n */\nexport function normalize(value) {\n return value.toLowerCase()\n}\n","export class Info {\n /**\n * @constructor\n * @param {string} property\n * @param {string} attribute\n */\n constructor(property, attribute) {\n /** @type {string} */\n this.property = property\n /** @type {string} */\n this.attribute = attribute\n }\n}\n\n/** @type {string|null} */\nInfo.prototype.space = null\nInfo.prototype.boolean = false\nInfo.prototype.booleanish = false\nInfo.prototype.overloadedBoolean = false\nInfo.prototype.number = false\nInfo.prototype.commaSeparated = false\nInfo.prototype.spaceSeparated = false\nInfo.prototype.commaOrSpaceSeparated = false\nInfo.prototype.mustUseProperty = false\nInfo.prototype.defined = false\n","let powers = 0\n\nexport const boolean = increment()\nexport const booleanish = increment()\nexport const overloadedBoolean = increment()\nexport const number = increment()\nexport const spaceSeparated = increment()\nexport const commaSeparated = increment()\nexport const commaOrSpaceSeparated = increment()\n\nfunction increment() {\n return 2 ** ++powers\n}\n","import {Info} from './info.js'\nimport * as types from './types.js'\n\n/** @type {Array} */\n// @ts-expect-error: hush.\nconst checks = Object.keys(types)\n\nexport class DefinedInfo extends Info {\n /**\n * @constructor\n * @param {string} property\n * @param {string} attribute\n * @param {number|null} [mask]\n * @param {string} [space]\n */\n constructor(property, attribute, mask, space) {\n let index = -1\n\n super(property, attribute)\n\n mark(this, 'space', space)\n\n if (typeof mask === 'number') {\n while (++index < checks.length) {\n const check = checks[index]\n mark(this, checks[index], (mask & types[check]) === types[check])\n }\n }\n }\n}\n\nDefinedInfo.prototype.defined = true\n\n/**\n * @param {DefinedInfo} values\n * @param {string} key\n * @param {unknown} value\n */\nfunction mark(values, key, value) {\n if (value) {\n // @ts-expect-error: assume `value` matches the expected value of `key`.\n values[key] = value\n }\n}\n","/**\n * @typedef {import('./schema.js').Properties} Properties\n * @typedef {import('./schema.js').Normal} Normal\n *\n * @typedef {Record} Attributes\n *\n * @typedef {Object} Definition\n * @property {Record} properties\n * @property {(attributes: Attributes, property: string) => string} transform\n * @property {string} [space]\n * @property {Attributes} [attributes]\n * @property {Array} [mustUseProperty]\n */\n\nimport {normalize} from '../normalize.js'\nimport {Schema} from './schema.js'\nimport {DefinedInfo} from './defined-info.js'\n\nconst own = {}.hasOwnProperty\n\n/**\n * @param {Definition} definition\n * @returns {Schema}\n */\nexport function create(definition) {\n /** @type {Properties} */\n const property = {}\n /** @type {Normal} */\n const normal = {}\n /** @type {string} */\n let prop\n\n for (prop in definition.properties) {\n if (own.call(definition.properties, prop)) {\n const value = definition.properties[prop]\n const info = new DefinedInfo(\n prop,\n definition.transform(definition.attributes || {}, prop),\n value,\n definition.space\n )\n\n if (\n definition.mustUseProperty &&\n definition.mustUseProperty.includes(prop)\n ) {\n info.mustUseProperty = true\n }\n\n property[prop] = info\n\n normal[normalize(prop)] = prop\n normal[normalize(info.attribute)] = prop\n }\n }\n\n return new Schema(property, normal, definition.space)\n}\n","import {create} from './util/create.js'\n\nexport const xlink = create({\n space: 'xlink',\n transform(_, prop) {\n return 'xlink:' + prop.slice(5).toLowerCase()\n },\n properties: {\n xLinkActuate: null,\n xLinkArcRole: null,\n xLinkHref: null,\n xLinkRole: null,\n xLinkShow: null,\n xLinkTitle: null,\n xLinkType: null\n }\n})\n","import {create} from './util/create.js'\n\nexport const xml = create({\n space: 'xml',\n transform(_, prop) {\n return 'xml:' + prop.slice(3).toLowerCase()\n },\n properties: {xmlLang: null, xmlBase: null, xmlSpace: null}\n})\n","/**\n * @param {Record} attributes\n * @param {string} attribute\n * @returns {string}\n */\nexport function caseSensitiveTransform(attributes, attribute) {\n return attribute in attributes ? attributes[attribute] : attribute\n}\n","import {caseSensitiveTransform} from './case-sensitive-transform.js'\n\n/**\n * @param {Record} attributes\n * @param {string} property\n * @returns {string}\n */\nexport function caseInsensitiveTransform(attributes, property) {\n return caseSensitiveTransform(attributes, property.toLowerCase())\n}\n","import {create} from './util/create.js'\nimport {caseInsensitiveTransform} from './util/case-insensitive-transform.js'\n\nexport const xmlns = create({\n space: 'xmlns',\n attributes: {xmlnsxlink: 'xmlns:xlink'},\n transform: caseInsensitiveTransform,\n properties: {xmlns: null, xmlnsXLink: null}\n})\n","import {booleanish, number, spaceSeparated} from './util/types.js'\nimport {create} from './util/create.js'\n\nexport const aria = create({\n transform(_, prop) {\n return prop === 'role' ? prop : 'aria-' + prop.slice(4).toLowerCase()\n },\n properties: {\n ariaActiveDescendant: null,\n ariaAtomic: booleanish,\n ariaAutoComplete: null,\n ariaBusy: booleanish,\n ariaChecked: booleanish,\n ariaColCount: number,\n ariaColIndex: number,\n ariaColSpan: number,\n ariaControls: spaceSeparated,\n ariaCurrent: null,\n ariaDescribedBy: spaceSeparated,\n ariaDetails: null,\n ariaDisabled: booleanish,\n ariaDropEffect: spaceSeparated,\n ariaErrorMessage: null,\n ariaExpanded: booleanish,\n ariaFlowTo: spaceSeparated,\n ariaGrabbed: booleanish,\n ariaHasPopup: null,\n ariaHidden: booleanish,\n ariaInvalid: null,\n ariaKeyShortcuts: null,\n ariaLabel: null,\n ariaLabelledBy: spaceSeparated,\n ariaLevel: number,\n ariaLive: null,\n ariaModal: booleanish,\n ariaMultiLine: booleanish,\n ariaMultiSelectable: booleanish,\n ariaOrientation: null,\n ariaOwns: spaceSeparated,\n ariaPlaceholder: null,\n ariaPosInSet: number,\n ariaPressed: booleanish,\n ariaReadOnly: booleanish,\n ariaRelevant: null,\n ariaRequired: booleanish,\n ariaRoleDescription: spaceSeparated,\n ariaRowCount: number,\n ariaRowIndex: number,\n ariaRowSpan: number,\n ariaSelected: booleanish,\n ariaSetSize: number,\n ariaSort: null,\n ariaValueMax: number,\n ariaValueMin: number,\n ariaValueNow: number,\n ariaValueText: null,\n role: null\n }\n})\n","import {\n boolean,\n overloadedBoolean,\n booleanish,\n number,\n spaceSeparated,\n commaSeparated\n} from './util/types.js'\nimport {create} from './util/create.js'\nimport {caseInsensitiveTransform} from './util/case-insensitive-transform.js'\n\nexport const html = create({\n space: 'html',\n attributes: {\n acceptcharset: 'accept-charset',\n classname: 'class',\n htmlfor: 'for',\n httpequiv: 'http-equiv'\n },\n transform: caseInsensitiveTransform,\n mustUseProperty: ['checked', 'multiple', 'muted', 'selected'],\n properties: {\n // Standard Properties.\n abbr: null,\n accept: commaSeparated,\n acceptCharset: spaceSeparated,\n accessKey: spaceSeparated,\n action: null,\n allow: null,\n allowFullScreen: boolean,\n allowPaymentRequest: boolean,\n allowUserMedia: boolean,\n alt: null,\n as: null,\n async: boolean,\n autoCapitalize: null,\n autoComplete: spaceSeparated,\n autoFocus: boolean,\n autoPlay: boolean,\n blocking: spaceSeparated,\n capture: null,\n charSet: null,\n checked: boolean,\n cite: null,\n className: spaceSeparated,\n cols: number,\n colSpan: null,\n content: null,\n contentEditable: booleanish,\n controls: boolean,\n controlsList: spaceSeparated,\n coords: number | commaSeparated,\n crossOrigin: null,\n data: null,\n dateTime: null,\n decoding: null,\n default: boolean,\n defer: boolean,\n dir: null,\n dirName: null,\n disabled: boolean,\n download: overloadedBoolean,\n draggable: booleanish,\n encType: null,\n enterKeyHint: null,\n fetchPriority: null,\n form: null,\n formAction: null,\n formEncType: null,\n formMethod: null,\n formNoValidate: boolean,\n formTarget: null,\n headers: spaceSeparated,\n height: number,\n hidden: boolean,\n high: number,\n href: null,\n hrefLang: null,\n htmlFor: spaceSeparated,\n httpEquiv: spaceSeparated,\n id: null,\n imageSizes: null,\n imageSrcSet: null,\n inert: boolean,\n inputMode: null,\n integrity: null,\n is: null,\n isMap: boolean,\n itemId: null,\n itemProp: spaceSeparated,\n itemRef: spaceSeparated,\n itemScope: boolean,\n itemType: spaceSeparated,\n kind: null,\n label: null,\n lang: null,\n language: null,\n list: null,\n loading: null,\n loop: boolean,\n low: number,\n manifest: null,\n max: null,\n maxLength: number,\n media: null,\n method: null,\n min: null,\n minLength: number,\n multiple: boolean,\n muted: boolean,\n name: null,\n nonce: null,\n noModule: boolean,\n noValidate: boolean,\n onAbort: null,\n onAfterPrint: null,\n onAuxClick: null,\n onBeforeMatch: null,\n onBeforePrint: null,\n onBeforeToggle: null,\n onBeforeUnload: null,\n onBlur: null,\n onCancel: null,\n onCanPlay: null,\n onCanPlayThrough: null,\n onChange: null,\n onClick: null,\n onClose: null,\n onContextLost: null,\n onContextMenu: null,\n onContextRestored: null,\n onCopy: null,\n onCueChange: null,\n onCut: null,\n onDblClick: null,\n onDrag: null,\n onDragEnd: null,\n onDragEnter: null,\n onDragExit: null,\n onDragLeave: null,\n onDragOver: null,\n onDragStart: null,\n onDrop: null,\n onDurationChange: null,\n onEmptied: null,\n onEnded: null,\n onError: null,\n onFocus: null,\n onFormData: null,\n onHashChange: null,\n onInput: null,\n onInvalid: null,\n onKeyDown: null,\n onKeyPress: null,\n onKeyUp: null,\n onLanguageChange: null,\n onLoad: null,\n onLoadedData: null,\n onLoadedMetadata: null,\n onLoadEnd: null,\n onLoadStart: null,\n onMessage: null,\n onMessageError: null,\n onMouseDown: null,\n onMouseEnter: null,\n onMouseLeave: null,\n onMouseMove: null,\n onMouseOut: null,\n onMouseOver: null,\n onMouseUp: null,\n onOffline: null,\n onOnline: null,\n onPageHide: null,\n onPageShow: null,\n onPaste: null,\n onPause: null,\n onPlay: null,\n onPlaying: null,\n onPopState: null,\n onProgress: null,\n onRateChange: null,\n onRejectionHandled: null,\n onReset: null,\n onResize: null,\n onScroll: null,\n onScrollEnd: null,\n onSecurityPolicyViolation: null,\n onSeeked: null,\n onSeeking: null,\n onSelect: null,\n onSlotChange: null,\n onStalled: null,\n onStorage: null,\n onSubmit: null,\n onSuspend: null,\n onTimeUpdate: null,\n onToggle: null,\n onUnhandledRejection: null,\n onUnload: null,\n onVolumeChange: null,\n onWaiting: null,\n onWheel: null,\n open: boolean,\n optimum: number,\n pattern: null,\n ping: spaceSeparated,\n placeholder: null,\n playsInline: boolean,\n popover: null,\n popoverTarget: null,\n popoverTargetAction: null,\n poster: null,\n preload: null,\n readOnly: boolean,\n referrerPolicy: null,\n rel: spaceSeparated,\n required: boolean,\n reversed: boolean,\n rows: number,\n rowSpan: number,\n sandbox: spaceSeparated,\n scope: null,\n scoped: boolean,\n seamless: boolean,\n selected: boolean,\n shadowRootClonable: boolean,\n shadowRootDelegatesFocus: boolean,\n shadowRootMode: null,\n shape: null,\n size: number,\n sizes: null,\n slot: null,\n span: number,\n spellCheck: booleanish,\n src: null,\n srcDoc: null,\n srcLang: null,\n srcSet: null,\n start: number,\n step: null,\n style: null,\n tabIndex: number,\n target: null,\n title: null,\n translate: null,\n type: null,\n typeMustMatch: boolean,\n useMap: null,\n value: booleanish,\n width: number,\n wrap: null,\n writingSuggestions: null,\n\n // Legacy.\n // See: https://html.spec.whatwg.org/#other-elements,-attributes-and-apis\n align: null, // Several. Use CSS `text-align` instead,\n aLink: null, // ``. Use CSS `a:active {color}` instead\n archive: spaceSeparated, // ``. List of URIs to archives\n axis: null, // `` and ``. Use `scope` on ``\n background: null, // ``. Use CSS `background-image` instead\n bgColor: null, // `` and table elements. Use CSS `background-color` instead\n border: number, // ``. Use CSS `border-width` instead,\n borderColor: null, // `
`. Use CSS `border-color` instead,\n bottomMargin: number, // ``\n cellPadding: null, // `
`\n cellSpacing: null, // `
`\n char: null, // Several table elements. When `align=char`, sets the character to align on\n charOff: null, // Several table elements. When `char`, offsets the alignment\n classId: null, // ``\n clear: null, // `
`. Use CSS `clear` instead\n code: null, // ``\n codeBase: null, // ``\n codeType: null, // ``\n color: null, // `` and `
`. Use CSS instead\n compact: boolean, // Lists. Use CSS to reduce space between items instead\n declare: boolean, // ``\n event: null, // `