{"version":3,"sources":["webpack://@lemon8/web-activities/../history.ts","webpack://@lemon8/web-activities/../utils.ts","webpack://@lemon8/web-activities/../router.ts","webpack://@lemon8/web-activities/./client/models/100things.ts","webpack://@lemon8/web-activities/./client/models/share-info.ts","webpack://@lemon8/web-activities/./client/utils/activity-loader.ts","webpack://@lemon8/web-activities/./client/constants/af_web_dp.ts","webpack://@lemon8/web-activities/./client/utils/createOneLink.ts","webpack://@lemon8/web-activities/./client/utils/createOpenUrl.ts","webpack://@lemon8/web-activities/../libs/ark-css-links/dist/es/index.js","webpack://@lemon8/web-activities/../libs/lemon8-web-app-shared/dist/esm/atom/ab-test.js","webpack://@lemon8/web-activities/../libs/lemon8-web-app-shared/dist/esm/atom/crawler.js","webpack://@lemon8/web-activities/../libs/lemon8-web-app-shared/dist/esm/atom/i18n-text.js","webpack://@lemon8/web-activities/../libs/lemon8-web-app-shared/dist/esm/atom/index.js","webpack://@lemon8/web-activities/../libs/lemon8-web-app-shared/dist/esm/atom/locale.js","webpack://@lemon8/web-activities/../libs/lemon8-web-app-shared/dist/esm/atom/render-config.js","webpack://@lemon8/web-activities/../libs/lemon8-web-app-shared/dist/esm/atom/root-traffic.js","webpack://@lemon8/web-activities/../libs/lemon8-web-app-shared/dist/esm/atom/user-agent.js","webpack://@lemon8/web-activities/../libs/lemon8-web-app-shared/dist/esm/atom/web-user.js","webpack://@lemon8/web-activities/../libs/lemon8-web-app-shared/dist/esm/i18n/europe.js","webpack://@lemon8/web-activities/../libs/lemon8-web-app-shared/dist/esm/i18n/index.js","webpack://@lemon8/web-activities/../libs/lemon8-web-app-shared/dist/esm/i18n/language.js","webpack://@lemon8/web-activities/../libs/lemon8-web-app-shared/dist/esm/i18n/region.js","webpack://@lemon8/web-activities/../lib/context.ts","webpack://@lemon8/web-activities/../lib/hooks.tsx","webpack://@lemon8/web-activities/../lib/components.tsx","webpack://@lemon8/web-activities/../index.ts","webpack://@lemon8/web-activities/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/a-callable.js","webpack://@lemon8/web-activities/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/a-possible-prototype.js","webpack://@lemon8/web-activities/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/add-to-unscopables.js","webpack://@lemon8/web-activities/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/advance-string-index.js","webpack://@lemon8/web-activities/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/an-instance.js","webpack://@lemon8/web-activities/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/an-object.js","webpack://@lemon8/web-activities/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/array-from.js","webpack://@lemon8/web-activities/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/array-includes.js","webpack://@lemon8/web-activities/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/array-method-is-strict.js","webpack://@lemon8/web-activities/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/array-reduce.js","webpack://@lemon8/web-activities/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/array-slice-simple.js","webpack://@lemon8/web-activities/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/array-slice.js","webpack://@lemon8/web-activities/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/array-sort.js","webpack://@lemon8/web-activities/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/call-with-safe-iteration-closing.js","webpack://@lemon8/web-activities/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/classof-raw.js","webpack://@lemon8/web-activities/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/classof.js","webpack://@lemon8/web-activities/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/clear-error-stack.js","webpack://@lemon8/web-activities/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/copy-constructor-properties.js","webpack://@lemon8/web-activities/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/correct-prototype-getter.js","webpack://@lemon8/web-activities/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/create-iterator-constructor.js","webpack://@lemon8/web-activities/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/create-non-enumerable-property.js","webpack://@lemon8/web-activities/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/create-property-descriptor.js","webpack://@lemon8/web-activities/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/create-property.js","webpack://@lemon8/web-activities/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/define-built-in-accessor.js","webpack://@lemon8/web-activities/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/define-built-in.js","webpack://@lemon8/web-activities/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/define-built-ins.js","webpack://@lemon8/web-activities/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/define-global-property.js","webpack://@lemon8/web-activities/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/define-iterator.js","webpack://@lemon8/web-activities/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/delete-property-or-throw.js","webpack://@lemon8/web-activities/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/descriptors.js","webpack://@lemon8/web-activities/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/document-create-element.js","webpack://@lemon8/web-activities/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/does-not-exceed-safe-integer.js","webpack://@lemon8/web-activities/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/dom-exception-constants.js","webpack://@lemon8/web-activities/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/dom-iterables.js","webpack://@lemon8/web-activities/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/dom-token-list-prototype.js","webpack://@lemon8/web-activities/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/engine-ff-version.js","webpack://@lemon8/web-activities/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/engine-is-ie-or-edge.js","webpack://@lemon8/web-activities/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/engine-is-node.js","webpack://@lemon8/web-activities/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/engine-user-agent.js","webpack://@lemon8/web-activities/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/engine-v8-version.js","webpack://@lemon8/web-activities/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/engine-webkit-version.js","webpack://@lemon8/web-activities/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/enum-bug-keys.js","webpack://@lemon8/web-activities/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/error-stack-installable.js","webpack://@lemon8/web-activities/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/error-to-string.js","webpack://@lemon8/web-activities/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/export.js","webpack://@lemon8/web-activities/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/fails.js","webpack://@lemon8/web-activities/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/fix-regexp-well-known-symbol-logic.js","webpack://@lemon8/web-activities/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/function-apply.js","webpack://@lemon8/web-activities/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/function-bind-context.js","webpack://@lemon8/web-activities/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/function-bind-native.js","webpack://@lemon8/web-activities/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/function-call.js","webpack://@lemon8/web-activities/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/function-name.js","webpack://@lemon8/web-activities/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/function-uncurry-this.js","webpack://@lemon8/web-activities/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/get-built-in.js","webpack://@lemon8/web-activities/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/get-iterator-method.js","webpack://@lemon8/web-activities/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/get-iterator.js","webpack://@lemon8/web-activities/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/get-method.js","webpack://@lemon8/web-activities/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/get-substitution.js","webpack://@lemon8/web-activities/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/global.js","webpack://@lemon8/web-activities/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/has-own-property.js","webpack://@lemon8/web-activities/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/hidden-keys.js","webpack://@lemon8/web-activities/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/html.js","webpack://@lemon8/web-activities/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/ie8-dom-define.js","webpack://@lemon8/web-activities/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/indexed-object.js","webpack://@lemon8/web-activities/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/inherit-if-required.js","webpack://@lemon8/web-activities/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/inspect-source.js","webpack://@lemon8/web-activities/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/install-error-cause.js","webpack://@lemon8/web-activities/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/internal-state.js","webpack://@lemon8/web-activities/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/is-array-iterator-method.js","webpack://@lemon8/web-activities/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/is-array.js","webpack://@lemon8/web-activities/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/is-callable.js","webpack://@lemon8/web-activities/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/is-constructor.js","webpack://@lemon8/web-activities/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/is-forced.js","webpack://@lemon8/web-activities/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/is-object.js","webpack://@lemon8/web-activities/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/is-pure.js","webpack://@lemon8/web-activities/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/is-regexp.js","webpack://@lemon8/web-activities/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/is-symbol.js","webpack://@lemon8/web-activities/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/iterate.js","webpack://@lemon8/web-activities/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/iterator-close.js","webpack://@lemon8/web-activities/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/iterators-core.js","webpack://@lemon8/web-activities/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/iterators.js","webpack://@lemon8/web-activities/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/length-of-array-like.js","webpack://@lemon8/web-activities/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/make-built-in.js","webpack://@lemon8/web-activities/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/math-trunc.js","webpack://@lemon8/web-activities/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/native-symbol.js","webpack://@lemon8/web-activities/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/native-url.js","webpack://@lemon8/web-activities/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/native-weak-map.js","webpack://@lemon8/web-activities/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/normalize-string-argument.js","webpack://@lemon8/web-activities/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/object-assign.js","webpack://@lemon8/web-activities/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/object-create.js","webpack://@lemon8/web-activities/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/object-define-properties.js","webpack://@lemon8/web-activities/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/object-define-property.js","webpack://@lemon8/web-activities/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/object-get-own-property-descriptor.js","webpack://@lemon8/web-activities/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/object-get-own-property-names.js","webpack://@lemon8/web-activities/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/object-get-own-property-symbols.js","webpack://@lemon8/web-activities/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/object-get-prototype-of.js","webpack://@lemon8/web-activities/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/object-is-prototype-of.js","webpack://@lemon8/web-activities/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/object-keys-internal.js","webpack://@lemon8/web-activities/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/object-keys.js","webpack://@lemon8/web-activities/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/object-property-is-enumerable.js","webpack://@lemon8/web-activities/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/object-set-prototype-of.js","webpack://@lemon8/web-activities/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/ordinary-to-primitive.js","webpack://@lemon8/web-activities/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/own-keys.js","webpack://@lemon8/web-activities/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/proxy-accessor.js","webpack://@lemon8/web-activities/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/regexp-exec-abstract.js","webpack://@lemon8/web-activities/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/regexp-exec.js","webpack://@lemon8/web-activities/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/regexp-flags.js","webpack://@lemon8/web-activities/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/regexp-get-flags.js","webpack://@lemon8/web-activities/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/regexp-sticky-helpers.js","webpack://@lemon8/web-activities/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/regexp-unsupported-dot-all.js","webpack://@lemon8/web-activities/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/regexp-unsupported-ncg.js","webpack://@lemon8/web-activities/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/require-object-coercible.js","webpack://@lemon8/web-activities/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/set-species.js","webpack://@lemon8/web-activities/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/set-to-string-tag.js","webpack://@lemon8/web-activities/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/shared-key.js","webpack://@lemon8/web-activities/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/shared-store.js","webpack://@lemon8/web-activities/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/shared.js","webpack://@lemon8/web-activities/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/string-multibyte.js","webpack://@lemon8/web-activities/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/string-punycode-to-ascii.js","webpack://@lemon8/web-activities/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/to-absolute-index.js","webpack://@lemon8/web-activities/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/to-indexed-object.js","webpack://@lemon8/web-activities/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/to-integer-or-infinity.js","webpack://@lemon8/web-activities/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/to-length.js","webpack://@lemon8/web-activities/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/to-object.js","webpack://@lemon8/web-activities/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/to-primitive.js","webpack://@lemon8/web-activities/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/to-property-key.js","webpack://@lemon8/web-activities/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/to-string-tag-support.js","webpack://@lemon8/web-activities/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/to-string.js","webpack://@lemon8/web-activities/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/try-node-require.js","webpack://@lemon8/web-activities/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/try-to-string.js","webpack://@lemon8/web-activities/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/uid.js","webpack://@lemon8/web-activities/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/use-symbol-as-uid.js","webpack://@lemon8/web-activities/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/v8-prototype-define-bug.js","webpack://@lemon8/web-activities/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/validate-arguments-length.js","webpack://@lemon8/web-activities/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/well-known-symbol.js","webpack://@lemon8/web-activities/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/wrap-error-constructor-with-cause.js","webpack://@lemon8/web-activities/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/modules/es.array.iterator.js","webpack://@lemon8/web-activities/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/modules/es.array.push.js","webpack://@lemon8/web-activities/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/modules/es.array.reduce-right.js","webpack://@lemon8/web-activities/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/modules/es.array.reduce.js","webpack://@lemon8/web-activities/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/modules/es.array.reverse.js","webpack://@lemon8/web-activities/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/modules/es.array.sort.js","webpack://@lemon8/web-activities/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/modules/es.error.cause.js","webpack://@lemon8/web-activities/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/modules/es.json.stringify.js","webpack://@lemon8/web-activities/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/modules/es.object.from-entries.js","webpack://@lemon8/web-activities/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/modules/es.regexp.constructor.js","webpack://@lemon8/web-activities/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/modules/es.regexp.dot-all.js","webpack://@lemon8/web-activities/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/modules/es.regexp.exec.js","webpack://@lemon8/web-activities/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/modules/es.string.iterator.js","webpack://@lemon8/web-activities/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/modules/es.string.replace.js","webpack://@lemon8/web-activities/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/modules/es.symbol.description.js","webpack://@lemon8/web-activities/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/modules/web.dom-collections.iterator.js","webpack://@lemon8/web-activities/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/modules/web.dom-exception.constructor.js","webpack://@lemon8/web-activities/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/modules/web.dom-exception.stack.js","webpack://@lemon8/web-activities/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/modules/web.dom-exception.to-string-tag.js","webpack://@lemon8/web-activities/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/modules/web.url-search-params.constructor.js","webpack://@lemon8/web-activities/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/modules/web.url-search-params.js","webpack://@lemon8/web-activities/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/modules/web.url.constructor.js","webpack://@lemon8/web-activities/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/modules/web.url.js","webpack://@lemon8/web-activities/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/modules/web.url.to-json.js","webpack://@lemon8/web-activities/./node_modules/.pnpm/@lemon8+design@0.0.7-alpha.26_lottie-web@5.12.2_react-dom@18.2.0_react@18.2.0/node_modules/@lemon8/design/lib/color/index.ts","webpack://@lemon8/web-activities/./node_modules/.pnpm/@lemon8+design@0.0.7-alpha.26_lottie-web@5.12.2_react-dom@18.2.0_react@18.2.0/node_modules/@lemon8/design/lib/motion/index.ts","webpack://@lemon8/web-activities/./node_modules/.pnpm/@lemon8+design@0.0.7-alpha.26_lottie-web@5.12.2_react-dom@18.2.0_react@18.2.0/node_modules/@lemon8/design/src/utils/utils.ts","webpack://@lemon8/web-activities/./node_modules/.pnpm/@lemon8+design@0.0.7-alpha.26_lottie-web@5.12.2_react-dom@18.2.0_react@18.2.0/node_modules/@lemon8/design/src/components/fontFamily/index.tsx","webpack://@lemon8/web-activities/./node_modules/.pnpm/@lemon8+design@0.0.7-alpha.26_lottie-web@5.12.2_react-dom@18.2.0_react@18.2.0/node_modules/@lemon8/design/src/components/Button/index.tsx","webpack://@lemon8/web-activities/./node_modules/.pnpm/jotai@2.6.1_@types+react@18.2.67_react@18.2.0/node_modules/jotai/index.js","webpack://@lemon8/web-activities/./node_modules/.pnpm/jotai@2.6.1_@types+react@18.2.67_react@18.2.0/node_modules/jotai/react.js","webpack://@lemon8/web-activities/./node_modules/.pnpm/jotai@2.6.1_@types+react@18.2.67_react@18.2.0/node_modules/jotai/vanilla.js","webpack://@lemon8/web-activities/./node_modules/.pnpm/@babel+runtime@7.15.4/node_modules/@babel/runtime/helpers/esm/classCallCheck.js","webpack://@lemon8/web-activities/./node_modules/.pnpm/@babel+runtime@7.15.4/node_modules/@babel/runtime/helpers/esm/createClass.js","webpack://@lemon8/web-activities/./node_modules/.pnpm/react-i18next@11.18.6_i18next@21.10.0_react-dom@18.2.0_react@18.2.0/node_modules/react-i18next/dist/es/unescape.js","webpack://@lemon8/web-activities/./node_modules/.pnpm/react-i18next@11.18.6_i18next@21.10.0_react-dom@18.2.0_react@18.2.0/node_modules/react-i18next/dist/es/context.js","webpack://@lemon8/web-activities/./node_modules/.pnpm/react-i18next@11.18.6_i18next@21.10.0_react-dom@18.2.0_react@18.2.0/node_modules/react-i18next/dist/es/useTranslation.js","webpack://@lemon8/web-activities/./node_modules/.pnpm/react-i18next@11.18.6_i18next@21.10.0_react-dom@18.2.0_react@18.2.0/node_modules/react-i18next/dist/es/utils.js","webpack://@lemon8/web-activities/./node_modules/.pnpm/@lemon8+design@0.0.7-alpha.26_lottie-web@5.12.2_react-dom@18.2.0_react@18.2.0/node_modules/@lemon8/design/src/components/avatar/index.tsx","webpack://@lemon8/web-activities/./client/routes/activity.100-things/constants/index.ts","webpack://@lemon8/web-activities/./client/routes/activity.100-things/body/index.tsx","webpack://@lemon8/web-activities/./client/routes/activity.100-things/helmet/og.tsx","webpack://@lemon8/web-activities/./client/routes/activity.100-things/helmet/json-ld.tsx","webpack://@lemon8/web-activities/./client/routes/activity.100-things/helmet/index.tsx","webpack://@lemon8/web-activities/./client/routes/activity.100-things/__remix_browser_route__route.tsx","webpack://@lemon8/web-activities/./node_modules/.pnpm/classnames@2.5.1/node_modules/classnames/index.js","webpack://@lemon8/web-activities/./node_modules/.pnpm/@babel+runtime@7.15.4/node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack://@lemon8/web-activities/./node_modules/.pnpm/@babel+runtime@7.15.4/node_modules/@babel/runtime/helpers/esm/objectSpread2.js","webpack://@lemon8/web-activities/./node_modules/.pnpm/@babel+runtime@7.15.4/node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","webpack://@lemon8/web-activities/./node_modules/.pnpm/@babel+runtime@7.15.4/node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","webpack://@lemon8/web-activities/./node_modules/.pnpm/@babel+runtime@7.15.4/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","webpack://@lemon8/web-activities/./node_modules/.pnpm/@babel+runtime@7.15.4/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","webpack://@lemon8/web-activities/./node_modules/.pnpm/@babel+runtime@7.15.4/node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","webpack://@lemon8/web-activities/./node_modules/.pnpm/@babel+runtime@7.15.4/node_modules/@babel/runtime/helpers/esm/slicedToArray.js"],"names":["Action","PopStateEventType","createMemoryHistory","options","initialEntries","initialIndex","v5Compat","entries","map","entry","index","createMemoryLocation","state","undefined","clampIndex","length","action","Pop","listener","n","Math","min","max","getCurrentLocation","to","key","location","createLocation","pathname","warning","charAt","JSON","stringify","createHref","createPath","createURL","URL","encodeLocation","path","parsePath","search","hash","push","Push","nextLocation","splice","delta","replace","Replace","go","nextIndex","listen","fn","createBrowserHistory","createBrowserLocation","window","globalHistory","usr","createBrowserHref","getUrlBasedHistory","createHashHistory","createHashLocation","substr","createHashHref","base","document","querySelector","href","getAttribute","url","hashIndex","indexOf","slice","validateHashLocation","invariant","value","message","Error","cond","console","warn","e","createKey","random","toString","getHistoryState","idx","current","_extends","_ref","parsedPath","searchIndex","getLocation","validateLocation","defaultView","history","getIndex","replaceState","handlePop","historyState","pushState","error","DOMException","name","assign","origin","addEventListener","removeEventListener","ResultType","immutableRouteKeys","Set","isIndexRoute","route","convertRoutesToDataRoutes","routes","mapRouteProperties","parentPath","manifest","treePath","id","join","children","indexRoute","pathOrLayoutRoute","matchRoutes","locationArg","basename","stripBasename","branches","flattenRoutes","rankRouteBranches","matches","i","matchRouteBranch","safelyDecodeURI","parentsMeta","flattenRoute","relativePath","meta","caseSensitive","childrenIndex","startsWith","joinPaths","routesMeta","concat","score","computeScore","forEach","_route$path","includes","exploded","explodeOptionalSegments","segments","split","first","rest","isOptional","endsWith","required","restExploded","result","subpath","sort","a","b","compareIndexes","paramRe","dynamicSegmentValue","indexRouteValue","emptySegmentValue","staticSegmentValue","splatPenalty","isSplat","s","initialScore","some","filter","reduce","segment","test","every","branch","matchedParams","matchedPathname","end","remainingPathname","match","matchPath","Object","params","pathnameBase","normalizePathname","generatePath","originalPath","prefix","p","String","array","keyMatch","optional","param","pattern","matcher","paramNames","compilePath","captureGroups","memo","paramName","splatValue","safelyDecodeURIComponent","regexpSource","_","RegExp","decodeURI","decodeURIComponent","toLowerCase","startIndex","nextChar","resolvePath","fromPathname","toPathname","resolvePathname","normalizeSearch","normalizeHash","relativeSegments","pop","getInvalidPathError","char","field","dest","getPathContributingMatches","resolveTo","toArg","routePathnames","locationPathname","isPathRelative","isEmptyPath","from","routePathnameIndex","toSegments","shift","hasExplicitTrailingSlash","hasCurrentTrailingSlash","getToPathname","paths","json","data","init","responseInit","status","headers","Headers","has","set","Response","AbortedDeferredError","DeferredData","constructor","pendingKeysSet","subscribers","deferredKeys","Array","isArray","reject","abortPromise","Promise","r","controller","AbortController","onAbort","unlistenAbortSignal","signal","acc","trackPromise","done","add","promise","race","then","onSettle","catch","defineProperty","get","aborted","delete","emit","settledKey","subscriber","subscribe","cancel","abort","v","k","resolveData","resolve","size","unwrappedData","_ref2","unwrapTrackedPromise","pendingKeys","isTrackedPromise","_tracked","_error","_data","defer","redirect","ErrorResponse","statusText","internal","isRouteErrorResponse","validMutationMethodsArr","validMutationMethods","validRequestMethodsArr","validRequestMethods","redirectStatusCodes","redirectPreserveMethodStatusCodes","IDLE_NAVIGATION","formMethod","formAction","formEncType","formData","text","IDLE_FETCHER","IDLE_BLOCKER","proceed","reset","ABSOLUTE_URL_REGEX","defaultMapRouteProperties","hasErrorBoundary","Boolean","createRouter","routerWindow","isBrowser","createElement","isServer","detectErrorBoundary","dataRoutes","inFlightDataRoutes","future","v7_normalizeFormMethod","v7_prependBasename","unlistenHistory","savedScrollPositions","getScrollRestorationKey","getScrollPosition","initialScrollRestored","hydrationData","initialMatches","initialErrors","getInternalRouterError","getShortCircuitMatches","initialized","m","lazy","loader","router","historyAction","navigation","restoreScrollPosition","preventScrollReset","revalidation","loaderData","actionData","errors","fetchers","Map","blockers","pendingAction","HistoryAction","pendingPreventScrollReset","pendingNavigationController","isUninterruptedRevalidation","isRevalidationRequired","cancelledDeferredRoutes","cancelledFetcherLoads","fetchControllers","incrementingLoadId","pendingNavigationLoadId","fetchReloadIds","fetchRedirectIds","fetchLoadMatches","activeDeferreds","blockerFunctions","ignoreNextHistoryUpdate","initialize","blockerKey","shouldBlockNavigation","currentLocation","updateBlocker","updateState","startNavigation","dispose","clear","deleteFetcher","deleteBlocker","newState","completeNavigation","_location$state","_location$state2","isActionReload","isMutationMethod","_isRedirect","keys","mergeLoaderData","getSavedScrollPosition","navigate","opts","normalizedPath","normalizeTo","fromRouteId","relative","submission","normalizeNavigateOptions","userReplace","pendingError","revalidate","interruptActiveLoads","startUninterruptedRevalidation","overrideNavigation","saveScrollPosition","routesToUse","loadingNavigation","notFoundMatches","cancelActiveDeferreds","isHashChangeOnly","request","createClientSideRequest","pendingActionData","findNearestBoundary","actionOutput","handleAction","shortCircuited","pendingActionError","getLoadingNavigation","Request","handleLoaders","fetcherSubmission","getSubmittingNavigation","actionMatch","getTargetMatch","type","method","routeId","callLoaderOrAction","isRedirectResult","startRedirectNavigation","isErrorResult","boundaryMatch","isDeferredResult","activeSubmission","getSubmissionFromNavigation","matchesToLoad","revalidatingFetchers","getMatchesToLoad","updatedFetchers","markFetchRedirectsDone","rf","fetcher","revalidatingFetcher","getLoadingFetcher","abortFetcher","abortPendingFetchRevalidations","f","results","loaderResults","fetcherResults","callLoadersAndMaybeResolveData","findRedirect","processLoaderData","deferredData","didAbortFetchLoads","abortStaleFetchLoads","shouldUpdateFetchers","getFetcher","fetch","setFetcherError","handleFetcherAction","handleFetcherLoader","requestMatches","existingFetcher","getSubmittingFetcher","abortController","fetchRequest","actionResult","loadingFetcher","isFetchActionRedirect","revalidationRequest","loadId","loadFetcher","staleKey","doneFetcher","getDoneFetcher","resolveDeferredData","_temp","redirectLocation","_isFetchActionRedirect","isDifferentBasename","redirectHistoryAction","currentMatches","fetchersToLoad","all","resolveDeferredResults","markFetchersDone","doneKeys","landedId","yeetedKeys","getBlocker","blocker","newBlocker","blockerFunction","predicate","cancelledRouteIds","dfd","enableScrollRestoration","positions","getPosition","getKey","y","getScrollKey","createUseMatchesMatch","_internalSetRoutes","newRoutes","_internalFetchControllers","_internalActiveDeferreds","UNSAFE_DEFERRED_SYMBOL","Symbol","createStaticHandler","query","_temp2","requestContext","isValidMethod","methodNotAllowedMatches","statusCode","loaderHeaders","actionHeaders","queryImpl","isResponse","queryRoute","_temp3","find","values","_result$activeDeferre","routeMatch","submit","loadRouteData","isQueryRouteResponse","isRedirectResponse","response","isRouteRequest","isStaticRequest","Location","context","loaderRequest","getLoaderMatchesUntilBoundary","processRouteLoaderData","executedLoaders","fromEntries","getStaticContextFromError","_deepestRenderedBoundaryId","isSubmissionNavigation","body","prependBasename","contextualMatches","activeRouteMatch","hasNakedIndexQuery","normalizeFormMethod","isFetcher","getInvalidBodyError","rawFormMethod","toUpperCase","stripHashFromPath","FormData","URLSearchParams","_ref3","parse","searchParams","convertFormDataToSearchParams","convertSearchParamsToFormData","append","boundaryId","boundaryMatches","findIndex","currentUrl","nextUrl","navigationMatches","isNewLoader","currentRouteMatch","nextRouteMatch","shouldRevalidateLoader","currentParams","nextParams","defaultShouldRevalidate","isNewRouteInstance","fetcherMatches","isPerformingInitialLoad","fetcherMatch","currentLoaderData","currentMatch","isNew","isMissingData","currentPath","loaderMatch","arg","shouldRevalidate","routeChoice","loadLazyRouteModule","lazyRoute","routeToUpdate","routeUpdates","lazyRouteProperty","isPropertyStaticallyDefined","resultType","onReject","runHandler","handler","protocol","isSameBasename","contentType","isDeferredData","_result$init","_result$init2","deferred","foundError","newLoaderData","mergedLoaderData","hasOwnProperty","reverse","_temp4","errorMessage","obj","signals","isRevalidatingLoader","unwrap","getAll","handle","pathMatches","GenderEnum","ThingsStore","atom","$ThingsData","args","old","_objectSpread","$ShareInfo","sharePlatform","sharePageName","buildActivityLoader","loaders","setRemixParams","IOS_af_web_dp","Andriod_ab_web_dp","createOnelink","pid","onlinePid","testOpenUrl","deepLinkValue","afDp","afDpParams","ampExtra","isiOS","isMobile","open","host","af_dp","onelink","encodeURIComponent","createOpenUrl","originUrl","useTitlebar","useStatusBar","useCommonParams","isActivity","rightButton","preventBounces","schemeParams","manifestCache","getManifest","__remixManifest","cssLinks","cssImports","rel","exports","jotai_1","require","versions","parameters","__createBinding","create","o","k2","desc","getOwnPropertyDescriptor","__esModule","writable","configurable","enumerable","__exportStar","prototype","call","isSteamingSSR","isBot","isSafari","isInApp","isMacOS","webId","EURO_COUNTRY_LIST","isEuropeRegion","region","EURO_COUNTRY_SET","region_1","Language","en","ja","ms","th","vi","fil","SupportedLanguages","language","displayName","LanguageDisplayNameMap","l","Region","jp","my","vn","us","gb","sg","ph","IDCRegion","getRegionIDC","VA","SG","DataRouterContext","React","DataRouterStateContext","AwaitContext","NavigationContext","LocationContext","RouteContext","outlet","isDataRoute","RouteErrorContext","useHref","useInRouterContext","navigator","useResolvedPath","joinedPathname","useLocation","useNavigationType","navigationType","useMatch","navigateEffectWarning","useIsomorphicLayoutEffect","cb","static","useNavigate","useNavigateStable","useNavigateUnstable","dataRouterContext","routePathnamesJson","activeRef","OutletContext","useOutletContext","useOutlet","Provider","useParams","useRoutes","useRoutesImpl","dataRouterState","parentMatches","parentParams","parentPathname","parentPathnameBase","parentRoute","locationFromContext","_parsedLocationArg$pa","parsedLocationArg","renderedMatches","_renderMatches","NavigationType","DefaultErrorComponent","useRouteError","stack","lightgrey","preStyles","padding","backgroundColor","codeStyles","devInfo","style","fontStyle","defaultErrorElement","RenderErrorBoundary","props","getDerivedStateFromError","getDerivedStateFromProps","componentDidCatch","errorInfo","render","routeContext","component","RenderedRoute","staticContext","errorElement","ErrorBoundary","_dataRouterState2","_dataRouterState","errorIndex","reduceRight","getChildren","Component","element","DataRouterHook","DataRouterStateHook","getDataRouterConsoleError","hookName","useDataRouterContext","ctx","useDataRouterState","useRouteContext","useCurrentRouteId","thisRoute","useRouteId","UseRouteId","useNavigation","UseNavigation","useRevalidator","UseRevalidator","useMatches","UseMatches","useLoaderData","UseLoaderData","useRouteLoaderData","UseRouteLoaderData","useActionData","UseActionData","_state$errors","UseRouteError","useAsyncValue","useAsyncError","blockerId","useBlocker","shouldBlock","UseBlocker","setBlockerKey","UseNavigateStable","alreadyWarned","warningOnce","START_TRANSITION","startTransitionImpl","RouterProvider","fallbackElement","setStateImpl","v7_startTransition","setState","Router","DataRoutes","MemoryRouter","historyRef","Navigate","_ref4","jsonPath","Outlet","Route","_props","_ref5","basenameProp","locationProp","staticProp","navigationContext","locationContext","trailingPathname","Routes","_ref6","createRoutesFromChildren","Await","_ref7","AwaitErrorBoundary","ResolveAwait","AwaitRenderStatus","neverSettledPromise","pending","success","renderError","_ref8","toRender","apply","renderMatches","updates","createMemoryRouter","isCallable","tryToString","$TypeError","module","argument","$String","wellKnownSymbol","UNSCOPABLES","ArrayPrototype","S","unicode","isPrototypeOf","it","Prototype","isObject","bind","toObject","callWithSafeIterationClosing","isArrayIteratorMethod","isConstructor","lengthOfArrayLike","createProperty","getIterator","getIteratorMethod","$Array","arrayLike","O","IS_CONSTRUCTOR","argumentsLength","mapfn","mapping","iteratorMethod","step","iterator","next","toIndexedObject","toAbsoluteIndex","createMethod","IS_INCLUDES","$this","el","fromIndex","fails","METHOD_NAME","aCallable","IndexedObject","IS_RIGHT","that","callbackfn","self","start","fin","uncurryThis","arraySlice","floor","mergeSort","comparefn","middle","insertionSort","merge","j","left","right","llength","rlength","lindex","rindex","anObject","iteratorClose","ENTRIES","stringSlice","TO_STRING_TAG_SUPPORT","classofRaw","TO_STRING_TAG","$Object","CORRECT_ARGUMENTS","tryGet","tag","$Error","TEST","V8_OR_CHAKRA_STACK_ENTRY","IS_V8_OR_CHAKRA_STACK","dropEntries","hasOwn","ownKeys","getOwnPropertyDescriptorModule","definePropertyModule","target","source","exceptions","F","IteratorPrototype","createPropertyDescriptor","setToStringTag","Iterators","returnThis","IteratorConstructor","NAME","ENUMERABLE_NEXT","DESCRIPTORS","object","bitmap","toPropertyKey","propertyKey","makeBuiltIn","descriptor","defineGlobalProperty","simple","defineBuiltIn","src","global","$","IS_PURE","FunctionName","createIteratorConstructor","getPrototypeOf","setPrototypeOf","createNonEnumerableProperty","IteratorsCore","PROPER_FUNCTION_NAME","CONFIGURABLE_FUNCTION_NAME","BUGGY_SAFARI_ITERATORS","ITERATOR","KEYS","VALUES","Iterable","DEFAULT","IS_SET","FORCED","getIterationMethod","KIND","defaultIterator","IterablePrototype","INCORRECT_VALUES_NAME","nativeIterator","anyNativeIterator","CurrentIteratorPrototype","methods","KEY","P","EXISTS","MAX_SAFE_INTEGER","documentCreateElement","classList","DOMTokenListPrototype","userAgent","firefox","UA","classof","getBuiltIn","process","Deno","v8","version","webkit","normalizeStringArgument","nativeErrorToString","INCORRECT_TO_STRING","copyConstructorProperties","isForced","TARGET","GLOBAL","STATIC","targetProperty","sourceProperty","exec","regexpExec","SPECIES","RegExpPrototype","SHAM","SYMBOL","DELEGATES_TO_SYMBOL","DELEGATES_TO_EXEC","execCalled","re","uncurriedNativeRegExpMethod","nativeMethod","regexp","str","arg2","forceStringMethod","uncurriedNativeMethod","$exec","NATIVE_BIND","FunctionPrototype","getDescriptor","PROPER","CONFIGURABLE","aFunction","namespace","getMethod","usingIterator","V","func","SUBSTITUTION_SYMBOLS","SUBSTITUTION_SYMBOLS_NO_NAMED","matched","position","captures","namedCaptures","replacement","tailPos","symbols","ch","capture","check","dummy","Wrapper","NewTarget","NewTargetPrototype","store","functionToString","NATIVE_WEAK_MAP","shared","sharedKey","hiddenKeys","OBJECT_ALREADY_INITIALIZED","TypeError","WeakMap","enforce","getterFor","TYPE","wmget","wmhas","wmset","metadata","STATE","inspectSource","noop","empty","construct","constructorRegExp","isConstructorModern","isConstructorLegacy","called","feature","detection","normalize","POLYFILL","NATIVE","string","MATCH","isRegExp","USE_SYMBOL_AS_UID","$Symbol","Result","stopped","ResultPrototype","iterable","unboundFunction","AS_ENTRIES","IS_RECORD","IS_ITERATOR","INTERRUPTED","iterFn","stop","condition","callFn","kind","innerResult","innerError","PrototypeOfArrayIteratorPrototype","arrayIterator","NEW_ITERATOR_PROTOTYPE","toLength","InternalStateModule","enforceInternalState","getInternalState","CONFIGURABLE_LENGTH","TEMPLATE","ceil","x","V8_VERSION","symbol","$default","objectKeys","getOwnPropertySymbolsModule","propertyIsEnumerableModule","$assign","A","B","alphabet","chr","T","getOwnPropertySymbols","propertyIsEnumerable","definePropertiesModule","enumBugKeys","html","GT","LT","PROTOTYPE","SCRIPT","IE_PROTO","EmptyConstructor","scriptTag","content","NullProtoObjectViaActiveX","activeXDocument","temp","NullProtoObjectViaIFrame","iframe","JS","iframeDocument","NullProtoObject","Properties","V8_PROTOTYPE_DEFINE_BUG","IE8_DOM_DEFINE","$defineProperty","$getOwnPropertyDescriptor","ENUMERABLE","WRITABLE","Attributes","internalObjectKeys","CORRECT_PROTOTYPE_GETTER","ObjectPrototype","names","$propertyIsEnumerable","NASHORN_BUG","aPossiblePrototype","CORRECT_SETTER","setter","proto","input","pref","val","getOwnPropertyNamesModule","Target","Source","R","regexpFlags","stickyHelpers","UNSUPPORTED_DOT_ALL","UNSUPPORTED_NCG","nativeReplace","nativeExec","patchedExec","UPDATES_LAST_INDEX_WRONG","re1","re2","UNSUPPORTED_Y","NPCG_INCLUDED","PATCH","raw","reCopy","lastIndex","group","groups","sticky","flags","charsAdded","strCopy","regExpFlags","$RegExp","MISSED_STICKY","BROKEN_CARET","CONSTRUCTOR_NAME","Constructor","TAG","uid","SHARED","toIntegerOrInfinity","requireObjectCoercible","charCodeAt","CONVERT_TO_STRING","pos","second","maxInt","tMin","tMax","skew","damp","initialBias","initialN","delimiter","regexNonASCII","regexSeparators","OVERFLOW_ERROR","baseMinusTMin","$RangeError","fromCharCode","ucs2decode","output","counter","extra","digitToBasic","digit","adapt","numPoints","firstTime","encode","inputLength","bias","currentValue","basicLength","handledCPCount","handledCPCountPlusOne","q","t","qMinusT","baseMinusT","encoded","labels","label","integer","trunc","number","isSymbol","ordinaryToPrimitive","TO_PRIMITIVE","exoticToPrim","toPrimitive","IS_NODE","postfix","NATIVE_SYMBOL","passed","WellKnownSymbolsStore","symbolFor","createWellKnownSymbol","description","proxyAccessor","inheritIfRequired","installErrorCause","clearErrorStack","ERROR_STACK_INSTALLABLE","FULL_NAME","wrapper","IS_AGGREGATE_ERROR","STACK_TRACE_LIMIT","OPTIONS_POSITION","ERROR_NAME","OriginalError","OriginalErrorPrototype","BaseError","WrappedError","addToUnscopables","defineIterator","ARRAY_ITERATOR","setInternalState","iterated","doesNotExceedSafeInteger","INCORRECT_TO_LENGTH","SILENT_ON_NON_WRITABLE_LENGTH","item","len","argCount","$reduceRight","arrayMethodIsStrict","CHROME_VERSION","STRICT_METHOD","CHROME_BUG","$reduce","un$Reverse","deletePropertyOrThrow","internalSort","FF","IE_OR_EDGE","V8","WEBKIT","un$Sort","FAILS_ON_UNDEFINED","FAILS_ON_NULL","STABLE_SORT","code","getSortCompare","items","arrayLength","itemsLength","wrapErrorConstructorWithCause","WEB_ASSEMBLY","WebAssembly","exportGlobalErrorCauseWrapper","exportWebAssemblyErrorCauseWrapper","$stringify","numberToString","tester","low","hi","WRONG_SYMBOLS_CONVERSION","ILL_FORMED_UNICODE","stringifyWithSymbolsFix","replacer","$replacer","fixIllFormed","offset","prev","space","iterate","getOwnPropertyNames","getRegExpFlags","setSpecies","NativeRegExp","SyntaxError","stringIndexOf","IS_NCG","CORRECT_NEW","BASE_FORCED","handleDotAll","brackets","handleNCG","named","ncg","groupid","groupname","RegExpWrapper","thisIsRegExp","patternIsRegExp","flagsAreUndefined","rawPattern","rawFlags","dotAll","handled","defineBuiltInAccessor","STRING_ITERATOR","point","fixRegExpWellKnownSymbolLogic","advanceStringIndex","getSubstitution","regExpExec","REPLACE","maybeToString","REPLACE_KEEPS_$0","REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE","REPLACE_SUPPORTS_NAMED_GROUPS","maybeCallNative","UNSAFE_SUBSTITUTE","searchValue","replaceValue","rx","res","functionalReplace","fullUnicode","matchStr","accumulatedResult","nextSourcePosition","replacerArgs","NativeSymbol","SymbolPrototype","EmptyStringDescriptionStore","SymbolWrapper","symbolToString","symbolValueOf","DOMIterables","ArrayIteratorMethods","ArrayValues","handlePrototype","CollectionPrototype","COLLECTION_NAME","tryNodeRequire","anInstance","errorToString","DOMExceptionConstants","DOM_EXCEPTION","DATA_CLONE_ERR","NativeDOMException","MessageChannel","NativeDOMExceptionPrototype","ErrorPrototype","HAS_STACK","codeFor","$DOMException","DOMExceptionPrototype","createGetterDescriptor","INCORRECT_CONSTRUCTOR","INCORRECT_CODE","MISSED_CONSTANTS","FORCED_CONSTRUCTOR","PolyfilledDOMException","PolyfilledDOMExceptionPrototype","constant","constantName","ERROR_HAS_STACK","DOM_EXCEPTION_HAS_STACK","BUGGY_DESCRIPTOR","USE_NATIVE_URL","defineBuiltIns","$toString","validateArgumentsLength","arraySort","URL_SEARCH_PARAMS","URL_SEARCH_PARAMS_ITERATOR","getInternalParamsState","getInternalIteratorState","safeGetBuiltIn","nativeFetch","NativeRequest","RequestPrototype","HeadersPrototype","plus","sequences","percentSequence","bytes","percentDecode","sequence","deserialize","replacements","serialize","URLSearchParamsIterator","URLSearchParamsState","entryIterator","entryNext","attributes","attribute","URLSearchParamsConstructor","URLSearchParamsPrototype","found","callback","boundFunction","headersHas","headersSet","wrapRequestOptions","RequestConstructor","arrayFrom","codeAt","toASCII","URLSearchParamsModule","getInternalURLState","getInternalSearchParamsState","NativeURL","parseInt","pow","unshift","INVALID_AUTHORITY","INVALID_SCHEME","INVALID_HOST","INVALID_PORT","ALPHA","ALPHANUMERIC","DIGIT","HEX_START","OCT","DEC","HEX","FORBIDDEN_HOST_CODE_POINT","FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT","LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE","TAB_AND_NEW_LINE","EOF","parseIPv4","parts","partsLength","numbers","part","radix","ipv4","parseIPv6","address","pieceIndex","compress","pointer","numbersSeen","ipv4Piece","swaps","swap","findLongestZeroSequence","ipv6","maxIndex","maxLength","currStart","currLength","serializeHost","ignore0","C0ControlPercentEncodeSet","fragmentPercentEncodeSet","pathPercentEncodeSet","userinfoPercentEncodeSet","percentEncode","specialSchemes","isWindowsDriveLetter","normalized","startsWithWindowsDriveLetter","third","isSingleDot","isDoubleDot","SCHEME_START","SCHEME","NO_SCHEME","SPECIAL_RELATIVE_OR_AUTHORITY","PATH_OR_AUTHORITY","RELATIVE","RELATIVE_SLASH","SPECIAL_AUTHORITY_SLASHES","SPECIAL_AUTHORITY_IGNORE_SLASHES","AUTHORITY","HOST","HOSTNAME","PORT","FILE","FILE_SLASH","FILE_HOST","PATH_START","PATH","CANNOT_BE_A_BASE_URL_PATH","QUERY","FRAGMENT","URLState","isBase","urlString","baseState","failure","stateOverride","buffer","seenAt","seenBracket","seenPasswordToken","codePoints","bufferCodePoints","codePoint","encodedCodePoints","port","pathSize","scheme","username","password","fragment","URLConstructor","hostname","URLPrototype","accessorDescriptor","getter","nativeCreateObjectURL","nativeRevokeObjectURL","Colors","MotionDuration","MotionCurve","isIphoneX","className","ButtonStatus","ButtonSize","Button","prefixClassname","variant","title","icon","color","borderRadius","titleColor","mode","onClick","event","loadingTitle","maxWidth","minWidth","elementRef","fakeElementRef15","fakeElementRef13","smallFont","setSmallFont","isPressed","setPressed","titleVisible","setTitleVisible","buttonVisible","setButtonVisible","eleMaxWidth","commonStyle","width","handleClick","handleTouchStart","handleTouchEnd","vanilla","react","ReactExports","StoreContext","useStore","storeRef","isPromiseLike","use","useAtomValue","_useReducer","nextValue","_useReducer$","valueFromReducer","storeFromReducer","atomFromReducer","rerender","delay","unsub","useSetAtom","setAtom","_len","_key","useAtom","keyCount","read","write","config","_unsupportedIterableToArray","minLen","_arrayLikeToArray","arr","arr2","_createForOfIteratorHelperLoose","allowArrayLike","hasInitialValue","isActuallyWritableAtom","cancelPromiseMap","registerCancelPromise","cancelPromise","resolvePromise","rejectPromise","isEqualAtomValue","isEqualAtomError","hasPromiseAtomValue","isEqualPromiseAtomValue","returnAtomValue","atomState","createStore","atomStateMap","mountedMap","pendingMap","storeListenersRev2","mountedAtoms","getAtomState","setAtomState","prevAtomState","_next","updateDependencies","nextAtomState","nextDependencies","dependencies","changed","aState","setAtomValue","setAtomValueOrPromise","valueOrPromise","continuePromise","updatePromiseDependencies","mountDependencies","settled","setAtomError","readAtomState","force","isSync","_aState","setSelf","writeAtom","_controller","readAtom","addAtom","mounted","mountAtom","canUnmountAtom","delAtom","unmountAtom","recomputeDependents","dependencyMap","dirtyMap","getDependents","_mountedMap$get","dependents","pendingAtom","_getAtomState","loop1","dependent","loop2","dirtyCount","_dependencyMap$get","isChanged","writeAtomState","_len3","_key3","flushed","flushPending","_len2","_key2","_len4","_key4","initialDependent","onMountQueue","_getAtomState2","queue","aMounted","onMount","onUnmount","_len5","_key5","_mountedMap$get2","prevDependencies","depSet","subscribeAtom","listeners","defaultStore","getDefaultStore","_classCallCheck","instance","_defineProperties","_createClass","protoProps","staticProps","matchHtmlEntity","htmlEntities","unescapeHtmlEntity","enumerableOnly","sym","defaultOptions","i18nInstance","I18nContext","setDefaults","getDefaults","ReportNamespaces","namespaces","_this","ns","setI18n","getI18n","initReactI18next","composeInitialProps","ForComponent","i18nInitialProps","getInitialProps","componentsInitialProps","i18n","ret","initialI18nStore","usePrevious","ignore","ref","useTranslation","i18nFromProps","i18nFromContext","defaultNSFromContext","notReadyT","retNotReady","i18nOptions","useSuspense","keyPrefix","ready","getT","_useState","_useState2","setT","joinedNS","previousJoinedNS","isMounted","bindI18n","bindI18nStore","boundReset","isInitial","_console","warnOnce","loadNamespaces","oldI18nextHasLoadedNamespace","lng","fallbackLng","lastLng","loadNotPending","loadState","hasLoadedNamespace","isNewerI18next","getDisplayName","Avatar","imageLoad","setImageLoad","imageRef","prefixClassName","pendantSrc","margin","rightBottomElement","pendantPos","iconSize","imageOnload","ImageRegion","default","ACTIVITY_PID","schema","backList","p1","p2","p3","p4","sugList","s1","s2","s3","s4","geckoUrlWithoutPageChangeQuery","sslocal","logoList","LogoLongEn","LogoLongJp","LogoLongTh","hasLeave","hasLog","ThingsPage","_a","_b","_c","_d","$UserAgent","trafficPid","trafficType","$RootTraffic","date","useState","Date","Number","create_time","$Locale","logoLong","commonParams","campaign_id","campaignId","share_platform","goto","openUrl","share_position","share_type","traffic_type","enter_page_id","enter_page_type","Tea","useEffect","jsxs","jsx","Logo","Search","toLocaleDateString","ideas","pendant_id","user_info","avatar_url","user_nick_name","_e","cover_img","idea","idea_id","OG","image","Fragment","property","EventJsonLd","JSONLD","startDate","endDate","eventStatus","eventAttendanceMode","performer","organizer","logo","dangerouslySetInnerHTML","__html","FAVICON","ThingsHelmet","schemaHelmet","useMemo","charSet","sizes","links","Page","contextFor","classNames","classes","appendClass","parseValue","newClass","_defineProperty","_objectSpread2","_arrayWithHoles","_iterableToArrayLimit","_i","_arr","_n","_s","err","_nonIterableRest","_slicedToArray"],"mappings":"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","file":"routes/activity.100-things-72e1886af6d80f9f777d.js","sourcesContent":["////////////////////////////////////////////////////////////////////////////////\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/**\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: any;\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`. May be either a URL or the pieces of a\n * 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 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 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 { warning, invariant, parsePath } 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: any;\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 status: number;\n location: string;\n revalidate: boolean;\n}\n\n/**\n * Unsuccessful result from a loader or action\n */\nexport interface ErrorResult {\n type: ResultType.error;\n error: any;\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?: any;\n}\n\n/**\n * Arguments passed to loader functions\n */\nexport interface LoaderFunctionArgs extends DataFunctionArgs {}\n\n/**\n * Arguments passed to action functions\n */\nexport interface ActionFunctionArgs 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\n/**\n * Route loader function signature\n */\nexport interface LoaderFunction {\n (args: LoaderFunctionArgs): Promise | DataFunctionValue;\n}\n\n/**\n * Route action function signature\n */\nexport interface ActionFunction {\n (args: ActionFunctionArgs): Promise | DataFunctionValue;\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: {\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 actionResult?: DataResult;\n defaultShouldRevalidate: boolean;\n }): 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\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\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;\n action?: ActionFunction;\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 */\ntype 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 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: number[] = [],\n manifest: RouteManifest = {}\n): AgnosticDataRouteObject[] {\n return routes.map((route, index) => {\n let treePath = [...parentPath, 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/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 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 matches = matchRouteBranch(\n branches[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 safelyDecodeURI(pathname)\n );\n }\n\n return matches;\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\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 explodes _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): 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 if (!match) return null;\n\n Object.assign(matchedParams, match.params);\n\n let route = meta.route;\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/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/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, paramNames] = 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 = paramNames.reduce>(\n (memo, paramName, 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 memo[paramName] = safelyDecodeURIComponent(\n captureGroups[index] || \"\",\n paramName\n );\n return memo;\n },\n {}\n );\n\n return {\n params,\n pathname: matchedPathname,\n pathnameBase,\n pattern,\n };\n}\n\nfunction compilePath(\n path: string,\n caseSensitive = false,\n end = true\n): [RegExp, string[]] {\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 paramNames: string[] = [];\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(/\\/:(\\w+)/g, (_: string, paramName: string) => {\n paramNames.push(paramName);\n return \"/([^\\\\/]+)\";\n });\n\n if (path.endsWith(\"*\")) {\n paramNames.push(\"*\");\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, paramNames];\n}\n\nfunction safelyDecodeURI(value: string) {\n try {\n return decodeURI(value);\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\nfunction safelyDecodeURIComponent(value: string, paramName: string) {\n try {\n return decodeURIComponent(value);\n } catch (error) {\n warning(\n false,\n `The value for the URL param \"${paramName}\" will not be decoded because` +\n ` the string \"${value}\" is a malformed URL segment. This is probably` +\n ` due to a bad percent 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/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/**\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 (isPathRelative || toPathname == null) {\n from = locationPathname;\n } else {\n let routePathnameIndex = routePathnames.length - 1;\n\n if (toPathname.startsWith(\"..\")) {\n let toSegments = toPathname.split(\"/\");\n\n // Each leading .. segment means \"go up one route\" instead of \"go up one\n // URL segment\". This is a key difference from how works and a\n // major reason we call this a \"to\" value instead of a \"href\".\n while (toSegments[0] === \"..\") {\n toSegments.shift();\n routePathnameIndex -= 1;\n }\n\n to.pathname = toSegments.join(\"/\");\n }\n\n // If there are more \"..\" segments than parent routes, resolve relative to\n // the root / URL.\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 */\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 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, null, 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 (error) {\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\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 * @private\n * Utility class we use to hold auto-unwrapped 4xx/5xx Response bodies\n */\nexport class ErrorResponse {\n status: number;\n statusText: string;\n data: any;\n error?: Error;\n 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 DataResult,\n DeferredData,\n AgnosticDataRouteMatch,\n AgnosticDataRouteObject,\n DeferredResult,\n ErrorResult,\n FormEncType,\n FormMethod,\n DetectErrorBoundaryFunction,\n RedirectResult,\n RouteData,\n AgnosticRouteObject,\n Submission,\n SuccessResult,\n AgnosticRouteMatch,\n ShouldRevalidateFunction,\n RouteManifest,\n ImmutableRouteKey,\n ActionFunction,\n LoaderFunction,\n V7_MutationFormMethod,\n V7_FormMethod,\n HTMLFormMethod,\n MutationFormMethod,\n MapRoutePropertiesFunction,\n} from \"./utils\";\nimport {\n ErrorResponse,\n ResultType,\n convertRoutesToDataRoutes,\n getPathContributingMatches,\n immutableRouteKeys,\n isRouteErrorResponse,\n joinPaths,\n matchRoutes,\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 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 * 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 * 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_normalizeFormMethod: boolean;\n v7_prependBasename: 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}\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?: { requestContext?: unknown }\n ): Promise;\n queryRoute(\n request: Request,\n opts?: { routeId?: string; requestContext?: unknown }\n ): Promise;\n}\n\n/**\n * Subscriber function signature for changes to router state\n */\nexport interface RouterSubscriber {\n (state: RouterState): void;\n}\n\ninterface UseMatchesMatch {\n id: string;\n pathname: string;\n params: AgnosticRouteMatch[\"params\"];\n data: unknown;\n handle: unknown;\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: UseMatchesMatch[]): 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};\n\n// Only allowed for navigations\ntype BaseNavigateOptions = BaseNavigateOrFetchOptions & {\n replace?: boolean;\n state?: any;\n fromRouteId?: string;\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 \" _hasFetcherDoneAnything \"?: boolean;\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 \" _hasFetcherDoneAnything \"?: boolean;\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 \" _hasFetcherDoneAnything \"?: boolean;\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\ninterface HandleActionResult extends ShortCircuitable {\n /**\n * Error thrown from the current action, keyed by the route containing the\n * error boundary to render the error. To be committed to the state after\n * loaders have completed\n */\n pendingActionError?: RouteData;\n /**\n * Data returned from the current action, keyed by the route owning the action.\n * To be committed to the state after loaders have completed\n */\n pendingActionData?: RouteData;\n}\n\ninterface HandleLoadersResult extends ShortCircuitable {\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\n/**\n * Wrapper object to allow us to throw any response out from callLoaderOrAction\n * for queryRouter while preserving whether or not it was thrown or returned\n * from the loader/action\n */\ninterface QueryRouteResponse {\n type: ResultType.data | ResultType.error;\n response: Response;\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\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 // Config driven behavior flags\n let future: FutureConfig = {\n v7_normalizeFormMethod: false,\n v7_prependBasename: 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) {\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 let initialized =\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 !initialMatches.some((m) => m.route.lazy) &&\n // And we have to either have no loaders or have been provided hydrationData\n (!initialMatches.some((m) => m.route.loader) || init.hydrationData != null);\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 // 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: string[] = [];\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 // 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 // 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 ignoreNextHistoryUpdate = false;\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 (ignoreNextHistoryUpdate) {\n ignoreNextHistoryUpdate = false;\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 ignoreNextHistoryUpdate = true;\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\n 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 // 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 }\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 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(newState: Partial): void {\n state = {\n ...state,\n ...newState,\n };\n subscribers.forEach((subscriber) => subscriber(state));\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 ): 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 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 updateState({\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 // Reset stateful navigation vars\n pendingAction = HistoryAction.Pop;\n pendingPreventScrollReset = false;\n isUninterruptedRevalidation = false;\n isRevalidationRequired = false;\n cancelledDeferredRoutes = [];\n cancelledFetcherLoads = [];\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 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 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 });\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 { overrideNavigation: state.navigation }\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 submission?: Submission;\n fetcherSubmission?: Submission;\n overrideNavigation?: Navigation;\n pendingError?: ErrorResponse;\n startUninterruptedRevalidation?: boolean;\n preventScrollReset?: boolean;\n replace?: 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 let routesToUse = inFlightDataRoutes || dataRoutes;\n let loadingNavigation = opts && opts.overrideNavigation;\n let matches = matchRoutes(routesToUse, location, basename);\n\n // Short circuit with a 404 on the root error boundary if we match nothing\n if (!matches) {\n let error = getInternalRouterError(404, { pathname: location.pathname });\n let { matches: notFoundMatches, route } =\n getShortCircuitMatches(routesToUse);\n // Cancel all pending deferred on 404s since we don't keep any routes\n cancelActiveDeferreds();\n completeNavigation(location, {\n matches: notFoundMatches,\n loaderData: {},\n errors: {\n [route.id]: error,\n },\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 load 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 });\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 pendingActionData: RouteData | undefined;\n let pendingError: RouteData | 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 pendingError = {\n [findNearestBoundary(matches).route.id]: 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 actionOutput = await handleAction(\n request,\n location,\n opts.submission,\n matches,\n { replace: opts.replace }\n );\n\n if (actionOutput.shortCircuited) {\n return;\n }\n\n pendingActionData = actionOutput.pendingActionData;\n pendingError = actionOutput.pendingActionError;\n loadingNavigation = getLoadingNavigation(location, opts.submission);\n\n // Create a GET request for the loaders\n request = new Request(request.url, { signal: request.signal });\n }\n\n // Call loaders\n let { shortCircuited, loaderData, errors } = await handleLoaders(\n request,\n location,\n matches,\n loadingNavigation,\n opts && opts.submission,\n opts && opts.fetcherSubmission,\n opts && opts.replace,\n pendingActionData,\n pendingError\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,\n ...(pendingActionData ? { actionData: pendingActionData } : {}),\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 opts: { replace?: boolean } = {}\n ): Promise {\n interruptActiveLoads();\n\n // Put us in a submitting state\n let navigation = getSubmittingNavigation(location, submission);\n updateState({ navigation });\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 result = await callLoaderOrAction(\n \"action\",\n request,\n actionMatch,\n matches,\n manifest,\n mapRouteProperties,\n basename\n );\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 replace =\n result.location === state.location.pathname + state.location.search;\n }\n await startRedirectNavigation(state, result, { submission, replace });\n return { shortCircuited: true };\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 are REPLACE navigations, but if the\n // action threw an error that'll be rendered in an errorElement, we fall\n // back to PUSH so that the user can use the back button to get back to\n // the pre-submission form location to try again\n if ((opts && opts.replace) !== true) {\n pendingAction = HistoryAction.Push;\n }\n\n return {\n // Send back an empty object we can use to clear out any prior actionData\n pendingActionData: {},\n pendingActionError: { [boundaryMatch.route.id]: result.error },\n };\n }\n\n if (isDeferredResult(result)) {\n throw getInternalRouterError(400, { type: \"defer-action\" });\n }\n\n return {\n pendingActionData: { [actionMatch.route.id]: result.data },\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 overrideNavigation?: Navigation,\n submission?: Submission,\n fetcherSubmission?: Submission,\n replace?: boolean,\n pendingActionData?: RouteData,\n pendingError?: RouteData\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 let routesToUse = inFlightDataRoutes || dataRoutes;\n let [matchesToLoad, revalidatingFetchers] = getMatchesToLoad(\n init.history,\n state,\n matches,\n activeSubmission,\n location,\n isRevalidationRequired,\n cancelledDeferredRoutes,\n cancelledFetcherLoads,\n fetchLoadMatches,\n fetchRedirectIds,\n routesToUse,\n basename,\n pendingActionData,\n pendingError\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 // Short circuit if we have no loaders to run\n if (matchesToLoad.length === 0 && revalidatingFetchers.length === 0) {\n let updatedFetchers = markFetchRedirectsDone();\n completeNavigation(location, {\n matches,\n loaderData: {},\n // Commit pending error if we're short circuiting\n errors: pendingError || null,\n ...(pendingActionData ? { actionData: pendingActionData } : {}),\n ...(updatedFetchers ? { fetchers: new Map(state.fetchers) } : {}),\n });\n return { shortCircuited: true };\n }\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 (!isUninterruptedRevalidation) {\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 let actionData = pendingActionData || state.actionData;\n updateState({\n navigation: loadingNavigation,\n ...(actionData\n ? Object.keys(actionData).length === 0\n ? { actionData: null }\n : { actionData }\n : {}),\n ...(revalidatingFetchers.length > 0\n ? { fetchers: new Map(state.fetchers) }\n : {}),\n });\n }\n\n pendingNavigationLoadId = ++incrementingLoadId;\n revalidatingFetchers.forEach((rf) => {\n if (fetchControllers.has(rf.key)) {\n abortFetcher(rf.key);\n }\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 { results, loaderResults, fetcherResults } =\n await callLoadersAndMaybeResolveData(\n state.matches,\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 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(results);\n if (redirect) {\n await startRedirectNavigation(state, redirect, { replace });\n return { shortCircuited: true };\n }\n\n // Process and commit output from loaders\n let { loaderData, errors } = processLoaderData(\n state,\n matches,\n matchesToLoad,\n loaderResults,\n pendingError,\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 let updatedFetchers = markFetchRedirectsDone();\n let didAbortFetchLoads = abortStaleFetchLoads(pendingNavigationLoadId);\n let shouldUpdateFetchers =\n updatedFetchers || didAbortFetchLoads || revalidatingFetchers.length > 0;\n\n return {\n loaderData,\n errors,\n ...(shouldUpdateFetchers ? { fetchers: new Map(state.fetchers) } : {}),\n };\n }\n\n function getFetcher(key: string): Fetcher {\n return state.fetchers.get(key) || IDLE_FETCHER;\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 if (fetchControllers.has(key)) abortFetcher(key);\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 routeId,\n opts?.relative\n );\n let matches = matchRoutes(routesToUse, normalizedPath, basename);\n\n if (!matches) {\n setFetcherError(\n key,\n routeId,\n getInternalRouterError(404, { pathname: normalizedPath })\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);\n return;\n }\n\n let match = getTargetMatch(matches, path);\n\n pendingPreventScrollReset = (opts && opts.preventScrollReset) === true;\n\n if (submission && isMutationMethod(submission.formMethod)) {\n handleFetcherAction(key, routeId, path, match, matches, submission);\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(key, routeId, path, match, matches, submission);\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 submission: Submission\n ) {\n interruptActiveLoads();\n fetchLoadMatches.delete(key);\n\n if (!match.route.action && !match.route.lazy) {\n let error = getInternalRouterError(405, {\n method: submission.formMethod,\n pathname: path,\n routeId: routeId,\n });\n setFetcherError(key, routeId, error);\n return;\n }\n\n // Put this fetcher into it's submitting state\n let existingFetcher = state.fetchers.get(key);\n let fetcher = getSubmittingFetcher(submission, existingFetcher);\n state.fetchers.set(key, fetcher);\n updateState({ fetchers: new Map(state.fetchers) });\n\n // Call the action for the fetcher\n let abortController = new AbortController();\n let fetchRequest = createClientSideRequest(\n init.history,\n path,\n abortController.signal,\n submission\n );\n fetchControllers.set(key, abortController);\n\n let actionResult = await callLoaderOrAction(\n \"action\",\n fetchRequest,\n match,\n requestMatches,\n manifest,\n mapRouteProperties,\n basename\n );\n\n if (fetchRequest.signal.aborted) {\n // We can delete this so long as we weren't aborted by ou 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 if (isRedirectResult(actionResult)) {\n fetchControllers.delete(key);\n fetchRedirectIds.add(key);\n let loadingFetcher = getLoadingFetcher(submission);\n state.fetchers.set(key, loadingFetcher);\n updateState({ fetchers: new Map(state.fetchers) });\n\n return startRedirectNavigation(state, actionResult, {\n submission,\n isFetchActionRedirect: true,\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 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 isRevalidationRequired,\n cancelledDeferredRoutes,\n cancelledFetcherLoads,\n fetchLoadMatches,\n fetchRedirectIds,\n routesToUse,\n basename,\n { [match.route.id]: actionResult.data },\n undefined // No need to send through errors since we short circuit above\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 if (fetchControllers.has(staleKey)) {\n abortFetcher(staleKey);\n }\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 { results, loaderResults, fetcherResults } =\n await callLoadersAndMaybeResolveData(\n state.matches,\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(results);\n if (redirect) {\n return startRedirectNavigation(state, redirect);\n }\n\n // Process and commit output from loaders\n let { loaderData, errors } = processLoaderData(\n state,\n state.matches,\n matchesToLoad,\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 let didAbortFetchLoads = 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 ...(didAbortFetchLoads || revalidatingFetchers.length > 0\n ? { fetchers: new Map(state.fetchers) }\n : {}),\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 submission?: Submission\n ) {\n let existingFetcher = state.fetchers.get(key);\n // Put this fetcher into it's loading state\n let loadingFetcher = getLoadingFetcher(\n submission,\n existingFetcher ? existingFetcher.data : undefined\n );\n state.fetchers.set(key, loadingFetcher);\n updateState({ fetchers: new Map(state.fetchers) });\n\n // Call the loader for this fetcher route match\n let abortController = new AbortController();\n let fetchRequest = createClientSideRequest(\n init.history,\n path,\n abortController.signal\n );\n fetchControllers.set(key, abortController);\n\n let result: DataResult = await callLoaderOrAction(\n \"loader\",\n fetchRequest,\n match,\n matches,\n manifest,\n mapRouteProperties,\n basename\n );\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 // If the loader threw a redirect Response, start a new REPLACE navigation\n if (isRedirectResult(result)) {\n fetchRedirectIds.add(key);\n await startRedirectNavigation(state, result);\n return;\n }\n\n // Process any non-redirect errors thrown\n if (isErrorResult(result)) {\n let boundaryMatch = findNearestBoundary(state.matches, routeId);\n state.fetchers.delete(key);\n // TODO: In remix, this would reset to IDLE_NAVIGATION if it was a catch -\n // do we need to behave any differently with our non-redirect errors?\n // What if it was a non-redirect Response?\n updateState({\n fetchers: new Map(state.fetchers),\n errors: {\n [boundaryMatch.route.id]: result.error,\n },\n });\n return;\n }\n\n invariant(!isDeferredResult(result), \"Unhandled fetcher deferred data\");\n\n // Put the fetcher back into an idle state\n let doneFetcher = getDoneFetcher(result.data);\n state.fetchers.set(key, doneFetcher);\n updateState({ fetchers: new Map(state.fetchers) });\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 state: RouterState,\n redirect: RedirectResult,\n {\n submission,\n replace,\n isFetchActionRedirect,\n }: {\n submission?: Submission;\n replace?: boolean;\n isFetchActionRedirect?: boolean;\n } = {}\n ) {\n if (redirect.revalidate) {\n isRevalidationRequired = true;\n }\n\n let redirectLocation = createLocation(\n state.location,\n redirect.location,\n // TODO: This can be removed once we get rid of useTransition in Remix v2\n {\n _isRedirect: true,\n ...(isFetchActionRedirect ? { _isFetchActionRedirect: true } : {}),\n }\n );\n invariant(\n redirectLocation,\n \"Expected a location on the redirect navigation\"\n );\n // Check if this an absolute external redirect that goes to a new origin\n if (ABSOLUTE_URL_REGEX.test(redirect.location) && isBrowser) {\n let url = init.history.createURL(redirect.location);\n let isDifferentBasename = stripBasename(url.pathname, basename) == null;\n\n if (routerWindow.location.origin !== url.origin || isDifferentBasename) {\n if (replace) {\n routerWindow.location.replace(redirect.location);\n } else {\n routerWindow.location.assign(redirect.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 ? HistoryAction.Replace : HistoryAction.Push;\n\n // Use the incoming submission if provided, fallback on the active one in\n // state.navigation\n let activeSubmission =\n submission || getSubmissionFromNavigation(state.navigation);\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 if (\n redirectPreserveMethodStatusCodes.has(redirect.status) &&\n activeSubmission &&\n isMutationMethod(activeSubmission.formMethod)\n ) {\n await startNavigation(redirectHistoryAction, redirectLocation, {\n submission: {\n ...activeSubmission,\n formAction: redirect.location,\n },\n // Preserve this flag across redirects\n preventScrollReset: pendingPreventScrollReset,\n });\n } else if (isFetchActionRedirect) {\n // For a fetch action redirect, we kick off a new loading navigation\n // without the fetcher submission, but we send it along for shouldRevalidate\n await startNavigation(redirectHistoryAction, redirectLocation, {\n overrideNavigation: getLoadingNavigation(redirectLocation),\n fetcherSubmission: activeSubmission,\n // Preserve this flag across redirects\n preventScrollReset: pendingPreventScrollReset,\n });\n } else {\n // If we have a submission, we will preserve it through the redirect navigation\n let overrideNavigation = getLoadingNavigation(\n redirectLocation,\n activeSubmission\n );\n await startNavigation(redirectHistoryAction, redirectLocation, {\n overrideNavigation,\n // Preserve this flag across redirects\n preventScrollReset: pendingPreventScrollReset,\n });\n }\n }\n\n async function callLoadersAndMaybeResolveData(\n currentMatches: AgnosticDataRouteMatch[],\n matches: AgnosticDataRouteMatch[],\n matchesToLoad: AgnosticDataRouteMatch[],\n fetchersToLoad: RevalidatingFetcher[],\n request: Request\n ) {\n // Call all navigation loaders and revalidating fetcher loaders in parallel,\n // then slice off the results into separate arrays so we can handle them\n // accordingly\n let results = await Promise.all([\n ...matchesToLoad.map((match) =>\n callLoaderOrAction(\n \"loader\",\n request,\n match,\n matches,\n manifest,\n mapRouteProperties,\n basename\n )\n ),\n ...fetchersToLoad.map((f) => {\n if (f.matches && f.match && f.controller) {\n return callLoaderOrAction(\n \"loader\",\n createClientSideRequest(init.history, f.path, f.controller.signal),\n f.match,\n f.matches,\n manifest,\n mapRouteProperties,\n basename\n );\n } else {\n let error: ErrorResult = {\n type: ResultType.error,\n error: getInternalRouterError(404, { pathname: f.path }),\n };\n return error;\n }\n }),\n ]);\n let loaderResults = results.slice(0, matchesToLoad.length);\n let fetcherResults = results.slice(matchesToLoad.length);\n\n await Promise.all([\n resolveDeferredResults(\n currentMatches,\n matchesToLoad,\n loaderResults,\n loaderResults.map(() => request.signal),\n false,\n state.loaderData\n ),\n resolveDeferredResults(\n currentMatches,\n fetchersToLoad.map((f) => f.match),\n fetcherResults,\n fetchersToLoad.map((f) => (f.controller ? f.controller.signal : null)),\n true\n ),\n ]);\n\n return { results, loaderResults, fetcherResults };\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.push(key);\n abortFetcher(key);\n }\n });\n }\n\n function setFetcherError(key: string, routeId: string, error: any) {\n let boundaryMatch = findNearestBoundary(state.matches, routeId);\n deleteFetcher(key);\n updateState({\n errors: {\n [boundaryMatch.route.id]: error,\n },\n fetchers: new Map(state.fetchers),\n });\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 state.fetchers.delete(key);\n }\n\n function abortFetcher(key: string) {\n let controller = fetchControllers.get(key);\n invariant(controller, `Expected fetch controller: ${key}`);\n controller.abort();\n fetchControllers.delete(key);\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 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) => createUseMatchesMatch(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 _internalSetRoutes(newRoutes: AgnosticDataRouteObject[]) {\n manifest = {};\n inFlightDataRoutes = convertRoutesToDataRoutes(\n newRoutes,\n mapRouteProperties,\n undefined,\n manifest\n );\n }\n\n router = {\n get basename() {\n return basename;\n },\n get state() {\n return state;\n },\n get routes() {\n return dataRoutes;\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,\n dispose,\n getBlocker,\n deleteBlocker,\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\nexport interface CreateStaticHandlerOptions {\n basename?: string;\n /**\n * @deprecated Use `mapRouteProperties` instead\n */\n detectErrorBoundary?: DetectErrorBoundaryFunction;\n mapRouteProperties?: MapRoutePropertiesFunction;\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\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 async function query(\n request: Request,\n { requestContext }: { requestContext?: unknown } = {}\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(request, location, matches, requestContext);\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 async function queryRoute(\n request: Request,\n {\n routeId,\n requestContext,\n }: { requestContext?: unknown; routeId?: string } = {}\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 match\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 routeMatch?: AgnosticDataRouteMatch\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 routeMatch != null\n );\n return result;\n }\n\n let result = await loadRouteData(\n request,\n matches,\n requestContext,\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, we throw\n // it to bail out and then return or throw here based on whether the user\n // returned or threw\n if (isQueryRouteResponse(e)) {\n if (e.type === ResultType.error && !isRedirectResponse(e.response)) {\n throw e.response;\n }\n return e.response;\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 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 result = await callLoaderOrAction(\n \"action\",\n request,\n actionMatch,\n matches,\n manifest,\n mapRouteProperties,\n basename,\n { isStaticRequest: true, isRouteRequest, requestContext }\n );\n\n if (request.signal.aborted) {\n let method = isRouteRequest ? \"queryRoute\" : \"query\";\n throw new Error(`${method}() call aborted`);\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.status,\n headers: {\n Location: result.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 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 let context = await loadRouteData(\n request,\n matches,\n requestContext,\n undefined,\n {\n [boundaryMatch.route.id]: result.error,\n }\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 : 500,\n actionData: null,\n actionHeaders: {\n ...(result.headers ? { [actionMatch.route.id]: result.headers } : {}),\n },\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 let context = await loadRouteData(loaderRequest, matches, requestContext);\n\n return {\n ...context,\n // action status codes take precedence over loader status codes\n ...(result.statusCode ? { statusCode: result.statusCode } : {}),\n actionData: {\n [actionMatch.route.id]: result.data,\n },\n actionHeaders: {\n ...(result.headers ? { [actionMatch.route.id]: result.headers } : {}),\n },\n };\n }\n\n async function loadRouteData(\n request: Request,\n matches: AgnosticDataRouteMatch[],\n requestContext: unknown,\n routeMatch?: AgnosticDataRouteMatch,\n pendingActionError?: RouteData\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 : getLoaderMatchesUntilBoundary(\n matches,\n Object.keys(pendingActionError || {})[0]\n );\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: pendingActionError || null,\n statusCode: 200,\n loaderHeaders: {},\n activeDeferreds: null,\n };\n }\n\n let results = await Promise.all([\n ...matchesToLoad.map((match) =>\n callLoaderOrAction(\n \"loader\",\n request,\n match,\n matches,\n manifest,\n mapRouteProperties,\n basename,\n { isStaticRequest: true, isRouteRequest, requestContext }\n )\n ),\n ]);\n\n if (request.signal.aborted) {\n let method = isRouteRequest ? \"queryRoute\" : \"query\";\n throw new Error(`${method}() call aborted`);\n }\n\n // Process and commit output from loaders\n let activeDeferreds = new Map();\n let context = processRouteLoaderData(\n matches,\n matchesToLoad,\n results,\n pendingActionError,\n activeDeferreds\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 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: 500,\n errors: {\n [context._deepestRenderedBoundaryId || routes[0].id]: error,\n },\n };\n return newContext;\n}\n\nfunction isSubmissionNavigation(\n opts: RouterNavigateOptions\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 fromRouteId?: string,\n relative?: RelativeRoutingType\n) {\n let contextualMatches: AgnosticDataRouteMatch[];\n let activeRouteMatch: AgnosticDataRouteMatch | undefined;\n if (fromRouteId != null && relative !== \"path\") {\n // Grab matches up to the calling route so our route-relative logic is\n // relative to the correct source route. When using relative:path,\n // fromRouteId is ignored since that is always relative to the current\n // location path\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 getPathContributingMatches(contextualMatches).map((m) => m.pathnameBase),\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 // Add an ?index param for matched index routes if we don't already have one\n if (\n (to == null || to === \"\" || to === \".\") &&\n activeRouteMatch &&\n activeRouteMatch.route.index &&\n !hasNakedIndexQuery(path.search)\n ) {\n path.search = path.search\n ? path.search.replace(/^\\?/, \"?index&\")\n : \"?index\";\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?: RouterNavigateOptions\n): {\n path: string;\n submission?: Submission;\n error?: ErrorResponse;\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 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) {\n let boundaryMatches = matches;\n if (boundaryId) {\n let index = matches.findIndex((m) => m.route.id === boundaryId);\n if (index >= 0) {\n boundaryMatches = matches.slice(0, index);\n }\n }\n return boundaryMatches;\n}\n\nfunction getMatchesToLoad(\n history: History,\n state: RouterState,\n matches: AgnosticDataRouteMatch[],\n submission: Submission | undefined,\n location: Location,\n isRevalidationRequired: boolean,\n cancelledDeferredRoutes: string[],\n cancelledFetcherLoads: string[],\n fetchLoadMatches: Map,\n fetchRedirectIds: Set,\n routesToUse: AgnosticDataRouteObject[],\n basename: string | undefined,\n pendingActionData?: RouteData,\n pendingError?: RouteData\n): [AgnosticDataRouteMatch[], RevalidatingFetcher[]] {\n let actionResult = pendingError\n ? Object.values(pendingError)[0]\n : pendingActionData\n ? Object.values(pendingActionData)[0]\n : undefined;\n\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 boundaryId = pendingError ? Object.keys(pendingError)[0] : undefined;\n let boundaryMatches = getLoaderMatchesUntilBoundary(matches, boundaryId);\n\n let navigationMatches = boundaryMatches.filter((match, index) => {\n if (match.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 if (match.route.loader == null) {\n return false;\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 defaultShouldRevalidate:\n // Forced revalidation due to submission, useRevalidator, or X-Remix-Revalidate\n isRevalidationRequired ||\n // Clicked the same link, resubmitted a GET form\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 if fetcher won't be present in the subsequent render\n if (!matches.some((m) => m.route.id === f.routeId)) {\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\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 only set `defaultShouldRevalidate` on\n // explicit revalidation due to submission, useRevalidator, or X-Remix-Revalidate\n //\n // They automatically revalidate without even calling shouldRevalidate if:\n // - They were cancelled\n // - They're in the middle of their first load and therefore this is still\n // an initial load and not a revalidation\n //\n // If neither of those is true, then they _always_ check shouldRevalidate\n let fetcher = state.fetchers.get(key);\n let isPerformingInitialLoad =\n fetcher &&\n fetcher.state !== \"idle\" &&\n fetcher.data === undefined &&\n // If a fetcher.load redirected then it'll be \"loading\" without any data\n // so ensure we're not processing the redirect from this fetcher\n !fetchRedirectIds.has(key);\n let fetcherMatch = getTargetMatch(fetcherMatches, f.path);\n let shouldRevalidate =\n cancelledFetcherLoads.includes(key) ||\n isPerformingInitialLoad ||\n 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 defaultShouldRevalidate: isRevalidationRequired,\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 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: Parameters[0]\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\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\nasync function callLoaderOrAction(\n type: \"loader\" | \"action\",\n request: Request,\n match: AgnosticDataRouteMatch,\n matches: AgnosticDataRouteMatch[],\n manifest: RouteManifest,\n mapRouteProperties: MapRoutePropertiesFunction,\n basename: string,\n opts: {\n isStaticRequest?: boolean;\n isRouteRequest?: boolean;\n requestContext?: unknown;\n } = {}\n): Promise {\n let resultType;\n let result;\n let onReject: (() => void) | undefined;\n\n let runHandler = (handler: ActionFunction | LoaderFunction) => {\n // Setup a promise we can race against so that abort signals short circuit\n let reject: () => void;\n let abortPromise = new Promise((_, r) => (reject = r));\n onReject = () => reject();\n request.signal.addEventListener(\"abort\", onReject);\n return Promise.race([\n handler({\n request,\n params: match.params,\n context: opts.requestContext,\n }),\n abortPromise,\n ]);\n };\n\n try {\n let handler = match.route[type];\n\n if (match.route.lazy) {\n if (handler) {\n // Run statically defined handler in parallel with lazy()\n let values = await Promise.all([\n runHandler(handler),\n loadLazyRouteModule(match.route, mapRouteProperties, manifest),\n ]);\n result = values[0];\n } else {\n // Load lazy route module, then run any returned handler\n await loadLazyRouteModule(match.route, mapRouteProperties, manifest);\n\n handler = match.route[type];\n if (handler) {\n // Handler still run 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, data: 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 !== 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 resultType = ResultType.error;\n result = e;\n } finally {\n if (onReject) {\n request.signal.removeEventListener(\"abort\", onReject);\n }\n }\n\n if (isResponse(result)) {\n let status = result.status;\n\n // Process redirects\n if (redirectStatusCodes.has(status)) {\n let location = result.headers.get(\"Location\");\n invariant(\n location,\n \"Redirects returned/thrown from loaders/actions must have a Location header\"\n );\n\n // Support relative routing in internal redirects\n if (!ABSOLUTE_URL_REGEX.test(location)) {\n location = normalizeTo(\n new URL(request.url),\n matches.slice(0, matches.indexOf(match) + 1),\n basename,\n true,\n location\n );\n } else if (!opts.isStaticRequest) {\n // Strip off the protocol+origin for same-origin + same-basename absolute\n // redirects. If this is a static request, we can let it go back to the\n // browser as-is\n let currentUrl = new URL(request.url);\n let url = location.startsWith(\"//\")\n ? new URL(currentUrl.protocol + location)\n : new URL(location);\n let isSameBasename = stripBasename(url.pathname, basename) != null;\n if (url.origin === currentUrl.origin && isSameBasename) {\n location = url.pathname + url.search + url.hash;\n }\n }\n\n // Don't process redirects in the router during static requests requests.\n // Instead, throw the Response and let the server handle it with an HTTP\n // redirect. We also update the Location header in place in this flow so\n // basename and relative routing is taken into account\n if (opts.isStaticRequest) {\n result.headers.set(\"Location\", location);\n throw result;\n }\n\n return {\n type: ResultType.redirect,\n status,\n location,\n revalidate: result.headers.get(\"X-Remix-Revalidate\") !== null,\n };\n }\n\n // For SSR single-route requests, we want to hand Responses back directly\n // without unwrapping. We do this with the QueryRouteResponse wrapper\n // interface so we can know whether it was returned or thrown\n if (opts.isRouteRequest) {\n // eslint-disable-next-line no-throw-literal\n throw {\n type: resultType || ResultType.data,\n response: result,\n };\n }\n\n let data: any;\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 data = await result.json();\n } else {\n data = await result.text();\n }\n\n if (resultType === ResultType.error) {\n return {\n type: resultType,\n error: new ErrorResponse(status, result.statusText, data),\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 (resultType === ResultType.error) {\n return { type: resultType, error: result };\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 return { type: ResultType.data, data: result };\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 matchesToLoad: AgnosticDataRouteMatch[],\n results: DataResult[],\n pendingError: RouteData | undefined,\n activeDeferreds: Map\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\n // Process loader results into state.loaderData/state.errors\n results.forEach((result, index) => {\n let id = matchesToLoad[index].route.id;\n invariant(\n !isRedirectResult(result),\n \"Cannot handle redirect results in processLoaderData\"\n );\n if (isErrorResult(result)) {\n // Look upwards from the matched route for the closest ancestor\n // error boundary, defaulting to the root match\n let boundaryMatch = findNearestBoundary(matches, id);\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) {\n error = Object.values(pendingError)[0];\n pendingError = undefined;\n }\n\n errors = errors || {};\n\n // Prefer higher error values if lower errors bubble to the same boundary\n if (errors[boundaryMatch.route.id] == null) {\n errors[boundaryMatch.route.id] = error;\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 } else {\n loaderData[id] = result.data;\n }\n\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 }\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) {\n errors = pendingError;\n loaderData[Object.keys(pendingError)[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 matchesToLoad: AgnosticDataRouteMatch[],\n results: DataResult[],\n pendingError: RouteData | undefined,\n revalidatingFetchers: RevalidatingFetcher[],\n fetcherResults: DataResult[],\n activeDeferreds: Map\n): {\n loaderData: RouterState[\"loaderData\"];\n errors?: RouterState[\"errors\"];\n} {\n let { loaderData, errors } = processRouteLoaderData(\n matches,\n matchesToLoad,\n results,\n pendingError,\n activeDeferreds\n );\n\n // Process results from our revalidating fetchers\n for (let index = 0; index < revalidatingFetchers.length; index++) {\n let { key, match, controller } = revalidatingFetchers[index];\n invariant(\n fetcherResults !== undefined && fetcherResults[index] !== undefined,\n \"Did not find corresponding fetcher result\"\n );\n let result = fetcherResults[index];\n\n // Process fetcher non-redirect errors\n if (controller && controller.signal.aborted) {\n // Nothing to do for aborted fetchers\n continue;\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\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 = 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 }: {\n pathname?: string;\n routeId?: string;\n method?: string;\n type?: \"defer-action\" | \"invalid-body\";\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 ErrorResponse(\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(results: DataResult[]): RedirectResult | undefined {\n for (let i = results.length - 1; i >= 0; i--) {\n let result = results[i];\n if (isRedirectResult(result)) {\n return 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 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 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 isQueryRouteResponse(obj: any): obj is QueryRouteResponse {\n return (\n obj &&\n isResponse(obj.response) &&\n (obj.type === ResultType.data || ResultType.error)\n );\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 resolveDeferredResults(\n currentMatches: AgnosticDataRouteMatch[],\n matchesToLoad: (AgnosticDataRouteMatch | null)[],\n results: DataResult[],\n signals: (AbortSignal | null)[],\n isFetcher: boolean,\n currentLoaderData?: RouteData\n) {\n for (let index = 0; index < results.length; index++) {\n let result = results[index];\n let match = matchesToLoad[index];\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) && (isFetcher || 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 let signal = signals[index];\n invariant(\n signal,\n \"Expected an AbortSignal for revalidating fetcher deferred result\"\n );\n await resolveDeferredData(result, signal, isFetcher).then((result) => {\n if (result) {\n results[index] = result || results[index];\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\n// Note: This should match the format exported by useMatches, so if you change\n// this please also change that :) Eventually we'll DRY this up\nfunction createUseMatchesMatch(\n match: AgnosticDataRouteMatch,\n loaderData: RouteData\n): UseMatchesMatch {\n let { route, pathname, params } = match;\n return {\n id: route.id,\n pathname,\n params,\n data: loaderData[route.id] as unknown,\n handle: route.handle as unknown,\n };\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 \" _hasFetcherDoneAnything \": true,\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 \" _hasFetcherDoneAnything \": true,\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 \" _hasFetcherDoneAnything \": true,\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 \" _hasFetcherDoneAnything \": true,\n };\n return fetcher;\n}\n//#endregion\n","import { atom } from 'jotai';\nexport interface CommonUserInfo {\n user_id: string;\n user_unique_name: string;\n avatar_url: string;\n gender?: GenderEnum;\n has_photo_authorization?: boolean;\n user_nick_name?: string;\n description?: string;\n followers_count?: number;\n is_following?: number;\n is_followed?: number;\n}\nexport enum GenderEnum {\n UNKNOWN = 0,\n MALE = 1,\n FEMALE = 2,\n SECRET = 3,\n CUSTOM = 4,\n}\nexport interface GetIdeaLandingPageRespWrap {\n /**\n *报告Idea列表\n */\n ideas?: UserIdea[];\n /**\n *创建事件\n */\n create_time?: number;\n /**\n *选择的头像挂件\n */\n pendant_id?: string;\n /**\n *用户信息\n */\n user_info?: CommonUserInfo;\n}\nexport interface UserIdea {\n /**\n *idea信息\n */\n idea?: IdeaInfo;\n /**\n *文章信息\n */\n item?: ItemInfo;\n /**\n *投稿数\n */\n post_cnt?: number;\n}\nexport interface ItemInfo {\n /**\n *文章ID\n */\n item_id?: number;\n /**\n *封面图\n */\n cover_img?: string;\n}\nexport interface IdeaInfo {\n /**\n *ideaID\n */\n idea_id?: number;\n /**\n *icon(详情页展示)\n */\n icon?: string;\n /**\n *选项icon(选择页使用)\n */\n option_icon?: string;\n /**\n *选项背景色(选择页使用)\n */\n bg_color?: string;\n /**\n *文案\n */\n text?: string;\n /**\n *关联的hashtagid\n */\n forum_id?: number;\n /**\n *活动主话题ID\n */\n main_forum_id?: number;\n}\n\ninterface GetIdeaLandingPageRespWrapClone extends GetIdeaLandingPageRespWrap {\n campaignId?: string;\n sharePlatform?: string;\n}\n\nexport const ThingsStore = atom({});\n\nexport const $ThingsData = atom(\n (get) => {\n return get(ThingsStore);\n },\n (get, set, args: Record) => {\n const old = get(ThingsStore);\n set(ThingsStore, { ...old, ...args });\n },\n);\n","import { atom } from 'jotai';\n\ninterface ShareInfoData {\n sharePlatform: string;\n sharePageName: string;\n}\n\nexport const $ShareInfo = atom({\n sharePlatform: '',\n sharePageName: '',\n});\n","import { LoaderFunction } from '@remix-run/node';\n\nexport const buildActivityLoader = (name: string): LoaderFunction => {\n return (args: any) => {\n const {\n context: { loaders, setRemixParams },\n params,\n } = args;\n\n setRemixParams(params);\n return loaders[name]();\n };\n};\n","export const IOS_af_web_dp =\n 'https://itunes.apple.com/app/apple-store/id1498607143?pt=1613620&ct=interstitialdownload&mt=8';\n\nexport const Andriod_ab_web_dp = 'https://play.google.com/store/apps/details?id=com.bd.nproject';\n","import { Andriod_ab_web_dp, IOS_af_web_dp } from '~/constants/af_web_dp';\n\nexport const createOnelink = (params: {\n url?: string;\n pid: string;\n testOpenUrl: string;\n deepLinkValue: Record;\n afDp: string;\n afDpParams: Record;\n ampExtra: Record;\n isiOS: boolean;\n isMobile: boolean;\n}) => {\n const {\n pid: onlinePid,\n url = 'https://lemon8.onelink.me/FMQw',\n testOpenUrl,\n deepLinkValue,\n afDp,\n afDpParams,\n ampExtra,\n isiOS,\n isMobile,\n } = params;\n\n // 1. if has is_test, go to the test url\n const searchParams = new URLSearchParams(window.location.search);\n const hasTestParams = searchParams.get('is_test') === '1';\n\n if (hasTestParams) {\n window.open(`snssdk2657test://${testOpenUrl}`);\n return;\n }\n\n // 2. if in test env, change the pid\n let pid = onlinePid;\n\n const isTest =\n window.location.host.includes(['bytedance', 'net'].join('.')) ||\n window.location.host.includes(['tiktok-row', 'net'].join('.'));\n if (isTest) {\n pid = 'ios_testing';\n if (isMobile) {\n if (!isiOS) {\n pid = 'android_testing';\n }\n }\n }\n\n // 3. generate af_dp\n let af_dp = afDp;\n\n Object.keys(afDpParams).forEach((key) => {\n af_dp += `&${key}=${afDpParams[key]}`;\n });\n\n // 4. onelink concat\n let onelink = `${url}?pid=${pid}`;\n onelink += `&deep_link_value=${encodeURIComponent(JSON.stringify(deepLinkValue))}`;\n onelink += `&af_dp=${encodeURIComponent(af_dp)}`;\n onelink += `&af_web_dp=${encodeURIComponent(isiOS ? IOS_af_web_dp : Andriod_ab_web_dp)}`;\n onelink += `&af_force_deeplink=true`;\n onelink += `&_extra=${encodeURIComponent(JSON.stringify(ampExtra))}`;\n\n return onelink;\n};\n","// 参数对应相关文档:https://bytedance.feishu.cn/docs/doccnBxOCtFV68O0zZUA3OZWvZc\n/** 生成对应openurl */\nexport default function createOpenUrl(params: {\n url: string;\n /** 是否需要native的titlebar [default: true] */\n useTitlebar?: boolean;\n /** 是否需要native的状态栏 [default: true] */\n useStatusBar?: boolean;\n /** 是否需要携带通参 [default: false] */\n useCommonParams?: boolean;\n /** 是否是活动页 [default: true](后续会去掉,原因参照文档评论部分) */\n isActivity?: boolean;\n /** Titlebar 右边的icon类型 [default: more] */\n rightButton?: 'more' | 'share' | 'none';\n /** 禁用橡皮筋效果 */\n preventBounces?: boolean;\n}) {\n const {\n url: originUrl,\n useTitlebar = true,\n useStatusBar = true,\n useCommonParams = false,\n isActivity = true,\n rightButton,\n preventBounces,\n } = params;\n let url = originUrl;\n let schemeParams = '';\n // android的webview参数是拼在url里,而iOS是拼在scheme里 (后续会做统一拼在schema中)\n\n if (!useTitlebar) {\n const concat = url.includes('?') ? '&' : '?';\n url = `${url}${concat}hide_navigation_bar=1`;\n schemeParams += '&hide_navigation_bar=1';\n }\n\n if (!useStatusBar) {\n schemeParams += '&allow_change_statusbar=1';\n }\n\n if (useCommonParams) {\n const concat = url.includes('?') ? '&' : '?';\n url = `${url}${concat}need_common_params=true`;\n schemeParams += '&append_common=1';\n }\n\n if (isActivity) {\n schemeParams += '&webview_type=campaign';\n }\n\n if (rightButton) {\n schemeParams += `&right_button_type=${rightButton}`;\n }\n\n if (preventBounces) {\n const concat = url.includes('?') ? '&' : '?';\n url = `${url}${concat}disable_bounces=1`;\n schemeParams += '&prevent_bounces=1';\n }\n\n const openUrl = `webview?url=${encodeURIComponent(url)}${schemeParams}`;\n\n return openUrl;\n}\n","var manifestCache;\nfunction getManifest() {\n if (manifestCache)\n return manifestCache;\n return (manifestCache = process.env.BUILD_TARGET === 'client' ? window.__remixManifest : require('ttark').assets);\n}\n// do not pass routeId directly, webpack CSSLinksPlugin will pass the routeId\nexport function cssLinks(routeId) {\n return (manifestCache || getManifest()).routes[routeId].cssImports.map(function (href) { return ({ rel: 'stylesheet', href: href }); });\n}\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.$ABTest = void 0;\nconst jotai_1 = require(\"jotai\");\nexports.$ABTest = (0, jotai_1.atom)({\n versions: '',\n parameters: {},\n});\nexports.$ABTest.debugLabel = '$ABTest';\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.$Crawler = void 0;\nconst jotai_1 = require(\"jotai\");\nexports.$Crawler = (0, jotai_1.atom)({});\nexports.$Crawler.debugLabel = '$Crawler';\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.$I18nText = void 0;\nconst jotai_1 = require(\"jotai\");\nexports.$I18nText = (0, jotai_1.atom)({});\nexports.$I18nText.debugLabel = '$I18nText';\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ab-test\"), exports);\n__exportStar(require(\"./crawler\"), exports);\n__exportStar(require(\"./i18n-text\"), exports);\n__exportStar(require(\"./locale\"), exports);\n__exportStar(require(\"./render-config\"), exports);\n__exportStar(require(\"./root-traffic\"), exports);\n__exportStar(require(\"./user-agent\"), exports);\n__exportStar(require(\"./web-user\"), exports);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.$Locale = void 0;\nconst jotai_1 = require(\"jotai\");\nexports.$Locale = (0, jotai_1.atom)({});\nexports.$Locale.debugLabel = '$Locale';\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.$RenderConfig = void 0;\nconst jotai_1 = require(\"jotai\");\nexports.$RenderConfig = (0, jotai_1.atom)({\n isSteamingSSR: false,\n});\nexports.$RenderConfig.debugLabel = '$RenderConfig';\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.$RootTraffic = void 0;\nconst jotai_1 = require(\"jotai\");\nexports.$RootTraffic = (0, jotai_1.atom)({});\nexports.$RootTraffic.debugLabel = '$RootTraffic';\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.$UserAgent = void 0;\nconst jotai_1 = require(\"jotai\");\nexports.$UserAgent = (0, jotai_1.atom)({\n isMobile: false,\n isBot: false,\n isiOS: false,\n isSafari: false,\n isInApp: false,\n isMacOS: false,\n});\nexports.$UserAgent.debugLabel = '$UserAgent';\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.$WebUser = void 0;\nconst jotai_1 = require(\"jotai\");\nexports.$WebUser = (0, jotai_1.atom)({\n webId: '',\n});\nexports.$WebUser.debugLabel = '$WebUser';\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isEuropeRegion = exports.EURO_COUNTRY_SET = exports.EURO_COUNTRY_LIST = void 0;\nexports.EURO_COUNTRY_LIST = [\n 'at',\n 'be',\n 'bg',\n 'hr',\n 'ch',\n 'cy',\n 'cz',\n 'de',\n 'dk',\n 'ee',\n 'el',\n 'fi',\n 'fr',\n 'gb',\n 'gr',\n 'hu',\n 'ie',\n 'it',\n 'lv',\n 'lt',\n 'lu',\n 'mt',\n 'nl',\n 'pl',\n 'pt',\n 'ro',\n 'sk',\n 'si',\n 'es',\n 'se',\n 'no',\n 'is',\n 'li',\n];\nexports.EURO_COUNTRY_SET = new Set(exports.EURO_COUNTRY_LIST);\nconst isEuropeRegion = (region) => exports.EURO_COUNTRY_SET.has(region);\nexports.isEuropeRegion = isEuropeRegion;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./region\"), exports);\n__exportStar(require(\"./language\"), exports);\n__exportStar(require(\"./europe\"), exports);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RegionHrefLangMap = exports.RegionFallbackLanguageMap = exports.SupportedLanguageMetas = exports.SupportedLanguages = exports.LanguageDisplayNameMap = exports.Language = void 0;\nconst region_1 = require(\"./region\");\nvar Language;\n(function (Language) {\n Language[\"en\"] = \"en\";\n Language[\"id\"] = \"id\";\n Language[\"ja\"] = \"ja\";\n Language[\"ms\"] = \"ms\";\n Language[\"th\"] = \"th\";\n Language[\"vi\"] = \"vi\";\n Language[\"fil\"] = \"fil\";\n})(Language = exports.Language || (exports.Language = {}));\nexports.LanguageDisplayNameMap = {\n en: 'English',\n id: 'Bahasa Indonesia',\n ja: '日本語',\n ms: 'Bahasa Melayu',\n th: 'ไทย',\n vi: 'Tiếng Việt',\n fil: 'Pilipino',\n};\nexports.SupportedLanguages = [\n Language.en,\n Language.id,\n Language.ja,\n Language.ms,\n Language.th,\n Language.vi,\n];\nexports.SupportedLanguageMetas = exports.SupportedLanguages.map((language) => ({\n language,\n displayName: exports.LanguageDisplayNameMap[language],\n})).sort((l, r) => (l.displayName > r.displayName ? 1 : -1));\nexports.RegionFallbackLanguageMap = {\n [region_1.Region.jp]: Language.ja,\n [region_1.Region.th]: Language.th,\n [region_1.Region.my]: Language.ms,\n [region_1.Region.id]: Language.id,\n [region_1.Region.vn]: Language.vi,\n [region_1.Region.us]: Language.en,\n [region_1.Region.gb]: Language.en,\n [region_1.Region.sg]: Language.en,\n [region_1.Region.ph]: Language.en,\n};\nexports.RegionHrefLangMap = {\n [region_1.Region.jp]: 'ja-jp',\n [region_1.Region.th]: 'th-th',\n [region_1.Region.my]: 'ms-my',\n [region_1.Region.id]: 'id-id',\n [region_1.Region.vn]: 'vi-vn',\n [region_1.Region.us]: 'en-us',\n [region_1.Region.gb]: 'en-gb',\n [region_1.Region.sg]: 'en-sg',\n [region_1.Region.ph]: 'en-ph',\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRegionIDC = exports.IDCRegion = exports.RegionDisplayMap = exports.Region = void 0;\n/**\n * ISO 639-1 Language Code\n */\nvar Region;\n(function (Region) {\n Region[\"jp\"] = \"jp\";\n Region[\"th\"] = \"th\";\n Region[\"my\"] = \"my\";\n Region[\"id\"] = \"id\";\n Region[\"ph\"] = \"ph\";\n Region[\"vn\"] = \"vn\";\n Region[\"us\"] = \"us\";\n Region[\"gb\"] = \"gb\";\n Region[\"sg\"] = \"sg\";\n})(Region = exports.Region || (exports.Region = {}));\nexports.RegionDisplayMap = {\n [Region.jp]: '日本',\n [Region.th]: 'ไทย',\n [Region.my]: 'Malaysia',\n [Region.id]: 'Indonesia',\n [Region.vn]: 'Việt Nam',\n [Region.us]: 'US',\n [Region.gb]: 'UK',\n [Region.sg]: 'Singapore',\n [Region.ph]: 'Philippines',\n};\nvar IDCRegion;\n(function (IDCRegion) {\n IDCRegion[\"SG\"] = \"sg\";\n IDCRegion[\"VA\"] = \"va\";\n})(IDCRegion = exports.IDCRegion || (exports.IDCRegion = {}));\nconst getRegionIDC = (region) => {\n return [Region.jp, Region.us, Region.gb].includes(region) ? IDCRegion.VA : IDCRegion.SG;\n};\nexports.getRegionIDC = getRegionIDC;\n","import * as React from \"react\";\nimport type {\n AgnosticRouteMatch,\n AgnosticIndexRouteObject,\n AgnosticNonIndexRouteObject,\n History,\n Location,\n RelativeRoutingType,\n Router,\n StaticHandlerContext,\n To,\n TrackedPromise,\n LazyRouteFunction,\n} from \"@remix-run/router\";\nimport type { Action as NavigationType } 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 errorElement?: React.ReactNode | null;\n Component?: 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 errorElement?: React.ReactNode | null;\n Component?: 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 extends NavigationContextObject {\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}\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}\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} from \"@remix-run/router\";\nimport {\n Action as NavigationType,\n UNSAFE_invariant as invariant,\n isRouteErrorResponse,\n joinPaths,\n matchPath,\n matchRoutes,\n parsePath,\n resolveTo,\n stripBasename,\n IDLE_BLOCKER,\n UNSAFE_getPathContributingMatches as getPathContributingMatches,\n UNSAFE_warning as warning,\n} from \"@remix-run/router\";\n\nimport type {\n NavigateOptions,\n RouteContextObject,\n RouteMatch,\n RouteObject,\n DataRouteMatch,\n} from \"./context\";\nimport {\n DataRouterContext,\n DataRouterStateContext,\n LocationContext,\n NavigationContext,\n RouteContext,\n RouteErrorContext,\n AwaitContext,\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/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/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/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/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/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, 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/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, navigator } = React.useContext(NavigationContext);\n let { matches } = React.useContext(RouteContext);\n let { pathname: locationPathname } = useLocation();\n\n let routePathnamesJson = JSON.stringify(\n getPathContributingMatches(matches).map((match) => match.pathnameBase)\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/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/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/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/hooks/use-resolved-path\n */\nexport function useResolvedPath(\n to: To,\n { relative }: { relative?: RelativeRoutingType } = {}\n): Path {\n let { matches } = React.useContext(RouteContext);\n let { pathname: locationPathname } = useLocation();\n\n let routePathnamesJson = JSON.stringify(\n getPathContributingMatches(matches).map((match) => match.pathnameBase)\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/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): 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 let remainingPathname =\n parentPathnameBase === \"/\"\n ? pathname\n : pathname.slice(parentPathnameBase.length) || \"/\";\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 `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 );\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 || 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 ? (\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): React.ReactElement | null {\n if (matches == null) {\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 {\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]\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 return renderedMatches.reduceRight((outlet, match, index) => {\n let error = match.route.id ? errors?.[match.route.id] : null;\n // Only data routers handle errors\n let errorElement: React.ReactNode | null = null;\n if (dataRouterState) {\n errorElement = match.route.errorElement || defaultErrorElement;\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 (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/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 {\n revalidate: dataRouterContext.router.revalidate,\n state: 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() {\n let { matches, loaderData } = useDataRouterState(\n DataRouterStateHook.UseMatches\n );\n return React.useMemo(\n () =>\n matches.map((match) => {\n let { pathname, params } = match;\n // Note: This structure matches that created by createUseMatchesMatch\n // in the @remix-run/router , so if you change this please also change\n // that :) Eventually we'll DRY this up\n return {\n id: match.route.id,\n pathname,\n params,\n data: loaderData[match.route.id] as unknown,\n handle: match.route.handle as unknown,\n };\n }),\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\n let route = React.useContext(RouteContext);\n invariant(route, `useActionData must be used inside a RouteContext`);\n\n return Object.values(state?.actionData || {})[0];\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) {\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 * as React from \"react\";\nimport type {\n TrackedPromise,\n InitialEntry,\n Location,\n MemoryHistory,\n Router as RemixRouter,\n To,\n LazyRouteFunction,\n RelativeRoutingType,\n RouterState,\n} from \"@remix-run/router\";\nimport {\n Action as NavigationType,\n AbortedDeferredError,\n createMemoryHistory,\n UNSAFE_invariant as invariant,\n parsePath,\n resolveTo,\n stripBasename,\n UNSAFE_warning as warning,\n UNSAFE_getPathContributingMatches as getPathContributingMatches,\n} from \"@remix-run/router\";\n\nimport type {\n DataRouteObject,\n IndexRouteObject,\n RouteMatch,\n RouteObject,\n Navigator,\n NonIndexRouteObject,\n} from \"./context\";\nimport {\n LocationContext,\n NavigationContext,\n DataRouterContext,\n DataRouterStateContext,\n AwaitContext,\n RouteContext,\n} from \"./context\";\nimport {\n useAsyncValue,\n useInRouterContext,\n useNavigate,\n useOutlet,\n useRoutes,\n _renderMatches,\n useRoutesImpl,\n useLocation,\n} from \"./hooks\";\n\nexport interface FutureConfig {\n v7_startTransition: boolean;\n}\n\nexport interface RouterProviderProps {\n fallbackElement?: React.ReactNode;\n router: RemixRouter;\n future?: FutureConfig;\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 // 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 let [state, setStateImpl] = React.useState(router.state);\n let { v7_startTransition } = future || {};\n let setState = React.useCallback(\n (newState: RouterState) => {\n v7_startTransition && startTransitionImpl\n ? startTransitionImpl(() => setStateImpl(newState))\n : setStateImpl(newState);\n },\n [setStateImpl, v7_startTransition]\n );\n React.useLayoutEffect(() => router.subscribe(setState), [router, setState]);\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 // 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\nexport default EventJsonLd;\n","import { FC, useMemo } from 'react';\nimport OG from './og';\nimport EventJsonLd from './json-ld';\nimport { useAtomValue } from 'jotai';\nimport { $ShareInfo } from '~/models/share-info';\nimport { ACTIVITY_PID, schema } from '../constants';\nimport { useTranslation } from 'react-i18next';\nconst FAVICON = 'https://www.lemon8-app.com/favicon.png';\n\nexport const ThingsHelmet: FC = () => {\n const { sharePlatform, sharePageName } = useAtomValue($ShareInfo);\n const { t } = useTranslation();\n\n const schemaHelmet = useMemo(() => {\n let str = schema;\n\n const commonParams: Record = {\n pid: ACTIVITY_PID,\n share_platform: sharePlatform,\n share_position: sharePageName,\n };\n\n Object.keys(commonParams).forEach((key) => {\n str += `&${key}=${encodeURIComponent(commonParams[key])}`;\n });\n return str;\n }, []);\n\n return (\n <>\n \n \n \n \n \n \n \n \n {t('bucketList_landingPage_header')}\n\n \n \n \n \n \n \n\n \n \n \n );\n};\n","\"use strict\";\n\nimport \"core-js/modules/web.dom-collections.iterator.js\";\nimport { cssLinks } from \"@ttark/css-links\";\nimport ThingsPage from \"./body\";\nimport { ThingsHelmet } from \"./helmet\";\nimport { useOutletContext } from \"@remix-run/react\";\nimport { buildActivityLoader } from \"~/utils/activity-loader\";\nimport { jsx } from \"react/jsx-runtime\";\nvar links = () => [...cssLinks(\"routes/activity.100-things\")];\nvar loader = buildActivityLoader(\"things\");\nfunction Page() {\n const {\n for: contextFor\n } = useOutletContext();\n if (contextFor === \"head\") {\n return /* @__PURE__ */jsx(ThingsHelmet, {});\n } else {\n return /* @__PURE__ */jsx(ThingsPage, {});\n }\n}\nexport { Page as default, links };","/*!\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","export default function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}","import defineProperty from \"./defineProperty.js\";\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n\n if (enumerableOnly) {\n symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n }\n\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nexport default function _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _iterableToArrayLimit(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n\n var _s, _e;\n\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","export default function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}"],"sourceRoot":""}