{"version":3,"file":"static/js/main.817cc4b6.js","mappings":"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","sources":["../node_modules/@sanity/image-url/src/parseAssetId.ts","../node_modules/@sanity/image-url/src/parseSource.ts","../node_modules/@sanity/image-url/src/urlForImage.ts","../node_modules/@sanity/image-url/src/builder.ts","../node_modules/@sanity/observable/operators/map.js","../node_modules/@sanity/client/lib/datasets/datasetsClient.js","../node_modules/get-it/src/middleware/observable.js","../node_modules/react/jsx-runtime.js","../node_modules/rxjs/src/internal/util/isArray.ts","../node_modules/get-it/src/request/index.js","../node_modules/@sanity/block-content-to-hyperscript/src/buildMarksTree.js","../node_modules/rxjs/src/internal/operators/takeLast.ts","../node_modules/get-it/src/util/middlewareReducer.js","../node_modules/@sanity/observable/minimal.js","../node_modules/@sanity/block-content-to-hyperscript/src/nestLists.js","../node_modules/@sanity/client/lib/data/patch.js","../node_modules/@sanity/client/lib/data/dataMethods.js","../node_modules/get-it/src/middleware/jsonRequest.js","../node_modules/make-error/index.js","../node_modules/react/cjs/react-jsx-runtime.production.min.js","../node_modules/get-it/src/middleware/defaultOptionsValidator.js","../node_modules/same-origin/url-parser.js","../node_modules/deep-assign/index.js","../node_modules/requires-port/index.js","../node_modules/get-it/src/util/global.js","../node_modules/@remix-run/router/history.ts","../node_modules/@remix-run/router/utils.ts","../node_modules/@remix-run/router/router.ts","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/rxjs/src/internal/util/isObject.ts","../node_modules/rxjs/src/internal/util/identity.ts","../node_modules/object-assign/index.js","../node_modules/@sanity/client/lib/http/errors.js","../node_modules/rxjs/src/internal/operators/reduce.ts","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/rxjs/src/internal/Observer.ts","../node_modules/@sanity/client/lib/http/browserMiddleware.js","../node_modules/@sanity/client/lib/data/encodeQueryString.js","../node_modules/@sanity/block-content-to-hyperscript/src/blocksToNodes.js","../node_modules/react-router/lib/context.ts","../node_modules/react-router/lib/hooks.tsx","../node_modules/react-router/lib/deprecations.ts","../node_modules/react-router/lib/components.tsx","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/@sanity/block-content-to-react/src/targets/dom.js","../node_modules/get-it/src/middleware/progress/index.js","../node_modules/rxjs/src/internal/symbol/rxSubscriber.ts","../node_modules/rxjs/src/internal/util/hostReportError.ts","../node_modules/rxjs/src/internal/config.ts","sanity.js","../node_modules/@sanity/client/lib/util/defaults.js","../node_modules/url-parse/index.js","../node_modules/@sanity/client/lib/http/request.js","../node_modules/@sanity/client/lib/util/pick.js","../node_modules/parse-headers/parse-headers.js","../node_modules/@sanity/block-content-to-hyperscript/src/getImageUrl.js","../node_modules/rxjs/src/internal/util/UnsubscriptionError.ts","../node_modules/react/cjs/react.production.min.js","../node_modules/@sanity/client/lib/config.js","../node_modules/rxjs/src/internal/util/ArgumentOutOfRangeError.ts","../node_modules/@sanity/client/lib/http/queryString.js","../node_modules/@sanity/block-content-to-hyperscript/node_modules/@sanity/generate-help-url/index.js","../node_modules/rxjs/src/internal/Subscriber.ts","../node_modules/rxjs/src/internal/Observable.ts","../node_modules/get-it/src/index.js","../node_modules/@sanity/client/lib/users/usersClient.js","../node_modules/react/index.js","../node_modules/prop-types/index.js","../node_modules/@sanity/block-content-to-hyperscript/src/serializers.js","../node_modules/@sanity/block-content-to-hyperscript/src/mergeSerializers.js","../node_modules/@sanity/client/lib/data/transaction.js","../node_modules/react-router-dom/dom.ts","../node_modules/react-router-dom/index.tsx","../node_modules/get-it/src/request/browser/fetchXhr.js","../node_modules/nano-pubsub/index.js","../node_modules/rxjs/src/internal/operators/map.ts","../node_modules/@sanity/block-content-to-hyperscript/internals.js","../node_modules/@sanity/client/lib/assets/assetsClient.js","../node_modules/get-it/src/middleware/defaultOptionsProcessor.js","../node_modules/get-it/src/middleware/progress/browser-progress.js","../node_modules/rxjs/src/internal/operators/defaultIfEmpty.ts","../node_modules/is-obj/index.js","../node_modules/rxjs/src/internal/Subscription.ts","../node_modules/@sanity/generate-help-url/index.js","../node_modules/isobject/index.js","../node_modules/is-plain-object/index.js","../node_modules/rxjs/src/internal/operators/filter.ts","../node_modules/rxjs/src/internal/operators/scan.ts","../node_modules/@sanity/observable/lib/SanityObservableMinimal.js","../node_modules/@sanity/client/lib/auth/authClient.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/querystringify/index.js","../node_modules/rxjs/src/internal/observable/empty.ts","../node_modules/@sanity/block-content-to-hyperscript/src/internals.js","../node_modules/get-it/src/request/browser-request.js","../node_modules/@sanity/client/lib/sanityClient.js","../node_modules/@sanity/client/lib/util/getSelection.js","../node_modules/rxjs/src/internal/util/isFunction.ts","../node_modules/@sanity/client/lib/data/listen.js","../node_modules/@sanity/eventsource/browser.js","../node_modules/react-dom/index.js","../node_modules/same-origin/index.js","../node_modules/@sanity/observable/operators/reduce.js","../node_modules/@sanity/block-content-to-hyperscript/src/generateKeys.js","../node_modules/rxjs/src/internal/symbol/observable.ts","../node_modules/@sanity/client/lib/projects/projectsClient.js","../node_modules/get-it/src/middleware/jsonResponse.js","../node_modules/@sanity/client/lib/validators.js","../node_modules/get-it/index.js","../node_modules/@sanity/observable/operators/filter.js","../node_modules/rxjs/src/internal/util/toSubscriber.ts","components/Centered.tsx","../node_modules/scheduler/index.js","../node_modules/@rexxars/eventsource-polyfill/src/eventsource.js","../node_modules/rxjs/src/internal/util/canReportError.ts","../node_modules/rxjs/src/internal/util/pipe.ts","../node_modules/@sanity/client/lib/warnings.js","../node_modules/@sanity/block-content-to-react/src/BlockContent.js","../node_modules/@sanity/client/lib/http/requestOptions.js","../node_modules/@sanity/client/lib/util/once.js","../webpack/bootstrap","../webpack/runtime/compat get default export","../webpack/runtime/create fake namespace object","../webpack/runtime/define property getters","../webpack/runtime/ensure chunk","../webpack/runtime/get javascript chunk filename","../webpack/runtime/get mini-css chunk filename","../webpack/runtime/global","../webpack/runtime/hasOwnProperty shorthand","../webpack/runtime/load script","../webpack/runtime/make namespace object","../webpack/runtime/publicPath","../webpack/runtime/css loading","../webpack/runtime/jsonp chunk loading","components/Footer.tsx","hooks/useFooter.ts","components/Navbar.tsx","components/Layout.tsx","App.tsx","reportWebVitals.js","index.tsx"],"sourcesContent":["const example = 'image-Tb9Ew8CXIwaY6R1kjMvI0uRR-2000x3000-jpg'\n\nexport default function parseAssetId(ref: string) {\n const [, id, dimensionString, format] = ref.split('-')\n\n if (!id || !dimensionString || !format) {\n throw new Error(`Malformed asset _ref '${ref}'. Expected an id like \"${example}\".`)\n }\n\n const [imgWidthStr, imgHeightStr] = dimensionString.split('x')\n\n const width = +imgWidthStr\n const height = +imgHeightStr\n\n const isValidAssetId = isFinite(width) && isFinite(height)\n if (!isValidAssetId) {\n throw new Error(`Malformed asset _ref '${ref}'. Expected an id like \"${example}\".`)\n }\n\n return {id, width, height, format}\n}\n","import {\n SanityAsset,\n SanityImageObject,\n SanityImageSource,\n SanityImageWithAssetStub,\n SanityReference,\n} from './types'\n\nconst isRef = (src: SanityImageSource): src is SanityReference => {\n const source = src as SanityReference\n return source ? typeof source._ref === 'string' : false\n}\n\nconst isAsset = (src: SanityImageSource): src is SanityAsset => {\n const source = src as SanityAsset\n return source ? typeof source._id === 'string' : false\n}\n\nconst isAssetStub = (src: SanityImageSource): src is SanityImageWithAssetStub => {\n const source = src as SanityImageWithAssetStub\n return source && source.asset ? typeof source.asset.url === 'string' : false\n}\n\n// Convert an asset-id, asset or image to an image record suitable for processing\n// eslint-disable-next-line complexity\nexport default function parseSource(source?: SanityImageSource) {\n if (!source) {\n return null\n }\n\n let image: SanityImageObject\n\n if (typeof source === 'string' && isUrl(source)) {\n // Someone passed an existing image url?\n image = {\n asset: {_ref: urlToId(source)},\n }\n } else if (typeof source === 'string') {\n // Just an asset id\n image = {\n asset: {_ref: source},\n }\n } else if (isRef(source)) {\n // We just got passed an asset directly\n image = {\n asset: source,\n }\n } else if (isAsset(source)) {\n // If we were passed an image asset document\n image = {\n asset: {\n _ref: source._id || '',\n },\n }\n } else if (isAssetStub(source)) {\n // If we were passed a partial asset (`url`, but no `_id`)\n image = {\n asset: {\n _ref: urlToId(source.asset.url),\n },\n }\n } else if (typeof source.asset === 'object') {\n // Probably an actual image with materialized asset\n image = source\n } else {\n // We got something that does not look like an image, or it is an image\n // that currently isn't sporting an asset.\n return null\n }\n\n const img = source as SanityImageObject\n if (img.crop) {\n image.crop = img.crop\n }\n\n if (img.hotspot) {\n image.hotspot = img.hotspot\n }\n\n return applyDefaults(image)\n}\n\nfunction isUrl(url: string) {\n return /^https?:\\/\\//.test(`${url}`)\n}\n\nfunction urlToId(url: string) {\n const parts = url.split('/').slice(-1)\n return `image-${parts[0]}`.replace(/\\.([a-z]+)$/, '-$1')\n}\n\n// Mock crop and hotspot if image lacks it\nfunction applyDefaults(image: SanityImageObject) {\n if (image.crop && image.hotspot) {\n return image as Required\n }\n\n // We need to pad in default values for crop or hotspot\n const result = {...image}\n\n if (!result.crop) {\n result.crop = {\n left: 0,\n top: 0,\n bottom: 0,\n right: 0,\n }\n }\n\n if (!result.hotspot) {\n result.hotspot = {\n x: 0.5,\n y: 0.5,\n height: 1.0,\n width: 1.0,\n }\n }\n\n return result as Required\n}\n","import parseAssetId from './parseAssetId'\nimport parseSource from './parseSource'\nimport {\n CropSpec,\n HotspotSpec,\n ImageUrlBuilderOptions,\n ImageUrlBuilderOptionsWithAsset,\n SanityAsset,\n SanityImageFitResult,\n SanityImageRect,\n SanityReference,\n} from './types'\n\nexport const SPEC_NAME_TO_URL_NAME_MAPPINGS = [\n ['width', 'w'],\n ['height', 'h'],\n ['format', 'fm'],\n ['download', 'dl'],\n ['blur', 'blur'],\n ['sharpen', 'sharp'],\n ['invert', 'invert'],\n ['orientation', 'or'],\n ['minHeight', 'min-h'],\n ['maxHeight', 'max-h'],\n ['minWidth', 'min-w'],\n ['maxWidth', 'max-w'],\n ['quality', 'q'],\n ['fit', 'fit'],\n ['crop', 'crop'],\n ['saturation', 'sat'],\n ['auto', 'auto'],\n ['dpr', 'dpr'],\n ['pad', 'pad'],\n]\n\nexport default function urlForImage(options: ImageUrlBuilderOptions) {\n let spec = {...(options || {})}\n const source = spec.source\n delete spec.source\n\n const image = parseSource(source)\n if (!image) {\n return null\n }\n\n const id = (image.asset as SanityReference)._ref || (image.asset as SanityAsset)._id || ''\n const asset = parseAssetId(id)\n\n // Compute crop rect in terms of pixel coordinates in the raw source image\n const cropLeft = Math.round(image.crop.left * asset.width)\n const cropTop = Math.round(image.crop.top * asset.height)\n const crop = {\n left: cropLeft,\n top: cropTop,\n width: Math.round(asset.width - image.crop.right * asset.width - cropLeft),\n height: Math.round(asset.height - image.crop.bottom * asset.height - cropTop),\n }\n\n // Compute hot spot rect in terms of pixel coordinates\n const hotSpotVerticalRadius = (image.hotspot.height * asset.height) / 2\n const hotSpotHorizontalRadius = (image.hotspot.width * asset.width) / 2\n const hotSpotCenterX = image.hotspot.x * asset.width\n const hotSpotCenterY = image.hotspot.y * asset.height\n const hotspot = {\n left: hotSpotCenterX - hotSpotHorizontalRadius,\n top: hotSpotCenterY - hotSpotVerticalRadius,\n right: hotSpotCenterX + hotSpotHorizontalRadius,\n bottom: hotSpotCenterY + hotSpotVerticalRadius,\n }\n\n // If irrelevant, or if we are requested to: don't perform crop/fit based on\n // the crop/hotspot.\n if (!(spec.rect || spec.focalPoint || spec.ignoreImageParams || spec.crop)) {\n spec = {...spec, ...fit({crop, hotspot}, spec)}\n }\n\n return specToImageUrl({...spec, asset})\n}\n\n// eslint-disable-next-line complexity\nfunction specToImageUrl(spec: ImageUrlBuilderOptionsWithAsset) {\n const cdnUrl = spec.baseUrl || 'https://cdn.sanity.io'\n const filename = `${spec.asset.id}-${spec.asset.width}x${spec.asset.height}.${spec.asset.format}`\n const baseUrl = `${cdnUrl}/images/${spec.projectId}/${spec.dataset}/${filename}`\n\n const params = []\n\n if (spec.rect) {\n // Only bother url with a crop if it actually crops anything\n const {left, top, width, height} = spec.rect\n const isEffectiveCrop =\n left !== 0 || top !== 0 || height !== spec.asset.height || width !== spec.asset.width\n\n if (isEffectiveCrop) {\n params.push(`rect=${left},${top},${width},${height}`)\n }\n }\n\n if (spec.bg) {\n params.push(`bg=${spec.bg}`)\n }\n\n if (spec.focalPoint) {\n params.push(`fp-x=${spec.focalPoint.x}`)\n params.push(`fp-y=${spec.focalPoint.y}`)\n }\n\n const flip = [spec.flipHorizontal && 'h', spec.flipVertical && 'v'].filter(Boolean).join('')\n if (flip) {\n params.push(`flip=${flip}`)\n }\n\n // Map from spec name to url param name, and allow using the actual param name as an alternative\n SPEC_NAME_TO_URL_NAME_MAPPINGS.forEach((mapping) => {\n const [specName, param] = mapping\n if (typeof spec[specName] !== 'undefined') {\n params.push(`${param}=${encodeURIComponent(spec[specName])}`)\n } else if (typeof spec[param] !== 'undefined') {\n params.push(`${param}=${encodeURIComponent(spec[param])}`)\n }\n })\n\n if (params.length === 0) {\n return baseUrl\n }\n\n return `${baseUrl}?${params.join('&')}`\n}\n\nfunction fit(\n source: {crop: CropSpec; hotspot: HotspotSpec},\n spec: ImageUrlBuilderOptions\n): SanityImageFitResult {\n let cropRect: SanityImageRect\n\n const imgWidth = spec.width\n const imgHeight = spec.height\n\n // If we are not constraining the aspect ratio, we'll just use the whole crop\n if (!(imgWidth && imgHeight)) {\n return {width: imgWidth, height: imgHeight, rect: source.crop}\n }\n\n const crop = source.crop\n const hotspot = source.hotspot\n\n // If we are here, that means aspect ratio is locked and fitting will be a bit harder\n const desiredAspectRatio = imgWidth / imgHeight\n const cropAspectRatio = crop.width / crop.height\n\n if (cropAspectRatio > desiredAspectRatio) {\n // The crop is wider than the desired aspect ratio. That means we are cutting from the sides\n const height = crop.height\n const width = height * desiredAspectRatio\n const top = crop.top\n\n // Center output horizontally over hotspot\n const hotspotXCenter = (hotspot.right - hotspot.left) / 2 + hotspot.left\n let left = hotspotXCenter - width / 2\n\n // Keep output within crop\n if (left < crop.left) {\n left = crop.left\n } else if (left + width > crop.left + crop.width) {\n left = crop.left + crop.width - width\n }\n\n cropRect = {\n left: Math.round(left),\n top: Math.round(top),\n width: Math.round(width),\n height: Math.round(height),\n }\n } else {\n // The crop is taller than the desired ratio, we are cutting from top and bottom\n const width = crop.width\n const height = width / desiredAspectRatio\n const left = crop.left\n\n // Center output vertically over hotspot\n const hotspotYCenter = (hotspot.bottom - hotspot.top) / 2 + hotspot.top\n let top = hotspotYCenter - height / 2\n\n // Keep output rect within crop\n if (top < crop.top) {\n top = crop.top\n } else if (top + height > crop.top + crop.height) {\n top = crop.top + crop.height - height\n }\n\n cropRect = {\n left: Math.max(0, Math.floor(left)),\n top: Math.max(0, Math.floor(top)),\n width: Math.round(width),\n height: Math.round(height),\n }\n }\n\n return {\n width: imgWidth,\n height: imgHeight,\n rect: cropRect,\n }\n}\n\n// For backwards-compatibility\nexport {parseSource}\n","import {\n AutoMode,\n CropMode,\n FitMode,\n ImageFormat,\n ImageUrlBuilderOptions,\n ImageUrlBuilderOptionsWithAliases,\n Orientation,\n SanityClientLike,\n SanityImageSource,\n SanityProjectDetails,\n} from './types'\nimport urlForImage, {SPEC_NAME_TO_URL_NAME_MAPPINGS} from './urlForImage'\n\nconst validFits = ['clip', 'crop', 'fill', 'fillmax', 'max', 'scale', 'min']\nconst validCrops = ['top', 'bottom', 'left', 'right', 'center', 'focalpoint', 'entropy']\nconst validAutoModes = ['format']\n\nfunction isSanityClientLike(client?: SanityClientLike): client is SanityClientLike {\n return client ? typeof client.clientConfig === 'object' : false\n}\n\nfunction rewriteSpecName(key: string) {\n const specs = SPEC_NAME_TO_URL_NAME_MAPPINGS\n for (const entry of specs) {\n const [specName, param] = entry\n if (key === specName || key === param) {\n return specName\n }\n }\n\n return key\n}\n\nexport default function urlBuilder(options?: SanityClientLike | SanityProjectDetails) {\n // Did we get a SanityClient?\n const client = options as SanityClientLike\n if (isSanityClientLike(client)) {\n // Inherit config from client\n const {apiHost: apiUrl, projectId, dataset} = client.clientConfig\n const apiHost = apiUrl || 'https://api.sanity.io'\n return new ImageUrlBuilder(null, {\n baseUrl: apiHost.replace(/^https:\\/\\/api\\./, 'https://cdn.'),\n projectId,\n dataset,\n })\n }\n\n // Or just accept the options as given\n return new ImageUrlBuilder(null, options as ImageUrlBuilderOptions)\n}\n\nexport class ImageUrlBuilder {\n public options: ImageUrlBuilderOptions\n\n constructor(parent: ImageUrlBuilder | null, options: ImageUrlBuilderOptions) {\n this.options = parent\n ? {...(parent.options || {}), ...(options || {})} // Merge parent options\n : {...(options || {})} // Copy options\n }\n\n withOptions(options: Partial) {\n const baseUrl = options.baseUrl || this.options.baseUrl\n\n const newOptions: {[key: string]: any} = {baseUrl}\n for (const key in options) {\n if (options.hasOwnProperty(key)) {\n const specKey = rewriteSpecName(key)\n newOptions[specKey] = options[key]\n }\n }\n\n return new ImageUrlBuilder(this, {baseUrl, ...newOptions})\n }\n\n // The image to be represented. Accepts a Sanity 'image'-document, 'asset'-document or\n // _id of asset. To get the benefit of automatic hot-spot/crop integration with the content\n // studio, the 'image'-document must be provided.\n image(source: SanityImageSource) {\n return this.withOptions({source})\n }\n\n // Specify the dataset\n dataset(dataset: string) {\n return this.withOptions({dataset})\n }\n\n // Specify the projectId\n projectId(projectId: string) {\n return this.withOptions({projectId})\n }\n\n // Specify background color\n bg(bg: string) {\n return this.withOptions({bg})\n }\n\n // Set DPR scaling factor\n dpr(dpr: number) {\n return this.withOptions({dpr})\n }\n\n // Specify the width of the image in pixels\n width(width: number) {\n return this.withOptions({width})\n }\n\n // Specify the height of the image in pixels\n height(height: number) {\n return this.withOptions({height})\n }\n\n // Specify focal point in fraction of image dimensions. Each component 0.0-1.0\n focalPoint(x: number, y: number) {\n return this.withOptions({focalPoint: {x, y}})\n }\n\n maxWidth(maxWidth: number) {\n return this.withOptions({maxWidth})\n }\n\n minWidth(minWidth: number) {\n return this.withOptions({minWidth})\n }\n\n maxHeight(maxHeight: number) {\n return this.withOptions({maxHeight})\n }\n\n minHeight(minHeight: number) {\n return this.withOptions({minHeight})\n }\n\n // Specify width and height in pixels\n size(width: number, height: number) {\n return this.withOptions({width, height})\n }\n\n // Specify blur between 0 and 100\n blur(blur: number) {\n return this.withOptions({blur})\n }\n\n sharpen(sharpen: number) {\n return this.withOptions({sharpen})\n }\n\n // Specify the desired rectangle of the image\n rect(left: number, top: number, width: number, height: number) {\n return this.withOptions({rect: {left, top, width, height}})\n }\n\n // Specify the image format of the image. 'jpg', 'pjpg', 'png', 'webp'\n format(format: ImageFormat) {\n return this.withOptions({format})\n }\n\n invert(invert: boolean) {\n return this.withOptions({invert})\n }\n\n // Rotation in degrees 0, 90, 180, 270\n orientation(orientation: Orientation) {\n return this.withOptions({orientation})\n }\n\n // Compression quality 0-100\n quality(quality: number) {\n return this.withOptions({quality})\n }\n\n // Make it a download link. Parameter is default filename.\n forceDownload(download: boolean | string) {\n return this.withOptions({download})\n }\n\n // Flip image horizontally\n flipHorizontal() {\n return this.withOptions({flipHorizontal: true})\n }\n\n // Flip image vertically\n flipVertical() {\n return this.withOptions({flipVertical: true})\n }\n\n // Ignore crop/hotspot from image record, even when present\n ignoreImageParams() {\n return this.withOptions({ignoreImageParams: true})\n }\n\n fit(value: FitMode) {\n if (validFits.indexOf(value) === -1) {\n throw new Error(`Invalid fit mode \"${value}\"`)\n }\n\n return this.withOptions({fit: value})\n }\n\n crop(value: CropMode) {\n if (validCrops.indexOf(value) === -1) {\n throw new Error(`Invalid crop mode \"${value}\"`)\n }\n\n return this.withOptions({crop: value})\n }\n\n // Saturation\n saturation(saturation: number) {\n return this.withOptions({saturation})\n }\n\n auto(value: AutoMode) {\n if (validAutoModes.indexOf(value) === -1) {\n throw new Error(`Invalid auto mode \"${value}\"`)\n }\n\n return this.withOptions({auto: value})\n }\n\n // Specify the number of pixels to pad the image\n pad(pad: number) {\n return this.withOptions({pad})\n }\n\n // Gets the url based on the submitted parameters\n url() {\n return urlForImage(this.options)\n }\n\n // Alias for url()\n toString() {\n return this.url()\n }\n}\n","exports.map = require('rxjs/internal/operators/map').map\n","\"use strict\";\n\nvar assign = require('object-assign');\n\nvar validate = require('../validators');\n\nfunction DatasetsClient(client) {\n this.request = client.request.bind(client);\n}\n\nassign(DatasetsClient.prototype, {\n create: function create(name, options) {\n return this._modify('PUT', name, options);\n },\n edit: function edit(name, options) {\n return this._modify('PATCH', name, options);\n },\n delete: function _delete(name) {\n return this._modify('DELETE', name);\n },\n list: function list() {\n return this.request({\n uri: '/datasets'\n });\n },\n _modify: function _modify(method, name, body) {\n validate.dataset(name);\n return this.request({\n method: method,\n uri: \"/datasets/\".concat(name),\n body: body\n });\n }\n});\nmodule.exports = DatasetsClient;","const global = require('../util/global')\nconst objectAssign = require('object-assign')\n\nmodule.exports = (opts = {}) => {\n const Observable = opts.implementation || global.Observable\n if (!Observable) {\n throw new Error(\n '`Observable` is not available in global scope, and no implementation was passed'\n )\n }\n\n return {\n onReturn: (channels, context) =>\n new Observable(observer => {\n channels.error.subscribe(err => observer.error(err))\n channels.progress.subscribe(event => observer.next(objectAssign({type: 'progress'}, event)))\n channels.response.subscribe(response => {\n observer.next(objectAssign({type: 'response'}, response))\n observer.complete()\n })\n\n channels.request.publish(context)\n return () => channels.abort.publish()\n })\n }\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.min.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","export const isArray = (() => Array.isArray || ((x: any): x is T[] => x && typeof x.length === 'number'))();\n","module.exports = require('./node-request')\n","const defaultMarks = ['strong', 'em', 'code', 'underline', 'strike-through']\n\nconst buildMarksTree = block => {\n const {children, markDefs} = block\n if (!children || !children.length) {\n return []\n }\n\n const sortedMarks = children.map(sortMarksByOccurences)\n const rootNode = {_type: 'span', children: []}\n let nodeStack = [rootNode]\n\n children.forEach((span, i) => {\n const marksNeeded = sortedMarks[i]\n if (!marksNeeded) {\n const lastNode = nodeStack[nodeStack.length - 1]\n lastNode.children.push(span)\n return\n }\n\n let pos = 1\n\n // Start at position one. Root is always plain and should never be removed. (?)\n if (nodeStack.length > 1) {\n for (pos; pos < nodeStack.length; pos++) {\n const mark = nodeStack[pos].markKey\n const index = marksNeeded.indexOf(mark)\n // eslint-disable-next-line max-depth\n if (index === -1) {\n break\n }\n\n marksNeeded.splice(index, 1)\n }\n }\n\n // Keep from beginning to first miss\n nodeStack = nodeStack.slice(0, pos)\n\n // Add needed nodes\n let currentNode = findLastParentNode(nodeStack)\n marksNeeded.forEach(mark => {\n const node = {\n _type: 'span',\n _key: span._key,\n children: [],\n mark: markDefs.find(def => def._key === mark) || mark,\n markKey: mark\n }\n\n currentNode.children.push(node)\n nodeStack.push(node)\n currentNode = node\n })\n\n // Split at newlines to make individual line chunks, but keep newline\n // characters as individual elements in the array. We use these characters\n // in the span serializer to trigger hard-break rendering\n if (isTextSpan(span)) {\n const lines = span.text.split('\\n')\n for (let line = lines.length; line-- > 1; ) {\n lines.splice(line, 0, '\\n')\n }\n\n currentNode.children = currentNode.children.concat(lines)\n } else {\n currentNode.children = currentNode.children.concat(span)\n }\n })\n\n return rootNode.children\n}\n\n// We want to sort all the marks of all the spans in the following order:\n// 1. Marks that are shared amongst the most adjacent siblings\n// 2. Non-default marks (links, custom metadata)\n// 3. Built-in, plain marks (bold, emphasis, code etc)\nfunction sortMarksByOccurences(span, i, spans) {\n if (!span.marks || span.marks.length === 0) {\n return span.marks || []\n }\n\n const markOccurences = span.marks.reduce((occurences, mark) => {\n occurences[mark] = occurences[mark] ? occurences[mark] + 1 : 1\n\n for (let siblingIndex = i + 1; siblingIndex < spans.length; siblingIndex++) {\n const sibling = spans[siblingIndex]\n\n if (sibling.marks && Array.isArray(sibling.marks) && sibling.marks.indexOf(mark) !== -1) {\n occurences[mark]++\n } else {\n break\n }\n }\n\n return occurences\n }, {})\n\n const sortByOccurence = sortMarks.bind(null, markOccurences)\n\n // Slicing because sort() mutates the input\n return span.marks.slice().sort(sortByOccurence)\n}\n\nfunction sortMarks(occurences, markA, markB) {\n const aOccurences = occurences[markA] || 0\n const bOccurences = occurences[markB] || 0\n\n if (aOccurences !== bOccurences) {\n return bOccurences - aOccurences\n }\n\n const aDefaultPos = defaultMarks.indexOf(markA)\n const bDefaultPos = defaultMarks.indexOf(markB)\n\n // Sort default marks last\n if (aDefaultPos !== bDefaultPos) {\n return aDefaultPos - bDefaultPos\n }\n\n // Sort other marks simply by key\n if (markA < markB) {\n return -1\n } else if (markA > markB) {\n return 1\n }\n\n return 0\n}\n\nfunction isTextSpan(node) {\n return (\n node._type === 'span' &&\n typeof node.text === 'string' &&\n (Array.isArray(node.marks) || typeof node.marks === 'undefined')\n )\n}\n\nfunction findLastParentNode(nodes) {\n for (let i = nodes.length - 1; i >= 0; i--) {\n const node = nodes[i]\n if (node._type === 'span' && node.children) {\n return node\n }\n }\n\n return undefined\n}\n\nmodule.exports = buildMarksTree\n","import { Operator } from '../Operator';\nimport { Subscriber } from '../Subscriber';\nimport { ArgumentOutOfRangeError } from '../util/ArgumentOutOfRangeError';\nimport { empty } from '../observable/empty';\nimport { Observable } from '../Observable';\nimport { MonoTypeOperatorFunction, TeardownLogic } from '../types';\n\n/**\n * Emits only the last `count` values emitted by the source Observable.\n *\n * Remembers the latest `count` values, then emits those\n * only when the source completes.\n *\n * ![](takeLast.png)\n *\n * `takeLast` returns an Observable that emits at most the last `count` values\n * emitted by the source Observable. If the source emits fewer than `count`\n * values then all of its values are emitted. This operator must wait until the\n * `complete` notification emission from the source in order to emit the `next`\n * values on the output Observable, because otherwise it is impossible to know\n * whether or not more values will be emitted on the source. For this reason,\n * all values are emitted synchronously, followed by the complete notification.\n *\n * ## Example\n * Take the last 3 values of an Observable with many values\n * ```ts\n * import { range } from 'rxjs';\n * import { takeLast } from 'rxjs/operators';\n *\n * const many = range(1, 100);\n * const lastThree = many.pipe(takeLast(3));\n * lastThree.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link take}\n * @see {@link takeUntil}\n * @see {@link takeWhile}\n * @see {@link skip}\n *\n * @throws {ArgumentOutOfRangeError} When using `takeLast(i)`, it delivers an\n * ArgumentOutOrRangeError to the Observer's `error` callback if `i < 0`.\n *\n * @param {number} count The maximum number of values to emit from the end of\n * the sequence of values emitted by the source Observable.\n * @return {Observable} An Observable that emits at most the last count\n * values emitted by the source Observable.\n * @method takeLast\n * @owner Observable\n */\nexport function takeLast(count: number): MonoTypeOperatorFunction {\n return function takeLastOperatorFunction(source: Observable): Observable {\n if (count === 0) {\n return empty();\n } else {\n return source.lift(new TakeLastOperator(count));\n }\n };\n}\n\nclass TakeLastOperator implements Operator {\n constructor(private total: number) {\n if (this.total < 0) {\n throw new ArgumentOutOfRangeError;\n }\n }\n\n call(subscriber: Subscriber, source: any): TeardownLogic {\n return source.subscribe(new TakeLastSubscriber(subscriber, this.total));\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass TakeLastSubscriber extends Subscriber {\n private ring: Array = new Array();\n private count: number = 0;\n\n constructor(destination: Subscriber, private total: number) {\n super(destination);\n }\n\n protected _next(value: T): void {\n const ring = this.ring;\n const total = this.total;\n const count = this.count++;\n\n if (ring.length < total) {\n ring.push(value);\n } else {\n const index = count % total;\n ring[index] = value;\n }\n }\n\n protected _complete(): void {\n const destination = this.destination;\n let count = this.count;\n\n if (count > 0) {\n const total = this.count >= this.total ? this.total : this.count;\n const ring = this.ring;\n\n for (let i = 0; i < total; i++) {\n const idx = (count++) % total;\n destination.next(ring[idx]);\n }\n }\n\n destination.complete();\n }\n}\n","module.exports = middleware => {\n const applyMiddleware = (hook, defaultValue, ...args) => {\n const bailEarly = hook === 'onError'\n\n let value = defaultValue\n for (let i = 0; i < middleware[hook].length; i++) {\n const handler = middleware[hook][i]\n value = handler(value, ...args)\n\n if (bailEarly && !value) {\n break\n }\n }\n\n return value\n }\n\n return applyMiddleware\n}\n","module.exports = require('./lib/SanityObservableMinimal')\n","const objectAssign = require('object-assign')\n\n/* eslint-disable max-depth, complexity */\nfunction nestLists(blocks, mode = 'html') {\n const tree = []\n let currentList\n\n for (let i = 0; i < blocks.length; i++) {\n const block = blocks[i]\n if (!isListBlock(block)) {\n tree.push(block)\n currentList = null\n continue\n }\n\n // Start of a new list?\n if (!currentList) {\n currentList = listFromBlock(block)\n tree.push(currentList)\n continue\n }\n\n // New list item within same list?\n if (blockMatchesList(block, currentList)) {\n currentList.children.push(block)\n continue\n }\n\n // Different list props, are we going deeper?\n if (block.level > currentList.level) {\n const newList = listFromBlock(block)\n\n if (mode === 'html') {\n // Because HTML is kinda weird, nested lists needs to be nested within list items\n // So while you would think that we could populate the parent list with a new sub-list,\n // We actually have to target the last list element (child) of the parent.\n // However, at this point we need to be very careful - simply pushing to the list of children\n // will mutate the input, and we don't want to blindly clone the entire tree.\n\n // Clone the last child while adding our new list as the last child of it\n const lastListItem = lastChild(currentList)\n const newLastChild = objectAssign({}, lastListItem, {\n children: lastListItem.children.concat(newList)\n })\n\n // Swap the last child\n currentList.children[currentList.children.length - 1] = newLastChild\n } else {\n currentList.children.push(newList)\n }\n\n // Set the newly created, deeper list as the current\n currentList = newList\n continue\n }\n\n // Different list props, are we going back up the tree?\n if (block.level < currentList.level) {\n // Current list has ended, and we need to hook up with a parent of the same level and type\n const match = findListMatching(tree[tree.length - 1], block)\n if (match) {\n currentList = match\n currentList.children.push(block)\n continue\n }\n\n // Similar parent can't be found, assume new list\n currentList = listFromBlock(block)\n tree.push(currentList)\n continue\n }\n\n // Different list props, different list style?\n if (block.listItem !== currentList.listItem) {\n const match = findListMatching(tree[tree.length - 1], {level: block.level})\n if (match && match.listItem === block.listItem) {\n currentList = match\n currentList.children.push(block)\n continue\n } else {\n currentList = listFromBlock(block)\n tree.push(currentList)\n continue\n }\n }\n\n // eslint-disable-next-line no-console\n console.warn('Unknown state encountered for block', block)\n tree.push(block)\n }\n\n return tree\n}\n\nfunction isListBlock(block) {\n return Boolean(block.listItem)\n}\n\nfunction blockMatchesList(block, list) {\n return block.level === list.level && block.listItem === list.listItem\n}\n\nfunction listFromBlock(block) {\n return {\n _type: 'list',\n _key: `${block._key}-parent`,\n level: block.level,\n listItem: block.listItem,\n children: [block]\n }\n}\n\nfunction lastChild(block) {\n return block.children && block.children[block.children.length - 1]\n}\n\nfunction findListMatching(rootNode, matching) {\n const filterOnType = typeof matching.listItem === 'string'\n if (\n rootNode._type === 'list' &&\n rootNode.level === matching.level &&\n (filterOnType && rootNode.listItem === matching.listItem)\n ) {\n return rootNode\n }\n\n const node = lastChild(rootNode)\n if (!node) {\n return false\n }\n\n return findListMatching(node, matching)\n}\n\nmodule.exports = nestLists\n","\"use strict\";\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar deepAssign = require('deep-assign');\n\nvar assign = require('object-assign');\n\nvar getSelection = require('../util/getSelection');\n\nvar validate = require('../validators');\n\nvar validateObject = validate.validateObject;\nvar validateInsert = validate.validateInsert;\n\nfunction Patch(selection) {\n var operations = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var client = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n this.selection = selection;\n this.operations = assign({}, operations);\n this.client = client;\n}\n\nassign(Patch.prototype, {\n clone: function clone() {\n return new Patch(this.selection, assign({}, this.operations), this.client);\n },\n merge: function merge(props) {\n validateObject('merge', props);\n var stack = new Error().stack.toString().split('\\n').filter(function (str) {\n return str.trim();\n }).slice(2);\n console.warn(\"The \\\"merge\\\" patch has been deprecated and will be removed in the future\\n\".concat(stack.join('\\n')));\n return this._assign('merge', deepAssign(this.operations.merge || {}, props));\n },\n set: function set(props) {\n return this._assign('set', props);\n },\n diffMatchPatch: function diffMatchPatch(props) {\n validateObject('diffMatchPatch', props);\n return this._assign('diffMatchPatch', props);\n },\n unset: function unset(attrs) {\n if (!Array.isArray(attrs)) {\n throw new Error('unset(attrs) takes an array of attributes to unset, non-array given');\n }\n\n this.operations = assign({}, this.operations, {\n unset: attrs\n });\n return this;\n },\n setIfMissing: function setIfMissing(props) {\n return this._assign('setIfMissing', props);\n },\n replace: function replace(props) {\n validateObject('replace', props);\n return this._set('set', {\n $: props\n }); // eslint-disable-line id-length\n },\n inc: function inc(props) {\n return this._assign('inc', props);\n },\n dec: function dec(props) {\n return this._assign('dec', props);\n },\n insert: function insert(at, selector, items) {\n var _this$_assign;\n\n validateInsert(at, selector, items);\n return this._assign('insert', (_this$_assign = {}, _defineProperty(_this$_assign, at, selector), _defineProperty(_this$_assign, \"items\", items), _this$_assign));\n },\n append: function append(selector, items) {\n return this.insert('after', \"\".concat(selector, \"[-1]\"), items);\n },\n prepend: function prepend(selector, items) {\n return this.insert('before', \"\".concat(selector, \"[0]\"), items);\n },\n splice: function splice(selector, start, deleteCount, items) {\n // Negative indexes doesn't mean the same in Sanity as they do in JS;\n // -1 means \"actually at the end of the array\", which allows inserting\n // at the end of the array without knowing its length. We therefore have\n // to substract negative indexes by one to match JS. If you want Sanity-\n // behaviour, just use `insert('replace', selector, items)` directly\n var delAll = typeof deleteCount === 'undefined' || deleteCount === -1;\n var startIndex = start < 0 ? start - 1 : start;\n var delCount = delAll ? -1 : Math.max(0, start + deleteCount);\n var delRange = startIndex < 0 && delCount >= 0 ? '' : delCount;\n var rangeSelector = \"\".concat(selector, \"[\").concat(startIndex, \":\").concat(delRange, \"]\");\n return this.insert('replace', rangeSelector, items || []);\n },\n ifRevisionId: function ifRevisionId(rev) {\n this.operations.ifRevisionID = rev;\n return this;\n },\n serialize: function serialize() {\n return assign(getSelection(this.selection), this.operations);\n },\n toJSON: function toJSON() {\n return this.serialize();\n },\n commit: function commit() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n if (!this.client) {\n throw new Error('No `client` passed to patch, either provide one or pass the ' + 'patch to a clients `mutate()` method');\n }\n\n var returnFirst = typeof this.selection === 'string';\n var opts = assign({\n returnFirst: returnFirst,\n returnDocuments: true\n }, options);\n return this.client.mutate({\n patch: this.serialize()\n }, opts);\n },\n reset: function reset() {\n this.operations = {};\n return this;\n },\n _set: function _set(op, props) {\n return this._assign(op, props, false);\n },\n _assign: function _assign(op, props) {\n var merge = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n validateObject(op, props);\n this.operations = assign({}, this.operations, _defineProperty({}, op, assign({}, merge && this.operations[op] || {}, props)));\n return this;\n }\n});\nmodule.exports = Patch;","\"use strict\";\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar assign = require('object-assign');\n\nvar _require = require('@sanity/observable/operators/filter'),\n filter = _require.filter;\n\nvar _require2 = require('@sanity/observable/operators/map'),\n map = _require2.map;\n\nvar validators = require('../validators');\n\nvar getSelection = require('../util/getSelection');\n\nvar encodeQueryString = require('./encodeQueryString');\n\nvar Transaction = require('./transaction');\n\nvar Patch = require('./patch');\n\nvar listen = require('./listen');\n\nvar excludeFalsey = function excludeFalsey(param, defValue) {\n var value = typeof param === 'undefined' ? defValue : param;\n return param === false ? undefined : value;\n};\n\nvar getMutationQuery = function getMutationQuery() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n return {\n returnIds: true,\n returnDocuments: excludeFalsey(options.returnDocuments, true),\n visibility: options.visibility || 'sync'\n };\n};\n\nvar isResponse = function isResponse(event) {\n return event.type === 'response';\n};\n\nvar getBody = function getBody(event) {\n return event.body;\n};\n\nvar indexBy = function indexBy(docs, attr) {\n return docs.reduce(function (indexed, doc) {\n indexed[attr(doc)] = doc;\n return indexed;\n }, Object.create(null));\n};\n\nvar toPromise = function toPromise(observable) {\n return observable.toPromise();\n};\n\nvar getQuerySizeLimit = 11264;\nmodule.exports = {\n listen: listen,\n getDataUrl: function getDataUrl(operation, path) {\n var config = this.clientConfig;\n var catalog = config.gradientMode ? config.namespace : validators.hasDataset(config);\n var baseUri = \"/\".concat(operation, \"/\").concat(catalog);\n var uri = path ? \"\".concat(baseUri, \"/\").concat(path) : baseUri;\n return (this.clientConfig.gradientMode ? uri : \"/data\".concat(uri)).replace(/\\/($|\\?)/, '$1');\n },\n fetch: function fetch(query, params) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var mapResponse = options.filterResponse === false ? function (res) {\n return res;\n } : function (res) {\n return res.result;\n };\n\n var observable = this._dataRequest('query', {\n query: query,\n params: params\n }, options).pipe(map(mapResponse));\n\n return this.isPromiseAPI() ? toPromise(observable) : observable;\n },\n getDocument: function getDocument(id) {\n var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var options = {\n uri: this.getDataUrl('doc', id),\n json: true,\n tag: opts.tag\n };\n\n var observable = this._requestObservable(options).pipe(filter(isResponse), map(function (event) {\n return event.body.documents && event.body.documents[0];\n }));\n\n return this.isPromiseAPI() ? toPromise(observable) : observable;\n },\n getDocuments: function getDocuments(ids) {\n var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var options = {\n uri: this.getDataUrl('doc', ids.join(',')),\n json: true,\n tag: opts.tag\n };\n\n var observable = this._requestObservable(options).pipe(filter(isResponse), map(function (event) {\n var indexed = indexBy(event.body.documents || [], function (doc) {\n return doc._id;\n });\n return ids.map(function (id) {\n return indexed[id] || null;\n });\n }));\n\n return this.isPromiseAPI() ? toPromise(observable) : observable;\n },\n create: function create(doc, options) {\n return this._create(doc, 'create', options);\n },\n createIfNotExists: function createIfNotExists(doc, options) {\n validators.requireDocumentId('createIfNotExists', doc);\n return this._create(doc, 'createIfNotExists', options);\n },\n createOrReplace: function createOrReplace(doc, options) {\n validators.requireDocumentId('createOrReplace', doc);\n return this._create(doc, 'createOrReplace', options);\n },\n patch: function patch(selector, operations) {\n return new Patch(selector, operations, this);\n },\n delete: function _delete(selection, options) {\n return this.dataRequest('mutate', {\n mutations: [{\n delete: getSelection(selection)\n }]\n }, options);\n },\n mutate: function mutate(mutations, options) {\n var mut = mutations instanceof Patch || mutations instanceof Transaction ? mutations.serialize() : mutations;\n var muts = Array.isArray(mut) ? mut : [mut];\n var transactionId = options && options.transactionId;\n return this.dataRequest('mutate', {\n mutations: muts,\n transactionId: transactionId\n }, options);\n },\n transaction: function transaction(operations) {\n return new Transaction(operations, this);\n },\n dataRequest: function dataRequest(endpoint, body) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n var request = this._dataRequest(endpoint, body, options);\n\n return this.isPromiseAPI() ? toPromise(request) : request;\n },\n _dataRequest: function _dataRequest(endpoint, body) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var isMutation = endpoint === 'mutate';\n var isQuery = endpoint === 'query'; // Check if the query string is within a configured threshold,\n // in which case we can use GET. Otherwise, use POST.\n\n var strQuery = !isMutation && encodeQueryString(body);\n var useGet = !isMutation && strQuery.length < getQuerySizeLimit;\n var stringQuery = useGet ? strQuery : '';\n var returnFirst = options.returnFirst;\n var timeout = options.timeout,\n token = options.token,\n tag = options.tag;\n var uri = this.getDataUrl(endpoint, stringQuery);\n var reqOptions = {\n method: useGet ? 'GET' : 'POST',\n uri: uri,\n json: true,\n body: useGet ? undefined : body,\n query: isMutation && getMutationQuery(options),\n timeout: timeout,\n token: token,\n tag: tag,\n canUseCdn: isQuery\n };\n return this._requestObservable(reqOptions).pipe(filter(isResponse), map(getBody), map(function (res) {\n if (!isMutation) {\n return res;\n } // Should we return documents?\n\n\n var results = res.results || [];\n\n if (options.returnDocuments) {\n return returnFirst ? results[0] && results[0].document : results.map(function (mut) {\n return mut.document;\n });\n } // Return a reduced subset\n\n\n var key = returnFirst ? 'documentId' : 'documentIds';\n var ids = returnFirst ? results[0] && results[0].id : results.map(function (mut) {\n return mut.id;\n });\n return _defineProperty({\n transactionId: res.transactionId,\n results: results\n }, key, ids);\n }));\n },\n _create: function _create(doc, op) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n var mutation = _defineProperty({}, op, doc);\n\n var opts = assign({\n returnFirst: true,\n returnDocuments: true\n }, options);\n return this.dataRequest('mutate', {\n mutations: [mutation]\n }, opts);\n }\n};","const objectAssign = require('object-assign')\nconst isPlainObject = require('is-plain-object')\n\nconst serializeTypes = ['boolean', 'string', 'number']\nconst isBuffer = obj =>\n !!obj.constructor &&\n typeof obj.constructor.isBuffer === 'function' &&\n obj.constructor.isBuffer(obj)\n\nmodule.exports = () => ({\n processOptions: options => {\n const body = options.body\n if (!body) {\n return options\n }\n\n const isStream = typeof body.pipe === 'function'\n const shouldSerialize =\n !isStream &&\n !isBuffer(body) &&\n (serializeTypes.indexOf(typeof body) !== -1 || Array.isArray(body) || isPlainObject(body))\n\n if (!shouldSerialize) {\n return options\n }\n\n return objectAssign({}, options, {\n body: JSON.stringify(options.body),\n headers: objectAssign({}, options.headers, {\n 'Content-Type': 'application/json'\n })\n })\n }\n})\n","// ISC @ Julien Fontanet\n\n\"use strict\";\n\n// ===================================================================\n\nvar construct = typeof Reflect !== \"undefined\" ? Reflect.construct : undefined;\nvar defineProperty = Object.defineProperty;\n\n// -------------------------------------------------------------------\n\nvar captureStackTrace = Error.captureStackTrace;\nif (captureStackTrace === undefined) {\n captureStackTrace = function captureStackTrace(error) {\n var container = new Error();\n\n defineProperty(error, \"stack\", {\n configurable: true,\n get: function getStack() {\n var stack = container.stack;\n\n // Replace property with value for faster future accesses.\n defineProperty(this, \"stack\", {\n configurable: true,\n value: stack,\n writable: true,\n });\n\n return stack;\n },\n set: function setStack(stack) {\n defineProperty(error, \"stack\", {\n configurable: true,\n value: stack,\n writable: true,\n });\n },\n });\n };\n}\n\n// -------------------------------------------------------------------\n\nfunction BaseError(message) {\n if (message !== undefined) {\n defineProperty(this, \"message\", {\n configurable: true,\n value: message,\n writable: true,\n });\n }\n\n var cname = this.constructor.name;\n if (cname !== undefined && cname !== this.name) {\n defineProperty(this, \"name\", {\n configurable: true,\n value: cname,\n writable: true,\n });\n }\n\n captureStackTrace(this, this.constructor);\n}\n\nBaseError.prototype = Object.create(Error.prototype, {\n // See: https://github.com/JsCommunity/make-error/issues/4\n constructor: {\n configurable: true,\n value: BaseError,\n writable: true,\n },\n});\n\n// -------------------------------------------------------------------\n\n// Sets the name of a function if possible (depends of the JS engine).\nvar setFunctionName = (function() {\n function setFunctionName(fn, name) {\n return defineProperty(fn, \"name\", {\n configurable: true,\n value: name,\n });\n }\n try {\n var f = function() {};\n setFunctionName(f, \"foo\");\n if (f.name === \"foo\") {\n return setFunctionName;\n }\n } catch (_) {}\n})();\n\n// -------------------------------------------------------------------\n\nfunction makeError(constructor, super_) {\n if (super_ == null || super_ === Error) {\n super_ = BaseError;\n } else if (typeof super_ !== \"function\") {\n throw new TypeError(\"super_ should be a function\");\n }\n\n var name;\n if (typeof constructor === \"string\") {\n name = constructor;\n constructor =\n construct !== undefined\n ? function() {\n return construct(super_, arguments, this.constructor);\n }\n : function() {\n super_.apply(this, arguments);\n };\n\n // If the name can be set, do it once and for all.\n if (setFunctionName !== undefined) {\n setFunctionName(constructor, name);\n name = undefined;\n }\n } else if (typeof constructor !== \"function\") {\n throw new TypeError(\"constructor should be either a string or a function\");\n }\n\n // Also register the super constructor also as `constructor.super_` just\n // like Node's `util.inherits()`.\n //\n // eslint-disable-next-line dot-notation\n constructor.super_ = constructor[\"super\"] = super_;\n\n var properties = {\n constructor: {\n configurable: true,\n value: constructor,\n writable: true,\n },\n };\n\n // If the name could not be set on the constructor, set it on the\n // prototype.\n if (name !== undefined) {\n properties.name = {\n configurable: true,\n value: name,\n writable: true,\n };\n }\n constructor.prototype = Object.create(super_.prototype, properties);\n\n return constructor;\n}\nexports = module.exports = makeError;\nexports.BaseError = BaseError;\n","/** @license React v17.0.2\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';require(\"object-assign\");var f=require(\"react\"),g=60103;exports.Fragment=60107;if(\"function\"===typeof Symbol&&Symbol.for){var h=Symbol.for;g=h(\"react.element\");exports.Fragment=h(\"react.fragment\")}var m=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,n=Object.prototype.hasOwnProperty,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,k){var b,d={},e=null,l=null;void 0!==k&&(e=\"\"+k);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(l=a.ref);for(b in a)n.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:g,type:c,key:e,ref:l,props:d,_owner:m.current}}exports.jsx=q;exports.jsxs=q;\n","const validUrl = /^https?:\\/\\//i\n\nmodule.exports = options => {\n if (!validUrl.test(options.url)) {\n throw new Error(`\"${options.url}\" is not a valid URL`)\n }\n}\n","/**\n * This file is only used for the browser version of `same-origin`.\n * Used to bring down the size of the browser bundle.\n */\n'use strict';\n\nvar regex = /^(?:(?:(?:([^:\\/#\\?]+:)?(?:(?:\\/\\/)((?:((?:[^:@\\/#\\?]+)(?:\\:(?:[^:@\\/#\\?]+))?)@)?(([^:\\/#\\?\\]\\[]+|\\[[^\\/\\]@#?]+\\])(?:\\:([0-9]+))?))?)?)?((?:\\/?(?:[^\\/\\?#]+\\/+)*)(?:[^\\?#]*)))?(\\?[^#]+)?)(#.*)?/;\n\nmodule.exports = {\n regex: regex,\n parse: function(url) {\n var match = regex.exec(url);\n if (!match) {\n return {};\n }\n\n return {\n protocol: (match[1] || '').toLowerCase() || undefined,\n hostname: (match[5] || '').toLowerCase() || undefined,\n port: match[6] || undefined\n };\n }\n};","'use strict';\nvar isObj = require('is-obj');\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Sources cannot be null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction assignKey(to, from, key) {\n\tvar val = from[key];\n\n\tif (val === undefined || val === null) {\n\t\treturn;\n\t}\n\n\tif (hasOwnProperty.call(to, key)) {\n\t\tif (to[key] === undefined || to[key] === null) {\n\t\t\tthrow new TypeError('Cannot convert undefined or null to object (' + key + ')');\n\t\t}\n\t}\n\n\tif (!hasOwnProperty.call(to, key) || !isObj(val)) {\n\t\tto[key] = val;\n\t} else {\n\t\tto[key] = assign(Object(to[key]), from[key]);\n\t}\n}\n\nfunction assign(to, from) {\n\tif (to === from) {\n\t\treturn to;\n\t}\n\n\tfrom = Object(from);\n\n\tfor (var key in from) {\n\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\tassignKey(to, from, key);\n\t\t}\n\t}\n\n\tif (Object.getOwnPropertySymbols) {\n\t\tvar symbols = Object.getOwnPropertySymbols(from);\n\n\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\tassignKey(to, from, symbols[i]);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n}\n\nmodule.exports = function deepAssign(target) {\n\ttarget = toObject(target);\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tassign(target, arguments[s]);\n\t}\n\n\treturn target;\n};\n","'use strict';\n\n/**\n * Check if we're required to add a port number.\n *\n * @see https://url.spec.whatwg.org/#default-port\n * @param {Number|String} port Port number we need to check\n * @param {String} protocol Protocol we need to check against.\n * @returns {Boolean} Is it a default port for the given protocol\n * @api private\n */\nmodule.exports = function required(port, protocol) {\n protocol = protocol.split(':')[0];\n port = +port;\n\n if (!port) return false;\n\n switch (protocol) {\n case 'http':\n case 'ws':\n return port !== 80;\n\n case 'https':\n case 'wss':\n return port !== 443;\n\n case 'ftp':\n return port !== 21;\n\n case 'gopher':\n return port !== 70;\n\n case 'file':\n return false;\n }\n\n return port !== 0;\n};\n","/* eslint-disable no-negated-condition */\nif (typeof window !== 'undefined') {\n module.exports = window\n} else if (typeof global !== 'undefined') {\n module.exports = global\n} else if (typeof self !== 'undefined') {\n module.exports = self\n} else {\n module.exports = {}\n}\n","////////////////////////////////////////////////////////////////////////////////\n//#region Types and Constants\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Actions represent the type of change to a location value.\n */\nexport enum Action {\n /**\n * A POP indicates a change to an arbitrary index in the history stack, such\n * as a back or forward navigation. It does not describe the direction of the\n * navigation, only that the current index changed.\n *\n * Note: This is the default action for newly created history objects.\n */\n Pop = \"POP\",\n\n /**\n * A PUSH indicates a new entry being added to the history stack, such as when\n * a link is clicked and a new page loads. When this happens, all subsequent\n * entries in the stack are lost.\n */\n Push = \"PUSH\",\n\n /**\n * A REPLACE indicates the entry at the current index in the history stack\n * being replaced by a new one.\n */\n Replace = \"REPLACE\",\n}\n\n/**\n * The pathname, search, and hash values of a URL.\n */\nexport interface Path {\n /**\n * A URL pathname, beginning with a /.\n */\n pathname: string;\n\n /**\n * A URL search string, beginning with a ?.\n */\n search: string;\n\n /**\n * A URL fragment identifier, beginning with a #.\n */\n hash: string;\n}\n\n// TODO: (v7) Change the Location generic default from `any` to `unknown` and\n// remove Remix `useLocation` wrapper.\n\n/**\n * An entry in a history stack. A location contains information about the\n * URL path, as well as possibly some arbitrary state and a key.\n */\nexport interface Location extends Path {\n /**\n * A value of arbitrary data associated with this location.\n */\n state: State;\n\n /**\n * A unique string associated with this location. May be used to safely store\n * and retrieve data in some other storage API, like `localStorage`.\n *\n * Note: This value is always \"default\" on the initial location.\n */\n key: string;\n}\n\n/**\n * A change to the current location.\n */\nexport interface Update {\n /**\n * The action that triggered the change.\n */\n action: Action;\n\n /**\n * The new location.\n */\n location: Location;\n\n /**\n * The delta between this location and the former location in the history stack\n */\n delta: number | null;\n}\n\n/**\n * A function that receives notifications about location changes.\n */\nexport interface Listener {\n (update: Update): void;\n}\n\n/**\n * Describes a location that is the destination of some navigation, either via\n * `history.push` or `history.replace`. This may be either a URL or the pieces\n * of a URL path.\n */\nexport type To = string | Partial;\n\n/**\n * A history is an interface to the navigation stack. The history serves as the\n * source of truth for the current location, as well as provides a set of\n * methods that may be used to change it.\n *\n * It is similar to the DOM's `window.history` object, but with a smaller, more\n * focused API.\n */\nexport interface History {\n /**\n * The last action that modified the current location. This will always be\n * Action.Pop when a history instance is first created. This value is mutable.\n */\n readonly action: Action;\n\n /**\n * The current location. This value is mutable.\n */\n readonly location: Location;\n\n /**\n * Returns a valid href for the given `to` value that may be used as\n * the value of an attribute.\n *\n * @param to - The destination URL\n */\n createHref(to: To): string;\n\n /**\n * Returns a URL for the given `to` value\n *\n * @param to - The destination URL\n */\n createURL(to: To): URL;\n\n /**\n * Encode a location the same way window.history would do (no-op for memory\n * history) so we ensure our PUSH/REPLACE navigations for data routers\n * behave the same as POP\n *\n * @param to Unencoded path\n */\n encodeLocation(to: To): Path;\n\n /**\n * Pushes a new location onto the history stack, increasing its length by one.\n * If there were any entries in the stack after the current one, they are\n * lost.\n *\n * @param to - The new URL\n * @param state - Data to associate with the new location\n */\n push(to: To, state?: any): void;\n\n /**\n * Replaces the current location in the history stack with a new one. The\n * location that was replaced will no longer be available.\n *\n * @param to - The new URL\n * @param state - Data to associate with the new location\n */\n replace(to: To, state?: any): void;\n\n /**\n * Navigates `n` entries backward/forward in the history stack relative to the\n * current index. For example, a \"back\" navigation would use go(-1).\n *\n * @param delta - The delta in the stack index\n */\n go(delta: number): void;\n\n /**\n * Sets up a listener that will be called whenever the current location\n * changes.\n *\n * @param listener - A function that will be called when the location changes\n * @returns unlisten - A function that may be used to stop listening\n */\n listen(listener: Listener): () => void;\n}\n\ntype HistoryState = {\n usr: any;\n key?: string;\n idx: number;\n};\n\nconst PopStateEventType = \"popstate\";\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Memory History\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A user-supplied object that describes a location. Used when providing\n * entries to `createMemoryHistory` via its `initialEntries` option.\n */\nexport type InitialEntry = string | Partial;\n\nexport type MemoryHistoryOptions = {\n initialEntries?: InitialEntry[];\n initialIndex?: number;\n v5Compat?: boolean;\n};\n\n/**\n * A memory history stores locations in memory. This is useful in stateful\n * environments where there is no web browser, such as node tests or React\n * Native.\n */\nexport interface MemoryHistory extends History {\n /**\n * The current index in the history stack.\n */\n readonly index: number;\n}\n\n/**\n * Memory history stores the current location in memory. It is designed for use\n * in stateful non-browser environments like tests and React Native.\n */\nexport function createMemoryHistory(\n options: MemoryHistoryOptions = {}\n): MemoryHistory {\n let { initialEntries = [\"/\"], initialIndex, v5Compat = false } = options;\n let entries: Location[]; // Declare so we can access from createMemoryLocation\n entries = initialEntries.map((entry, index) =>\n createMemoryLocation(\n entry,\n typeof entry === \"string\" ? null : entry.state,\n index === 0 ? \"default\" : undefined\n )\n );\n let index = clampIndex(\n initialIndex == null ? entries.length - 1 : initialIndex\n );\n let action = Action.Pop;\n let listener: Listener | null = null;\n\n function clampIndex(n: number): number {\n return Math.min(Math.max(n, 0), entries.length - 1);\n }\n function getCurrentLocation(): Location {\n return entries[index];\n }\n function createMemoryLocation(\n to: To,\n state: any = null,\n key?: string\n ): Location {\n let location = createLocation(\n entries ? getCurrentLocation().pathname : \"/\",\n to,\n state,\n key\n );\n warning(\n location.pathname.charAt(0) === \"/\",\n `relative pathnames are not supported in memory history: ${JSON.stringify(\n to\n )}`\n );\n return location;\n }\n\n function createHref(to: To) {\n return typeof to === \"string\" ? to : createPath(to);\n }\n\n let history: MemoryHistory = {\n get index() {\n return index;\n },\n get action() {\n return action;\n },\n get location() {\n return getCurrentLocation();\n },\n createHref,\n createURL(to) {\n return new URL(createHref(to), \"http://localhost\");\n },\n encodeLocation(to: To) {\n let path = typeof to === \"string\" ? parsePath(to) : to;\n return {\n pathname: path.pathname || \"\",\n search: path.search || \"\",\n hash: path.hash || \"\",\n };\n },\n push(to, state) {\n action = Action.Push;\n let nextLocation = createMemoryLocation(to, state);\n index += 1;\n entries.splice(index, entries.length, nextLocation);\n if (v5Compat && listener) {\n listener({ action, location: nextLocation, delta: 1 });\n }\n },\n replace(to, state) {\n action = Action.Replace;\n let nextLocation = createMemoryLocation(to, state);\n entries[index] = nextLocation;\n if (v5Compat && listener) {\n listener({ action, location: nextLocation, delta: 0 });\n }\n },\n go(delta) {\n action = Action.Pop;\n let nextIndex = clampIndex(index + delta);\n let nextLocation = entries[nextIndex];\n index = nextIndex;\n if (listener) {\n listener({ action, location: nextLocation, delta });\n }\n },\n listen(fn: Listener) {\n listener = fn;\n return () => {\n listener = null;\n };\n },\n };\n\n return history;\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Browser History\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A browser history stores the current location in regular URLs in a web\n * browser environment. This is the standard for most web apps and provides the\n * cleanest URLs the browser's address bar.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#browserhistory\n */\nexport interface BrowserHistory extends UrlHistory {}\n\nexport type BrowserHistoryOptions = UrlHistoryOptions;\n\n/**\n * Browser history stores the location in regular URLs. This is the standard for\n * most web apps, but it requires some configuration on the server to ensure you\n * serve the same app at multiple URLs.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#createbrowserhistory\n */\nexport function createBrowserHistory(\n options: BrowserHistoryOptions = {}\n): BrowserHistory {\n function createBrowserLocation(\n window: Window,\n globalHistory: Window[\"history\"]\n ) {\n let { pathname, search, hash } = window.location;\n return createLocation(\n \"\",\n { pathname, search, hash },\n // state defaults to `null` because `window.history.state` does\n (globalHistory.state && globalHistory.state.usr) || null,\n (globalHistory.state && globalHistory.state.key) || \"default\"\n );\n }\n\n function createBrowserHref(window: Window, to: To) {\n return typeof to === \"string\" ? to : createPath(to);\n }\n\n return getUrlBasedHistory(\n createBrowserLocation,\n createBrowserHref,\n null,\n options\n );\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Hash History\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A hash history stores the current location in the fragment identifier portion\n * of the URL in a web browser environment.\n *\n * This is ideal for apps that do not control the server for some reason\n * (because the fragment identifier is never sent to the server), including some\n * shared hosting environments that do not provide fine-grained controls over\n * which pages are served at which URLs.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#hashhistory\n */\nexport interface HashHistory extends UrlHistory {}\n\nexport type HashHistoryOptions = UrlHistoryOptions;\n\n/**\n * Hash history stores the location in window.location.hash. This makes it ideal\n * for situations where you don't want to send the location to the server for\n * some reason, either because you do cannot configure it or the URL space is\n * reserved for something else.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#createhashhistory\n */\nexport function createHashHistory(\n options: HashHistoryOptions = {}\n): HashHistory {\n function createHashLocation(\n window: Window,\n globalHistory: Window[\"history\"]\n ) {\n let {\n pathname = \"/\",\n search = \"\",\n hash = \"\",\n } = parsePath(window.location.hash.substr(1));\n\n // Hash URL should always have a leading / just like window.location.pathname\n // does, so if an app ends up at a route like /#something then we add a\n // leading slash so all of our path-matching behaves the same as if it would\n // in a browser router. This is particularly important when there exists a\n // root splat route () since that matches internally against\n // \"/*\" and we'd expect /#something to 404 in a hash router app.\n if (!pathname.startsWith(\"/\") && !pathname.startsWith(\".\")) {\n pathname = \"/\" + pathname;\n }\n\n return createLocation(\n \"\",\n { pathname, search, hash },\n // state defaults to `null` because `window.history.state` does\n (globalHistory.state && globalHistory.state.usr) || null,\n (globalHistory.state && globalHistory.state.key) || \"default\"\n );\n }\n\n function createHashHref(window: Window, to: To) {\n let base = window.document.querySelector(\"base\");\n let href = \"\";\n\n if (base && base.getAttribute(\"href\")) {\n let url = window.location.href;\n let hashIndex = url.indexOf(\"#\");\n href = hashIndex === -1 ? url : url.slice(0, hashIndex);\n }\n\n return href + \"#\" + (typeof to === \"string\" ? to : createPath(to));\n }\n\n function validateHashLocation(location: Location, to: To) {\n warning(\n location.pathname.charAt(0) === \"/\",\n `relative pathnames are not supported in hash history.push(${JSON.stringify(\n to\n )})`\n );\n }\n\n return getUrlBasedHistory(\n createHashLocation,\n createHashHref,\n validateHashLocation,\n options\n );\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region UTILS\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * @private\n */\nexport function invariant(value: boolean, message?: string): asserts value;\nexport function invariant(\n value: T | null | undefined,\n message?: string\n): asserts value is T;\nexport function invariant(value: any, message?: string) {\n if (value === false || value === null || typeof value === \"undefined\") {\n throw new Error(message);\n }\n}\n\nexport function warning(cond: any, message: string) {\n if (!cond) {\n // eslint-disable-next-line no-console\n if (typeof console !== \"undefined\") console.warn(message);\n\n try {\n // Welcome to debugging history!\n //\n // This error is thrown as a convenience, so you can more easily\n // find the source for a warning that appears in the console by\n // enabling \"pause on exceptions\" in your JavaScript debugger.\n throw new Error(message);\n // eslint-disable-next-line no-empty\n } catch (e) {}\n }\n}\n\nfunction createKey() {\n return Math.random().toString(36).substr(2, 8);\n}\n\n/**\n * For browser-based histories, we combine the state and key into an object\n */\nfunction getHistoryState(location: Location, index: number): HistoryState {\n return {\n usr: location.state,\n key: location.key,\n idx: index,\n };\n}\n\n/**\n * Creates a Location object with a unique key from the given Path\n */\nexport function createLocation(\n current: string | Location,\n to: To,\n state: any = null,\n key?: string\n): Readonly {\n let location: Readonly = {\n pathname: typeof current === \"string\" ? current : current.pathname,\n search: \"\",\n hash: \"\",\n ...(typeof to === \"string\" ? parsePath(to) : to),\n state,\n // TODO: This could be cleaned up. push/replace should probably just take\n // full Locations now and avoid the need to run through this flow at all\n // But that's a pretty big refactor to the current test suite so going to\n // keep as is for the time being and just let any incoming keys take precedence\n key: (to && (to as Location).key) || key || createKey(),\n };\n return location;\n}\n\n/**\n * Creates a string URL path from the given pathname, search, and hash components.\n */\nexport function createPath({\n pathname = \"/\",\n search = \"\",\n hash = \"\",\n}: Partial) {\n if (search && search !== \"?\")\n pathname += search.charAt(0) === \"?\" ? search : \"?\" + search;\n if (hash && hash !== \"#\")\n pathname += hash.charAt(0) === \"#\" ? hash : \"#\" + hash;\n return pathname;\n}\n\n/**\n * Parses a string URL path into its separate pathname, search, and hash components.\n */\nexport function parsePath(path: string): Partial {\n let parsedPath: Partial = {};\n\n if (path) {\n let hashIndex = path.indexOf(\"#\");\n if (hashIndex >= 0) {\n parsedPath.hash = path.substr(hashIndex);\n path = path.substr(0, hashIndex);\n }\n\n let searchIndex = path.indexOf(\"?\");\n if (searchIndex >= 0) {\n parsedPath.search = path.substr(searchIndex);\n path = path.substr(0, searchIndex);\n }\n\n if (path) {\n parsedPath.pathname = path;\n }\n }\n\n return parsedPath;\n}\n\nexport interface UrlHistory extends History {}\n\nexport type UrlHistoryOptions = {\n window?: Window;\n v5Compat?: boolean;\n};\n\nfunction getUrlBasedHistory(\n getLocation: (window: Window, globalHistory: Window[\"history\"]) => Location,\n createHref: (window: Window, to: To) => string,\n validateLocation: ((location: Location, to: To) => void) | null,\n options: UrlHistoryOptions = {}\n): UrlHistory {\n let { window = document.defaultView!, v5Compat = false } = options;\n let globalHistory = window.history;\n let action = Action.Pop;\n let listener: Listener | null = null;\n\n let index = getIndex()!;\n // Index should only be null when we initialize. If not, it's because the\n // user called history.pushState or history.replaceState directly, in which\n // case we should log a warning as it will result in bugs.\n if (index == null) {\n index = 0;\n globalHistory.replaceState({ ...globalHistory.state, idx: index }, \"\");\n }\n\n function getIndex(): number {\n let state = globalHistory.state || { idx: null };\n return state.idx;\n }\n\n function handlePop() {\n action = Action.Pop;\n let nextIndex = getIndex();\n let delta = nextIndex == null ? null : nextIndex - index;\n index = nextIndex;\n if (listener) {\n listener({ action, location: history.location, delta });\n }\n }\n\n function push(to: To, state?: any) {\n action = Action.Push;\n let location = createLocation(history.location, to, state);\n if (validateLocation) validateLocation(location, to);\n\n index = getIndex() + 1;\n let historyState = getHistoryState(location, index);\n let url = history.createHref(location);\n\n // try...catch because iOS limits us to 100 pushState calls :/\n try {\n globalHistory.pushState(historyState, \"\", url);\n } catch (error) {\n // If the exception is because `state` can't be serialized, let that throw\n // outwards just like a replace call would so the dev knows the cause\n // https://html.spec.whatwg.org/multipage/nav-history-apis.html#shared-history-push/replace-state-steps\n // https://html.spec.whatwg.org/multipage/structured-data.html#structuredserializeinternal\n if (error instanceof DOMException && error.name === \"DataCloneError\") {\n throw error;\n }\n // They are going to lose state here, but there is no real\n // way to warn them about it since the page will refresh...\n window.location.assign(url);\n }\n\n if (v5Compat && listener) {\n listener({ action, location: history.location, delta: 1 });\n }\n }\n\n function replace(to: To, state?: any) {\n action = Action.Replace;\n let location = createLocation(history.location, to, state);\n if (validateLocation) validateLocation(location, to);\n\n index = getIndex();\n let historyState = getHistoryState(location, index);\n let url = history.createHref(location);\n globalHistory.replaceState(historyState, \"\", url);\n\n if (v5Compat && listener) {\n listener({ action, location: history.location, delta: 0 });\n }\n }\n\n function createURL(to: To): URL {\n // window.location.origin is \"null\" (the literal string value) in Firefox\n // under certain conditions, notably when serving from a local HTML file\n // See https://bugzilla.mozilla.org/show_bug.cgi?id=878297\n let base =\n window.location.origin !== \"null\"\n ? window.location.origin\n : window.location.href;\n\n let href = typeof to === \"string\" ? to : createPath(to);\n // Treating this as a full URL will strip any trailing spaces so we need to\n // pre-encode them since they might be part of a matching splat param from\n // an ancestor route\n href = href.replace(/ $/, \"%20\");\n invariant(\n base,\n `No window.location.(origin|href) available to create URL for href: ${href}`\n );\n return new URL(href, base);\n }\n\n let history: History = {\n get action() {\n return action;\n },\n get location() {\n return getLocation(window, globalHistory);\n },\n listen(fn: Listener) {\n if (listener) {\n throw new Error(\"A history only accepts one active listener\");\n }\n window.addEventListener(PopStateEventType, handlePop);\n listener = fn;\n\n return () => {\n window.removeEventListener(PopStateEventType, handlePop);\n listener = null;\n };\n },\n createHref(to) {\n return createHref(window, to);\n },\n createURL,\n encodeLocation(to) {\n // Encode a Location the same way window.location would\n let url = createURL(to);\n return {\n pathname: url.pathname,\n search: url.search,\n hash: url.hash,\n };\n },\n push,\n replace,\n go(n) {\n return globalHistory.go(n);\n },\n };\n\n return history;\n}\n\n//#endregion\n","import type { Location, Path, To } from \"./history\";\nimport { invariant, parsePath, warning } from \"./history\";\n\n/**\n * Map of routeId -> data returned from a loader/action/error\n */\nexport interface RouteData {\n [routeId: string]: any;\n}\n\nexport enum ResultType {\n data = \"data\",\n deferred = \"deferred\",\n redirect = \"redirect\",\n error = \"error\",\n}\n\n/**\n * Successful result from a loader or action\n */\nexport interface SuccessResult {\n type: ResultType.data;\n data: unknown;\n statusCode?: number;\n headers?: Headers;\n}\n\n/**\n * Successful defer() result from a loader or action\n */\nexport interface DeferredResult {\n type: ResultType.deferred;\n deferredData: DeferredData;\n statusCode?: number;\n headers?: Headers;\n}\n\n/**\n * Redirect result from a loader or action\n */\nexport interface RedirectResult {\n type: ResultType.redirect;\n // We keep the raw Response for redirects so we can return it verbatim\n response: Response;\n}\n\n/**\n * Unsuccessful result from a loader or action\n */\nexport interface ErrorResult {\n type: ResultType.error;\n error: unknown;\n statusCode?: number;\n headers?: Headers;\n}\n\n/**\n * Result from a loader or action - potentially successful or unsuccessful\n */\nexport type DataResult =\n | SuccessResult\n | DeferredResult\n | RedirectResult\n | ErrorResult;\n\ntype LowerCaseFormMethod = \"get\" | \"post\" | \"put\" | \"patch\" | \"delete\";\ntype UpperCaseFormMethod = Uppercase;\n\n/**\n * Users can specify either lowercase or uppercase form methods on `
`,\n * useSubmit(), ``, etc.\n */\nexport type HTMLFormMethod = LowerCaseFormMethod | UpperCaseFormMethod;\n\n/**\n * Active navigation/fetcher form methods are exposed in lowercase on the\n * RouterState\n */\nexport type FormMethod = LowerCaseFormMethod;\nexport type MutationFormMethod = Exclude;\n\n/**\n * In v7, active navigation/fetcher form methods are exposed in uppercase on the\n * RouterState. This is to align with the normalization done via fetch().\n */\nexport type V7_FormMethod = UpperCaseFormMethod;\nexport type V7_MutationFormMethod = Exclude;\n\nexport type FormEncType =\n | \"application/x-www-form-urlencoded\"\n | \"multipart/form-data\"\n | \"application/json\"\n | \"text/plain\";\n\n// Thanks https://github.com/sindresorhus/type-fest!\ntype JsonObject = { [Key in string]: JsonValue } & {\n [Key in string]?: JsonValue | undefined;\n};\ntype JsonArray = JsonValue[] | readonly JsonValue[];\ntype JsonPrimitive = string | number | boolean | null;\ntype JsonValue = JsonPrimitive | JsonObject | JsonArray;\n\n/**\n * @private\n * Internal interface to pass around for action submissions, not intended for\n * external consumption\n */\nexport type Submission =\n | {\n formMethod: FormMethod | V7_FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: FormData;\n json: undefined;\n text: undefined;\n }\n | {\n formMethod: FormMethod | V7_FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: undefined;\n json: JsonValue;\n text: undefined;\n }\n | {\n formMethod: FormMethod | V7_FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: undefined;\n json: undefined;\n text: string;\n };\n\n/**\n * @private\n * Arguments passed to route loader/action functions. Same for now but we keep\n * this as a private implementation detail in case they diverge in the future.\n */\ninterface DataFunctionArgs {\n request: Request;\n params: Params;\n context?: Context;\n}\n\n// TODO: (v7) Change the defaults from any to unknown in and remove Remix wrappers:\n// ActionFunction, ActionFunctionArgs, LoaderFunction, LoaderFunctionArgs\n// Also, make them a type alias instead of an interface\n\n/**\n * Arguments passed to loader functions\n */\nexport interface LoaderFunctionArgs\n extends DataFunctionArgs {}\n\n/**\n * Arguments passed to action functions\n */\nexport interface ActionFunctionArgs\n extends DataFunctionArgs {}\n\n/**\n * Loaders and actions can return anything except `undefined` (`null` is a\n * valid return value if there is no data to return). Responses are preferred\n * and will ease any future migration to Remix\n */\ntype DataFunctionValue = Response | NonNullable | null;\n\ntype DataFunctionReturnValue = Promise | DataFunctionValue;\n\n/**\n * Route loader function signature\n */\nexport type LoaderFunction = {\n (\n args: LoaderFunctionArgs,\n handlerCtx?: unknown\n ): DataFunctionReturnValue;\n} & { hydrate?: boolean };\n\n/**\n * Route action function signature\n */\nexport interface ActionFunction {\n (\n args: ActionFunctionArgs,\n handlerCtx?: unknown\n ): DataFunctionReturnValue;\n}\n\n/**\n * Arguments passed to shouldRevalidate function\n */\nexport interface ShouldRevalidateFunctionArgs {\n currentUrl: URL;\n currentParams: AgnosticDataRouteMatch[\"params\"];\n nextUrl: URL;\n nextParams: AgnosticDataRouteMatch[\"params\"];\n formMethod?: Submission[\"formMethod\"];\n formAction?: Submission[\"formAction\"];\n formEncType?: Submission[\"formEncType\"];\n text?: Submission[\"text\"];\n formData?: Submission[\"formData\"];\n json?: Submission[\"json\"];\n actionStatus?: number;\n actionResult?: any;\n defaultShouldRevalidate: boolean;\n}\n\n/**\n * Route shouldRevalidate function signature. This runs after any submission\n * (navigation or fetcher), so we flatten the navigation/fetcher submission\n * onto the arguments. It shouldn't matter whether it came from a navigation\n * or a fetcher, what really matters is the URLs and the formData since loaders\n * have to re-run based on the data models that were potentially mutated.\n */\nexport interface ShouldRevalidateFunction {\n (args: ShouldRevalidateFunctionArgs): boolean;\n}\n\n/**\n * Function provided by the framework-aware layers to set `hasErrorBoundary`\n * from the framework-aware `errorElement` prop\n *\n * @deprecated Use `mapRouteProperties` instead\n */\nexport interface DetectErrorBoundaryFunction {\n (route: AgnosticRouteObject): boolean;\n}\n\nexport interface DataStrategyMatch\n extends AgnosticRouteMatch {\n shouldLoad: boolean;\n resolve: (\n handlerOverride?: (\n handler: (ctx?: unknown) => DataFunctionReturnValue\n ) => DataFunctionReturnValue\n ) => Promise;\n}\n\nexport interface DataStrategyFunctionArgs\n extends DataFunctionArgs {\n matches: DataStrategyMatch[];\n fetcherKey: string | null;\n}\n\n/**\n * Result from a loader or action called via dataStrategy\n */\nexport interface DataStrategyResult {\n type: \"data\" | \"error\";\n result: unknown; // data, Error, Response, DeferredData, DataWithResponseInit\n}\n\nexport interface DataStrategyFunction {\n (args: DataStrategyFunctionArgs): Promise>;\n}\n\nexport type AgnosticPatchRoutesOnNavigationFunctionArgs<\n O extends AgnosticRouteObject = AgnosticRouteObject,\n M extends AgnosticRouteMatch = AgnosticRouteMatch\n> = {\n signal: AbortSignal;\n path: string;\n matches: M[];\n fetcherKey: string | undefined;\n patch: (routeId: string | null, children: O[]) => void;\n};\n\nexport type AgnosticPatchRoutesOnNavigationFunction<\n O extends AgnosticRouteObject = AgnosticRouteObject,\n M extends AgnosticRouteMatch = AgnosticRouteMatch\n> = (\n opts: AgnosticPatchRoutesOnNavigationFunctionArgs\n) => void | Promise;\n\n/**\n * Function provided by the framework-aware layers to set any framework-specific\n * properties from framework-agnostic properties\n */\nexport interface MapRoutePropertiesFunction {\n (route: AgnosticRouteObject): {\n hasErrorBoundary: boolean;\n } & Record;\n}\n\n/**\n * Keys we cannot change from within a lazy() function. We spread all other keys\n * onto the route. Either they're meaningful to the router, or they'll get\n * ignored.\n */\nexport type ImmutableRouteKey =\n | \"lazy\"\n | \"caseSensitive\"\n | \"path\"\n | \"id\"\n | \"index\"\n | \"children\";\n\nexport const immutableRouteKeys = new Set([\n \"lazy\",\n \"caseSensitive\",\n \"path\",\n \"id\",\n \"index\",\n \"children\",\n]);\n\ntype RequireOne = Exclude<\n {\n [K in keyof T]: K extends Key ? Omit & Required> : never;\n }[keyof T],\n undefined\n>;\n\n/**\n * lazy() function to load a route definition, which can add non-matching\n * related properties to a route\n */\nexport interface LazyRouteFunction {\n (): Promise>>;\n}\n\n/**\n * Base RouteObject with common props shared by all types of routes\n */\ntype AgnosticBaseRouteObject = {\n caseSensitive?: boolean;\n path?: string;\n id?: string;\n loader?: LoaderFunction | boolean;\n action?: ActionFunction | boolean;\n hasErrorBoundary?: boolean;\n shouldRevalidate?: ShouldRevalidateFunction;\n handle?: any;\n lazy?: LazyRouteFunction;\n};\n\n/**\n * Index routes must not have children\n */\nexport type AgnosticIndexRouteObject = AgnosticBaseRouteObject & {\n children?: undefined;\n index: true;\n};\n\n/**\n * Non-index routes may have children, but cannot have index\n */\nexport type AgnosticNonIndexRouteObject = AgnosticBaseRouteObject & {\n children?: AgnosticRouteObject[];\n index?: false;\n};\n\n/**\n * A route object represents a logical route, with (optionally) its child\n * routes organized in a tree-like structure.\n */\nexport type AgnosticRouteObject =\n | AgnosticIndexRouteObject\n | AgnosticNonIndexRouteObject;\n\nexport type AgnosticDataIndexRouteObject = AgnosticIndexRouteObject & {\n id: string;\n};\n\nexport type AgnosticDataNonIndexRouteObject = AgnosticNonIndexRouteObject & {\n children?: AgnosticDataRouteObject[];\n id: string;\n};\n\n/**\n * A data route object, which is just a RouteObject with a required unique ID\n */\nexport type AgnosticDataRouteObject =\n | AgnosticDataIndexRouteObject\n | AgnosticDataNonIndexRouteObject;\n\nexport type RouteManifest = Record;\n\n// Recursive helper for finding path parameters in the absence of wildcards\ntype _PathParam =\n // split path into individual path segments\n Path extends `${infer L}/${infer R}`\n ? _PathParam | _PathParam\n : // find params after `:`\n Path extends `:${infer Param}`\n ? Param extends `${infer Optional}?`\n ? Optional\n : Param\n : // otherwise, there aren't any params present\n never;\n\n/**\n * Examples:\n * \"/a/b/*\" -> \"*\"\n * \":a\" -> \"a\"\n * \"/a/:b\" -> \"b\"\n * \"/a/blahblahblah:b\" -> \"b\"\n * \"/:a/:b\" -> \"a\" | \"b\"\n * \"/:a/b/:c/*\" -> \"a\" | \"c\" | \"*\"\n */\nexport type PathParam =\n // check if path is just a wildcard\n Path extends \"*\" | \"/*\"\n ? \"*\"\n : // look for wildcard at the end of the path\n Path extends `${infer Rest}/*`\n ? \"*\" | _PathParam\n : // look for params in the absence of wildcards\n _PathParam;\n\n// Attempt to parse the given string segment. If it fails, then just return the\n// plain string type as a default fallback. Otherwise, return the union of the\n// parsed string literals that were referenced as dynamic segments in the route.\nexport type ParamParseKey =\n // if you could not find path params, fallback to `string`\n [PathParam] extends [never] ? string : PathParam;\n\n/**\n * The parameters that were parsed from the URL path.\n */\nexport type Params = {\n readonly [key in Key]: string | undefined;\n};\n\n/**\n * A RouteMatch contains info about how a route matched a URL.\n */\nexport interface AgnosticRouteMatch<\n ParamKey extends string = string,\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n /**\n * The names and values of dynamic parameters in the URL.\n */\n params: Params;\n /**\n * The portion of the URL pathname that was matched.\n */\n pathname: string;\n /**\n * The portion of the URL pathname that was matched before child routes.\n */\n pathnameBase: string;\n /**\n * The route object that was used to match.\n */\n route: RouteObjectType;\n}\n\nexport interface AgnosticDataRouteMatch\n extends AgnosticRouteMatch {}\n\nfunction isIndexRoute(\n route: AgnosticRouteObject\n): route is AgnosticIndexRouteObject {\n return route.index === true;\n}\n\n// Walk the route tree generating unique IDs where necessary, so we are working\n// solely with AgnosticDataRouteObject's within the Router\nexport function convertRoutesToDataRoutes(\n routes: AgnosticRouteObject[],\n mapRouteProperties: MapRoutePropertiesFunction,\n parentPath: string[] = [],\n manifest: RouteManifest = {}\n): AgnosticDataRouteObject[] {\n return routes.map((route, index) => {\n let treePath = [...parentPath, String(index)];\n let id = typeof route.id === \"string\" ? route.id : treePath.join(\"-\");\n invariant(\n route.index !== true || !route.children,\n `Cannot specify children on an index route`\n );\n invariant(\n !manifest[id],\n `Found a route id collision on id \"${id}\". Route ` +\n \"id's must be globally unique within Data Router usages\"\n );\n\n if (isIndexRoute(route)) {\n let indexRoute: AgnosticDataIndexRouteObject = {\n ...route,\n ...mapRouteProperties(route),\n id,\n };\n manifest[id] = indexRoute;\n return indexRoute;\n } else {\n let pathOrLayoutRoute: AgnosticDataNonIndexRouteObject = {\n ...route,\n ...mapRouteProperties(route),\n id,\n children: undefined,\n };\n manifest[id] = pathOrLayoutRoute;\n\n if (route.children) {\n pathOrLayoutRoute.children = convertRoutesToDataRoutes(\n route.children,\n mapRouteProperties,\n treePath,\n manifest\n );\n }\n\n return pathOrLayoutRoute;\n }\n });\n}\n\n/**\n * Matches the given routes to a location and returns the match data.\n *\n * @see https://reactrouter.com/v6/utils/match-routes\n */\nexport function matchRoutes<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n routes: RouteObjectType[],\n locationArg: Partial | string,\n basename = \"/\"\n): AgnosticRouteMatch[] | null {\n return matchRoutesImpl(routes, locationArg, basename, false);\n}\n\nexport function matchRoutesImpl<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n routes: RouteObjectType[],\n locationArg: Partial | string,\n basename: string,\n allowPartial: boolean\n): AgnosticRouteMatch[] | null {\n let location =\n typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n\n let pathname = stripBasename(location.pathname || \"/\", basename);\n\n if (pathname == null) {\n return null;\n }\n\n let branches = flattenRoutes(routes);\n rankRouteBranches(branches);\n\n let matches = null;\n for (let i = 0; matches == null && i < branches.length; ++i) {\n // Incoming pathnames are generally encoded from either window.location\n // or from router.navigate, but we want to match against the unencoded\n // paths in the route definitions. Memory router locations won't be\n // encoded here but there also shouldn't be anything to decode so this\n // should be a safe operation. This avoids needing matchRoutes to be\n // history-aware.\n let decoded = decodePath(pathname);\n matches = matchRouteBranch(\n branches[i],\n decoded,\n allowPartial\n );\n }\n\n return matches;\n}\n\nexport interface UIMatch {\n id: string;\n pathname: string;\n params: AgnosticRouteMatch[\"params\"];\n data: Data;\n handle: Handle;\n}\n\nexport function convertRouteMatchToUiMatch(\n match: AgnosticDataRouteMatch,\n loaderData: RouteData\n): UIMatch {\n let { route, pathname, params } = match;\n return {\n id: route.id,\n pathname,\n params,\n data: loaderData[route.id],\n handle: route.handle,\n };\n}\n\ninterface RouteMeta<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n relativePath: string;\n caseSensitive: boolean;\n childrenIndex: number;\n route: RouteObjectType;\n}\n\ninterface RouteBranch<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n path: string;\n score: number;\n routesMeta: RouteMeta[];\n}\n\nfunction flattenRoutes<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n routes: RouteObjectType[],\n branches: RouteBranch[] = [],\n parentsMeta: RouteMeta[] = [],\n parentPath = \"\"\n): RouteBranch[] {\n let flattenRoute = (\n route: RouteObjectType,\n index: number,\n relativePath?: string\n ) => {\n let meta: RouteMeta = {\n relativePath:\n relativePath === undefined ? route.path || \"\" : relativePath,\n caseSensitive: route.caseSensitive === true,\n childrenIndex: index,\n route,\n };\n\n if (meta.relativePath.startsWith(\"/\")) {\n invariant(\n meta.relativePath.startsWith(parentPath),\n `Absolute route path \"${meta.relativePath}\" nested under path ` +\n `\"${parentPath}\" is not valid. An absolute child route path ` +\n `must start with the combined path of all its parent routes.`\n );\n\n meta.relativePath = meta.relativePath.slice(parentPath.length);\n }\n\n let path = joinPaths([parentPath, meta.relativePath]);\n let routesMeta = parentsMeta.concat(meta);\n\n // Add the children before adding this route to the array, so we traverse the\n // route tree depth-first and child routes appear before their parents in\n // the \"flattened\" version.\n if (route.children && route.children.length > 0) {\n invariant(\n // Our types know better, but runtime JS may not!\n // @ts-expect-error\n route.index !== true,\n `Index routes must not have child routes. Please remove ` +\n `all child routes from route path \"${path}\".`\n );\n flattenRoutes(route.children, branches, routesMeta, path);\n }\n\n // Routes without a path shouldn't ever match by themselves unless they are\n // index routes, so don't add them to the list of possible branches.\n if (route.path == null && !route.index) {\n return;\n }\n\n branches.push({\n path,\n score: computeScore(path, route.index),\n routesMeta,\n });\n };\n routes.forEach((route, index) => {\n // coarse-grain check for optional params\n if (route.path === \"\" || !route.path?.includes(\"?\")) {\n flattenRoute(route, index);\n } else {\n for (let exploded of explodeOptionalSegments(route.path)) {\n flattenRoute(route, index, exploded);\n }\n }\n });\n\n return branches;\n}\n\n/**\n * Computes all combinations of optional path segments for a given path,\n * excluding combinations that are ambiguous and of lower priority.\n *\n * For example, `/one/:two?/three/:four?/:five?` explodes to:\n * - `/one/three`\n * - `/one/:two/three`\n * - `/one/three/:four`\n * - `/one/three/:five`\n * - `/one/:two/three/:four`\n * - `/one/:two/three/:five`\n * - `/one/three/:four/:five`\n * - `/one/:two/three/:four/:five`\n */\nfunction explodeOptionalSegments(path: string): string[] {\n let segments = path.split(\"/\");\n if (segments.length === 0) return [];\n\n let [first, ...rest] = segments;\n\n // Optional path segments are denoted by a trailing `?`\n let isOptional = first.endsWith(\"?\");\n // Compute the corresponding required segment: `foo?` -> `foo`\n let required = first.replace(/\\?$/, \"\");\n\n if (rest.length === 0) {\n // Intepret empty string as omitting an optional segment\n // `[\"one\", \"\", \"three\"]` corresponds to omitting `:two` from `/one/:two?/three` -> `/one/three`\n return isOptional ? [required, \"\"] : [required];\n }\n\n let restExploded = explodeOptionalSegments(rest.join(\"/\"));\n\n let result: string[] = [];\n\n // All child paths with the prefix. Do this for all children before the\n // optional version for all children, so we get consistent ordering where the\n // parent optional aspect is preferred as required. Otherwise, we can get\n // child sections interspersed where deeper optional segments are higher than\n // parent optional segments, where for example, /:two would explode _earlier_\n // then /:one. By always including the parent as required _for all children_\n // first, we avoid this issue\n result.push(\n ...restExploded.map((subpath) =>\n subpath === \"\" ? required : [required, subpath].join(\"/\")\n )\n );\n\n // Then, if this is an optional value, add all child versions without\n if (isOptional) {\n result.push(...restExploded);\n }\n\n // for absolute paths, ensure `/` instead of empty segment\n return result.map((exploded) =>\n path.startsWith(\"/\") && exploded === \"\" ? \"/\" : exploded\n );\n}\n\nfunction rankRouteBranches(branches: RouteBranch[]): void {\n branches.sort((a, b) =>\n a.score !== b.score\n ? b.score - a.score // Higher score first\n : compareIndexes(\n a.routesMeta.map((meta) => meta.childrenIndex),\n b.routesMeta.map((meta) => meta.childrenIndex)\n )\n );\n}\n\nconst paramRe = /^:[\\w-]+$/;\nconst dynamicSegmentValue = 3;\nconst indexRouteValue = 2;\nconst emptySegmentValue = 1;\nconst staticSegmentValue = 10;\nconst splatPenalty = -2;\nconst isSplat = (s: string) => s === \"*\";\n\nfunction computeScore(path: string, index: boolean | undefined): number {\n let segments = path.split(\"/\");\n let initialScore = segments.length;\n if (segments.some(isSplat)) {\n initialScore += splatPenalty;\n }\n\n if (index) {\n initialScore += indexRouteValue;\n }\n\n return segments\n .filter((s) => !isSplat(s))\n .reduce(\n (score, segment) =>\n score +\n (paramRe.test(segment)\n ? dynamicSegmentValue\n : segment === \"\"\n ? emptySegmentValue\n : staticSegmentValue),\n initialScore\n );\n}\n\nfunction compareIndexes(a: number[], b: number[]): number {\n let siblings =\n a.length === b.length && a.slice(0, -1).every((n, i) => n === b[i]);\n\n return siblings\n ? // If two routes are siblings, we should try to match the earlier sibling\n // first. This allows people to have fine-grained control over the matching\n // behavior by simply putting routes with identical paths in the order they\n // want them tried.\n a[a.length - 1] - b[b.length - 1]\n : // Otherwise, it doesn't really make sense to rank non-siblings by index,\n // so they sort equally.\n 0;\n}\n\nfunction matchRouteBranch<\n ParamKey extends string = string,\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n branch: RouteBranch,\n pathname: string,\n allowPartial = false\n): AgnosticRouteMatch[] | null {\n let { routesMeta } = branch;\n\n let matchedParams = {};\n let matchedPathname = \"/\";\n let matches: AgnosticRouteMatch[] = [];\n for (let i = 0; i < routesMeta.length; ++i) {\n let meta = routesMeta[i];\n let end = i === routesMeta.length - 1;\n let remainingPathname =\n matchedPathname === \"/\"\n ? pathname\n : pathname.slice(matchedPathname.length) || \"/\";\n let match = matchPath(\n { path: meta.relativePath, caseSensitive: meta.caseSensitive, end },\n remainingPathname\n );\n\n let route = meta.route;\n\n if (\n !match &&\n end &&\n allowPartial &&\n !routesMeta[routesMeta.length - 1].route.index\n ) {\n match = matchPath(\n {\n path: meta.relativePath,\n caseSensitive: meta.caseSensitive,\n end: false,\n },\n remainingPathname\n );\n }\n\n if (!match) {\n return null;\n }\n\n Object.assign(matchedParams, match.params);\n\n matches.push({\n // TODO: Can this as be avoided?\n params: matchedParams as Params,\n pathname: joinPaths([matchedPathname, match.pathname]),\n pathnameBase: normalizePathname(\n joinPaths([matchedPathname, match.pathnameBase])\n ),\n route,\n });\n\n if (match.pathnameBase !== \"/\") {\n matchedPathname = joinPaths([matchedPathname, match.pathnameBase]);\n }\n }\n\n return matches;\n}\n\n/**\n * Returns a path with params interpolated.\n *\n * @see https://reactrouter.com/v6/utils/generate-path\n */\nexport function generatePath(\n originalPath: Path,\n params: {\n [key in PathParam]: string | null;\n } = {} as any\n): string {\n let path: string = originalPath;\n if (path.endsWith(\"*\") && path !== \"*\" && !path.endsWith(\"/*\")) {\n warning(\n false,\n `Route path \"${path}\" will be treated as if it were ` +\n `\"${path.replace(/\\*$/, \"/*\")}\" because the \\`*\\` character must ` +\n `always follow a \\`/\\` in the pattern. To get rid of this warning, ` +\n `please change the route path to \"${path.replace(/\\*$/, \"/*\")}\".`\n );\n path = path.replace(/\\*$/, \"/*\") as Path;\n }\n\n // ensure `/` is added at the beginning if the path is absolute\n const prefix = path.startsWith(\"/\") ? \"/\" : \"\";\n\n const stringify = (p: any) =>\n p == null ? \"\" : typeof p === \"string\" ? p : String(p);\n\n const segments = path\n .split(/\\/+/)\n .map((segment, index, array) => {\n const isLastSegment = index === array.length - 1;\n\n // only apply the splat if it's the last segment\n if (isLastSegment && segment === \"*\") {\n const star = \"*\" as PathParam;\n // Apply the splat\n return stringify(params[star]);\n }\n\n const keyMatch = segment.match(/^:([\\w-]+)(\\??)$/);\n if (keyMatch) {\n const [, key, optional] = keyMatch;\n let param = params[key as PathParam];\n invariant(optional === \"?\" || param != null, `Missing \":${key}\" param`);\n return stringify(param);\n }\n\n // Remove any optional markers from optional static segments\n return segment.replace(/\\?$/g, \"\");\n })\n // Remove empty segments\n .filter((segment) => !!segment);\n\n return prefix + segments.join(\"/\");\n}\n\n/**\n * A PathPattern is used to match on some portion of a URL pathname.\n */\nexport interface PathPattern {\n /**\n * A string to match against a URL pathname. May contain `:id`-style segments\n * to indicate placeholders for dynamic parameters. May also end with `/*` to\n * indicate matching the rest of the URL pathname.\n */\n path: Path;\n /**\n * Should be `true` if the static portions of the `path` should be matched in\n * the same case.\n */\n caseSensitive?: boolean;\n /**\n * Should be `true` if this pattern should match the entire URL pathname.\n */\n end?: boolean;\n}\n\n/**\n * A PathMatch contains info about how a PathPattern matched on a URL pathname.\n */\nexport interface PathMatch {\n /**\n * The names and values of dynamic parameters in the URL.\n */\n params: Params;\n /**\n * The portion of the URL pathname that was matched.\n */\n pathname: string;\n /**\n * The portion of the URL pathname that was matched before child routes.\n */\n pathnameBase: string;\n /**\n * The pattern that was used to match.\n */\n pattern: PathPattern;\n}\n\ntype Mutable = {\n -readonly [P in keyof T]: T[P];\n};\n\n/**\n * Performs pattern matching on a URL pathname and returns information about\n * the match.\n *\n * @see https://reactrouter.com/v6/utils/match-path\n */\nexport function matchPath<\n ParamKey extends ParamParseKey,\n Path extends string\n>(\n pattern: PathPattern | Path,\n pathname: string\n): PathMatch | null {\n if (typeof pattern === \"string\") {\n pattern = { path: pattern, caseSensitive: false, end: true };\n }\n\n let [matcher, compiledParams] = compilePath(\n pattern.path,\n pattern.caseSensitive,\n pattern.end\n );\n\n let match = pathname.match(matcher);\n if (!match) return null;\n\n let matchedPathname = match[0];\n let pathnameBase = matchedPathname.replace(/(.)\\/+$/, \"$1\");\n let captureGroups = match.slice(1);\n let params: Params = compiledParams.reduce>(\n (memo, { paramName, isOptional }, index) => {\n // We need to compute the pathnameBase here using the raw splat value\n // instead of using params[\"*\"] later because it will be decoded then\n if (paramName === \"*\") {\n let splatValue = captureGroups[index] || \"\";\n pathnameBase = matchedPathname\n .slice(0, matchedPathname.length - splatValue.length)\n .replace(/(.)\\/+$/, \"$1\");\n }\n\n const value = captureGroups[index];\n if (isOptional && !value) {\n memo[paramName] = undefined;\n } else {\n memo[paramName] = (value || \"\").replace(/%2F/g, \"/\");\n }\n return memo;\n },\n {}\n );\n\n return {\n params,\n pathname: matchedPathname,\n pathnameBase,\n pattern,\n };\n}\n\ntype CompiledPathParam = { paramName: string; isOptional?: boolean };\n\nfunction compilePath(\n path: string,\n caseSensitive = false,\n end = true\n): [RegExp, CompiledPathParam[]] {\n warning(\n path === \"*\" || !path.endsWith(\"*\") || path.endsWith(\"/*\"),\n `Route path \"${path}\" will be treated as if it were ` +\n `\"${path.replace(/\\*$/, \"/*\")}\" because the \\`*\\` character must ` +\n `always follow a \\`/\\` in the pattern. To get rid of this warning, ` +\n `please change the route path to \"${path.replace(/\\*$/, \"/*\")}\".`\n );\n\n let params: CompiledPathParam[] = [];\n let regexpSource =\n \"^\" +\n path\n .replace(/\\/*\\*?$/, \"\") // Ignore trailing / and /*, we'll handle it below\n .replace(/^\\/*/, \"/\") // Make sure it has a leading /\n .replace(/[\\\\.*+^${}|()[\\]]/g, \"\\\\$&\") // Escape special regex chars\n .replace(\n /\\/:([\\w-]+)(\\?)?/g,\n (_: string, paramName: string, isOptional) => {\n params.push({ paramName, isOptional: isOptional != null });\n return isOptional ? \"/?([^\\\\/]+)?\" : \"/([^\\\\/]+)\";\n }\n );\n\n if (path.endsWith(\"*\")) {\n params.push({ paramName: \"*\" });\n regexpSource +=\n path === \"*\" || path === \"/*\"\n ? \"(.*)$\" // Already matched the initial /, just match the rest\n : \"(?:\\\\/(.+)|\\\\/*)$\"; // Don't include the / in params[\"*\"]\n } else if (end) {\n // When matching to the end, ignore trailing slashes\n regexpSource += \"\\\\/*$\";\n } else if (path !== \"\" && path !== \"/\") {\n // If our path is non-empty and contains anything beyond an initial slash,\n // then we have _some_ form of path in our regex, so we should expect to\n // match only if we find the end of this path segment. Look for an optional\n // non-captured trailing slash (to match a portion of the URL) or the end\n // of the path (if we've matched to the end). We used to do this with a\n // word boundary but that gives false positives on routes like\n // /user-preferences since `-` counts as a word boundary.\n regexpSource += \"(?:(?=\\\\/|$))\";\n } else {\n // Nothing to match for \"\" or \"/\"\n }\n\n let matcher = new RegExp(regexpSource, caseSensitive ? undefined : \"i\");\n\n return [matcher, params];\n}\n\nexport function decodePath(value: string) {\n try {\n return value\n .split(\"/\")\n .map((v) => decodeURIComponent(v).replace(/\\//g, \"%2F\"))\n .join(\"/\");\n } catch (error) {\n warning(\n false,\n `The URL path \"${value}\" could not be decoded because it is is a ` +\n `malformed URL segment. This is probably due to a bad percent ` +\n `encoding (${error}).`\n );\n\n return value;\n }\n}\n\n/**\n * @private\n */\nexport function stripBasename(\n pathname: string,\n basename: string\n): string | null {\n if (basename === \"/\") return pathname;\n\n if (!pathname.toLowerCase().startsWith(basename.toLowerCase())) {\n return null;\n }\n\n // We want to leave trailing slash behavior in the user's control, so if they\n // specify a basename with a trailing slash, we should support it\n let startIndex = basename.endsWith(\"/\")\n ? basename.length - 1\n : basename.length;\n let nextChar = pathname.charAt(startIndex);\n if (nextChar && nextChar !== \"/\") {\n // pathname does not start with basename/\n return null;\n }\n\n return pathname.slice(startIndex) || \"/\";\n}\n\n/**\n * Returns a resolved path object relative to the given pathname.\n *\n * @see https://reactrouter.com/v6/utils/resolve-path\n */\nexport function resolvePath(to: To, fromPathname = \"/\"): Path {\n let {\n pathname: toPathname,\n search = \"\",\n hash = \"\",\n } = typeof to === \"string\" ? parsePath(to) : to;\n\n let pathname = toPathname\n ? toPathname.startsWith(\"/\")\n ? toPathname\n : resolvePathname(toPathname, fromPathname)\n : fromPathname;\n\n return {\n pathname,\n search: normalizeSearch(search),\n hash: normalizeHash(hash),\n };\n}\n\nfunction resolvePathname(relativePath: string, fromPathname: string): string {\n let segments = fromPathname.replace(/\\/+$/, \"\").split(\"/\");\n let relativeSegments = relativePath.split(\"/\");\n\n relativeSegments.forEach((segment) => {\n if (segment === \"..\") {\n // Keep the root \"\" segment so the pathname starts at /\n if (segments.length > 1) segments.pop();\n } else if (segment !== \".\") {\n segments.push(segment);\n }\n });\n\n return segments.length > 1 ? segments.join(\"/\") : \"/\";\n}\n\nfunction getInvalidPathError(\n char: string,\n field: string,\n dest: string,\n path: Partial\n) {\n return (\n `Cannot include a '${char}' character in a manually specified ` +\n `\\`to.${field}\\` field [${JSON.stringify(\n path\n )}]. Please separate it out to the ` +\n `\\`to.${dest}\\` field. Alternatively you may provide the full path as ` +\n `a string in and the router will parse it for you.`\n );\n}\n\n/**\n * @private\n *\n * When processing relative navigation we want to ignore ancestor routes that\n * do not contribute to the path, such that index/pathless layout routes don't\n * interfere.\n *\n * For example, when moving a route element into an index route and/or a\n * pathless layout route, relative link behavior contained within should stay\n * the same. Both of the following examples should link back to the root:\n *\n * \n * \n * \n *\n * \n * \n * }> // <-- Does not contribute\n * // <-- Does not contribute\n * \n * \n */\nexport function getPathContributingMatches<\n T extends AgnosticRouteMatch = AgnosticRouteMatch\n>(matches: T[]) {\n return matches.filter(\n (match, index) =>\n index === 0 || (match.route.path && match.route.path.length > 0)\n );\n}\n\n// Return the array of pathnames for the current route matches - used to\n// generate the routePathnames input for resolveTo()\nexport function getResolveToMatches<\n T extends AgnosticRouteMatch = AgnosticRouteMatch\n>(matches: T[], v7_relativeSplatPath: boolean) {\n let pathMatches = getPathContributingMatches(matches);\n\n // When v7_relativeSplatPath is enabled, use the full pathname for the leaf\n // match so we include splat values for \".\" links. See:\n // https://github.com/remix-run/react-router/issues/11052#issuecomment-1836589329\n if (v7_relativeSplatPath) {\n return pathMatches.map((match, idx) =>\n idx === pathMatches.length - 1 ? match.pathname : match.pathnameBase\n );\n }\n\n return pathMatches.map((match) => match.pathnameBase);\n}\n\n/**\n * @private\n */\nexport function resolveTo(\n toArg: To,\n routePathnames: string[],\n locationPathname: string,\n isPathRelative = false\n): Path {\n let to: Partial;\n if (typeof toArg === \"string\") {\n to = parsePath(toArg);\n } else {\n to = { ...toArg };\n\n invariant(\n !to.pathname || !to.pathname.includes(\"?\"),\n getInvalidPathError(\"?\", \"pathname\", \"search\", to)\n );\n invariant(\n !to.pathname || !to.pathname.includes(\"#\"),\n getInvalidPathError(\"#\", \"pathname\", \"hash\", to)\n );\n invariant(\n !to.search || !to.search.includes(\"#\"),\n getInvalidPathError(\"#\", \"search\", \"hash\", to)\n );\n }\n\n let isEmptyPath = toArg === \"\" || to.pathname === \"\";\n let toPathname = isEmptyPath ? \"/\" : to.pathname;\n\n let from: string;\n\n // Routing is relative to the current pathname if explicitly requested.\n //\n // If a pathname is explicitly provided in `to`, it should be relative to the\n // route context. This is explained in `Note on `` values` in our\n // migration guide from v5 as a means of disambiguation between `to` values\n // that begin with `/` and those that do not. However, this is problematic for\n // `to` values that do not provide a pathname. `to` can simply be a search or\n // hash string, in which case we should assume that the navigation is relative\n // to the current location's pathname and *not* the route pathname.\n if (toPathname == null) {\n from = locationPathname;\n } else {\n let routePathnameIndex = routePathnames.length - 1;\n\n // With relative=\"route\" (the default), each leading .. segment means\n // \"go up one route\" instead of \"go up one URL segment\". This is a key\n // difference from how works and a major reason we call this a\n // \"to\" value instead of a \"href\".\n if (!isPathRelative && toPathname.startsWith(\"..\")) {\n let toSegments = toPathname.split(\"/\");\n\n while (toSegments[0] === \"..\") {\n toSegments.shift();\n routePathnameIndex -= 1;\n }\n\n to.pathname = toSegments.join(\"/\");\n }\n\n from = routePathnameIndex >= 0 ? routePathnames[routePathnameIndex] : \"/\";\n }\n\n let path = resolvePath(to, from);\n\n // Ensure the pathname has a trailing slash if the original \"to\" had one\n let hasExplicitTrailingSlash =\n toPathname && toPathname !== \"/\" && toPathname.endsWith(\"/\");\n // Or if this was a link to the current path which has a trailing slash\n let hasCurrentTrailingSlash =\n (isEmptyPath || toPathname === \".\") && locationPathname.endsWith(\"/\");\n if (\n !path.pathname.endsWith(\"/\") &&\n (hasExplicitTrailingSlash || hasCurrentTrailingSlash)\n ) {\n path.pathname += \"/\";\n }\n\n return path;\n}\n\n/**\n * @private\n */\nexport function getToPathname(to: To): string | undefined {\n // Empty strings should be treated the same as / paths\n return to === \"\" || (to as Path).pathname === \"\"\n ? \"/\"\n : typeof to === \"string\"\n ? parsePath(to).pathname\n : to.pathname;\n}\n\n/**\n * @private\n */\nexport const joinPaths = (paths: string[]): string =>\n paths.join(\"/\").replace(/\\/\\/+/g, \"/\");\n\n/**\n * @private\n */\nexport const normalizePathname = (pathname: string): string =>\n pathname.replace(/\\/+$/, \"\").replace(/^\\/*/, \"/\");\n\n/**\n * @private\n */\nexport const normalizeSearch = (search: string): string =>\n !search || search === \"?\"\n ? \"\"\n : search.startsWith(\"?\")\n ? search\n : \"?\" + search;\n\n/**\n * @private\n */\nexport const normalizeHash = (hash: string): string =>\n !hash || hash === \"#\" ? \"\" : hash.startsWith(\"#\") ? hash : \"#\" + hash;\n\nexport type JsonFunction = (\n data: Data,\n init?: number | ResponseInit\n) => Response;\n\n/**\n * This is a shortcut for creating `application/json` responses. Converts `data`\n * to JSON and sets the `Content-Type` header.\n *\n * @deprecated The `json` method is deprecated in favor of returning raw objects.\n * This method will be removed in v7.\n */\nexport const json: JsonFunction = (data, init = {}) => {\n let responseInit = typeof init === \"number\" ? { status: init } : init;\n\n let headers = new Headers(responseInit.headers);\n if (!headers.has(\"Content-Type\")) {\n headers.set(\"Content-Type\", \"application/json; charset=utf-8\");\n }\n\n return new Response(JSON.stringify(data), {\n ...responseInit,\n headers,\n });\n};\n\nexport class DataWithResponseInit {\n type: string = \"DataWithResponseInit\";\n data: D;\n init: ResponseInit | null;\n\n constructor(data: D, init?: ResponseInit) {\n this.data = data;\n this.init = init || null;\n }\n}\n\n/**\n * Create \"responses\" that contain `status`/`headers` without forcing\n * serialization into an actual `Response` - used by Remix single fetch\n */\nexport function data(data: D, init?: number | ResponseInit) {\n return new DataWithResponseInit(\n data,\n typeof init === \"number\" ? { status: init } : init\n );\n}\n\nexport interface TrackedPromise extends Promise {\n _tracked?: boolean;\n _data?: any;\n _error?: any;\n}\n\nexport class AbortedDeferredError extends Error {}\n\nexport class DeferredData {\n private pendingKeysSet: Set = new Set();\n private controller: AbortController;\n private abortPromise: Promise;\n private unlistenAbortSignal: () => void;\n private subscribers: Set<(aborted: boolean, settledKey?: string) => void> =\n new Set();\n data: Record;\n init?: ResponseInit;\n deferredKeys: string[] = [];\n\n constructor(data: Record, responseInit?: ResponseInit) {\n invariant(\n data && typeof data === \"object\" && !Array.isArray(data),\n \"defer() only accepts plain objects\"\n );\n\n // Set up an AbortController + Promise we can race against to exit early\n // cancellation\n let reject: (e: AbortedDeferredError) => void;\n this.abortPromise = new Promise((_, r) => (reject = r));\n this.controller = new AbortController();\n let onAbort = () =>\n reject(new AbortedDeferredError(\"Deferred data aborted\"));\n this.unlistenAbortSignal = () =>\n this.controller.signal.removeEventListener(\"abort\", onAbort);\n this.controller.signal.addEventListener(\"abort\", onAbort);\n\n this.data = Object.entries(data).reduce(\n (acc, [key, value]) =>\n Object.assign(acc, {\n [key]: this.trackPromise(key, value),\n }),\n {}\n );\n\n if (this.done) {\n // All incoming values were resolved\n this.unlistenAbortSignal();\n }\n\n this.init = responseInit;\n }\n\n private trackPromise(\n key: string,\n value: Promise | unknown\n ): TrackedPromise | unknown {\n if (!(value instanceof Promise)) {\n return value;\n }\n\n this.deferredKeys.push(key);\n this.pendingKeysSet.add(key);\n\n // We store a little wrapper promise that will be extended with\n // _data/_error props upon resolve/reject\n let promise: TrackedPromise = Promise.race([value, this.abortPromise]).then(\n (data) => this.onSettle(promise, key, undefined, data as unknown),\n (error) => this.onSettle(promise, key, error as unknown)\n );\n\n // Register rejection listeners to avoid uncaught promise rejections on\n // errors or aborted deferred values\n promise.catch(() => {});\n\n Object.defineProperty(promise, \"_tracked\", { get: () => true });\n return promise;\n }\n\n private onSettle(\n promise: TrackedPromise,\n key: string,\n error: unknown,\n data?: unknown\n ): unknown {\n if (\n this.controller.signal.aborted &&\n error instanceof AbortedDeferredError\n ) {\n this.unlistenAbortSignal();\n Object.defineProperty(promise, \"_error\", { get: () => error });\n return Promise.reject(error);\n }\n\n this.pendingKeysSet.delete(key);\n\n if (this.done) {\n // Nothing left to abort!\n this.unlistenAbortSignal();\n }\n\n // If the promise was resolved/rejected with undefined, we'll throw an error as you\n // should always resolve with a value or null\n if (error === undefined && data === undefined) {\n let undefinedError = new Error(\n `Deferred data for key \"${key}\" resolved/rejected with \\`undefined\\`, ` +\n `you must resolve/reject with a value or \\`null\\`.`\n );\n Object.defineProperty(promise, \"_error\", { get: () => undefinedError });\n this.emit(false, key);\n return Promise.reject(undefinedError);\n }\n\n if (data === undefined) {\n Object.defineProperty(promise, \"_error\", { get: () => error });\n this.emit(false, key);\n return Promise.reject(error);\n }\n\n Object.defineProperty(promise, \"_data\", { get: () => data });\n this.emit(false, key);\n return data;\n }\n\n private emit(aborted: boolean, settledKey?: string) {\n this.subscribers.forEach((subscriber) => subscriber(aborted, settledKey));\n }\n\n subscribe(fn: (aborted: boolean, settledKey?: string) => void) {\n this.subscribers.add(fn);\n return () => this.subscribers.delete(fn);\n }\n\n cancel() {\n this.controller.abort();\n this.pendingKeysSet.forEach((v, k) => this.pendingKeysSet.delete(k));\n this.emit(true);\n }\n\n async resolveData(signal: AbortSignal) {\n let aborted = false;\n if (!this.done) {\n let onAbort = () => this.cancel();\n signal.addEventListener(\"abort\", onAbort);\n aborted = await new Promise((resolve) => {\n this.subscribe((aborted) => {\n signal.removeEventListener(\"abort\", onAbort);\n if (aborted || this.done) {\n resolve(aborted);\n }\n });\n });\n }\n return aborted;\n }\n\n get done() {\n return this.pendingKeysSet.size === 0;\n }\n\n get unwrappedData() {\n invariant(\n this.data !== null && this.done,\n \"Can only unwrap data on initialized and settled deferreds\"\n );\n\n return Object.entries(this.data).reduce(\n (acc, [key, value]) =>\n Object.assign(acc, {\n [key]: unwrapTrackedPromise(value),\n }),\n {}\n );\n }\n\n get pendingKeys() {\n return Array.from(this.pendingKeysSet);\n }\n}\n\nfunction isTrackedPromise(value: any): value is TrackedPromise {\n return (\n value instanceof Promise && (value as TrackedPromise)._tracked === true\n );\n}\n\nfunction unwrapTrackedPromise(value: any) {\n if (!isTrackedPromise(value)) {\n return value;\n }\n\n if (value._error) {\n throw value._error;\n }\n return value._data;\n}\n\nexport type DeferFunction = (\n data: Record,\n init?: number | ResponseInit\n) => DeferredData;\n\n/**\n * @deprecated The `defer` method is deprecated in favor of returning raw\n * objects. This method will be removed in v7.\n */\nexport const defer: DeferFunction = (data, init = {}) => {\n let responseInit = typeof init === \"number\" ? { status: init } : init;\n\n return new DeferredData(data, responseInit);\n};\n\nexport type RedirectFunction = (\n url: string,\n init?: number | ResponseInit\n) => Response;\n\n/**\n * A redirect response. Sets the status code and the `Location` header.\n * Defaults to \"302 Found\".\n */\nexport const redirect: RedirectFunction = (url, init = 302) => {\n let responseInit = init;\n if (typeof responseInit === \"number\") {\n responseInit = { status: responseInit };\n } else if (typeof responseInit.status === \"undefined\") {\n responseInit.status = 302;\n }\n\n let headers = new Headers(responseInit.headers);\n headers.set(\"Location\", url);\n\n return new Response(null, {\n ...responseInit,\n headers,\n });\n};\n\n/**\n * A redirect response that will force a document reload to the new location.\n * Sets the status code and the `Location` header.\n * Defaults to \"302 Found\".\n */\nexport const redirectDocument: RedirectFunction = (url, init) => {\n let response = redirect(url, init);\n response.headers.set(\"X-Remix-Reload-Document\", \"true\");\n return response;\n};\n\n/**\n * A redirect response that will perform a `history.replaceState` instead of a\n * `history.pushState` for client-side navigation redirects.\n * Sets the status code and the `Location` header.\n * Defaults to \"302 Found\".\n */\nexport const replace: RedirectFunction = (url, init) => {\n let response = redirect(url, init);\n response.headers.set(\"X-Remix-Replace\", \"true\");\n return response;\n};\n\nexport type ErrorResponse = {\n status: number;\n statusText: string;\n data: any;\n};\n\n/**\n * @private\n * Utility class we use to hold auto-unwrapped 4xx/5xx Response bodies\n *\n * We don't export the class for public use since it's an implementation\n * detail, but we export the interface above so folks can build their own\n * abstractions around instances via isRouteErrorResponse()\n */\nexport class ErrorResponseImpl implements ErrorResponse {\n status: number;\n statusText: string;\n data: any;\n private error?: Error;\n private internal: boolean;\n\n constructor(\n status: number,\n statusText: string | undefined,\n data: any,\n internal = false\n ) {\n this.status = status;\n this.statusText = statusText || \"\";\n this.internal = internal;\n if (data instanceof Error) {\n this.data = data.toString();\n this.error = data;\n } else {\n this.data = data;\n }\n }\n}\n\n/**\n * Check if the given error is an ErrorResponse generated from a 4xx/5xx\n * Response thrown from an action/loader\n */\nexport function isRouteErrorResponse(error: any): error is ErrorResponse {\n return (\n error != null &&\n typeof error.status === \"number\" &&\n typeof error.statusText === \"string\" &&\n typeof error.internal === \"boolean\" &&\n \"data\" in error\n );\n}\n","import type { History, Location, Path, To } from \"./history\";\nimport {\n Action as HistoryAction,\n createLocation,\n createPath,\n invariant,\n parsePath,\n warning,\n} from \"./history\";\nimport type {\n AgnosticDataRouteMatch,\n AgnosticDataRouteObject,\n DataStrategyMatch,\n AgnosticRouteObject,\n DataResult,\n DataStrategyFunction,\n DataStrategyFunctionArgs,\n DeferredData,\n DeferredResult,\n DetectErrorBoundaryFunction,\n ErrorResult,\n FormEncType,\n FormMethod,\n HTMLFormMethod,\n DataStrategyResult,\n ImmutableRouteKey,\n MapRoutePropertiesFunction,\n MutationFormMethod,\n RedirectResult,\n RouteData,\n RouteManifest,\n ShouldRevalidateFunctionArgs,\n Submission,\n SuccessResult,\n UIMatch,\n V7_FormMethod,\n V7_MutationFormMethod,\n AgnosticPatchRoutesOnNavigationFunction,\n DataWithResponseInit,\n} from \"./utils\";\nimport {\n ErrorResponseImpl,\n ResultType,\n convertRouteMatchToUiMatch,\n convertRoutesToDataRoutes,\n getPathContributingMatches,\n getResolveToMatches,\n immutableRouteKeys,\n isRouteErrorResponse,\n joinPaths,\n matchRoutes,\n matchRoutesImpl,\n resolveTo,\n stripBasename,\n} from \"./utils\";\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Types and Constants\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A Router instance manages all navigation and data loading/mutations\n */\nexport interface Router {\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the basename for the router\n */\n get basename(): RouterInit[\"basename\"];\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the future config for the router\n */\n get future(): FutureConfig;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the current state of the router\n */\n get state(): RouterState;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the routes for this router instance\n */\n get routes(): AgnosticDataRouteObject[];\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the window associated with the router\n */\n get window(): RouterInit[\"window\"];\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Initialize the router, including adding history listeners and kicking off\n * initial data fetches. Returns a function to cleanup listeners and abort\n * any in-progress loads\n */\n initialize(): Router;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Subscribe to router.state updates\n *\n * @param fn function to call with the new state\n */\n subscribe(fn: RouterSubscriber): () => void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Enable scroll restoration behavior in the router\n *\n * @param savedScrollPositions Object that will manage positions, in case\n * it's being restored from sessionStorage\n * @param getScrollPosition Function to get the active Y scroll position\n * @param getKey Function to get the key to use for restoration\n */\n enableScrollRestoration(\n savedScrollPositions: Record,\n getScrollPosition: GetScrollPositionFunction,\n getKey?: GetScrollRestorationKeyFunction\n ): () => void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Navigate forward/backward in the history stack\n * @param to Delta to move in the history stack\n */\n navigate(to: number): Promise;\n\n /**\n * Navigate to the given path\n * @param to Path to navigate to\n * @param opts Navigation options (method, submission, etc.)\n */\n navigate(to: To | null, opts?: RouterNavigateOptions): Promise;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Trigger a fetcher load/submission\n *\n * @param key Fetcher key\n * @param routeId Route that owns the fetcher\n * @param href href to fetch\n * @param opts Fetcher options, (method, submission, etc.)\n */\n fetch(\n key: string,\n routeId: string,\n href: string | null,\n opts?: RouterFetchOptions\n ): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Trigger a revalidation of all current route loaders and fetcher loads\n */\n revalidate(): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Utility function to create an href for the given location\n * @param location\n */\n createHref(location: Location | URL): string;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Utility function to URL encode a destination path according to the internal\n * history implementation\n * @param to\n */\n encodeLocation(to: To): Path;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Get/create a fetcher for the given key\n * @param key\n */\n getFetcher(key: string): Fetcher;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Delete the fetcher for a given key\n * @param key\n */\n deleteFetcher(key: string): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Cleanup listeners and abort any in-progress loads\n */\n dispose(): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Get a navigation blocker\n * @param key The identifier for the blocker\n * @param fn The blocker function implementation\n */\n getBlocker(key: string, fn: BlockerFunction): Blocker;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Delete a navigation blocker\n * @param key The identifier for the blocker\n */\n deleteBlocker(key: string): void;\n\n /**\n * @internal\n * PRIVATE DO NOT USE\n *\n * Patch additional children routes into an existing parent route\n * @param routeId The parent route id or a callback function accepting `patch`\n * to perform batch patching\n * @param children The additional children routes\n */\n patchRoutes(routeId: string | null, children: AgnosticRouteObject[]): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * HMR needs to pass in-flight route updates to React Router\n * TODO: Replace this with granular route update APIs (addRoute, updateRoute, deleteRoute)\n */\n _internalSetRoutes(routes: AgnosticRouteObject[]): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Internal fetch AbortControllers accessed by unit tests\n */\n _internalFetchControllers: Map;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Internal pending DeferredData instances accessed by unit tests\n */\n _internalActiveDeferreds: Map;\n}\n\n/**\n * State maintained internally by the router. During a navigation, all states\n * reflect the the \"old\" location unless otherwise noted.\n */\nexport interface RouterState {\n /**\n * The action of the most recent navigation\n */\n historyAction: HistoryAction;\n\n /**\n * The current location reflected by the router\n */\n location: Location;\n\n /**\n * The current set of route matches\n */\n matches: AgnosticDataRouteMatch[];\n\n /**\n * Tracks whether we've completed our initial data load\n */\n initialized: boolean;\n\n /**\n * Current scroll position we should start at for a new view\n * - number -> scroll position to restore to\n * - false -> do not restore scroll at all (used during submissions)\n * - null -> don't have a saved position, scroll to hash or top of page\n */\n restoreScrollPosition: number | false | null;\n\n /**\n * Indicate whether this navigation should skip resetting the scroll position\n * if we are unable to restore the scroll position\n */\n preventScrollReset: boolean;\n\n /**\n * Tracks the state of the current navigation\n */\n navigation: Navigation;\n\n /**\n * Tracks any in-progress revalidations\n */\n revalidation: RevalidationState;\n\n /**\n * Data from the loaders for the current matches\n */\n loaderData: RouteData;\n\n /**\n * Data from the action for the current matches\n */\n actionData: RouteData | null;\n\n /**\n * Errors caught from loaders for the current matches\n */\n errors: RouteData | null;\n\n /**\n * Map of current fetchers\n */\n fetchers: Map;\n\n /**\n * Map of current blockers\n */\n blockers: Map;\n}\n\n/**\n * Data that can be passed into hydrate a Router from SSR\n */\nexport type HydrationState = Partial<\n Pick\n>;\n\n/**\n * Future flags to toggle new feature behavior\n */\nexport interface FutureConfig {\n v7_fetcherPersist: boolean;\n v7_normalizeFormMethod: boolean;\n v7_partialHydration: boolean;\n v7_prependBasename: boolean;\n v7_relativeSplatPath: boolean;\n v7_skipActionErrorRevalidation: boolean;\n}\n\n/**\n * Initialization options for createRouter\n */\nexport interface RouterInit {\n routes: AgnosticRouteObject[];\n history: History;\n basename?: string;\n /**\n * @deprecated Use `mapRouteProperties` instead\n */\n detectErrorBoundary?: DetectErrorBoundaryFunction;\n mapRouteProperties?: MapRoutePropertiesFunction;\n future?: Partial;\n hydrationData?: HydrationState;\n window?: Window;\n dataStrategy?: DataStrategyFunction;\n patchRoutesOnNavigation?: AgnosticPatchRoutesOnNavigationFunction;\n}\n\n/**\n * State returned from a server-side query() call\n */\nexport interface StaticHandlerContext {\n basename: Router[\"basename\"];\n location: RouterState[\"location\"];\n matches: RouterState[\"matches\"];\n loaderData: RouterState[\"loaderData\"];\n actionData: RouterState[\"actionData\"];\n errors: RouterState[\"errors\"];\n statusCode: number;\n loaderHeaders: Record;\n actionHeaders: Record;\n activeDeferreds: Record | null;\n _deepestRenderedBoundaryId?: string | null;\n}\n\n/**\n * A StaticHandler instance manages a singular SSR navigation/fetch event\n */\nexport interface StaticHandler {\n dataRoutes: AgnosticDataRouteObject[];\n query(\n request: Request,\n opts?: {\n requestContext?: unknown;\n skipLoaderErrorBubbling?: boolean;\n dataStrategy?: DataStrategyFunction;\n }\n ): Promise;\n queryRoute(\n request: Request,\n opts?: {\n routeId?: string;\n requestContext?: unknown;\n dataStrategy?: DataStrategyFunction;\n }\n ): Promise;\n}\n\ntype ViewTransitionOpts = {\n currentLocation: Location;\n nextLocation: Location;\n};\n\n/**\n * Subscriber function signature for changes to router state\n */\nexport interface RouterSubscriber {\n (\n state: RouterState,\n opts: {\n deletedFetchers: string[];\n viewTransitionOpts?: ViewTransitionOpts;\n flushSync: boolean;\n }\n ): void;\n}\n\n/**\n * Function signature for determining the key to be used in scroll restoration\n * for a given location\n */\nexport interface GetScrollRestorationKeyFunction {\n (location: Location, matches: UIMatch[]): string | null;\n}\n\n/**\n * Function signature for determining the current scroll position\n */\nexport interface GetScrollPositionFunction {\n (): number;\n}\n\nexport type RelativeRoutingType = \"route\" | \"path\";\n\n// Allowed for any navigation or fetch\ntype BaseNavigateOrFetchOptions = {\n preventScrollReset?: boolean;\n relative?: RelativeRoutingType;\n flushSync?: boolean;\n};\n\n// Only allowed for navigations\ntype BaseNavigateOptions = BaseNavigateOrFetchOptions & {\n replace?: boolean;\n state?: any;\n fromRouteId?: string;\n viewTransition?: boolean;\n};\n\n// Only allowed for submission navigations\ntype BaseSubmissionOptions = {\n formMethod?: HTMLFormMethod;\n formEncType?: FormEncType;\n} & (\n | { formData: FormData; body?: undefined }\n | { formData?: undefined; body: any }\n);\n\n/**\n * Options for a navigate() call for a normal (non-submission) navigation\n */\ntype LinkNavigateOptions = BaseNavigateOptions;\n\n/**\n * Options for a navigate() call for a submission navigation\n */\ntype SubmissionNavigateOptions = BaseNavigateOptions & BaseSubmissionOptions;\n\n/**\n * Options to pass to navigate() for a navigation\n */\nexport type RouterNavigateOptions =\n | LinkNavigateOptions\n | SubmissionNavigateOptions;\n\n/**\n * Options for a fetch() load\n */\ntype LoadFetchOptions = BaseNavigateOrFetchOptions;\n\n/**\n * Options for a fetch() submission\n */\ntype SubmitFetchOptions = BaseNavigateOrFetchOptions & BaseSubmissionOptions;\n\n/**\n * Options to pass to fetch()\n */\nexport type RouterFetchOptions = LoadFetchOptions | SubmitFetchOptions;\n\n/**\n * Potential states for state.navigation\n */\nexport type NavigationStates = {\n Idle: {\n state: \"idle\";\n location: undefined;\n formMethod: undefined;\n formAction: undefined;\n formEncType: undefined;\n formData: undefined;\n json: undefined;\n text: undefined;\n };\n Loading: {\n state: \"loading\";\n location: Location;\n formMethod: Submission[\"formMethod\"] | undefined;\n formAction: Submission[\"formAction\"] | undefined;\n formEncType: Submission[\"formEncType\"] | undefined;\n formData: Submission[\"formData\"] | undefined;\n json: Submission[\"json\"] | undefined;\n text: Submission[\"text\"] | undefined;\n };\n Submitting: {\n state: \"submitting\";\n location: Location;\n formMethod: Submission[\"formMethod\"];\n formAction: Submission[\"formAction\"];\n formEncType: Submission[\"formEncType\"];\n formData: Submission[\"formData\"];\n json: Submission[\"json\"];\n text: Submission[\"text\"];\n };\n};\n\nexport type Navigation = NavigationStates[keyof NavigationStates];\n\nexport type RevalidationState = \"idle\" | \"loading\";\n\n/**\n * Potential states for fetchers\n */\ntype FetcherStates = {\n Idle: {\n state: \"idle\";\n formMethod: undefined;\n formAction: undefined;\n formEncType: undefined;\n text: undefined;\n formData: undefined;\n json: undefined;\n data: TData | undefined;\n };\n Loading: {\n state: \"loading\";\n formMethod: Submission[\"formMethod\"] | undefined;\n formAction: Submission[\"formAction\"] | undefined;\n formEncType: Submission[\"formEncType\"] | undefined;\n text: Submission[\"text\"] | undefined;\n formData: Submission[\"formData\"] | undefined;\n json: Submission[\"json\"] | undefined;\n data: TData | undefined;\n };\n Submitting: {\n state: \"submitting\";\n formMethod: Submission[\"formMethod\"];\n formAction: Submission[\"formAction\"];\n formEncType: Submission[\"formEncType\"];\n text: Submission[\"text\"];\n formData: Submission[\"formData\"];\n json: Submission[\"json\"];\n data: TData | undefined;\n };\n};\n\nexport type Fetcher =\n FetcherStates[keyof FetcherStates];\n\ninterface BlockerBlocked {\n state: \"blocked\";\n reset(): void;\n proceed(): void;\n location: Location;\n}\n\ninterface BlockerUnblocked {\n state: \"unblocked\";\n reset: undefined;\n proceed: undefined;\n location: undefined;\n}\n\ninterface BlockerProceeding {\n state: \"proceeding\";\n reset: undefined;\n proceed: undefined;\n location: Location;\n}\n\nexport type Blocker = BlockerUnblocked | BlockerBlocked | BlockerProceeding;\n\nexport type BlockerFunction = (args: {\n currentLocation: Location;\n nextLocation: Location;\n historyAction: HistoryAction;\n}) => boolean;\n\ninterface ShortCircuitable {\n /**\n * startNavigation does not need to complete the navigation because we\n * redirected or got interrupted\n */\n shortCircuited?: boolean;\n}\n\ntype PendingActionResult = [string, SuccessResult | ErrorResult];\n\ninterface HandleActionResult extends ShortCircuitable {\n /**\n * Route matches which may have been updated from fog of war discovery\n */\n matches?: RouterState[\"matches\"];\n /**\n * Tuple for the returned or thrown value from the current action. The routeId\n * is the action route for success and the bubbled boundary route for errors.\n */\n pendingActionResult?: PendingActionResult;\n}\n\ninterface HandleLoadersResult extends ShortCircuitable {\n /**\n * Route matches which may have been updated from fog of war discovery\n */\n matches?: RouterState[\"matches\"];\n /**\n * loaderData returned from the current set of loaders\n */\n loaderData?: RouterState[\"loaderData\"];\n /**\n * errors thrown from the current set of loaders\n */\n errors?: RouterState[\"errors\"];\n}\n\n/**\n * Cached info for active fetcher.load() instances so they can participate\n * in revalidation\n */\ninterface FetchLoadMatch {\n routeId: string;\n path: string;\n}\n\n/**\n * Identified fetcher.load() calls that need to be revalidated\n */\ninterface RevalidatingFetcher extends FetchLoadMatch {\n key: string;\n match: AgnosticDataRouteMatch | null;\n matches: AgnosticDataRouteMatch[] | null;\n controller: AbortController | null;\n}\n\nconst validMutationMethodsArr: MutationFormMethod[] = [\n \"post\",\n \"put\",\n \"patch\",\n \"delete\",\n];\nconst validMutationMethods = new Set(\n validMutationMethodsArr\n);\n\nconst validRequestMethodsArr: FormMethod[] = [\n \"get\",\n ...validMutationMethodsArr,\n];\nconst validRequestMethods = new Set(validRequestMethodsArr);\n\nconst redirectStatusCodes = new Set([301, 302, 303, 307, 308]);\nconst redirectPreserveMethodStatusCodes = new Set([307, 308]);\n\nexport const IDLE_NAVIGATION: NavigationStates[\"Idle\"] = {\n state: \"idle\",\n location: undefined,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n};\n\nexport const IDLE_FETCHER: FetcherStates[\"Idle\"] = {\n state: \"idle\",\n data: undefined,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n};\n\nexport const IDLE_BLOCKER: BlockerUnblocked = {\n state: \"unblocked\",\n proceed: undefined,\n reset: undefined,\n location: undefined,\n};\n\nconst ABSOLUTE_URL_REGEX = /^(?:[a-z][a-z0-9+.-]*:|\\/\\/)/i;\n\nconst defaultMapRouteProperties: MapRoutePropertiesFunction = (route) => ({\n hasErrorBoundary: Boolean(route.hasErrorBoundary),\n});\n\nconst TRANSITIONS_STORAGE_KEY = \"remix-router-transitions\";\n\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region createRouter\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Create a router and listen to history POP navigations\n */\nexport function createRouter(init: RouterInit): Router {\n const routerWindow = init.window\n ? init.window\n : typeof window !== \"undefined\"\n ? window\n : undefined;\n const isBrowser =\n typeof routerWindow !== \"undefined\" &&\n typeof routerWindow.document !== \"undefined\" &&\n typeof routerWindow.document.createElement !== \"undefined\";\n const isServer = !isBrowser;\n\n invariant(\n init.routes.length > 0,\n \"You must provide a non-empty routes array to createRouter\"\n );\n\n let mapRouteProperties: MapRoutePropertiesFunction;\n if (init.mapRouteProperties) {\n mapRouteProperties = init.mapRouteProperties;\n } else if (init.detectErrorBoundary) {\n // If they are still using the deprecated version, wrap it with the new API\n let detectErrorBoundary = init.detectErrorBoundary;\n mapRouteProperties = (route) => ({\n hasErrorBoundary: detectErrorBoundary(route),\n });\n } else {\n mapRouteProperties = defaultMapRouteProperties;\n }\n\n // Routes keyed by ID\n let manifest: RouteManifest = {};\n // Routes in tree format for matching\n let dataRoutes = convertRoutesToDataRoutes(\n init.routes,\n mapRouteProperties,\n undefined,\n manifest\n );\n let inFlightDataRoutes: AgnosticDataRouteObject[] | undefined;\n let basename = init.basename || \"/\";\n let dataStrategyImpl = init.dataStrategy || defaultDataStrategy;\n let patchRoutesOnNavigationImpl = init.patchRoutesOnNavigation;\n\n // Config driven behavior flags\n let future: FutureConfig = {\n v7_fetcherPersist: false,\n v7_normalizeFormMethod: false,\n v7_partialHydration: false,\n v7_prependBasename: false,\n v7_relativeSplatPath: false,\n v7_skipActionErrorRevalidation: false,\n ...init.future,\n };\n // Cleanup function for history\n let unlistenHistory: (() => void) | null = null;\n // Externally-provided functions to call on all state changes\n let subscribers = new Set();\n // Externally-provided object to hold scroll restoration locations during routing\n let savedScrollPositions: Record | null = null;\n // Externally-provided function to get scroll restoration keys\n let getScrollRestorationKey: GetScrollRestorationKeyFunction | null = null;\n // Externally-provided function to get current scroll position\n let getScrollPosition: GetScrollPositionFunction | null = null;\n // One-time flag to control the initial hydration scroll restoration. Because\n // we don't get the saved positions from until _after_\n // the initial render, we need to manually trigger a separate updateState to\n // send along the restoreScrollPosition\n // Set to true if we have `hydrationData` since we assume we were SSR'd and that\n // SSR did the initial scroll restoration.\n let initialScrollRestored = init.hydrationData != null;\n\n let initialMatches = matchRoutes(dataRoutes, init.history.location, basename);\n let initialMatchesIsFOW = false;\n let initialErrors: RouteData | null = null;\n\n if (initialMatches == null && !patchRoutesOnNavigationImpl) {\n // If we do not match a user-provided-route, fall back to the root\n // to allow the error boundary to take over\n let error = getInternalRouterError(404, {\n pathname: init.history.location.pathname,\n });\n let { matches, route } = getShortCircuitMatches(dataRoutes);\n initialMatches = matches;\n initialErrors = { [route.id]: error };\n }\n\n // In SPA apps, if the user provided a patchRoutesOnNavigation implementation and\n // our initial match is a splat route, clear them out so we run through lazy\n // discovery on hydration in case there's a more accurate lazy route match.\n // In SSR apps (with `hydrationData`), we expect that the server will send\n // up the proper matched routes so we don't want to run lazy discovery on\n // initial hydration and want to hydrate into the splat route.\n if (initialMatches && !init.hydrationData) {\n let fogOfWar = checkFogOfWar(\n initialMatches,\n dataRoutes,\n init.history.location.pathname\n );\n if (fogOfWar.active) {\n initialMatches = null;\n }\n }\n\n let initialized: boolean;\n if (!initialMatches) {\n initialized = false;\n initialMatches = [];\n\n // If partial hydration and fog of war is enabled, we will be running\n // `patchRoutesOnNavigation` during hydration so include any partial matches as\n // the initial matches so we can properly render `HydrateFallback`'s\n if (future.v7_partialHydration) {\n let fogOfWar = checkFogOfWar(\n null,\n dataRoutes,\n init.history.location.pathname\n );\n if (fogOfWar.active && fogOfWar.matches) {\n initialMatchesIsFOW = true;\n initialMatches = fogOfWar.matches;\n }\n }\n } else if (initialMatches.some((m) => m.route.lazy)) {\n // All initialMatches need to be loaded before we're ready. If we have lazy\n // functions around still then we'll need to run them in initialize()\n initialized = false;\n } else if (!initialMatches.some((m) => m.route.loader)) {\n // If we've got no loaders to run, then we're good to go\n initialized = true;\n } else if (future.v7_partialHydration) {\n // If partial hydration is enabled, we're initialized so long as we were\n // provided with hydrationData for every route with a loader, and no loaders\n // were marked for explicit hydration\n let loaderData = init.hydrationData ? init.hydrationData.loaderData : null;\n let errors = init.hydrationData ? init.hydrationData.errors : null;\n // If errors exist, don't consider routes below the boundary\n if (errors) {\n let idx = initialMatches.findIndex(\n (m) => errors![m.route.id] !== undefined\n );\n initialized = initialMatches\n .slice(0, idx + 1)\n .every((m) => !shouldLoadRouteOnHydration(m.route, loaderData, errors));\n } else {\n initialized = initialMatches.every(\n (m) => !shouldLoadRouteOnHydration(m.route, loaderData, errors)\n );\n }\n } else {\n // Without partial hydration - we're initialized if we were provided any\n // hydrationData - which is expected to be complete\n initialized = init.hydrationData != null;\n }\n\n let router: Router;\n let state: RouterState = {\n historyAction: init.history.action,\n location: init.history.location,\n matches: initialMatches,\n initialized,\n navigation: IDLE_NAVIGATION,\n // Don't restore on initial updateState() if we were SSR'd\n restoreScrollPosition: init.hydrationData != null ? false : null,\n preventScrollReset: false,\n revalidation: \"idle\",\n loaderData: (init.hydrationData && init.hydrationData.loaderData) || {},\n actionData: (init.hydrationData && init.hydrationData.actionData) || null,\n errors: (init.hydrationData && init.hydrationData.errors) || initialErrors,\n fetchers: new Map(),\n blockers: new Map(),\n };\n\n // -- Stateful internal variables to manage navigations --\n // Current navigation in progress (to be committed in completeNavigation)\n let pendingAction: HistoryAction = HistoryAction.Pop;\n\n // Should the current navigation prevent the scroll reset if scroll cannot\n // be restored?\n let pendingPreventScrollReset = false;\n\n // AbortController for the active navigation\n let pendingNavigationController: AbortController | null;\n\n // Should the current navigation enable document.startViewTransition?\n let pendingViewTransitionEnabled = false;\n\n // Store applied view transitions so we can apply them on POP\n let appliedViewTransitions: Map> = new Map<\n string,\n Set\n >();\n\n // Cleanup function for persisting applied transitions to sessionStorage\n let removePageHideEventListener: (() => void) | null = null;\n\n // We use this to avoid touching history in completeNavigation if a\n // revalidation is entirely uninterrupted\n let isUninterruptedRevalidation = false;\n\n // Use this internal flag to force revalidation of all loaders:\n // - submissions (completed or interrupted)\n // - useRevalidator()\n // - X-Remix-Revalidate (from redirect)\n let isRevalidationRequired = false;\n\n // Use this internal array to capture routes that require revalidation due\n // to a cancelled deferred on action submission\n let cancelledDeferredRoutes: string[] = [];\n\n // Use this internal array to capture fetcher loads that were cancelled by an\n // action navigation and require revalidation\n let cancelledFetcherLoads: Set = new Set();\n\n // AbortControllers for any in-flight fetchers\n let fetchControllers = new Map();\n\n // Track loads based on the order in which they started\n let incrementingLoadId = 0;\n\n // Track the outstanding pending navigation data load to be compared against\n // the globally incrementing load when a fetcher load lands after a completed\n // navigation\n let pendingNavigationLoadId = -1;\n\n // Fetchers that triggered data reloads as a result of their actions\n let fetchReloadIds = new Map();\n\n // Fetchers that triggered redirect navigations\n let fetchRedirectIds = new Set();\n\n // Most recent href/match for fetcher.load calls for fetchers\n let fetchLoadMatches = new Map();\n\n // Ref-count mounted fetchers so we know when it's ok to clean them up\n let activeFetchers = new Map();\n\n // Fetchers that have requested a delete when using v7_fetcherPersist,\n // they'll be officially removed after they return to idle\n let deletedFetchers = new Set();\n\n // Store DeferredData instances for active route matches. When a\n // route loader returns defer() we stick one in here. Then, when a nested\n // promise resolves we update loaderData. If a new navigation starts we\n // cancel active deferreds for eliminated routes.\n let activeDeferreds = new Map();\n\n // Store blocker functions in a separate Map outside of router state since\n // we don't need to update UI state if they change\n let blockerFunctions = new Map();\n\n // Map of pending patchRoutesOnNavigation() promises (keyed by path/matches) so\n // that we only kick them off once for a given combo\n let pendingPatchRoutes = new Map<\n string,\n ReturnType\n >();\n\n // Flag to ignore the next history update, so we can revert the URL change on\n // a POP navigation that was blocked by the user without touching router state\n let unblockBlockerHistoryUpdate: (() => void) | undefined = undefined;\n\n // Initialize the router, all side effects should be kicked off from here.\n // Implemented as a Fluent API for ease of:\n // let router = createRouter(init).initialize();\n function initialize() {\n // If history informs us of a POP navigation, start the navigation but do not update\n // state. We'll update our own state once the navigation completes\n unlistenHistory = init.history.listen(\n ({ action: historyAction, location, delta }) => {\n // Ignore this event if it was just us resetting the URL from a\n // blocked POP navigation\n if (unblockBlockerHistoryUpdate) {\n unblockBlockerHistoryUpdate();\n unblockBlockerHistoryUpdate = undefined;\n return;\n }\n\n warning(\n blockerFunctions.size === 0 || delta != null,\n \"You are trying to use a blocker on a POP navigation to a location \" +\n \"that was not created by @remix-run/router. This will fail silently in \" +\n \"production. This can happen if you are navigating outside the router \" +\n \"via `window.history.pushState`/`window.location.hash` instead of using \" +\n \"router navigation APIs. This can also happen if you are using \" +\n \"createHashRouter and the user manually changes the URL.\"\n );\n\n let blockerKey = shouldBlockNavigation({\n currentLocation: state.location,\n nextLocation: location,\n historyAction,\n });\n\n if (blockerKey && delta != null) {\n // Restore the URL to match the current UI, but don't update router state\n let nextHistoryUpdatePromise = new Promise((resolve) => {\n unblockBlockerHistoryUpdate = resolve;\n });\n init.history.go(delta * -1);\n\n // Put the blocker into a blocked state\n updateBlocker(blockerKey, {\n state: \"blocked\",\n location,\n proceed() {\n updateBlocker(blockerKey!, {\n state: \"proceeding\",\n proceed: undefined,\n reset: undefined,\n location,\n });\n // Re-do the same POP navigation we just blocked, after the url\n // restoration is also complete. See:\n // https://github.com/remix-run/react-router/issues/11613\n nextHistoryUpdatePromise.then(() => init.history.go(delta));\n },\n reset() {\n let blockers = new Map(state.blockers);\n blockers.set(blockerKey!, IDLE_BLOCKER);\n updateState({ blockers });\n },\n });\n return;\n }\n\n return startNavigation(historyAction, location);\n }\n );\n\n if (isBrowser) {\n // FIXME: This feels gross. How can we cleanup the lines between\n // scrollRestoration/appliedTransitions persistance?\n restoreAppliedTransitions(routerWindow, appliedViewTransitions);\n let _saveAppliedTransitions = () =>\n persistAppliedTransitions(routerWindow, appliedViewTransitions);\n routerWindow.addEventListener(\"pagehide\", _saveAppliedTransitions);\n removePageHideEventListener = () =>\n routerWindow.removeEventListener(\"pagehide\", _saveAppliedTransitions);\n }\n\n // Kick off initial data load if needed. Use Pop to avoid modifying history\n // Note we don't do any handling of lazy here. For SPA's it'll get handled\n // in the normal navigation flow. For SSR it's expected that lazy modules are\n // resolved prior to router creation since we can't go into a fallbackElement\n // UI for SSR'd apps\n if (!state.initialized) {\n startNavigation(HistoryAction.Pop, state.location, {\n initialHydration: true,\n });\n }\n\n return router;\n }\n\n // Clean up a router and it's side effects\n function dispose() {\n if (unlistenHistory) {\n unlistenHistory();\n }\n if (removePageHideEventListener) {\n removePageHideEventListener();\n }\n subscribers.clear();\n pendingNavigationController && pendingNavigationController.abort();\n state.fetchers.forEach((_, key) => deleteFetcher(key));\n state.blockers.forEach((_, key) => deleteBlocker(key));\n }\n\n // Subscribe to state updates for the router\n function subscribe(fn: RouterSubscriber) {\n subscribers.add(fn);\n return () => subscribers.delete(fn);\n }\n\n // Update our state and notify the calling context of the change\n function updateState(\n newState: Partial,\n opts: {\n flushSync?: boolean;\n viewTransitionOpts?: ViewTransitionOpts;\n } = {}\n ): void {\n state = {\n ...state,\n ...newState,\n };\n\n // Prep fetcher cleanup so we can tell the UI which fetcher data entries\n // can be removed\n let completedFetchers: string[] = [];\n let deletedFetchersKeys: string[] = [];\n\n if (future.v7_fetcherPersist) {\n state.fetchers.forEach((fetcher, key) => {\n if (fetcher.state === \"idle\") {\n if (deletedFetchers.has(key)) {\n // Unmounted from the UI and can be totally removed\n deletedFetchersKeys.push(key);\n } else {\n // Returned to idle but still mounted in the UI, so semi-remains for\n // revalidations and such\n completedFetchers.push(key);\n }\n }\n });\n }\n\n // Remove any lingering deleted fetchers that have already been removed\n // from state.fetchers\n deletedFetchers.forEach((key) => {\n if (!state.fetchers.has(key) && !fetchControllers.has(key)) {\n deletedFetchersKeys.push(key);\n }\n });\n\n // Iterate over a local copy so that if flushSync is used and we end up\n // removing and adding a new subscriber due to the useCallback dependencies,\n // we don't get ourselves into a loop calling the new subscriber immediately\n [...subscribers].forEach((subscriber) =>\n subscriber(state, {\n deletedFetchers: deletedFetchersKeys,\n viewTransitionOpts: opts.viewTransitionOpts,\n flushSync: opts.flushSync === true,\n })\n );\n\n // Remove idle fetchers from state since we only care about in-flight fetchers.\n if (future.v7_fetcherPersist) {\n completedFetchers.forEach((key) => state.fetchers.delete(key));\n deletedFetchersKeys.forEach((key) => deleteFetcher(key));\n } else {\n // We already called deleteFetcher() on these, can remove them from this\n // Set now that we've handed the keys off to the data layer\n deletedFetchersKeys.forEach((key) => deletedFetchers.delete(key));\n }\n }\n\n // Complete a navigation returning the state.navigation back to the IDLE_NAVIGATION\n // and setting state.[historyAction/location/matches] to the new route.\n // - Location is a required param\n // - Navigation will always be set to IDLE_NAVIGATION\n // - Can pass any other state in newState\n function completeNavigation(\n location: Location,\n newState: Partial>,\n { flushSync }: { flushSync?: boolean } = {}\n ): void {\n // Deduce if we're in a loading/actionReload state:\n // - We have committed actionData in the store\n // - The current navigation was a mutation submission\n // - We're past the submitting state and into the loading state\n // - The location being loaded is not the result of a redirect\n let isActionReload =\n state.actionData != null &&\n state.navigation.formMethod != null &&\n isMutationMethod(state.navigation.formMethod) &&\n state.navigation.state === \"loading\" &&\n location.state?._isRedirect !== true;\n\n let actionData: RouteData | null;\n if (newState.actionData) {\n if (Object.keys(newState.actionData).length > 0) {\n actionData = newState.actionData;\n } else {\n // Empty actionData -> clear prior actionData due to an action error\n actionData = null;\n }\n } else if (isActionReload) {\n // Keep the current data if we're wrapping up the action reload\n actionData = state.actionData;\n } else {\n // Clear actionData on any other completed navigations\n actionData = null;\n }\n\n // Always preserve any existing loaderData from re-used routes\n let loaderData = newState.loaderData\n ? mergeLoaderData(\n state.loaderData,\n newState.loaderData,\n newState.matches || [],\n newState.errors\n )\n : state.loaderData;\n\n // On a successful navigation we can assume we got through all blockers\n // so we can start fresh\n let blockers = state.blockers;\n if (blockers.size > 0) {\n blockers = new Map(blockers);\n blockers.forEach((_, k) => blockers.set(k, IDLE_BLOCKER));\n }\n\n // Always respect the user flag. Otherwise don't reset on mutation\n // submission navigations unless they redirect\n let preventScrollReset =\n pendingPreventScrollReset === true ||\n (state.navigation.formMethod != null &&\n isMutationMethod(state.navigation.formMethod) &&\n location.state?._isRedirect !== true);\n\n // Commit any in-flight routes at the end of the HMR revalidation \"navigation\"\n if (inFlightDataRoutes) {\n dataRoutes = inFlightDataRoutes;\n inFlightDataRoutes = undefined;\n }\n\n if (isUninterruptedRevalidation) {\n // If this was an uninterrupted revalidation then do not touch history\n } else if (pendingAction === HistoryAction.Pop) {\n // Do nothing for POP - URL has already been updated\n } else if (pendingAction === HistoryAction.Push) {\n init.history.push(location, location.state);\n } else if (pendingAction === HistoryAction.Replace) {\n init.history.replace(location, location.state);\n }\n\n let viewTransitionOpts: ViewTransitionOpts | undefined;\n\n // On POP, enable transitions if they were enabled on the original navigation\n if (pendingAction === HistoryAction.Pop) {\n // Forward takes precedence so they behave like the original navigation\n let priorPaths = appliedViewTransitions.get(state.location.pathname);\n if (priorPaths && priorPaths.has(location.pathname)) {\n viewTransitionOpts = {\n currentLocation: state.location,\n nextLocation: location,\n };\n } else if (appliedViewTransitions.has(location.pathname)) {\n // If we don't have a previous forward nav, assume we're popping back to\n // the new location and enable if that location previously enabled\n viewTransitionOpts = {\n currentLocation: location,\n nextLocation: state.location,\n };\n }\n } else if (pendingViewTransitionEnabled) {\n // Store the applied transition on PUSH/REPLACE\n let toPaths = appliedViewTransitions.get(state.location.pathname);\n if (toPaths) {\n toPaths.add(location.pathname);\n } else {\n toPaths = new Set([location.pathname]);\n appliedViewTransitions.set(state.location.pathname, toPaths);\n }\n viewTransitionOpts = {\n currentLocation: state.location,\n nextLocation: location,\n };\n }\n\n updateState(\n {\n ...newState, // matches, errors, fetchers go through as-is\n actionData,\n loaderData,\n historyAction: pendingAction,\n location,\n initialized: true,\n navigation: IDLE_NAVIGATION,\n revalidation: \"idle\",\n restoreScrollPosition: getSavedScrollPosition(\n location,\n newState.matches || state.matches\n ),\n preventScrollReset,\n blockers,\n },\n {\n viewTransitionOpts,\n flushSync: flushSync === true,\n }\n );\n\n // Reset stateful navigation vars\n pendingAction = HistoryAction.Pop;\n pendingPreventScrollReset = false;\n pendingViewTransitionEnabled = false;\n isUninterruptedRevalidation = false;\n isRevalidationRequired = false;\n cancelledDeferredRoutes = [];\n }\n\n // Trigger a navigation event, which can either be a numerical POP or a PUSH\n // replace with an optional submission\n async function navigate(\n to: number | To | null,\n opts?: RouterNavigateOptions\n ): Promise {\n if (typeof to === \"number\") {\n init.history.go(to);\n return;\n }\n\n let normalizedPath = normalizeTo(\n state.location,\n state.matches,\n basename,\n future.v7_prependBasename,\n to,\n future.v7_relativeSplatPath,\n opts?.fromRouteId,\n opts?.relative\n );\n let { path, submission, error } = normalizeNavigateOptions(\n future.v7_normalizeFormMethod,\n false,\n normalizedPath,\n opts\n );\n\n let currentLocation = state.location;\n let nextLocation = createLocation(state.location, path, opts && opts.state);\n\n // When using navigate as a PUSH/REPLACE we aren't reading an already-encoded\n // URL from window.location, so we need to encode it here so the behavior\n // remains the same as POP and non-data-router usages. new URL() does all\n // the same encoding we'd get from a history.pushState/window.location read\n // without having to touch history\n nextLocation = {\n ...nextLocation,\n ...init.history.encodeLocation(nextLocation),\n };\n\n let userReplace = opts && opts.replace != null ? opts.replace : undefined;\n\n let historyAction = HistoryAction.Push;\n\n if (userReplace === true) {\n historyAction = HistoryAction.Replace;\n } else if (userReplace === false) {\n // no-op\n } else if (\n submission != null &&\n isMutationMethod(submission.formMethod) &&\n submission.formAction === state.location.pathname + state.location.search\n ) {\n // By default on submissions to the current location we REPLACE so that\n // users don't have to double-click the back button to get to the prior\n // location. If the user redirects to a different location from the\n // action/loader this will be ignored and the redirect will be a PUSH\n historyAction = HistoryAction.Replace;\n }\n\n let preventScrollReset =\n opts && \"preventScrollReset\" in opts\n ? opts.preventScrollReset === true\n : undefined;\n\n let flushSync = (opts && opts.flushSync) === true;\n\n let blockerKey = shouldBlockNavigation({\n currentLocation,\n nextLocation,\n historyAction,\n });\n\n if (blockerKey) {\n // Put the blocker into a blocked state\n updateBlocker(blockerKey, {\n state: \"blocked\",\n location: nextLocation,\n proceed() {\n updateBlocker(blockerKey!, {\n state: \"proceeding\",\n proceed: undefined,\n reset: undefined,\n location: nextLocation,\n });\n // Send the same navigation through\n navigate(to, opts);\n },\n reset() {\n let blockers = new Map(state.blockers);\n blockers.set(blockerKey!, IDLE_BLOCKER);\n updateState({ blockers });\n },\n });\n return;\n }\n\n return await startNavigation(historyAction, nextLocation, {\n submission,\n // Send through the formData serialization error if we have one so we can\n // render at the right error boundary after we match routes\n pendingError: error,\n preventScrollReset,\n replace: opts && opts.replace,\n enableViewTransition: opts && opts.viewTransition,\n flushSync,\n });\n }\n\n // Revalidate all current loaders. If a navigation is in progress or if this\n // is interrupted by a navigation, allow this to \"succeed\" by calling all\n // loaders during the next loader round\n function revalidate() {\n interruptActiveLoads();\n updateState({ revalidation: \"loading\" });\n\n // If we're currently submitting an action, we don't need to start a new\n // navigation, we'll just let the follow up loader execution call all loaders\n if (state.navigation.state === \"submitting\") {\n return;\n }\n\n // If we're currently in an idle state, start a new navigation for the current\n // action/location and mark it as uninterrupted, which will skip the history\n // update in completeNavigation\n if (state.navigation.state === \"idle\") {\n startNavigation(state.historyAction, state.location, {\n startUninterruptedRevalidation: true,\n });\n return;\n }\n\n // Otherwise, if we're currently in a loading state, just start a new\n // navigation to the navigation.location but do not trigger an uninterrupted\n // revalidation so that history correctly updates once the navigation completes\n startNavigation(\n pendingAction || state.historyAction,\n state.navigation.location,\n {\n overrideNavigation: state.navigation,\n // Proxy through any rending view transition\n enableViewTransition: pendingViewTransitionEnabled === true,\n }\n );\n }\n\n // Start a navigation to the given action/location. Can optionally provide a\n // overrideNavigation which will override the normalLoad in the case of a redirect\n // navigation\n async function startNavigation(\n historyAction: HistoryAction,\n location: Location,\n opts?: {\n initialHydration?: boolean;\n submission?: Submission;\n fetcherSubmission?: Submission;\n overrideNavigation?: Navigation;\n pendingError?: ErrorResponseImpl;\n startUninterruptedRevalidation?: boolean;\n preventScrollReset?: boolean;\n replace?: boolean;\n enableViewTransition?: boolean;\n flushSync?: boolean;\n }\n ): Promise {\n // Abort any in-progress navigations and start a new one. Unset any ongoing\n // uninterrupted revalidations unless told otherwise, since we want this\n // new navigation to update history normally\n pendingNavigationController && pendingNavigationController.abort();\n pendingNavigationController = null;\n pendingAction = historyAction;\n isUninterruptedRevalidation =\n (opts && opts.startUninterruptedRevalidation) === true;\n\n // Save the current scroll position every time we start a new navigation,\n // and track whether we should reset scroll on completion\n saveScrollPosition(state.location, state.matches);\n pendingPreventScrollReset = (opts && opts.preventScrollReset) === true;\n\n pendingViewTransitionEnabled = (opts && opts.enableViewTransition) === true;\n\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let loadingNavigation = opts && opts.overrideNavigation;\n let matches =\n opts?.initialHydration &&\n state.matches &&\n state.matches.length > 0 &&\n !initialMatchesIsFOW\n ? // `matchRoutes()` has already been called if we're in here via `router.initialize()`\n state.matches\n : matchRoutes(routesToUse, location, basename);\n let flushSync = (opts && opts.flushSync) === true;\n\n // Short circuit if it's only a hash change and not a revalidation or\n // mutation submission.\n //\n // Ignore on initial page loads because since the initial hydration will always\n // be \"same hash\". For example, on /page#hash and submit a \n // which will default to a navigation to /page\n if (\n matches &&\n state.initialized &&\n !isRevalidationRequired &&\n isHashChangeOnly(state.location, location) &&\n !(opts && opts.submission && isMutationMethod(opts.submission.formMethod))\n ) {\n completeNavigation(location, { matches }, { flushSync });\n return;\n }\n\n let fogOfWar = checkFogOfWar(matches, routesToUse, location.pathname);\n if (fogOfWar.active && fogOfWar.matches) {\n matches = fogOfWar.matches;\n }\n\n // Short circuit with a 404 on the root error boundary if we match nothing\n if (!matches) {\n let { error, notFoundMatches, route } = handleNavigational404(\n location.pathname\n );\n completeNavigation(\n location,\n {\n matches: notFoundMatches,\n loaderData: {},\n errors: {\n [route.id]: error,\n },\n },\n { flushSync }\n );\n return;\n }\n\n // Create a controller/Request for this navigation\n pendingNavigationController = new AbortController();\n let request = createClientSideRequest(\n init.history,\n location,\n pendingNavigationController.signal,\n opts && opts.submission\n );\n let pendingActionResult: PendingActionResult | undefined;\n\n if (opts && opts.pendingError) {\n // If we have a pendingError, it means the user attempted a GET submission\n // with binary FormData so assign here and skip to handleLoaders. That\n // way we handle calling loaders above the boundary etc. It's not really\n // different from an actionError in that sense.\n pendingActionResult = [\n findNearestBoundary(matches).route.id,\n { type: ResultType.error, error: opts.pendingError },\n ];\n } else if (\n opts &&\n opts.submission &&\n isMutationMethod(opts.submission.formMethod)\n ) {\n // Call action if we received an action submission\n let actionResult = await handleAction(\n request,\n location,\n opts.submission,\n matches,\n fogOfWar.active,\n { replace: opts.replace, flushSync }\n );\n\n if (actionResult.shortCircuited) {\n return;\n }\n\n // If we received a 404 from handleAction, it's because we couldn't lazily\n // discover the destination route so we don't want to call loaders\n if (actionResult.pendingActionResult) {\n let [routeId, result] = actionResult.pendingActionResult;\n if (\n isErrorResult(result) &&\n isRouteErrorResponse(result.error) &&\n result.error.status === 404\n ) {\n pendingNavigationController = null;\n\n completeNavigation(location, {\n matches: actionResult.matches,\n loaderData: {},\n errors: {\n [routeId]: result.error,\n },\n });\n return;\n }\n }\n\n matches = actionResult.matches || matches;\n pendingActionResult = actionResult.pendingActionResult;\n loadingNavigation = getLoadingNavigation(location, opts.submission);\n flushSync = false;\n // No need to do fog of war matching again on loader execution\n fogOfWar.active = false;\n\n // Create a GET request for the loaders\n request = createClientSideRequest(\n init.history,\n request.url,\n request.signal\n );\n }\n\n // Call loaders\n let {\n shortCircuited,\n matches: updatedMatches,\n loaderData,\n errors,\n } = await handleLoaders(\n request,\n location,\n matches,\n fogOfWar.active,\n loadingNavigation,\n opts && opts.submission,\n opts && opts.fetcherSubmission,\n opts && opts.replace,\n opts && opts.initialHydration === true,\n flushSync,\n pendingActionResult\n );\n\n if (shortCircuited) {\n return;\n }\n\n // Clean up now that the action/loaders have completed. Don't clean up if\n // we short circuited because pendingNavigationController will have already\n // been assigned to a new controller for the next navigation\n pendingNavigationController = null;\n\n completeNavigation(location, {\n matches: updatedMatches || matches,\n ...getActionDataForCommit(pendingActionResult),\n loaderData,\n errors,\n });\n }\n\n // Call the action matched by the leaf route for this navigation and handle\n // redirects/errors\n async function handleAction(\n request: Request,\n location: Location,\n submission: Submission,\n matches: AgnosticDataRouteMatch[],\n isFogOfWar: boolean,\n opts: { replace?: boolean; flushSync?: boolean } = {}\n ): Promise {\n interruptActiveLoads();\n\n // Put us in a submitting state\n let navigation = getSubmittingNavigation(location, submission);\n updateState({ navigation }, { flushSync: opts.flushSync === true });\n\n if (isFogOfWar) {\n let discoverResult = await discoverRoutes(\n matches,\n location.pathname,\n request.signal\n );\n if (discoverResult.type === \"aborted\") {\n return { shortCircuited: true };\n } else if (discoverResult.type === \"error\") {\n let boundaryId = findNearestBoundary(discoverResult.partialMatches)\n .route.id;\n return {\n matches: discoverResult.partialMatches,\n pendingActionResult: [\n boundaryId,\n {\n type: ResultType.error,\n error: discoverResult.error,\n },\n ],\n };\n } else if (!discoverResult.matches) {\n let { notFoundMatches, error, route } = handleNavigational404(\n location.pathname\n );\n return {\n matches: notFoundMatches,\n pendingActionResult: [\n route.id,\n {\n type: ResultType.error,\n error,\n },\n ],\n };\n } else {\n matches = discoverResult.matches;\n }\n }\n\n // Call our action and get the result\n let result: DataResult;\n let actionMatch = getTargetMatch(matches, location);\n\n if (!actionMatch.route.action && !actionMatch.route.lazy) {\n result = {\n type: ResultType.error,\n error: getInternalRouterError(405, {\n method: request.method,\n pathname: location.pathname,\n routeId: actionMatch.route.id,\n }),\n };\n } else {\n let results = await callDataStrategy(\n \"action\",\n state,\n request,\n [actionMatch],\n matches,\n null\n );\n result = results[actionMatch.route.id];\n\n if (request.signal.aborted) {\n return { shortCircuited: true };\n }\n }\n\n if (isRedirectResult(result)) {\n let replace: boolean;\n if (opts && opts.replace != null) {\n replace = opts.replace;\n } else {\n // If the user didn't explicity indicate replace behavior, replace if\n // we redirected to the exact same location we're currently at to avoid\n // double back-buttons\n let location = normalizeRedirectLocation(\n result.response.headers.get(\"Location\")!,\n new URL(request.url),\n basename\n );\n replace = location === state.location.pathname + state.location.search;\n }\n await startRedirectNavigation(request, result, true, {\n submission,\n replace,\n });\n return { shortCircuited: true };\n }\n\n if (isDeferredResult(result)) {\n throw getInternalRouterError(400, { type: \"defer-action\" });\n }\n\n if (isErrorResult(result)) {\n // Store off the pending error - we use it to determine which loaders\n // to call and will commit it when we complete the navigation\n let boundaryMatch = findNearestBoundary(matches, actionMatch.route.id);\n\n // By default, all submissions to the current location are REPLACE\n // navigations, but if the action threw an error that'll be rendered in\n // an errorElement, we fall back to PUSH so that the user can use the\n // back button to get back to the pre-submission form location to try\n // again\n if ((opts && opts.replace) !== true) {\n pendingAction = HistoryAction.Push;\n }\n\n return {\n matches,\n pendingActionResult: [boundaryMatch.route.id, result],\n };\n }\n\n return {\n matches,\n pendingActionResult: [actionMatch.route.id, result],\n };\n }\n\n // Call all applicable loaders for the given matches, handling redirects,\n // errors, etc.\n async function handleLoaders(\n request: Request,\n location: Location,\n matches: AgnosticDataRouteMatch[],\n isFogOfWar: boolean,\n overrideNavigation?: Navigation,\n submission?: Submission,\n fetcherSubmission?: Submission,\n replace?: boolean,\n initialHydration?: boolean,\n flushSync?: boolean,\n pendingActionResult?: PendingActionResult\n ): Promise {\n // Figure out the right navigation we want to use for data loading\n let loadingNavigation =\n overrideNavigation || getLoadingNavigation(location, submission);\n\n // If this was a redirect from an action we don't have a \"submission\" but\n // we have it on the loading navigation so use that if available\n let activeSubmission =\n submission ||\n fetcherSubmission ||\n getSubmissionFromNavigation(loadingNavigation);\n\n // If this is an uninterrupted revalidation, we remain in our current idle\n // state. If not, we need to switch to our loading state and load data,\n // preserving any new action data or existing action data (in the case of\n // a revalidation interrupting an actionReload)\n // If we have partialHydration enabled, then don't update the state for the\n // initial data load since it's not a \"navigation\"\n let shouldUpdateNavigationState =\n !isUninterruptedRevalidation &&\n (!future.v7_partialHydration || !initialHydration);\n\n // When fog of war is enabled, we enter our `loading` state earlier so we\n // can discover new routes during the `loading` state. We skip this if\n // we've already run actions since we would have done our matching already.\n // If the children() function threw then, we want to proceed with the\n // partial matches it discovered.\n if (isFogOfWar) {\n if (shouldUpdateNavigationState) {\n let actionData = getUpdatedActionData(pendingActionResult);\n updateState(\n {\n navigation: loadingNavigation,\n ...(actionData !== undefined ? { actionData } : {}),\n },\n {\n flushSync,\n }\n );\n }\n\n let discoverResult = await discoverRoutes(\n matches,\n location.pathname,\n request.signal\n );\n\n if (discoverResult.type === \"aborted\") {\n return { shortCircuited: true };\n } else if (discoverResult.type === \"error\") {\n let boundaryId = findNearestBoundary(discoverResult.partialMatches)\n .route.id;\n return {\n matches: discoverResult.partialMatches,\n loaderData: {},\n errors: {\n [boundaryId]: discoverResult.error,\n },\n };\n } else if (!discoverResult.matches) {\n let { error, notFoundMatches, route } = handleNavigational404(\n location.pathname\n );\n return {\n matches: notFoundMatches,\n loaderData: {},\n errors: {\n [route.id]: error,\n },\n };\n } else {\n matches = discoverResult.matches;\n }\n }\n\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let [matchesToLoad, revalidatingFetchers] = getMatchesToLoad(\n init.history,\n state,\n matches,\n activeSubmission,\n location,\n future.v7_partialHydration && initialHydration === true,\n future.v7_skipActionErrorRevalidation,\n isRevalidationRequired,\n cancelledDeferredRoutes,\n cancelledFetcherLoads,\n deletedFetchers,\n fetchLoadMatches,\n fetchRedirectIds,\n routesToUse,\n basename,\n pendingActionResult\n );\n\n // Cancel pending deferreds for no-longer-matched routes or routes we're\n // about to reload. Note that if this is an action reload we would have\n // already cancelled all pending deferreds so this would be a no-op\n cancelActiveDeferreds(\n (routeId) =>\n !(matches && matches.some((m) => m.route.id === routeId)) ||\n (matchesToLoad && matchesToLoad.some((m) => m.route.id === routeId))\n );\n\n pendingNavigationLoadId = ++incrementingLoadId;\n\n // Short circuit if we have no loaders to run\n if (matchesToLoad.length === 0 && revalidatingFetchers.length === 0) {\n let updatedFetchers = markFetchRedirectsDone();\n completeNavigation(\n location,\n {\n matches,\n loaderData: {},\n // Commit pending error if we're short circuiting\n errors:\n pendingActionResult && isErrorResult(pendingActionResult[1])\n ? { [pendingActionResult[0]]: pendingActionResult[1].error }\n : null,\n ...getActionDataForCommit(pendingActionResult),\n ...(updatedFetchers ? { fetchers: new Map(state.fetchers) } : {}),\n },\n { flushSync }\n );\n return { shortCircuited: true };\n }\n\n if (shouldUpdateNavigationState) {\n let updates: Partial = {};\n if (!isFogOfWar) {\n // Only update navigation/actionNData if we didn't already do it above\n updates.navigation = loadingNavigation;\n let actionData = getUpdatedActionData(pendingActionResult);\n if (actionData !== undefined) {\n updates.actionData = actionData;\n }\n }\n if (revalidatingFetchers.length > 0) {\n updates.fetchers = getUpdatedRevalidatingFetchers(revalidatingFetchers);\n }\n updateState(updates, { flushSync });\n }\n\n revalidatingFetchers.forEach((rf) => {\n abortFetcher(rf.key);\n if (rf.controller) {\n // Fetchers use an independent AbortController so that aborting a fetcher\n // (via deleteFetcher) does not abort the triggering navigation that\n // triggered the revalidation\n fetchControllers.set(rf.key, rf.controller);\n }\n });\n\n // Proxy navigation abort through to revalidation fetchers\n let abortPendingFetchRevalidations = () =>\n revalidatingFetchers.forEach((f) => abortFetcher(f.key));\n if (pendingNavigationController) {\n pendingNavigationController.signal.addEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n }\n\n let { loaderResults, fetcherResults } =\n await callLoadersAndMaybeResolveData(\n state,\n matches,\n matchesToLoad,\n revalidatingFetchers,\n request\n );\n\n if (request.signal.aborted) {\n return { shortCircuited: true };\n }\n\n // Clean up _after_ loaders have completed. Don't clean up if we short\n // circuited because fetchControllers would have been aborted and\n // reassigned to new controllers for the next navigation\n if (pendingNavigationController) {\n pendingNavigationController.signal.removeEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n }\n\n revalidatingFetchers.forEach((rf) => fetchControllers.delete(rf.key));\n\n // If any loaders returned a redirect Response, start a new REPLACE navigation\n let redirect = findRedirect(loaderResults);\n if (redirect) {\n await startRedirectNavigation(request, redirect.result, true, {\n replace,\n });\n return { shortCircuited: true };\n }\n\n redirect = findRedirect(fetcherResults);\n if (redirect) {\n // If this redirect came from a fetcher make sure we mark it in\n // fetchRedirectIds so it doesn't get revalidated on the next set of\n // loader executions\n fetchRedirectIds.add(redirect.key);\n await startRedirectNavigation(request, redirect.result, true, {\n replace,\n });\n return { shortCircuited: true };\n }\n\n // Process and commit output from loaders\n let { loaderData, errors } = processLoaderData(\n state,\n matches,\n loaderResults,\n pendingActionResult,\n revalidatingFetchers,\n fetcherResults,\n activeDeferreds\n );\n\n // Wire up subscribers to update loaderData as promises settle\n activeDeferreds.forEach((deferredData, routeId) => {\n deferredData.subscribe((aborted) => {\n // Note: No need to updateState here since the TrackedPromise on\n // loaderData is stable across resolve/reject\n // Remove this instance if we were aborted or if promises have settled\n if (aborted || deferredData.done) {\n activeDeferreds.delete(routeId);\n }\n });\n });\n\n // Preserve SSR errors during partial hydration\n if (future.v7_partialHydration && initialHydration && state.errors) {\n errors = { ...state.errors, ...errors };\n }\n\n let updatedFetchers = markFetchRedirectsDone();\n let didAbortFetchLoads = abortStaleFetchLoads(pendingNavigationLoadId);\n let shouldUpdateFetchers =\n updatedFetchers || didAbortFetchLoads || revalidatingFetchers.length > 0;\n\n return {\n matches,\n loaderData,\n errors,\n ...(shouldUpdateFetchers ? { fetchers: new Map(state.fetchers) } : {}),\n };\n }\n\n function getUpdatedActionData(\n pendingActionResult: PendingActionResult | undefined\n ): Record | null | undefined {\n if (pendingActionResult && !isErrorResult(pendingActionResult[1])) {\n // This is cast to `any` currently because `RouteData`uses any and it\n // would be a breaking change to use any.\n // TODO: v7 - change `RouteData` to use `unknown` instead of `any`\n return {\n [pendingActionResult[0]]: pendingActionResult[1].data as any,\n };\n } else if (state.actionData) {\n if (Object.keys(state.actionData).length === 0) {\n return null;\n } else {\n return state.actionData;\n }\n }\n }\n\n function getUpdatedRevalidatingFetchers(\n revalidatingFetchers: RevalidatingFetcher[]\n ) {\n revalidatingFetchers.forEach((rf) => {\n let fetcher = state.fetchers.get(rf.key);\n let revalidatingFetcher = getLoadingFetcher(\n undefined,\n fetcher ? fetcher.data : undefined\n );\n state.fetchers.set(rf.key, revalidatingFetcher);\n });\n return new Map(state.fetchers);\n }\n\n // Trigger a fetcher load/submit for the given fetcher key\n function fetch(\n key: string,\n routeId: string,\n href: string | null,\n opts?: RouterFetchOptions\n ) {\n if (isServer) {\n throw new Error(\n \"router.fetch() was called during the server render, but it shouldn't be. \" +\n \"You are likely calling a useFetcher() method in the body of your component. \" +\n \"Try moving it to a useEffect or a callback.\"\n );\n }\n\n abortFetcher(key);\n\n let flushSync = (opts && opts.flushSync) === true;\n\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let normalizedPath = normalizeTo(\n state.location,\n state.matches,\n basename,\n future.v7_prependBasename,\n href,\n future.v7_relativeSplatPath,\n routeId,\n opts?.relative\n );\n let matches = matchRoutes(routesToUse, normalizedPath, basename);\n\n let fogOfWar = checkFogOfWar(matches, routesToUse, normalizedPath);\n if (fogOfWar.active && fogOfWar.matches) {\n matches = fogOfWar.matches;\n }\n\n if (!matches) {\n setFetcherError(\n key,\n routeId,\n getInternalRouterError(404, { pathname: normalizedPath }),\n { flushSync }\n );\n return;\n }\n\n let { path, submission, error } = normalizeNavigateOptions(\n future.v7_normalizeFormMethod,\n true,\n normalizedPath,\n opts\n );\n\n if (error) {\n setFetcherError(key, routeId, error, { flushSync });\n return;\n }\n\n let match = getTargetMatch(matches, path);\n\n let preventScrollReset = (opts && opts.preventScrollReset) === true;\n\n if (submission && isMutationMethod(submission.formMethod)) {\n handleFetcherAction(\n key,\n routeId,\n path,\n match,\n matches,\n fogOfWar.active,\n flushSync,\n preventScrollReset,\n submission\n );\n return;\n }\n\n // Store off the match so we can call it's shouldRevalidate on subsequent\n // revalidations\n fetchLoadMatches.set(key, { routeId, path });\n handleFetcherLoader(\n key,\n routeId,\n path,\n match,\n matches,\n fogOfWar.active,\n flushSync,\n preventScrollReset,\n submission\n );\n }\n\n // Call the action for the matched fetcher.submit(), and then handle redirects,\n // errors, and revalidation\n async function handleFetcherAction(\n key: string,\n routeId: string,\n path: string,\n match: AgnosticDataRouteMatch,\n requestMatches: AgnosticDataRouteMatch[],\n isFogOfWar: boolean,\n flushSync: boolean,\n preventScrollReset: boolean,\n submission: Submission\n ) {\n interruptActiveLoads();\n fetchLoadMatches.delete(key);\n\n function detectAndHandle405Error(m: AgnosticDataRouteMatch) {\n if (!m.route.action && !m.route.lazy) {\n let error = getInternalRouterError(405, {\n method: submission.formMethod,\n pathname: path,\n routeId: routeId,\n });\n setFetcherError(key, routeId, error, { flushSync });\n return true;\n }\n return false;\n }\n\n if (!isFogOfWar && detectAndHandle405Error(match)) {\n return;\n }\n\n // Put this fetcher into it's submitting state\n let existingFetcher = state.fetchers.get(key);\n updateFetcherState(key, getSubmittingFetcher(submission, existingFetcher), {\n flushSync,\n });\n\n let abortController = new AbortController();\n let fetchRequest = createClientSideRequest(\n init.history,\n path,\n abortController.signal,\n submission\n );\n\n if (isFogOfWar) {\n let discoverResult = await discoverRoutes(\n requestMatches,\n new URL(fetchRequest.url).pathname,\n fetchRequest.signal,\n key\n );\n\n if (discoverResult.type === \"aborted\") {\n return;\n } else if (discoverResult.type === \"error\") {\n setFetcherError(key, routeId, discoverResult.error, { flushSync });\n return;\n } else if (!discoverResult.matches) {\n setFetcherError(\n key,\n routeId,\n getInternalRouterError(404, { pathname: path }),\n { flushSync }\n );\n return;\n } else {\n requestMatches = discoverResult.matches;\n match = getTargetMatch(requestMatches, path);\n\n if (detectAndHandle405Error(match)) {\n return;\n }\n }\n }\n\n // Call the action for the fetcher\n fetchControllers.set(key, abortController);\n\n let originatingLoadId = incrementingLoadId;\n let actionResults = await callDataStrategy(\n \"action\",\n state,\n fetchRequest,\n [match],\n requestMatches,\n key\n );\n let actionResult = actionResults[match.route.id];\n\n if (fetchRequest.signal.aborted) {\n // We can delete this so long as we weren't aborted by our own fetcher\n // re-submit which would have put _new_ controller is in fetchControllers\n if (fetchControllers.get(key) === abortController) {\n fetchControllers.delete(key);\n }\n return;\n }\n\n // When using v7_fetcherPersist, we don't want errors bubbling up to the UI\n // or redirects processed for unmounted fetchers so we just revert them to\n // idle\n if (future.v7_fetcherPersist && deletedFetchers.has(key)) {\n if (isRedirectResult(actionResult) || isErrorResult(actionResult)) {\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n }\n // Let SuccessResult's fall through for revalidation\n } else {\n if (isRedirectResult(actionResult)) {\n fetchControllers.delete(key);\n if (pendingNavigationLoadId > originatingLoadId) {\n // A new navigation was kicked off after our action started, so that\n // should take precedence over this redirect navigation. We already\n // set isRevalidationRequired so all loaders for the new route should\n // fire unless opted out via shouldRevalidate\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n } else {\n fetchRedirectIds.add(key);\n updateFetcherState(key, getLoadingFetcher(submission));\n return startRedirectNavigation(fetchRequest, actionResult, false, {\n fetcherSubmission: submission,\n preventScrollReset,\n });\n }\n }\n\n // Process any non-redirect errors thrown\n if (isErrorResult(actionResult)) {\n setFetcherError(key, routeId, actionResult.error);\n return;\n }\n }\n\n if (isDeferredResult(actionResult)) {\n throw getInternalRouterError(400, { type: \"defer-action\" });\n }\n\n // Start the data load for current matches, or the next location if we're\n // in the middle of a navigation\n let nextLocation = state.navigation.location || state.location;\n let revalidationRequest = createClientSideRequest(\n init.history,\n nextLocation,\n abortController.signal\n );\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let matches =\n state.navigation.state !== \"idle\"\n ? matchRoutes(routesToUse, state.navigation.location, basename)\n : state.matches;\n\n invariant(matches, \"Didn't find any matches after fetcher action\");\n\n let loadId = ++incrementingLoadId;\n fetchReloadIds.set(key, loadId);\n\n let loadFetcher = getLoadingFetcher(submission, actionResult.data);\n state.fetchers.set(key, loadFetcher);\n\n let [matchesToLoad, revalidatingFetchers] = getMatchesToLoad(\n init.history,\n state,\n matches,\n submission,\n nextLocation,\n false,\n future.v7_skipActionErrorRevalidation,\n isRevalidationRequired,\n cancelledDeferredRoutes,\n cancelledFetcherLoads,\n deletedFetchers,\n fetchLoadMatches,\n fetchRedirectIds,\n routesToUse,\n basename,\n [match.route.id, actionResult]\n );\n\n // Put all revalidating fetchers into the loading state, except for the\n // current fetcher which we want to keep in it's current loading state which\n // contains it's action submission info + action data\n revalidatingFetchers\n .filter((rf) => rf.key !== key)\n .forEach((rf) => {\n let staleKey = rf.key;\n let existingFetcher = state.fetchers.get(staleKey);\n let revalidatingFetcher = getLoadingFetcher(\n undefined,\n existingFetcher ? existingFetcher.data : undefined\n );\n state.fetchers.set(staleKey, revalidatingFetcher);\n abortFetcher(staleKey);\n if (rf.controller) {\n fetchControllers.set(staleKey, rf.controller);\n }\n });\n\n updateState({ fetchers: new Map(state.fetchers) });\n\n let abortPendingFetchRevalidations = () =>\n revalidatingFetchers.forEach((rf) => abortFetcher(rf.key));\n\n abortController.signal.addEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n\n let { loaderResults, fetcherResults } =\n await callLoadersAndMaybeResolveData(\n state,\n matches,\n matchesToLoad,\n revalidatingFetchers,\n revalidationRequest\n );\n\n if (abortController.signal.aborted) {\n return;\n }\n\n abortController.signal.removeEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n\n fetchReloadIds.delete(key);\n fetchControllers.delete(key);\n revalidatingFetchers.forEach((r) => fetchControllers.delete(r.key));\n\n let redirect = findRedirect(loaderResults);\n if (redirect) {\n return startRedirectNavigation(\n revalidationRequest,\n redirect.result,\n false,\n { preventScrollReset }\n );\n }\n\n redirect = findRedirect(fetcherResults);\n if (redirect) {\n // If this redirect came from a fetcher make sure we mark it in\n // fetchRedirectIds so it doesn't get revalidated on the next set of\n // loader executions\n fetchRedirectIds.add(redirect.key);\n return startRedirectNavigation(\n revalidationRequest,\n redirect.result,\n false,\n { preventScrollReset }\n );\n }\n\n // Process and commit output from loaders\n let { loaderData, errors } = processLoaderData(\n state,\n matches,\n loaderResults,\n undefined,\n revalidatingFetchers,\n fetcherResults,\n activeDeferreds\n );\n\n // Since we let revalidations complete even if the submitting fetcher was\n // deleted, only put it back to idle if it hasn't been deleted\n if (state.fetchers.has(key)) {\n let doneFetcher = getDoneFetcher(actionResult.data);\n state.fetchers.set(key, doneFetcher);\n }\n\n abortStaleFetchLoads(loadId);\n\n // If we are currently in a navigation loading state and this fetcher is\n // more recent than the navigation, we want the newer data so abort the\n // navigation and complete it with the fetcher data\n if (\n state.navigation.state === \"loading\" &&\n loadId > pendingNavigationLoadId\n ) {\n invariant(pendingAction, \"Expected pending action\");\n pendingNavigationController && pendingNavigationController.abort();\n\n completeNavigation(state.navigation.location, {\n matches,\n loaderData,\n errors,\n fetchers: new Map(state.fetchers),\n });\n } else {\n // otherwise just update with the fetcher data, preserving any existing\n // loaderData for loaders that did not need to reload. We have to\n // manually merge here since we aren't going through completeNavigation\n updateState({\n errors,\n loaderData: mergeLoaderData(\n state.loaderData,\n loaderData,\n matches,\n errors\n ),\n fetchers: new Map(state.fetchers),\n });\n isRevalidationRequired = false;\n }\n }\n\n // Call the matched loader for fetcher.load(), handling redirects, errors, etc.\n async function handleFetcherLoader(\n key: string,\n routeId: string,\n path: string,\n match: AgnosticDataRouteMatch,\n matches: AgnosticDataRouteMatch[],\n isFogOfWar: boolean,\n flushSync: boolean,\n preventScrollReset: boolean,\n submission?: Submission\n ) {\n let existingFetcher = state.fetchers.get(key);\n updateFetcherState(\n key,\n getLoadingFetcher(\n submission,\n existingFetcher ? existingFetcher.data : undefined\n ),\n { flushSync }\n );\n\n let abortController = new AbortController();\n let fetchRequest = createClientSideRequest(\n init.history,\n path,\n abortController.signal\n );\n\n if (isFogOfWar) {\n let discoverResult = await discoverRoutes(\n matches,\n new URL(fetchRequest.url).pathname,\n fetchRequest.signal,\n key\n );\n\n if (discoverResult.type === \"aborted\") {\n return;\n } else if (discoverResult.type === \"error\") {\n setFetcherError(key, routeId, discoverResult.error, { flushSync });\n return;\n } else if (!discoverResult.matches) {\n setFetcherError(\n key,\n routeId,\n getInternalRouterError(404, { pathname: path }),\n { flushSync }\n );\n return;\n } else {\n matches = discoverResult.matches;\n match = getTargetMatch(matches, path);\n }\n }\n\n // Call the loader for this fetcher route match\n fetchControllers.set(key, abortController);\n\n let originatingLoadId = incrementingLoadId;\n let results = await callDataStrategy(\n \"loader\",\n state,\n fetchRequest,\n [match],\n matches,\n key\n );\n let result = results[match.route.id];\n\n // Deferred isn't supported for fetcher loads, await everything and treat it\n // as a normal load. resolveDeferredData will return undefined if this\n // fetcher gets aborted, so we just leave result untouched and short circuit\n // below if that happens\n if (isDeferredResult(result)) {\n result =\n (await resolveDeferredData(result, fetchRequest.signal, true)) ||\n result;\n }\n\n // We can delete this so long as we weren't aborted by our our own fetcher\n // re-load which would have put _new_ controller is in fetchControllers\n if (fetchControllers.get(key) === abortController) {\n fetchControllers.delete(key);\n }\n\n if (fetchRequest.signal.aborted) {\n return;\n }\n\n // We don't want errors bubbling up or redirects followed for unmounted\n // fetchers, so short circuit here if it was removed from the UI\n if (deletedFetchers.has(key)) {\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n }\n\n // If the loader threw a redirect Response, start a new REPLACE navigation\n if (isRedirectResult(result)) {\n if (pendingNavigationLoadId > originatingLoadId) {\n // A new navigation was kicked off after our loader started, so that\n // should take precedence over this redirect navigation\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n } else {\n fetchRedirectIds.add(key);\n await startRedirectNavigation(fetchRequest, result, false, {\n preventScrollReset,\n });\n return;\n }\n }\n\n // Process any non-redirect errors thrown\n if (isErrorResult(result)) {\n setFetcherError(key, routeId, result.error);\n return;\n }\n\n invariant(!isDeferredResult(result), \"Unhandled fetcher deferred data\");\n\n // Put the fetcher back into an idle state\n updateFetcherState(key, getDoneFetcher(result.data));\n }\n\n /**\n * Utility function to handle redirects returned from an action or loader.\n * Normally, a redirect \"replaces\" the navigation that triggered it. So, for\n * example:\n *\n * - user is on /a\n * - user clicks a link to /b\n * - loader for /b redirects to /c\n *\n * In a non-JS app the browser would track the in-flight navigation to /b and\n * then replace it with /c when it encountered the redirect response. In\n * the end it would only ever update the URL bar with /c.\n *\n * In client-side routing using pushState/replaceState, we aim to emulate\n * this behavior and we also do not update history until the end of the\n * navigation (including processed redirects). This means that we never\n * actually touch history until we've processed redirects, so we just use\n * the history action from the original navigation (PUSH or REPLACE).\n */\n async function startRedirectNavigation(\n request: Request,\n redirect: RedirectResult,\n isNavigation: boolean,\n {\n submission,\n fetcherSubmission,\n preventScrollReset,\n replace,\n }: {\n submission?: Submission;\n fetcherSubmission?: Submission;\n preventScrollReset?: boolean;\n replace?: boolean;\n } = {}\n ) {\n if (redirect.response.headers.has(\"X-Remix-Revalidate\")) {\n isRevalidationRequired = true;\n }\n\n let location = redirect.response.headers.get(\"Location\");\n invariant(location, \"Expected a Location header on the redirect Response\");\n location = normalizeRedirectLocation(\n location,\n new URL(request.url),\n basename\n );\n let redirectLocation = createLocation(state.location, location, {\n _isRedirect: true,\n });\n\n if (isBrowser) {\n let isDocumentReload = false;\n\n if (redirect.response.headers.has(\"X-Remix-Reload-Document\")) {\n // Hard reload if the response contained X-Remix-Reload-Document\n isDocumentReload = true;\n } else if (ABSOLUTE_URL_REGEX.test(location)) {\n const url = init.history.createURL(location);\n isDocumentReload =\n // Hard reload if it's an absolute URL to a new origin\n url.origin !== routerWindow.location.origin ||\n // Hard reload if it's an absolute URL that does not match our basename\n stripBasename(url.pathname, basename) == null;\n }\n\n if (isDocumentReload) {\n if (replace) {\n routerWindow.location.replace(location);\n } else {\n routerWindow.location.assign(location);\n }\n return;\n }\n }\n\n // There's no need to abort on redirects, since we don't detect the\n // redirect until the action/loaders have settled\n pendingNavigationController = null;\n\n let redirectHistoryAction =\n replace === true || redirect.response.headers.has(\"X-Remix-Replace\")\n ? HistoryAction.Replace\n : HistoryAction.Push;\n\n // Use the incoming submission if provided, fallback on the active one in\n // state.navigation\n let { formMethod, formAction, formEncType } = state.navigation;\n if (\n !submission &&\n !fetcherSubmission &&\n formMethod &&\n formAction &&\n formEncType\n ) {\n submission = getSubmissionFromNavigation(state.navigation);\n }\n\n // If this was a 307/308 submission we want to preserve the HTTP method and\n // re-submit the GET/POST/PUT/PATCH/DELETE as a submission navigation to the\n // redirected location\n let activeSubmission = submission || fetcherSubmission;\n if (\n redirectPreserveMethodStatusCodes.has(redirect.response.status) &&\n activeSubmission &&\n isMutationMethod(activeSubmission.formMethod)\n ) {\n await startNavigation(redirectHistoryAction, redirectLocation, {\n submission: {\n ...activeSubmission,\n formAction: location,\n },\n // Preserve these flags across redirects\n preventScrollReset: preventScrollReset || pendingPreventScrollReset,\n enableViewTransition: isNavigation\n ? pendingViewTransitionEnabled\n : undefined,\n });\n } else {\n // If we have a navigation submission, we will preserve it through the\n // redirect navigation\n let overrideNavigation = getLoadingNavigation(\n redirectLocation,\n submission\n );\n await startNavigation(redirectHistoryAction, redirectLocation, {\n overrideNavigation,\n // Send fetcher submissions through for shouldRevalidate\n fetcherSubmission,\n // Preserve these flags across redirects\n preventScrollReset: preventScrollReset || pendingPreventScrollReset,\n enableViewTransition: isNavigation\n ? pendingViewTransitionEnabled\n : undefined,\n });\n }\n }\n\n // Utility wrapper for calling dataStrategy client-side without having to\n // pass around the manifest, mapRouteProperties, etc.\n async function callDataStrategy(\n type: \"loader\" | \"action\",\n state: RouterState,\n request: Request,\n matchesToLoad: AgnosticDataRouteMatch[],\n matches: AgnosticDataRouteMatch[],\n fetcherKey: string | null\n ): Promise> {\n let results: Record;\n let dataResults: Record = {};\n try {\n results = await callDataStrategyImpl(\n dataStrategyImpl,\n type,\n state,\n request,\n matchesToLoad,\n matches,\n fetcherKey,\n manifest,\n mapRouteProperties\n );\n } catch (e) {\n // If the outer dataStrategy method throws, just return the error for all\n // matches - and it'll naturally bubble to the root\n matchesToLoad.forEach((m) => {\n dataResults[m.route.id] = {\n type: ResultType.error,\n error: e,\n };\n });\n return dataResults;\n }\n\n for (let [routeId, result] of Object.entries(results)) {\n if (isRedirectDataStrategyResultResult(result)) {\n let response = result.result as Response;\n dataResults[routeId] = {\n type: ResultType.redirect,\n response: normalizeRelativeRoutingRedirectResponse(\n response,\n request,\n routeId,\n matches,\n basename,\n future.v7_relativeSplatPath\n ),\n };\n } else {\n dataResults[routeId] = await convertDataStrategyResultToDataResult(\n result\n );\n }\n }\n\n return dataResults;\n }\n\n async function callLoadersAndMaybeResolveData(\n state: RouterState,\n matches: AgnosticDataRouteMatch[],\n matchesToLoad: AgnosticDataRouteMatch[],\n fetchersToLoad: RevalidatingFetcher[],\n request: Request\n ) {\n let currentMatches = state.matches;\n\n // Kick off loaders and fetchers in parallel\n let loaderResultsPromise = callDataStrategy(\n \"loader\",\n state,\n request,\n matchesToLoad,\n matches,\n null\n );\n\n let fetcherResultsPromise = Promise.all(\n fetchersToLoad.map(async (f) => {\n if (f.matches && f.match && f.controller) {\n let results = await callDataStrategy(\n \"loader\",\n state,\n createClientSideRequest(init.history, f.path, f.controller.signal),\n [f.match],\n f.matches,\n f.key\n );\n let result = results[f.match.route.id];\n // Fetcher results are keyed by fetcher key from here on out, not routeId\n return { [f.key]: result };\n } else {\n return Promise.resolve({\n [f.key]: {\n type: ResultType.error,\n error: getInternalRouterError(404, {\n pathname: f.path,\n }),\n } as ErrorResult,\n });\n }\n })\n );\n\n let loaderResults = await loaderResultsPromise;\n let fetcherResults = (await fetcherResultsPromise).reduce(\n (acc, r) => Object.assign(acc, r),\n {}\n );\n\n await Promise.all([\n resolveNavigationDeferredResults(\n matches,\n loaderResults,\n request.signal,\n currentMatches,\n state.loaderData\n ),\n resolveFetcherDeferredResults(matches, fetcherResults, fetchersToLoad),\n ]);\n\n return {\n loaderResults,\n fetcherResults,\n };\n }\n\n function interruptActiveLoads() {\n // Every interruption triggers a revalidation\n isRevalidationRequired = true;\n\n // Cancel pending route-level deferreds and mark cancelled routes for\n // revalidation\n cancelledDeferredRoutes.push(...cancelActiveDeferreds());\n\n // Abort in-flight fetcher loads\n fetchLoadMatches.forEach((_, key) => {\n if (fetchControllers.has(key)) {\n cancelledFetcherLoads.add(key);\n }\n abortFetcher(key);\n });\n }\n\n function updateFetcherState(\n key: string,\n fetcher: Fetcher,\n opts: { flushSync?: boolean } = {}\n ) {\n state.fetchers.set(key, fetcher);\n updateState(\n { fetchers: new Map(state.fetchers) },\n { flushSync: (opts && opts.flushSync) === true }\n );\n }\n\n function setFetcherError(\n key: string,\n routeId: string,\n error: any,\n opts: { flushSync?: boolean } = {}\n ) {\n let boundaryMatch = findNearestBoundary(state.matches, routeId);\n deleteFetcher(key);\n updateState(\n {\n errors: {\n [boundaryMatch.route.id]: error,\n },\n fetchers: new Map(state.fetchers),\n },\n { flushSync: (opts && opts.flushSync) === true }\n );\n }\n\n function getFetcher(key: string): Fetcher {\n activeFetchers.set(key, (activeFetchers.get(key) || 0) + 1);\n // If this fetcher was previously marked for deletion, unmark it since we\n // have a new instance\n if (deletedFetchers.has(key)) {\n deletedFetchers.delete(key);\n }\n return state.fetchers.get(key) || IDLE_FETCHER;\n }\n\n function deleteFetcher(key: string): void {\n let fetcher = state.fetchers.get(key);\n // Don't abort the controller if this is a deletion of a fetcher.submit()\n // in it's loading phase since - we don't want to abort the corresponding\n // revalidation and want them to complete and land\n if (\n fetchControllers.has(key) &&\n !(fetcher && fetcher.state === \"loading\" && fetchReloadIds.has(key))\n ) {\n abortFetcher(key);\n }\n fetchLoadMatches.delete(key);\n fetchReloadIds.delete(key);\n fetchRedirectIds.delete(key);\n\n // If we opted into the flag we can clear this now since we're calling\n // deleteFetcher() at the end of updateState() and we've already handed the\n // deleted fetcher keys off to the data layer.\n // If not, we're eagerly calling deleteFetcher() and we need to keep this\n // Set populated until the next updateState call, and we'll clear\n // `deletedFetchers` then\n if (future.v7_fetcherPersist) {\n deletedFetchers.delete(key);\n }\n\n cancelledFetcherLoads.delete(key);\n state.fetchers.delete(key);\n }\n\n function deleteFetcherAndUpdateState(key: string): void {\n let count = (activeFetchers.get(key) || 0) - 1;\n if (count <= 0) {\n activeFetchers.delete(key);\n deletedFetchers.add(key);\n if (!future.v7_fetcherPersist) {\n deleteFetcher(key);\n }\n } else {\n activeFetchers.set(key, count);\n }\n\n updateState({ fetchers: new Map(state.fetchers) });\n }\n\n function abortFetcher(key: string) {\n let controller = fetchControllers.get(key);\n if (controller) {\n controller.abort();\n fetchControllers.delete(key);\n }\n }\n\n function markFetchersDone(keys: string[]) {\n for (let key of keys) {\n let fetcher = getFetcher(key);\n let doneFetcher = getDoneFetcher(fetcher.data);\n state.fetchers.set(key, doneFetcher);\n }\n }\n\n function markFetchRedirectsDone(): boolean {\n let doneKeys = [];\n let updatedFetchers = false;\n for (let key of fetchRedirectIds) {\n let fetcher = state.fetchers.get(key);\n invariant(fetcher, `Expected fetcher: ${key}`);\n if (fetcher.state === \"loading\") {\n fetchRedirectIds.delete(key);\n doneKeys.push(key);\n updatedFetchers = true;\n }\n }\n markFetchersDone(doneKeys);\n return updatedFetchers;\n }\n\n function abortStaleFetchLoads(landedId: number): boolean {\n let yeetedKeys = [];\n for (let [key, id] of fetchReloadIds) {\n if (id < landedId) {\n let fetcher = state.fetchers.get(key);\n invariant(fetcher, `Expected fetcher: ${key}`);\n if (fetcher.state === \"loading\") {\n abortFetcher(key);\n fetchReloadIds.delete(key);\n yeetedKeys.push(key);\n }\n }\n }\n markFetchersDone(yeetedKeys);\n return yeetedKeys.length > 0;\n }\n\n function getBlocker(key: string, fn: BlockerFunction) {\n let blocker: Blocker = state.blockers.get(key) || IDLE_BLOCKER;\n\n if (blockerFunctions.get(key) !== fn) {\n blockerFunctions.set(key, fn);\n }\n\n return blocker;\n }\n\n function deleteBlocker(key: string) {\n state.blockers.delete(key);\n blockerFunctions.delete(key);\n }\n\n // Utility function to update blockers, ensuring valid state transitions\n function updateBlocker(key: string, newBlocker: Blocker) {\n let blocker = state.blockers.get(key) || IDLE_BLOCKER;\n\n // Poor mans state machine :)\n // https://mermaid.live/edit#pako:eNqVkc9OwzAMxl8l8nnjAYrEtDIOHEBIgwvKJTReGy3_lDpIqO27k6awMG0XcrLlnz87nwdonESogKXXBuE79rq75XZO3-yHds0RJVuv70YrPlUrCEe2HfrORS3rubqZfuhtpg5C9wk5tZ4VKcRUq88q9Z8RS0-48cE1iHJkL0ugbHuFLus9L6spZy8nX9MP2CNdomVaposqu3fGayT8T8-jJQwhepo_UtpgBQaDEUom04dZhAN1aJBDlUKJBxE1ceB2Smj0Mln-IBW5AFU2dwUiktt_2Qaq2dBfaKdEup85UV7Yd-dKjlnkabl2Pvr0DTkTreM\n invariant(\n (blocker.state === \"unblocked\" && newBlocker.state === \"blocked\") ||\n (blocker.state === \"blocked\" && newBlocker.state === \"blocked\") ||\n (blocker.state === \"blocked\" && newBlocker.state === \"proceeding\") ||\n (blocker.state === \"blocked\" && newBlocker.state === \"unblocked\") ||\n (blocker.state === \"proceeding\" && newBlocker.state === \"unblocked\"),\n `Invalid blocker state transition: ${blocker.state} -> ${newBlocker.state}`\n );\n\n let blockers = new Map(state.blockers);\n blockers.set(key, newBlocker);\n updateState({ blockers });\n }\n\n function shouldBlockNavigation({\n currentLocation,\n nextLocation,\n historyAction,\n }: {\n currentLocation: Location;\n nextLocation: Location;\n historyAction: HistoryAction;\n }): string | undefined {\n if (blockerFunctions.size === 0) {\n return;\n }\n\n // We ony support a single active blocker at the moment since we don't have\n // any compelling use cases for multi-blocker yet\n if (blockerFunctions.size > 1) {\n warning(false, \"A router only supports one blocker at a time\");\n }\n\n let entries = Array.from(blockerFunctions.entries());\n let [blockerKey, blockerFunction] = entries[entries.length - 1];\n let blocker = state.blockers.get(blockerKey);\n\n if (blocker && blocker.state === \"proceeding\") {\n // If the blocker is currently proceeding, we don't need to re-check\n // it and can let this navigation continue\n return;\n }\n\n // At this point, we know we're unblocked/blocked so we need to check the\n // user-provided blocker function\n if (blockerFunction({ currentLocation, nextLocation, historyAction })) {\n return blockerKey;\n }\n }\n\n function handleNavigational404(pathname: string) {\n let error = getInternalRouterError(404, { pathname });\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let { matches, route } = getShortCircuitMatches(routesToUse);\n\n // Cancel all pending deferred on 404s since we don't keep any routes\n cancelActiveDeferreds();\n\n return { notFoundMatches: matches, route, error };\n }\n\n function cancelActiveDeferreds(\n predicate?: (routeId: string) => boolean\n ): string[] {\n let cancelledRouteIds: string[] = [];\n activeDeferreds.forEach((dfd, routeId) => {\n if (!predicate || predicate(routeId)) {\n // Cancel the deferred - but do not remove from activeDeferreds here -\n // we rely on the subscribers to do that so our tests can assert proper\n // cleanup via _internalActiveDeferreds\n dfd.cancel();\n cancelledRouteIds.push(routeId);\n activeDeferreds.delete(routeId);\n }\n });\n return cancelledRouteIds;\n }\n\n // Opt in to capturing and reporting scroll positions during navigations,\n // used by the component\n function enableScrollRestoration(\n positions: Record,\n getPosition: GetScrollPositionFunction,\n getKey?: GetScrollRestorationKeyFunction\n ) {\n savedScrollPositions = positions;\n getScrollPosition = getPosition;\n getScrollRestorationKey = getKey || null;\n\n // Perform initial hydration scroll restoration, since we miss the boat on\n // the initial updateState() because we've not yet rendered \n // and therefore have no savedScrollPositions available\n if (!initialScrollRestored && state.navigation === IDLE_NAVIGATION) {\n initialScrollRestored = true;\n let y = getSavedScrollPosition(state.location, state.matches);\n if (y != null) {\n updateState({ restoreScrollPosition: y });\n }\n }\n\n return () => {\n savedScrollPositions = null;\n getScrollPosition = null;\n getScrollRestorationKey = null;\n };\n }\n\n function getScrollKey(location: Location, matches: AgnosticDataRouteMatch[]) {\n if (getScrollRestorationKey) {\n let key = getScrollRestorationKey(\n location,\n matches.map((m) => convertRouteMatchToUiMatch(m, state.loaderData))\n );\n return key || location.key;\n }\n return location.key;\n }\n\n function saveScrollPosition(\n location: Location,\n matches: AgnosticDataRouteMatch[]\n ): void {\n if (savedScrollPositions && getScrollPosition) {\n let key = getScrollKey(location, matches);\n savedScrollPositions[key] = getScrollPosition();\n }\n }\n\n function getSavedScrollPosition(\n location: Location,\n matches: AgnosticDataRouteMatch[]\n ): number | null {\n if (savedScrollPositions) {\n let key = getScrollKey(location, matches);\n let y = savedScrollPositions[key];\n if (typeof y === \"number\") {\n return y;\n }\n }\n return null;\n }\n\n function checkFogOfWar(\n matches: AgnosticDataRouteMatch[] | null,\n routesToUse: AgnosticDataRouteObject[],\n pathname: string\n ): { active: boolean; matches: AgnosticDataRouteMatch[] | null } {\n if (patchRoutesOnNavigationImpl) {\n if (!matches) {\n let fogMatches = matchRoutesImpl(\n routesToUse,\n pathname,\n basename,\n true\n );\n\n return { active: true, matches: fogMatches || [] };\n } else {\n if (Object.keys(matches[0].params).length > 0) {\n // If we matched a dynamic param or a splat, it might only be because\n // we haven't yet discovered other routes that would match with a\n // higher score. Call patchRoutesOnNavigation just to be sure\n let partialMatches = matchRoutesImpl(\n routesToUse,\n pathname,\n basename,\n true\n );\n return { active: true, matches: partialMatches };\n }\n }\n }\n\n return { active: false, matches: null };\n }\n\n type DiscoverRoutesSuccessResult = {\n type: \"success\";\n matches: AgnosticDataRouteMatch[] | null;\n };\n type DiscoverRoutesErrorResult = {\n type: \"error\";\n error: any;\n partialMatches: AgnosticDataRouteMatch[];\n };\n type DiscoverRoutesAbortedResult = { type: \"aborted\" };\n type DiscoverRoutesResult =\n | DiscoverRoutesSuccessResult\n | DiscoverRoutesErrorResult\n | DiscoverRoutesAbortedResult;\n\n async function discoverRoutes(\n matches: AgnosticDataRouteMatch[],\n pathname: string,\n signal: AbortSignal,\n fetcherKey?: string\n ): Promise {\n if (!patchRoutesOnNavigationImpl) {\n return { type: \"success\", matches };\n }\n\n let partialMatches: AgnosticDataRouteMatch[] | null = matches;\n while (true) {\n let isNonHMR = inFlightDataRoutes == null;\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let localManifest = manifest;\n try {\n await patchRoutesOnNavigationImpl({\n signal,\n path: pathname,\n matches: partialMatches,\n fetcherKey,\n patch: (routeId, children) => {\n if (signal.aborted) return;\n patchRoutesImpl(\n routeId,\n children,\n routesToUse,\n localManifest,\n mapRouteProperties\n );\n },\n });\n } catch (e) {\n return { type: \"error\", error: e, partialMatches };\n } finally {\n // If we are not in the middle of an HMR revalidation and we changed the\n // routes, provide a new identity so when we `updateState` at the end of\n // this navigation/fetch `router.routes` will be a new identity and\n // trigger a re-run of memoized `router.routes` dependencies.\n // HMR will already update the identity and reflow when it lands\n // `inFlightDataRoutes` in `completeNavigation`\n if (isNonHMR && !signal.aborted) {\n dataRoutes = [...dataRoutes];\n }\n }\n\n if (signal.aborted) {\n return { type: \"aborted\" };\n }\n\n let newMatches = matchRoutes(routesToUse, pathname, basename);\n if (newMatches) {\n return { type: \"success\", matches: newMatches };\n }\n\n let newPartialMatches = matchRoutesImpl(\n routesToUse,\n pathname,\n basename,\n true\n );\n\n // Avoid loops if the second pass results in the same partial matches\n if (\n !newPartialMatches ||\n (partialMatches.length === newPartialMatches.length &&\n partialMatches.every(\n (m, i) => m.route.id === newPartialMatches![i].route.id\n ))\n ) {\n return { type: \"success\", matches: null };\n }\n\n partialMatches = newPartialMatches;\n }\n }\n\n function _internalSetRoutes(newRoutes: AgnosticDataRouteObject[]) {\n manifest = {};\n inFlightDataRoutes = convertRoutesToDataRoutes(\n newRoutes,\n mapRouteProperties,\n undefined,\n manifest\n );\n }\n\n function patchRoutes(\n routeId: string | null,\n children: AgnosticRouteObject[]\n ): void {\n let isNonHMR = inFlightDataRoutes == null;\n let routesToUse = inFlightDataRoutes || dataRoutes;\n patchRoutesImpl(\n routeId,\n children,\n routesToUse,\n manifest,\n mapRouteProperties\n );\n\n // If we are not in the middle of an HMR revalidation and we changed the\n // routes, provide a new identity and trigger a reflow via `updateState`\n // to re-run memoized `router.routes` dependencies.\n // HMR will already update the identity and reflow when it lands\n // `inFlightDataRoutes` in `completeNavigation`\n if (isNonHMR) {\n dataRoutes = [...dataRoutes];\n updateState({});\n }\n }\n\n router = {\n get basename() {\n return basename;\n },\n get future() {\n return future;\n },\n get state() {\n return state;\n },\n get routes() {\n return dataRoutes;\n },\n get window() {\n return routerWindow;\n },\n initialize,\n subscribe,\n enableScrollRestoration,\n navigate,\n fetch,\n revalidate,\n // Passthrough to history-aware createHref used by useHref so we get proper\n // hash-aware URLs in DOM paths\n createHref: (to: To) => init.history.createHref(to),\n encodeLocation: (to: To) => init.history.encodeLocation(to),\n getFetcher,\n deleteFetcher: deleteFetcherAndUpdateState,\n dispose,\n getBlocker,\n deleteBlocker,\n patchRoutes,\n _internalFetchControllers: fetchControllers,\n _internalActiveDeferreds: activeDeferreds,\n // TODO: Remove setRoutes, it's temporary to avoid dealing with\n // updating the tree while validating the update algorithm.\n _internalSetRoutes,\n };\n\n return router;\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region createStaticHandler\n////////////////////////////////////////////////////////////////////////////////\n\nexport const UNSAFE_DEFERRED_SYMBOL = Symbol(\"deferred\");\n\n/**\n * Future flags to toggle new feature behavior\n */\nexport interface StaticHandlerFutureConfig {\n v7_relativeSplatPath: boolean;\n v7_throwAbortReason: boolean;\n}\n\nexport interface CreateStaticHandlerOptions {\n basename?: string;\n /**\n * @deprecated Use `mapRouteProperties` instead\n */\n detectErrorBoundary?: DetectErrorBoundaryFunction;\n mapRouteProperties?: MapRoutePropertiesFunction;\n future?: Partial;\n}\n\nexport function createStaticHandler(\n routes: AgnosticRouteObject[],\n opts?: CreateStaticHandlerOptions\n): StaticHandler {\n invariant(\n routes.length > 0,\n \"You must provide a non-empty routes array to createStaticHandler\"\n );\n\n let manifest: RouteManifest = {};\n let basename = (opts ? opts.basename : null) || \"/\";\n let mapRouteProperties: MapRoutePropertiesFunction;\n if (opts?.mapRouteProperties) {\n mapRouteProperties = opts.mapRouteProperties;\n } else if (opts?.detectErrorBoundary) {\n // If they are still using the deprecated version, wrap it with the new API\n let detectErrorBoundary = opts.detectErrorBoundary;\n mapRouteProperties = (route) => ({\n hasErrorBoundary: detectErrorBoundary(route),\n });\n } else {\n mapRouteProperties = defaultMapRouteProperties;\n }\n // Config driven behavior flags\n let future: StaticHandlerFutureConfig = {\n v7_relativeSplatPath: false,\n v7_throwAbortReason: false,\n ...(opts ? opts.future : null),\n };\n\n let dataRoutes = convertRoutesToDataRoutes(\n routes,\n mapRouteProperties,\n undefined,\n manifest\n );\n\n /**\n * The query() method is intended for document requests, in which we want to\n * call an optional action and potentially multiple loaders for all nested\n * routes. It returns a StaticHandlerContext object, which is very similar\n * to the router state (location, loaderData, actionData, errors, etc.) and\n * also adds SSR-specific information such as the statusCode and headers\n * from action/loaders Responses.\n *\n * It _should_ never throw and should report all errors through the\n * returned context.errors object, properly associating errors to their error\n * boundary. Additionally, it tracks _deepestRenderedBoundaryId which can be\n * used to emulate React error boundaries during SSr by performing a second\n * pass only down to the boundaryId.\n *\n * The one exception where we do not return a StaticHandlerContext is when a\n * redirect response is returned or thrown from any action/loader. We\n * propagate that out and return the raw Response so the HTTP server can\n * return it directly.\n *\n * - `opts.requestContext` is an optional server context that will be passed\n * to actions/loaders in the `context` parameter\n * - `opts.skipLoaderErrorBubbling` is an optional parameter that will prevent\n * the bubbling of errors which allows single-fetch-type implementations\n * where the client will handle the bubbling and we may need to return data\n * for the handling route\n */\n async function query(\n request: Request,\n {\n requestContext,\n skipLoaderErrorBubbling,\n dataStrategy,\n }: {\n requestContext?: unknown;\n skipLoaderErrorBubbling?: boolean;\n dataStrategy?: DataStrategyFunction;\n } = {}\n ): Promise {\n let url = new URL(request.url);\n let method = request.method;\n let location = createLocation(\"\", createPath(url), null, \"default\");\n let matches = matchRoutes(dataRoutes, location, basename);\n\n // SSR supports HEAD requests while SPA doesn't\n if (!isValidMethod(method) && method !== \"HEAD\") {\n let error = getInternalRouterError(405, { method });\n let { matches: methodNotAllowedMatches, route } =\n getShortCircuitMatches(dataRoutes);\n return {\n basename,\n location,\n matches: methodNotAllowedMatches,\n loaderData: {},\n actionData: null,\n errors: {\n [route.id]: error,\n },\n statusCode: error.status,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null,\n };\n } else if (!matches) {\n let error = getInternalRouterError(404, { pathname: location.pathname });\n let { matches: notFoundMatches, route } =\n getShortCircuitMatches(dataRoutes);\n return {\n basename,\n location,\n matches: notFoundMatches,\n loaderData: {},\n actionData: null,\n errors: {\n [route.id]: error,\n },\n statusCode: error.status,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null,\n };\n }\n\n let result = await queryImpl(\n request,\n location,\n matches,\n requestContext,\n dataStrategy || null,\n skipLoaderErrorBubbling === true,\n null\n );\n if (isResponse(result)) {\n return result;\n }\n\n // When returning StaticHandlerContext, we patch back in the location here\n // since we need it for React Context. But this helps keep our submit and\n // loadRouteData operating on a Request instead of a Location\n return { location, basename, ...result };\n }\n\n /**\n * The queryRoute() method is intended for targeted route requests, either\n * for fetch ?_data requests or resource route requests. In this case, we\n * are only ever calling a single action or loader, and we are returning the\n * returned value directly. In most cases, this will be a Response returned\n * from the action/loader, but it may be a primitive or other value as well -\n * and in such cases the calling context should handle that accordingly.\n *\n * We do respect the throw/return differentiation, so if an action/loader\n * throws, then this method will throw the value. This is important so we\n * can do proper boundary identification in Remix where a thrown Response\n * must go to the Catch Boundary but a returned Response is happy-path.\n *\n * One thing to note is that any Router-initiated Errors that make sense\n * to associate with a status code will be thrown as an ErrorResponse\n * instance which include the raw Error, such that the calling context can\n * serialize the error as they see fit while including the proper response\n * code. Examples here are 404 and 405 errors that occur prior to reaching\n * any user-defined loaders.\n *\n * - `opts.routeId` allows you to specify the specific route handler to call.\n * If not provided the handler will determine the proper route by matching\n * against `request.url`\n * - `opts.requestContext` is an optional server context that will be passed\n * to actions/loaders in the `context` parameter\n */\n async function queryRoute(\n request: Request,\n {\n routeId,\n requestContext,\n dataStrategy,\n }: {\n requestContext?: unknown;\n routeId?: string;\n dataStrategy?: DataStrategyFunction;\n } = {}\n ): Promise {\n let url = new URL(request.url);\n let method = request.method;\n let location = createLocation(\"\", createPath(url), null, \"default\");\n let matches = matchRoutes(dataRoutes, location, basename);\n\n // SSR supports HEAD requests while SPA doesn't\n if (!isValidMethod(method) && method !== \"HEAD\" && method !== \"OPTIONS\") {\n throw getInternalRouterError(405, { method });\n } else if (!matches) {\n throw getInternalRouterError(404, { pathname: location.pathname });\n }\n\n let match = routeId\n ? matches.find((m) => m.route.id === routeId)\n : getTargetMatch(matches, location);\n\n if (routeId && !match) {\n throw getInternalRouterError(403, {\n pathname: location.pathname,\n routeId,\n });\n } else if (!match) {\n // This should never hit I don't think?\n throw getInternalRouterError(404, { pathname: location.pathname });\n }\n\n let result = await queryImpl(\n request,\n location,\n matches,\n requestContext,\n dataStrategy || null,\n false,\n match\n );\n\n if (isResponse(result)) {\n return result;\n }\n\n let error = result.errors ? Object.values(result.errors)[0] : undefined;\n if (error !== undefined) {\n // If we got back result.errors, that means the loader/action threw\n // _something_ that wasn't a Response, but it's not guaranteed/required\n // to be an `instanceof Error` either, so we have to use throw here to\n // preserve the \"error\" state outside of queryImpl.\n throw error;\n }\n\n // Pick off the right state value to return\n if (result.actionData) {\n return Object.values(result.actionData)[0];\n }\n\n if (result.loaderData) {\n let data = Object.values(result.loaderData)[0];\n if (result.activeDeferreds?.[match.route.id]) {\n data[UNSAFE_DEFERRED_SYMBOL] = result.activeDeferreds[match.route.id];\n }\n return data;\n }\n\n return undefined;\n }\n\n async function queryImpl(\n request: Request,\n location: Location,\n matches: AgnosticDataRouteMatch[],\n requestContext: unknown,\n dataStrategy: DataStrategyFunction | null,\n skipLoaderErrorBubbling: boolean,\n routeMatch: AgnosticDataRouteMatch | null\n ): Promise | Response> {\n invariant(\n request.signal,\n \"query()/queryRoute() requests must contain an AbortController signal\"\n );\n\n try {\n if (isMutationMethod(request.method.toLowerCase())) {\n let result = await submit(\n request,\n matches,\n routeMatch || getTargetMatch(matches, location),\n requestContext,\n dataStrategy,\n skipLoaderErrorBubbling,\n routeMatch != null\n );\n return result;\n }\n\n let result = await loadRouteData(\n request,\n matches,\n requestContext,\n dataStrategy,\n skipLoaderErrorBubbling,\n routeMatch\n );\n return isResponse(result)\n ? result\n : {\n ...result,\n actionData: null,\n actionHeaders: {},\n };\n } catch (e) {\n // If the user threw/returned a Response in callLoaderOrAction for a\n // `queryRoute` call, we throw the `DataStrategyResult` to bail out early\n // and then return or throw the raw Response here accordingly\n if (isDataStrategyResult(e) && isResponse(e.result)) {\n if (e.type === ResultType.error) {\n throw e.result;\n }\n return e.result;\n }\n // Redirects are always returned since they don't propagate to catch\n // boundaries\n if (isRedirectResponse(e)) {\n return e;\n }\n throw e;\n }\n }\n\n async function submit(\n request: Request,\n matches: AgnosticDataRouteMatch[],\n actionMatch: AgnosticDataRouteMatch,\n requestContext: unknown,\n dataStrategy: DataStrategyFunction | null,\n skipLoaderErrorBubbling: boolean,\n isRouteRequest: boolean\n ): Promise | Response> {\n let result: DataResult;\n\n if (!actionMatch.route.action && !actionMatch.route.lazy) {\n let error = getInternalRouterError(405, {\n method: request.method,\n pathname: new URL(request.url).pathname,\n routeId: actionMatch.route.id,\n });\n if (isRouteRequest) {\n throw error;\n }\n result = {\n type: ResultType.error,\n error,\n };\n } else {\n let results = await callDataStrategy(\n \"action\",\n request,\n [actionMatch],\n matches,\n isRouteRequest,\n requestContext,\n dataStrategy\n );\n result = results[actionMatch.route.id];\n\n if (request.signal.aborted) {\n throwStaticHandlerAbortedError(request, isRouteRequest, future);\n }\n }\n\n if (isRedirectResult(result)) {\n // Uhhhh - this should never happen, we should always throw these from\n // callLoaderOrAction, but the type narrowing here keeps TS happy and we\n // can get back on the \"throw all redirect responses\" train here should\n // this ever happen :/\n throw new Response(null, {\n status: result.response.status,\n headers: {\n Location: result.response.headers.get(\"Location\")!,\n },\n });\n }\n\n if (isDeferredResult(result)) {\n let error = getInternalRouterError(400, { type: \"defer-action\" });\n if (isRouteRequest) {\n throw error;\n }\n result = {\n type: ResultType.error,\n error,\n };\n }\n\n if (isRouteRequest) {\n // Note: This should only be non-Response values if we get here, since\n // isRouteRequest should throw any Response received in callLoaderOrAction\n if (isErrorResult(result)) {\n throw result.error;\n }\n\n return {\n matches: [actionMatch],\n loaderData: {},\n actionData: { [actionMatch.route.id]: result.data },\n errors: null,\n // Note: statusCode + headers are unused here since queryRoute will\n // return the raw Response or value\n statusCode: 200,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null,\n };\n }\n\n // Create a GET request for the loaders\n let loaderRequest = new Request(request.url, {\n headers: request.headers,\n redirect: request.redirect,\n signal: request.signal,\n });\n\n if (isErrorResult(result)) {\n // Store off the pending error - we use it to determine which loaders\n // to call and will commit it when we complete the navigation\n let boundaryMatch = skipLoaderErrorBubbling\n ? actionMatch\n : findNearestBoundary(matches, actionMatch.route.id);\n\n let context = await loadRouteData(\n loaderRequest,\n matches,\n requestContext,\n dataStrategy,\n skipLoaderErrorBubbling,\n null,\n [boundaryMatch.route.id, result]\n );\n\n // action status codes take precedence over loader status codes\n return {\n ...context,\n statusCode: isRouteErrorResponse(result.error)\n ? result.error.status\n : result.statusCode != null\n ? result.statusCode\n : 500,\n actionData: null,\n actionHeaders: {\n ...(result.headers ? { [actionMatch.route.id]: result.headers } : {}),\n },\n };\n }\n\n let context = await loadRouteData(\n loaderRequest,\n matches,\n requestContext,\n dataStrategy,\n skipLoaderErrorBubbling,\n null\n );\n\n return {\n ...context,\n actionData: {\n [actionMatch.route.id]: result.data,\n },\n // action status codes take precedence over loader status codes\n ...(result.statusCode ? { statusCode: result.statusCode } : {}),\n actionHeaders: result.headers\n ? { [actionMatch.route.id]: result.headers }\n : {},\n };\n }\n\n async function loadRouteData(\n request: Request,\n matches: AgnosticDataRouteMatch[],\n requestContext: unknown,\n dataStrategy: DataStrategyFunction | null,\n skipLoaderErrorBubbling: boolean,\n routeMatch: AgnosticDataRouteMatch | null,\n pendingActionResult?: PendingActionResult\n ): Promise<\n | Omit<\n StaticHandlerContext,\n \"location\" | \"basename\" | \"actionData\" | \"actionHeaders\"\n >\n | Response\n > {\n let isRouteRequest = routeMatch != null;\n\n // Short circuit if we have no loaders to run (queryRoute())\n if (\n isRouteRequest &&\n !routeMatch?.route.loader &&\n !routeMatch?.route.lazy\n ) {\n throw getInternalRouterError(400, {\n method: request.method,\n pathname: new URL(request.url).pathname,\n routeId: routeMatch?.route.id,\n });\n }\n\n let requestMatches = routeMatch\n ? [routeMatch]\n : pendingActionResult && isErrorResult(pendingActionResult[1])\n ? getLoaderMatchesUntilBoundary(matches, pendingActionResult[0])\n : matches;\n let matchesToLoad = requestMatches.filter(\n (m) => m.route.loader || m.route.lazy\n );\n\n // Short circuit if we have no loaders to run (query())\n if (matchesToLoad.length === 0) {\n return {\n matches,\n // Add a null for all matched routes for proper revalidation on the client\n loaderData: matches.reduce(\n (acc, m) => Object.assign(acc, { [m.route.id]: null }),\n {}\n ),\n errors:\n pendingActionResult && isErrorResult(pendingActionResult[1])\n ? {\n [pendingActionResult[0]]: pendingActionResult[1].error,\n }\n : null,\n statusCode: 200,\n loaderHeaders: {},\n activeDeferreds: null,\n };\n }\n\n let results = await callDataStrategy(\n \"loader\",\n request,\n matchesToLoad,\n matches,\n isRouteRequest,\n requestContext,\n dataStrategy\n );\n\n if (request.signal.aborted) {\n throwStaticHandlerAbortedError(request, isRouteRequest, future);\n }\n\n // Process and commit output from loaders\n let activeDeferreds = new Map();\n let context = processRouteLoaderData(\n matches,\n results,\n pendingActionResult,\n activeDeferreds,\n skipLoaderErrorBubbling\n );\n\n // Add a null for any non-loader matches for proper revalidation on the client\n let executedLoaders = new Set(\n matchesToLoad.map((match) => match.route.id)\n );\n matches.forEach((match) => {\n if (!executedLoaders.has(match.route.id)) {\n context.loaderData[match.route.id] = null;\n }\n });\n\n return {\n ...context,\n matches,\n activeDeferreds:\n activeDeferreds.size > 0\n ? Object.fromEntries(activeDeferreds.entries())\n : null,\n };\n }\n\n // Utility wrapper for calling dataStrategy server-side without having to\n // pass around the manifest, mapRouteProperties, etc.\n async function callDataStrategy(\n type: \"loader\" | \"action\",\n request: Request,\n matchesToLoad: AgnosticDataRouteMatch[],\n matches: AgnosticDataRouteMatch[],\n isRouteRequest: boolean,\n requestContext: unknown,\n dataStrategy: DataStrategyFunction | null\n ): Promise> {\n let results = await callDataStrategyImpl(\n dataStrategy || defaultDataStrategy,\n type,\n null,\n request,\n matchesToLoad,\n matches,\n null,\n manifest,\n mapRouteProperties,\n requestContext\n );\n\n let dataResults: Record = {};\n await Promise.all(\n matches.map(async (match) => {\n if (!(match.route.id in results)) {\n return;\n }\n let result = results[match.route.id];\n if (isRedirectDataStrategyResultResult(result)) {\n let response = result.result as Response;\n // Throw redirects and let the server handle them with an HTTP redirect\n throw normalizeRelativeRoutingRedirectResponse(\n response,\n request,\n match.route.id,\n matches,\n basename,\n future.v7_relativeSplatPath\n );\n }\n if (isResponse(result.result) && isRouteRequest) {\n // For SSR single-route requests, we want to hand Responses back\n // directly without unwrapping\n throw result;\n }\n\n dataResults[match.route.id] =\n await convertDataStrategyResultToDataResult(result);\n })\n );\n return dataResults;\n }\n\n return {\n dataRoutes,\n query,\n queryRoute,\n };\n}\n\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Helpers\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Given an existing StaticHandlerContext and an error thrown at render time,\n * provide an updated StaticHandlerContext suitable for a second SSR render\n */\nexport function getStaticContextFromError(\n routes: AgnosticDataRouteObject[],\n context: StaticHandlerContext,\n error: any\n) {\n let newContext: StaticHandlerContext = {\n ...context,\n statusCode: isRouteErrorResponse(error) ? error.status : 500,\n errors: {\n [context._deepestRenderedBoundaryId || routes[0].id]: error,\n },\n };\n return newContext;\n}\n\nfunction throwStaticHandlerAbortedError(\n request: Request,\n isRouteRequest: boolean,\n future: StaticHandlerFutureConfig\n) {\n if (future.v7_throwAbortReason && request.signal.reason !== undefined) {\n throw request.signal.reason;\n }\n\n let method = isRouteRequest ? \"queryRoute\" : \"query\";\n throw new Error(`${method}() call aborted: ${request.method} ${request.url}`);\n}\n\nfunction isSubmissionNavigation(\n opts: BaseNavigateOrFetchOptions\n): opts is SubmissionNavigateOptions {\n return (\n opts != null &&\n ((\"formData\" in opts && opts.formData != null) ||\n (\"body\" in opts && opts.body !== undefined))\n );\n}\n\nfunction normalizeTo(\n location: Path,\n matches: AgnosticDataRouteMatch[],\n basename: string,\n prependBasename: boolean,\n to: To | null,\n v7_relativeSplatPath: boolean,\n fromRouteId?: string,\n relative?: RelativeRoutingType\n) {\n let contextualMatches: AgnosticDataRouteMatch[];\n let activeRouteMatch: AgnosticDataRouteMatch | undefined;\n if (fromRouteId) {\n // Grab matches up to the calling route so our route-relative logic is\n // relative to the correct source route\n contextualMatches = [];\n for (let match of matches) {\n contextualMatches.push(match);\n if (match.route.id === fromRouteId) {\n activeRouteMatch = match;\n break;\n }\n }\n } else {\n contextualMatches = matches;\n activeRouteMatch = matches[matches.length - 1];\n }\n\n // Resolve the relative path\n let path = resolveTo(\n to ? to : \".\",\n getResolveToMatches(contextualMatches, v7_relativeSplatPath),\n stripBasename(location.pathname, basename) || location.pathname,\n relative === \"path\"\n );\n\n // When `to` is not specified we inherit search/hash from the current\n // location, unlike when to=\".\" and we just inherit the path.\n // See https://github.com/remix-run/remix/issues/927\n if (to == null) {\n path.search = location.search;\n path.hash = location.hash;\n }\n\n // Account for `?index` params when routing to the current location\n if ((to == null || to === \"\" || to === \".\") && activeRouteMatch) {\n let nakedIndex = hasNakedIndexQuery(path.search);\n if (activeRouteMatch.route.index && !nakedIndex) {\n // Add one when we're targeting an index route\n path.search = path.search\n ? path.search.replace(/^\\?/, \"?index&\")\n : \"?index\";\n } else if (!activeRouteMatch.route.index && nakedIndex) {\n // Remove existing ones when we're not\n let params = new URLSearchParams(path.search);\n let indexValues = params.getAll(\"index\");\n params.delete(\"index\");\n indexValues.filter((v) => v).forEach((v) => params.append(\"index\", v));\n let qs = params.toString();\n path.search = qs ? `?${qs}` : \"\";\n }\n }\n\n // If we're operating within a basename, prepend it to the pathname. If\n // this is a root navigation, then just use the raw basename which allows\n // the basename to have full control over the presence of a trailing slash\n // on root actions\n if (prependBasename && basename !== \"/\") {\n path.pathname =\n path.pathname === \"/\" ? basename : joinPaths([basename, path.pathname]);\n }\n\n return createPath(path);\n}\n\n// Normalize navigation options by converting formMethod=GET formData objects to\n// URLSearchParams so they behave identically to links with query params\nfunction normalizeNavigateOptions(\n normalizeFormMethod: boolean,\n isFetcher: boolean,\n path: string,\n opts?: BaseNavigateOrFetchOptions\n): {\n path: string;\n submission?: Submission;\n error?: ErrorResponseImpl;\n} {\n // Return location verbatim on non-submission navigations\n if (!opts || !isSubmissionNavigation(opts)) {\n return { path };\n }\n\n if (opts.formMethod && !isValidMethod(opts.formMethod)) {\n return {\n path,\n error: getInternalRouterError(405, { method: opts.formMethod }),\n };\n }\n\n let getInvalidBodyError = () => ({\n path,\n error: getInternalRouterError(400, { type: \"invalid-body\" }),\n });\n\n // Create a Submission on non-GET navigations\n let rawFormMethod = opts.formMethod || \"get\";\n let formMethod = normalizeFormMethod\n ? (rawFormMethod.toUpperCase() as V7_FormMethod)\n : (rawFormMethod.toLowerCase() as FormMethod);\n let formAction = stripHashFromPath(path);\n\n if (opts.body !== undefined) {\n if (opts.formEncType === \"text/plain\") {\n // text only support POST/PUT/PATCH/DELETE submissions\n if (!isMutationMethod(formMethod)) {\n return getInvalidBodyError();\n }\n\n let text =\n typeof opts.body === \"string\"\n ? opts.body\n : opts.body instanceof FormData ||\n opts.body instanceof URLSearchParams\n ? // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#plain-text-form-data\n Array.from(opts.body.entries()).reduce(\n (acc, [name, value]) => `${acc}${name}=${value}\\n`,\n \"\"\n )\n : String(opts.body);\n\n return {\n path,\n submission: {\n formMethod,\n formAction,\n formEncType: opts.formEncType,\n formData: undefined,\n json: undefined,\n text,\n },\n };\n } else if (opts.formEncType === \"application/json\") {\n // json only supports POST/PUT/PATCH/DELETE submissions\n if (!isMutationMethod(formMethod)) {\n return getInvalidBodyError();\n }\n\n try {\n let json =\n typeof opts.body === \"string\" ? JSON.parse(opts.body) : opts.body;\n\n return {\n path,\n submission: {\n formMethod,\n formAction,\n formEncType: opts.formEncType,\n formData: undefined,\n json,\n text: undefined,\n },\n };\n } catch (e) {\n return getInvalidBodyError();\n }\n }\n }\n\n invariant(\n typeof FormData === \"function\",\n \"FormData is not available in this environment\"\n );\n\n let searchParams: URLSearchParams;\n let formData: FormData;\n\n if (opts.formData) {\n searchParams = convertFormDataToSearchParams(opts.formData);\n formData = opts.formData;\n } else if (opts.body instanceof FormData) {\n searchParams = convertFormDataToSearchParams(opts.body);\n formData = opts.body;\n } else if (opts.body instanceof URLSearchParams) {\n searchParams = opts.body;\n formData = convertSearchParamsToFormData(searchParams);\n } else if (opts.body == null) {\n searchParams = new URLSearchParams();\n formData = new FormData();\n } else {\n try {\n searchParams = new URLSearchParams(opts.body);\n formData = convertSearchParamsToFormData(searchParams);\n } catch (e) {\n return getInvalidBodyError();\n }\n }\n\n let submission: Submission = {\n formMethod,\n formAction,\n formEncType:\n (opts && opts.formEncType) || \"application/x-www-form-urlencoded\",\n formData,\n json: undefined,\n text: undefined,\n };\n\n if (isMutationMethod(submission.formMethod)) {\n return { path, submission };\n }\n\n // Flatten submission onto URLSearchParams for GET submissions\n let parsedPath = parsePath(path);\n // On GET navigation submissions we can drop the ?index param from the\n // resulting location since all loaders will run. But fetcher GET submissions\n // only run a single loader so we need to preserve any incoming ?index params\n if (isFetcher && parsedPath.search && hasNakedIndexQuery(parsedPath.search)) {\n searchParams.append(\"index\", \"\");\n }\n parsedPath.search = `?${searchParams}`;\n\n return { path: createPath(parsedPath), submission };\n}\n\n// Filter out all routes at/below any caught error as they aren't going to\n// render so we don't need to load them\nfunction getLoaderMatchesUntilBoundary(\n matches: AgnosticDataRouteMatch[],\n boundaryId: string,\n includeBoundary = false\n) {\n let index = matches.findIndex((m) => m.route.id === boundaryId);\n if (index >= 0) {\n return matches.slice(0, includeBoundary ? index + 1 : index);\n }\n return matches;\n}\n\nfunction getMatchesToLoad(\n history: History,\n state: RouterState,\n matches: AgnosticDataRouteMatch[],\n submission: Submission | undefined,\n location: Location,\n initialHydration: boolean,\n skipActionErrorRevalidation: boolean,\n isRevalidationRequired: boolean,\n cancelledDeferredRoutes: string[],\n cancelledFetcherLoads: Set,\n deletedFetchers: Set,\n fetchLoadMatches: Map,\n fetchRedirectIds: Set,\n routesToUse: AgnosticDataRouteObject[],\n basename: string | undefined,\n pendingActionResult?: PendingActionResult\n): [AgnosticDataRouteMatch[], RevalidatingFetcher[]] {\n let actionResult = pendingActionResult\n ? isErrorResult(pendingActionResult[1])\n ? pendingActionResult[1].error\n : pendingActionResult[1].data\n : undefined;\n let currentUrl = history.createURL(state.location);\n let nextUrl = history.createURL(location);\n\n // Pick navigation matches that are net-new or qualify for revalidation\n let boundaryMatches = matches;\n if (initialHydration && state.errors) {\n // On initial hydration, only consider matches up to _and including_ the boundary.\n // This is inclusive to handle cases where a server loader ran successfully,\n // a child server loader bubbled up to this route, but this route has\n // `clientLoader.hydrate` so we want to still run the `clientLoader` so that\n // we have a complete version of `loaderData`\n boundaryMatches = getLoaderMatchesUntilBoundary(\n matches,\n Object.keys(state.errors)[0],\n true\n );\n } else if (pendingActionResult && isErrorResult(pendingActionResult[1])) {\n // If an action threw an error, we call loaders up to, but not including the\n // boundary\n boundaryMatches = getLoaderMatchesUntilBoundary(\n matches,\n pendingActionResult[0]\n );\n }\n\n // Don't revalidate loaders by default after action 4xx/5xx responses\n // when the flag is enabled. They can still opt-into revalidation via\n // `shouldRevalidate` via `actionResult`\n let actionStatus = pendingActionResult\n ? pendingActionResult[1].statusCode\n : undefined;\n let shouldSkipRevalidation =\n skipActionErrorRevalidation && actionStatus && actionStatus >= 400;\n\n let navigationMatches = boundaryMatches.filter((match, index) => {\n let { route } = match;\n if (route.lazy) {\n // We haven't loaded this route yet so we don't know if it's got a loader!\n return true;\n }\n\n if (route.loader == null) {\n return false;\n }\n\n if (initialHydration) {\n return shouldLoadRouteOnHydration(route, state.loaderData, state.errors);\n }\n\n // Always call the loader on new route instances and pending defer cancellations\n if (\n isNewLoader(state.loaderData, state.matches[index], match) ||\n cancelledDeferredRoutes.some((id) => id === match.route.id)\n ) {\n return true;\n }\n\n // This is the default implementation for when we revalidate. If the route\n // provides it's own implementation, then we give them full control but\n // provide this value so they can leverage it if needed after they check\n // their own specific use cases\n let currentRouteMatch = state.matches[index];\n let nextRouteMatch = match;\n\n return shouldRevalidateLoader(match, {\n currentUrl,\n currentParams: currentRouteMatch.params,\n nextUrl,\n nextParams: nextRouteMatch.params,\n ...submission,\n actionResult,\n actionStatus,\n defaultShouldRevalidate: shouldSkipRevalidation\n ? false\n : // Forced revalidation due to submission, useRevalidator, or X-Remix-Revalidate\n isRevalidationRequired ||\n currentUrl.pathname + currentUrl.search ===\n nextUrl.pathname + nextUrl.search ||\n // Search params affect all loaders\n currentUrl.search !== nextUrl.search ||\n isNewRouteInstance(currentRouteMatch, nextRouteMatch),\n });\n });\n\n // Pick fetcher.loads that need to be revalidated\n let revalidatingFetchers: RevalidatingFetcher[] = [];\n fetchLoadMatches.forEach((f, key) => {\n // Don't revalidate:\n // - on initial hydration (shouldn't be any fetchers then anyway)\n // - if fetcher won't be present in the subsequent render\n // - no longer matches the URL (v7_fetcherPersist=false)\n // - was unmounted but persisted due to v7_fetcherPersist=true\n if (\n initialHydration ||\n !matches.some((m) => m.route.id === f.routeId) ||\n deletedFetchers.has(key)\n ) {\n return;\n }\n\n let fetcherMatches = matchRoutes(routesToUse, f.path, basename);\n\n // If the fetcher path no longer matches, push it in with null matches so\n // we can trigger a 404 in callLoadersAndMaybeResolveData. Note this is\n // currently only a use-case for Remix HMR where the route tree can change\n // at runtime and remove a route previously loaded via a fetcher\n if (!fetcherMatches) {\n revalidatingFetchers.push({\n key,\n routeId: f.routeId,\n path: f.path,\n matches: null,\n match: null,\n controller: null,\n });\n return;\n }\n\n // Revalidating fetchers are decoupled from the route matches since they\n // load from a static href. They revalidate based on explicit revalidation\n // (submission, useRevalidator, or X-Remix-Revalidate)\n let fetcher = state.fetchers.get(key);\n let fetcherMatch = getTargetMatch(fetcherMatches, f.path);\n\n let shouldRevalidate = false;\n if (fetchRedirectIds.has(key)) {\n // Never trigger a revalidation of an actively redirecting fetcher\n shouldRevalidate = false;\n } else if (cancelledFetcherLoads.has(key)) {\n // Always mark for revalidation if the fetcher was cancelled\n cancelledFetcherLoads.delete(key);\n shouldRevalidate = true;\n } else if (\n fetcher &&\n fetcher.state !== \"idle\" &&\n fetcher.data === undefined\n ) {\n // If the fetcher hasn't ever completed loading yet, then this isn't a\n // revalidation, it would just be a brand new load if an explicit\n // revalidation is required\n shouldRevalidate = isRevalidationRequired;\n } else {\n // Otherwise fall back on any user-defined shouldRevalidate, defaulting\n // to explicit revalidations only\n shouldRevalidate = shouldRevalidateLoader(fetcherMatch, {\n currentUrl,\n currentParams: state.matches[state.matches.length - 1].params,\n nextUrl,\n nextParams: matches[matches.length - 1].params,\n ...submission,\n actionResult,\n actionStatus,\n defaultShouldRevalidate: shouldSkipRevalidation\n ? false\n : isRevalidationRequired,\n });\n }\n\n if (shouldRevalidate) {\n revalidatingFetchers.push({\n key,\n routeId: f.routeId,\n path: f.path,\n matches: fetcherMatches,\n match: fetcherMatch,\n controller: new AbortController(),\n });\n }\n });\n\n return [navigationMatches, revalidatingFetchers];\n}\n\nfunction shouldLoadRouteOnHydration(\n route: AgnosticDataRouteObject,\n loaderData: RouteData | null | undefined,\n errors: RouteData | null | undefined\n) {\n // We dunno if we have a loader - gotta find out!\n if (route.lazy) {\n return true;\n }\n\n // No loader, nothing to initialize\n if (!route.loader) {\n return false;\n }\n\n let hasData = loaderData != null && loaderData[route.id] !== undefined;\n let hasError = errors != null && errors[route.id] !== undefined;\n\n // Don't run if we error'd during SSR\n if (!hasData && hasError) {\n return false;\n }\n\n // Explicitly opting-in to running on hydration\n if (typeof route.loader === \"function\" && route.loader.hydrate === true) {\n return true;\n }\n\n // Otherwise, run if we're not yet initialized with anything\n return !hasData && !hasError;\n}\n\nfunction isNewLoader(\n currentLoaderData: RouteData,\n currentMatch: AgnosticDataRouteMatch,\n match: AgnosticDataRouteMatch\n) {\n let isNew =\n // [a] -> [a, b]\n !currentMatch ||\n // [a, b] -> [a, c]\n match.route.id !== currentMatch.route.id;\n\n // Handle the case that we don't have data for a re-used route, potentially\n // from a prior error or from a cancelled pending deferred\n let isMissingData = currentLoaderData[match.route.id] === undefined;\n\n // Always load if this is a net-new route or we don't yet have data\n return isNew || isMissingData;\n}\n\nfunction isNewRouteInstance(\n currentMatch: AgnosticDataRouteMatch,\n match: AgnosticDataRouteMatch\n) {\n let currentPath = currentMatch.route.path;\n return (\n // param change for this match, /users/123 -> /users/456\n currentMatch.pathname !== match.pathname ||\n // splat param changed, which is not present in match.path\n // e.g. /files/images/avatar.jpg -> files/finances.xls\n (currentPath != null &&\n currentPath.endsWith(\"*\") &&\n currentMatch.params[\"*\"] !== match.params[\"*\"])\n );\n}\n\nfunction shouldRevalidateLoader(\n loaderMatch: AgnosticDataRouteMatch,\n arg: ShouldRevalidateFunctionArgs\n) {\n if (loaderMatch.route.shouldRevalidate) {\n let routeChoice = loaderMatch.route.shouldRevalidate(arg);\n if (typeof routeChoice === \"boolean\") {\n return routeChoice;\n }\n }\n\n return arg.defaultShouldRevalidate;\n}\n\nfunction patchRoutesImpl(\n routeId: string | null,\n children: AgnosticRouteObject[],\n routesToUse: AgnosticDataRouteObject[],\n manifest: RouteManifest,\n mapRouteProperties: MapRoutePropertiesFunction\n) {\n let childrenToPatch: AgnosticDataRouteObject[];\n if (routeId) {\n let route = manifest[routeId];\n invariant(\n route,\n `No route found to patch children into: routeId = ${routeId}`\n );\n if (!route.children) {\n route.children = [];\n }\n childrenToPatch = route.children;\n } else {\n childrenToPatch = routesToUse;\n }\n\n // Don't patch in routes we already know about so that `patch` is idempotent\n // to simplify user-land code. This is useful because we re-call the\n // `patchRoutesOnNavigation` function for matched routes with params.\n let uniqueChildren = children.filter(\n (newRoute) =>\n !childrenToPatch.some((existingRoute) =>\n isSameRoute(newRoute, existingRoute)\n )\n );\n\n let newRoutes = convertRoutesToDataRoutes(\n uniqueChildren,\n mapRouteProperties,\n [routeId || \"_\", \"patch\", String(childrenToPatch?.length || \"0\")],\n manifest\n );\n\n childrenToPatch.push(...newRoutes);\n}\n\nfunction isSameRoute(\n newRoute: AgnosticRouteObject,\n existingRoute: AgnosticRouteObject\n): boolean {\n // Most optimal check is by id\n if (\n \"id\" in newRoute &&\n \"id\" in existingRoute &&\n newRoute.id === existingRoute.id\n ) {\n return true;\n }\n\n // Second is by pathing differences\n if (\n !(\n newRoute.index === existingRoute.index &&\n newRoute.path === existingRoute.path &&\n newRoute.caseSensitive === existingRoute.caseSensitive\n )\n ) {\n return false;\n }\n\n // Pathless layout routes are trickier since we need to check children.\n // If they have no children then they're the same as far as we can tell\n if (\n (!newRoute.children || newRoute.children.length === 0) &&\n (!existingRoute.children || existingRoute.children.length === 0)\n ) {\n return true;\n }\n\n // Otherwise, we look to see if every child in the new route is already\n // represented in the existing route's children\n return newRoute.children!.every((aChild, i) =>\n existingRoute.children?.some((bChild) => isSameRoute(aChild, bChild))\n );\n}\n\n/**\n * Execute route.lazy() methods to lazily load route modules (loader, action,\n * shouldRevalidate) and update the routeManifest in place which shares objects\n * with dataRoutes so those get updated as well.\n */\nasync function loadLazyRouteModule(\n route: AgnosticDataRouteObject,\n mapRouteProperties: MapRoutePropertiesFunction,\n manifest: RouteManifest\n) {\n if (!route.lazy) {\n return;\n }\n\n let lazyRoute = await route.lazy();\n\n // If the lazy route function was executed and removed by another parallel\n // call then we can return - first lazy() to finish wins because the return\n // value of lazy is expected to be static\n if (!route.lazy) {\n return;\n }\n\n let routeToUpdate = manifest[route.id];\n invariant(routeToUpdate, \"No route found in manifest\");\n\n // Update the route in place. This should be safe because there's no way\n // we could yet be sitting on this route as we can't get there without\n // resolving lazy() first.\n //\n // This is different than the HMR \"update\" use-case where we may actively be\n // on the route being updated. The main concern boils down to \"does this\n // mutation affect any ongoing navigations or any current state.matches\n // values?\". If not, it should be safe to update in place.\n let routeUpdates: Record = {};\n for (let lazyRouteProperty in lazyRoute) {\n let staticRouteValue =\n routeToUpdate[lazyRouteProperty as keyof typeof routeToUpdate];\n\n let isPropertyStaticallyDefined =\n staticRouteValue !== undefined &&\n // This property isn't static since it should always be updated based\n // on the route updates\n lazyRouteProperty !== \"hasErrorBoundary\";\n\n warning(\n !isPropertyStaticallyDefined,\n `Route \"${routeToUpdate.id}\" has a static property \"${lazyRouteProperty}\" ` +\n `defined but its lazy function is also returning a value for this property. ` +\n `The lazy route property \"${lazyRouteProperty}\" will be ignored.`\n );\n\n if (\n !isPropertyStaticallyDefined &&\n !immutableRouteKeys.has(lazyRouteProperty as ImmutableRouteKey)\n ) {\n routeUpdates[lazyRouteProperty] =\n lazyRoute[lazyRouteProperty as keyof typeof lazyRoute];\n }\n }\n\n // Mutate the route with the provided updates. Do this first so we pass\n // the updated version to mapRouteProperties\n Object.assign(routeToUpdate, routeUpdates);\n\n // Mutate the `hasErrorBoundary` property on the route based on the route\n // updates and remove the `lazy` function so we don't resolve the lazy\n // route again.\n Object.assign(routeToUpdate, {\n // To keep things framework agnostic, we use the provided\n // `mapRouteProperties` (or wrapped `detectErrorBoundary`) function to\n // set the framework-aware properties (`element`/`hasErrorBoundary`) since\n // the logic will differ between frameworks.\n ...mapRouteProperties(routeToUpdate),\n lazy: undefined,\n });\n}\n\n// Default implementation of `dataStrategy` which fetches all loaders in parallel\nasync function defaultDataStrategy({\n matches,\n}: DataStrategyFunctionArgs): ReturnType {\n let matchesToLoad = matches.filter((m) => m.shouldLoad);\n let results = await Promise.all(matchesToLoad.map((m) => m.resolve()));\n return results.reduce(\n (acc, result, i) =>\n Object.assign(acc, { [matchesToLoad[i].route.id]: result }),\n {}\n );\n}\n\nasync function callDataStrategyImpl(\n dataStrategyImpl: DataStrategyFunction,\n type: \"loader\" | \"action\",\n state: RouterState | null,\n request: Request,\n matchesToLoad: AgnosticDataRouteMatch[],\n matches: AgnosticDataRouteMatch[],\n fetcherKey: string | null,\n manifest: RouteManifest,\n mapRouteProperties: MapRoutePropertiesFunction,\n requestContext?: unknown\n): Promise> {\n let loadRouteDefinitionsPromises = matches.map((m) =>\n m.route.lazy\n ? loadLazyRouteModule(m.route, mapRouteProperties, manifest)\n : undefined\n );\n\n let dsMatches = matches.map((match, i) => {\n let loadRoutePromise = loadRouteDefinitionsPromises[i];\n let shouldLoad = matchesToLoad.some((m) => m.route.id === match.route.id);\n // `resolve` encapsulates route.lazy(), executing the loader/action,\n // and mapping return values/thrown errors to a `DataStrategyResult`. Users\n // can pass a callback to take fine-grained control over the execution\n // of the loader/action\n let resolve: DataStrategyMatch[\"resolve\"] = async (handlerOverride) => {\n if (\n handlerOverride &&\n request.method === \"GET\" &&\n (match.route.lazy || match.route.loader)\n ) {\n shouldLoad = true;\n }\n return shouldLoad\n ? callLoaderOrAction(\n type,\n request,\n match,\n loadRoutePromise,\n handlerOverride,\n requestContext\n )\n : Promise.resolve({ type: ResultType.data, result: undefined });\n };\n\n return {\n ...match,\n shouldLoad,\n resolve,\n };\n });\n\n // Send all matches here to allow for a middleware-type implementation.\n // handler will be a no-op for unneeded routes and we filter those results\n // back out below.\n let results = await dataStrategyImpl({\n matches: dsMatches,\n request,\n params: matches[0].params,\n fetcherKey,\n context: requestContext,\n });\n\n // Wait for all routes to load here but 'swallow the error since we want\n // it to bubble up from the `await loadRoutePromise` in `callLoaderOrAction` -\n // called from `match.resolve()`\n try {\n await Promise.all(loadRouteDefinitionsPromises);\n } catch (e) {\n // No-op\n }\n\n return results;\n}\n\n// Default logic for calling a loader/action is the user has no specified a dataStrategy\nasync function callLoaderOrAction(\n type: \"loader\" | \"action\",\n request: Request,\n match: AgnosticDataRouteMatch,\n loadRoutePromise: Promise | undefined,\n handlerOverride: Parameters[0],\n staticContext?: unknown\n): Promise {\n let result: DataStrategyResult;\n let onReject: (() => void) | undefined;\n\n let runHandler = (\n handler: AgnosticRouteObject[\"loader\"] | AgnosticRouteObject[\"action\"]\n ): Promise => {\n // Setup a promise we can race against so that abort signals short circuit\n let reject: () => void;\n // This will never resolve so safe to type it as Promise to\n // satisfy the function return value\n let abortPromise = new Promise((_, r) => (reject = r));\n onReject = () => reject();\n request.signal.addEventListener(\"abort\", onReject);\n\n let actualHandler = (ctx?: unknown) => {\n if (typeof handler !== \"function\") {\n return Promise.reject(\n new Error(\n `You cannot call the handler for a route which defines a boolean ` +\n `\"${type}\" [routeId: ${match.route.id}]`\n )\n );\n }\n return handler(\n {\n request,\n params: match.params,\n context: staticContext,\n },\n ...(ctx !== undefined ? [ctx] : [])\n );\n };\n\n let handlerPromise: Promise = (async () => {\n try {\n let val = await (handlerOverride\n ? handlerOverride((ctx: unknown) => actualHandler(ctx))\n : actualHandler());\n return { type: \"data\", result: val };\n } catch (e) {\n return { type: \"error\", result: e };\n }\n })();\n\n return Promise.race([handlerPromise, abortPromise]);\n };\n\n try {\n let handler = match.route[type];\n\n // If we have a route.lazy promise, await that first\n if (loadRoutePromise) {\n if (handler) {\n // Run statically defined handler in parallel with lazy()\n let handlerError;\n let [value] = await Promise.all([\n // If the handler throws, don't let it immediately bubble out,\n // since we need to let the lazy() execution finish so we know if this\n // route has a boundary that can handle the error\n runHandler(handler).catch((e) => {\n handlerError = e;\n }),\n loadRoutePromise,\n ]);\n if (handlerError !== undefined) {\n throw handlerError;\n }\n result = value!;\n } else {\n // Load lazy route module, then run any returned handler\n await loadRoutePromise;\n\n handler = match.route[type];\n if (handler) {\n // Handler still runs even if we got interrupted to maintain consistency\n // with un-abortable behavior of handler execution on non-lazy or\n // previously-lazy-loaded routes\n result = await runHandler(handler);\n } else if (type === \"action\") {\n let url = new URL(request.url);\n let pathname = url.pathname + url.search;\n throw getInternalRouterError(405, {\n method: request.method,\n pathname,\n routeId: match.route.id,\n });\n } else {\n // lazy() route has no loader to run. Short circuit here so we don't\n // hit the invariant below that errors on returning undefined.\n return { type: ResultType.data, result: undefined };\n }\n }\n } else if (!handler) {\n let url = new URL(request.url);\n let pathname = url.pathname + url.search;\n throw getInternalRouterError(404, {\n pathname,\n });\n } else {\n result = await runHandler(handler);\n }\n\n invariant(\n result.result !== undefined,\n `You defined ${type === \"action\" ? \"an action\" : \"a loader\"} for route ` +\n `\"${match.route.id}\" but didn't return anything from your \\`${type}\\` ` +\n `function. Please return a value or \\`null\\`.`\n );\n } catch (e) {\n // We should already be catching and converting normal handler executions to\n // DataStrategyResults and returning them, so anything that throws here is an\n // unexpected error we still need to wrap\n return { type: ResultType.error, result: e };\n } finally {\n if (onReject) {\n request.signal.removeEventListener(\"abort\", onReject);\n }\n }\n\n return result;\n}\n\nasync function convertDataStrategyResultToDataResult(\n dataStrategyResult: DataStrategyResult\n): Promise {\n let { result, type } = dataStrategyResult;\n\n if (isResponse(result)) {\n let data: any;\n\n try {\n let contentType = result.headers.get(\"Content-Type\");\n // Check between word boundaries instead of startsWith() due to the last\n // paragraph of https://httpwg.org/specs/rfc9110.html#field.content-type\n if (contentType && /\\bapplication\\/json\\b/.test(contentType)) {\n if (result.body == null) {\n data = null;\n } else {\n data = await result.json();\n }\n } else {\n data = await result.text();\n }\n } catch (e) {\n return { type: ResultType.error, error: e };\n }\n\n if (type === ResultType.error) {\n return {\n type: ResultType.error,\n error: new ErrorResponseImpl(result.status, result.statusText, data),\n statusCode: result.status,\n headers: result.headers,\n };\n }\n\n return {\n type: ResultType.data,\n data,\n statusCode: result.status,\n headers: result.headers,\n };\n }\n\n if (type === ResultType.error) {\n if (isDataWithResponseInit(result)) {\n if (result.data instanceof Error) {\n return {\n type: ResultType.error,\n error: result.data,\n statusCode: result.init?.status,\n headers: result.init?.headers\n ? new Headers(result.init.headers)\n : undefined,\n };\n }\n\n // Convert thrown data() to ErrorResponse instances\n return {\n type: ResultType.error,\n error: new ErrorResponseImpl(\n result.init?.status || 500,\n undefined,\n result.data\n ),\n statusCode: isRouteErrorResponse(result) ? result.status : undefined,\n headers: result.init?.headers\n ? new Headers(result.init.headers)\n : undefined,\n };\n }\n return {\n type: ResultType.error,\n error: result,\n statusCode: isRouteErrorResponse(result) ? result.status : undefined,\n };\n }\n\n if (isDeferredData(result)) {\n return {\n type: ResultType.deferred,\n deferredData: result,\n statusCode: result.init?.status,\n headers: result.init?.headers && new Headers(result.init.headers),\n };\n }\n\n if (isDataWithResponseInit(result)) {\n return {\n type: ResultType.data,\n data: result.data,\n statusCode: result.init?.status,\n headers: result.init?.headers\n ? new Headers(result.init.headers)\n : undefined,\n };\n }\n\n return { type: ResultType.data, data: result };\n}\n\n// Support relative routing in internal redirects\nfunction normalizeRelativeRoutingRedirectResponse(\n response: Response,\n request: Request,\n routeId: string,\n matches: AgnosticDataRouteMatch[],\n basename: string,\n v7_relativeSplatPath: boolean\n) {\n let location = response.headers.get(\"Location\");\n invariant(\n location,\n \"Redirects returned/thrown from loaders/actions must have a Location header\"\n );\n\n if (!ABSOLUTE_URL_REGEX.test(location)) {\n let trimmedMatches = matches.slice(\n 0,\n matches.findIndex((m) => m.route.id === routeId) + 1\n );\n location = normalizeTo(\n new URL(request.url),\n trimmedMatches,\n basename,\n true,\n location,\n v7_relativeSplatPath\n );\n response.headers.set(\"Location\", location);\n }\n\n return response;\n}\n\nfunction normalizeRedirectLocation(\n location: string,\n currentUrl: URL,\n basename: string\n): string {\n if (ABSOLUTE_URL_REGEX.test(location)) {\n // Strip off the protocol+origin for same-origin + same-basename absolute redirects\n let normalizedLocation = location;\n let url = normalizedLocation.startsWith(\"//\")\n ? new URL(currentUrl.protocol + normalizedLocation)\n : new URL(normalizedLocation);\n let isSameBasename = stripBasename(url.pathname, basename) != null;\n if (url.origin === currentUrl.origin && isSameBasename) {\n return url.pathname + url.search + url.hash;\n }\n }\n return location;\n}\n\n// Utility method for creating the Request instances for loaders/actions during\n// client-side navigations and fetches. During SSR we will always have a\n// Request instance from the static handler (query/queryRoute)\nfunction createClientSideRequest(\n history: History,\n location: string | Location,\n signal: AbortSignal,\n submission?: Submission\n): Request {\n let url = history.createURL(stripHashFromPath(location)).toString();\n let init: RequestInit = { signal };\n\n if (submission && isMutationMethod(submission.formMethod)) {\n let { formMethod, formEncType } = submission;\n // Didn't think we needed this but it turns out unlike other methods, patch\n // won't be properly normalized to uppercase and results in a 405 error.\n // See: https://fetch.spec.whatwg.org/#concept-method\n init.method = formMethod.toUpperCase();\n\n if (formEncType === \"application/json\") {\n init.headers = new Headers({ \"Content-Type\": formEncType });\n init.body = JSON.stringify(submission.json);\n } else if (formEncType === \"text/plain\") {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = submission.text;\n } else if (\n formEncType === \"application/x-www-form-urlencoded\" &&\n submission.formData\n ) {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = convertFormDataToSearchParams(submission.formData);\n } else {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = submission.formData;\n }\n }\n\n return new Request(url, init);\n}\n\nfunction convertFormDataToSearchParams(formData: FormData): URLSearchParams {\n let searchParams = new URLSearchParams();\n\n for (let [key, value] of formData.entries()) {\n // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#converting-an-entry-list-to-a-list-of-name-value-pairs\n searchParams.append(key, typeof value === \"string\" ? value : value.name);\n }\n\n return searchParams;\n}\n\nfunction convertSearchParamsToFormData(\n searchParams: URLSearchParams\n): FormData {\n let formData = new FormData();\n for (let [key, value] of searchParams.entries()) {\n formData.append(key, value);\n }\n return formData;\n}\n\nfunction processRouteLoaderData(\n matches: AgnosticDataRouteMatch[],\n results: Record,\n pendingActionResult: PendingActionResult | undefined,\n activeDeferreds: Map,\n skipLoaderErrorBubbling: boolean\n): {\n loaderData: RouterState[\"loaderData\"];\n errors: RouterState[\"errors\"] | null;\n statusCode: number;\n loaderHeaders: Record;\n} {\n // Fill in loaderData/errors from our loaders\n let loaderData: RouterState[\"loaderData\"] = {};\n let errors: RouterState[\"errors\"] | null = null;\n let statusCode: number | undefined;\n let foundError = false;\n let loaderHeaders: Record = {};\n let pendingError =\n pendingActionResult && isErrorResult(pendingActionResult[1])\n ? pendingActionResult[1].error\n : undefined;\n\n // Process loader results into state.loaderData/state.errors\n matches.forEach((match) => {\n if (!(match.route.id in results)) {\n return;\n }\n let id = match.route.id;\n let result = results[id];\n invariant(\n !isRedirectResult(result),\n \"Cannot handle redirect results in processLoaderData\"\n );\n if (isErrorResult(result)) {\n let error = result.error;\n // If we have a pending action error, we report it at the highest-route\n // that throws a loader error, and then clear it out to indicate that\n // it was consumed\n if (pendingError !== undefined) {\n error = pendingError;\n pendingError = undefined;\n }\n\n errors = errors || {};\n\n if (skipLoaderErrorBubbling) {\n errors[id] = error;\n } else {\n // Look upwards from the matched route for the closest ancestor error\n // boundary, defaulting to the root match. Prefer higher error values\n // if lower errors bubble to the same boundary\n let boundaryMatch = findNearestBoundary(matches, id);\n if (errors[boundaryMatch.route.id] == null) {\n errors[boundaryMatch.route.id] = error;\n }\n }\n\n // Clear our any prior loaderData for the throwing route\n loaderData[id] = undefined;\n\n // Once we find our first (highest) error, we set the status code and\n // prevent deeper status codes from overriding\n if (!foundError) {\n foundError = true;\n statusCode = isRouteErrorResponse(result.error)\n ? result.error.status\n : 500;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n } else {\n if (isDeferredResult(result)) {\n activeDeferreds.set(id, result.deferredData);\n loaderData[id] = result.deferredData.data;\n // Error status codes always override success status codes, but if all\n // loaders are successful we take the deepest status code.\n if (\n result.statusCode != null &&\n result.statusCode !== 200 &&\n !foundError\n ) {\n statusCode = result.statusCode;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n } else {\n loaderData[id] = result.data;\n // Error status codes always override success status codes, but if all\n // loaders are successful we take the deepest status code.\n if (result.statusCode && result.statusCode !== 200 && !foundError) {\n statusCode = result.statusCode;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n }\n }\n });\n\n // If we didn't consume the pending action error (i.e., all loaders\n // resolved), then consume it here. Also clear out any loaderData for the\n // throwing route\n if (pendingError !== undefined && pendingActionResult) {\n errors = { [pendingActionResult[0]]: pendingError };\n loaderData[pendingActionResult[0]] = undefined;\n }\n\n return {\n loaderData,\n errors,\n statusCode: statusCode || 200,\n loaderHeaders,\n };\n}\n\nfunction processLoaderData(\n state: RouterState,\n matches: AgnosticDataRouteMatch[],\n results: Record,\n pendingActionResult: PendingActionResult | undefined,\n revalidatingFetchers: RevalidatingFetcher[],\n fetcherResults: Record,\n activeDeferreds: Map\n): {\n loaderData: RouterState[\"loaderData\"];\n errors?: RouterState[\"errors\"];\n} {\n let { loaderData, errors } = processRouteLoaderData(\n matches,\n results,\n pendingActionResult,\n activeDeferreds,\n false // This method is only called client side so we always want to bubble\n );\n\n // Process results from our revalidating fetchers\n revalidatingFetchers.forEach((rf) => {\n let { key, match, controller } = rf;\n let result = fetcherResults[key];\n invariant(result, \"Did not find corresponding fetcher result\");\n\n // Process fetcher non-redirect errors\n if (controller && controller.signal.aborted) {\n // Nothing to do for aborted fetchers\n return;\n } else if (isErrorResult(result)) {\n let boundaryMatch = findNearestBoundary(state.matches, match?.route.id);\n if (!(errors && errors[boundaryMatch.route.id])) {\n errors = {\n ...errors,\n [boundaryMatch.route.id]: result.error,\n };\n }\n state.fetchers.delete(key);\n } else if (isRedirectResult(result)) {\n // Should never get here, redirects should get processed above, but we\n // keep this to type narrow to a success result in the else\n invariant(false, \"Unhandled fetcher revalidation redirect\");\n } else if (isDeferredResult(result)) {\n // Should never get here, deferred data should be awaited for fetchers\n // in resolveDeferredResults\n invariant(false, \"Unhandled fetcher deferred data\");\n } else {\n let doneFetcher = getDoneFetcher(result.data);\n state.fetchers.set(key, doneFetcher);\n }\n });\n\n return { loaderData, errors };\n}\n\nfunction mergeLoaderData(\n loaderData: RouteData,\n newLoaderData: RouteData,\n matches: AgnosticDataRouteMatch[],\n errors: RouteData | null | undefined\n): RouteData {\n let mergedLoaderData = { ...newLoaderData };\n for (let match of matches) {\n let id = match.route.id;\n if (newLoaderData.hasOwnProperty(id)) {\n if (newLoaderData[id] !== undefined) {\n mergedLoaderData[id] = newLoaderData[id];\n } else {\n // No-op - this is so we ignore existing data if we have a key in the\n // incoming object with an undefined value, which is how we unset a prior\n // loaderData if we encounter a loader error\n }\n } else if (loaderData[id] !== undefined && match.route.loader) {\n // Preserve existing keys not included in newLoaderData and where a loader\n // wasn't removed by HMR\n mergedLoaderData[id] = loaderData[id];\n }\n\n if (errors && errors.hasOwnProperty(id)) {\n // Don't keep any loader data below the boundary\n break;\n }\n }\n return mergedLoaderData;\n}\n\nfunction getActionDataForCommit(\n pendingActionResult: PendingActionResult | undefined\n) {\n if (!pendingActionResult) {\n return {};\n }\n return isErrorResult(pendingActionResult[1])\n ? {\n // Clear out prior actionData on errors\n actionData: {},\n }\n : {\n actionData: {\n [pendingActionResult[0]]: pendingActionResult[1].data,\n },\n };\n}\n\n// Find the nearest error boundary, looking upwards from the leaf route (or the\n// route specified by routeId) for the closest ancestor error boundary,\n// defaulting to the root match\nfunction findNearestBoundary(\n matches: AgnosticDataRouteMatch[],\n routeId?: string\n): AgnosticDataRouteMatch {\n let eligibleMatches = routeId\n ? matches.slice(0, matches.findIndex((m) => m.route.id === routeId) + 1)\n : [...matches];\n return (\n eligibleMatches.reverse().find((m) => m.route.hasErrorBoundary === true) ||\n matches[0]\n );\n}\n\nfunction getShortCircuitMatches(routes: AgnosticDataRouteObject[]): {\n matches: AgnosticDataRouteMatch[];\n route: AgnosticDataRouteObject;\n} {\n // Prefer a root layout route if present, otherwise shim in a route object\n let route =\n routes.length === 1\n ? routes[0]\n : routes.find((r) => r.index || !r.path || r.path === \"/\") || {\n id: `__shim-error-route__`,\n };\n\n return {\n matches: [\n {\n params: {},\n pathname: \"\",\n pathnameBase: \"\",\n route,\n },\n ],\n route,\n };\n}\n\nfunction getInternalRouterError(\n status: number,\n {\n pathname,\n routeId,\n method,\n type,\n message,\n }: {\n pathname?: string;\n routeId?: string;\n method?: string;\n type?: \"defer-action\" | \"invalid-body\";\n message?: string;\n } = {}\n) {\n let statusText = \"Unknown Server Error\";\n let errorMessage = \"Unknown @remix-run/router error\";\n\n if (status === 400) {\n statusText = \"Bad Request\";\n if (method && pathname && routeId) {\n errorMessage =\n `You made a ${method} request to \"${pathname}\" but ` +\n `did not provide a \\`loader\\` for route \"${routeId}\", ` +\n `so there is no way to handle the request.`;\n } else if (type === \"defer-action\") {\n errorMessage = \"defer() is not supported in actions\";\n } else if (type === \"invalid-body\") {\n errorMessage = \"Unable to encode submission body\";\n }\n } else if (status === 403) {\n statusText = \"Forbidden\";\n errorMessage = `Route \"${routeId}\" does not match URL \"${pathname}\"`;\n } else if (status === 404) {\n statusText = \"Not Found\";\n errorMessage = `No route matches URL \"${pathname}\"`;\n } else if (status === 405) {\n statusText = \"Method Not Allowed\";\n if (method && pathname && routeId) {\n errorMessage =\n `You made a ${method.toUpperCase()} request to \"${pathname}\" but ` +\n `did not provide an \\`action\\` for route \"${routeId}\", ` +\n `so there is no way to handle the request.`;\n } else if (method) {\n errorMessage = `Invalid request method \"${method.toUpperCase()}\"`;\n }\n }\n\n return new ErrorResponseImpl(\n status || 500,\n statusText,\n new Error(errorMessage),\n true\n );\n}\n\n// Find any returned redirect errors, starting from the lowest match\nfunction findRedirect(\n results: Record\n): { key: string; result: RedirectResult } | undefined {\n let entries = Object.entries(results);\n for (let i = entries.length - 1; i >= 0; i--) {\n let [key, result] = entries[i];\n if (isRedirectResult(result)) {\n return { key, result };\n }\n }\n}\n\nfunction stripHashFromPath(path: To) {\n let parsedPath = typeof path === \"string\" ? parsePath(path) : path;\n return createPath({ ...parsedPath, hash: \"\" });\n}\n\nfunction isHashChangeOnly(a: Location, b: Location): boolean {\n if (a.pathname !== b.pathname || a.search !== b.search) {\n return false;\n }\n\n if (a.hash === \"\") {\n // /page -> /page#hash\n return b.hash !== \"\";\n } else if (a.hash === b.hash) {\n // /page#hash -> /page#hash\n return true;\n } else if (b.hash !== \"\") {\n // /page#hash -> /page#other\n return true;\n }\n\n // If the hash is removed the browser will re-perform a request to the server\n // /page#hash -> /page\n return false;\n}\n\nfunction isPromise(val: unknown): val is Promise {\n return typeof val === \"object\" && val != null && \"then\" in val;\n}\n\nfunction isDataStrategyResult(result: unknown): result is DataStrategyResult {\n return (\n result != null &&\n typeof result === \"object\" &&\n \"type\" in result &&\n \"result\" in result &&\n (result.type === ResultType.data || result.type === ResultType.error)\n );\n}\n\nfunction isRedirectDataStrategyResultResult(result: DataStrategyResult) {\n return (\n isResponse(result.result) && redirectStatusCodes.has(result.result.status)\n );\n}\n\nfunction isDeferredResult(result: DataResult): result is DeferredResult {\n return result.type === ResultType.deferred;\n}\n\nfunction isErrorResult(result: DataResult): result is ErrorResult {\n return result.type === ResultType.error;\n}\n\nfunction isRedirectResult(result?: DataResult): result is RedirectResult {\n return (result && result.type) === ResultType.redirect;\n}\n\nexport function isDataWithResponseInit(\n value: any\n): value is DataWithResponseInit {\n return (\n typeof value === \"object\" &&\n value != null &&\n \"type\" in value &&\n \"data\" in value &&\n \"init\" in value &&\n value.type === \"DataWithResponseInit\"\n );\n}\n\nexport function isDeferredData(value: any): value is DeferredData {\n let deferred: DeferredData = value;\n return (\n deferred &&\n typeof deferred === \"object\" &&\n typeof deferred.data === \"object\" &&\n typeof deferred.subscribe === \"function\" &&\n typeof deferred.cancel === \"function\" &&\n typeof deferred.resolveData === \"function\"\n );\n}\n\nfunction isResponse(value: any): value is Response {\n return (\n value != null &&\n typeof value.status === \"number\" &&\n typeof value.statusText === \"string\" &&\n typeof value.headers === \"object\" &&\n typeof value.body !== \"undefined\"\n );\n}\n\nfunction isRedirectResponse(result: any): result is Response {\n if (!isResponse(result)) {\n return false;\n }\n\n let status = result.status;\n let location = result.headers.get(\"Location\");\n return status >= 300 && status <= 399 && location != null;\n}\n\nfunction isValidMethod(method: string): method is FormMethod | V7_FormMethod {\n return validRequestMethods.has(method.toLowerCase() as FormMethod);\n}\n\nfunction isMutationMethod(\n method: string\n): method is MutationFormMethod | V7_MutationFormMethod {\n return validMutationMethods.has(method.toLowerCase() as MutationFormMethod);\n}\n\nasync function resolveNavigationDeferredResults(\n matches: (AgnosticDataRouteMatch | null)[],\n results: Record,\n signal: AbortSignal,\n currentMatches: AgnosticDataRouteMatch[],\n currentLoaderData: RouteData\n) {\n let entries = Object.entries(results);\n for (let index = 0; index < entries.length; index++) {\n let [routeId, result] = entries[index];\n let match = matches.find((m) => m?.route.id === routeId);\n // If we don't have a match, then we can have a deferred result to do\n // anything with. This is for revalidating fetchers where the route was\n // removed during HMR\n if (!match) {\n continue;\n }\n\n let currentMatch = currentMatches.find(\n (m) => m.route.id === match!.route.id\n );\n let isRevalidatingLoader =\n currentMatch != null &&\n !isNewRouteInstance(currentMatch, match) &&\n (currentLoaderData && currentLoaderData[match.route.id]) !== undefined;\n\n if (isDeferredResult(result) && isRevalidatingLoader) {\n // Note: we do not have to touch activeDeferreds here since we race them\n // against the signal in resolveDeferredData and they'll get aborted\n // there if needed\n await resolveDeferredData(result, signal, false).then((result) => {\n if (result) {\n results[routeId] = result;\n }\n });\n }\n }\n}\n\nasync function resolveFetcherDeferredResults(\n matches: (AgnosticDataRouteMatch | null)[],\n results: Record,\n revalidatingFetchers: RevalidatingFetcher[]\n) {\n for (let index = 0; index < revalidatingFetchers.length; index++) {\n let { key, routeId, controller } = revalidatingFetchers[index];\n let result = results[key];\n let match = matches.find((m) => m?.route.id === routeId);\n // If we don't have a match, then we can have a deferred result to do\n // anything with. This is for revalidating fetchers where the route was\n // removed during HMR\n if (!match) {\n continue;\n }\n\n if (isDeferredResult(result)) {\n // Note: we do not have to touch activeDeferreds here since we race them\n // against the signal in resolveDeferredData and they'll get aborted\n // there if needed\n invariant(\n controller,\n \"Expected an AbortController for revalidating fetcher deferred result\"\n );\n await resolveDeferredData(result, controller.signal, true).then(\n (result) => {\n if (result) {\n results[key] = result;\n }\n }\n );\n }\n }\n}\n\nasync function resolveDeferredData(\n result: DeferredResult,\n signal: AbortSignal,\n unwrap = false\n): Promise {\n let aborted = await result.deferredData.resolveData(signal);\n if (aborted) {\n return;\n }\n\n if (unwrap) {\n try {\n return {\n type: ResultType.data,\n data: result.deferredData.unwrappedData,\n };\n } catch (e) {\n // Handle any TrackedPromise._error values encountered while unwrapping\n return {\n type: ResultType.error,\n error: e,\n };\n }\n }\n\n return {\n type: ResultType.data,\n data: result.deferredData.data,\n };\n}\n\nfunction hasNakedIndexQuery(search: string): boolean {\n return new URLSearchParams(search).getAll(\"index\").some((v) => v === \"\");\n}\n\nfunction getTargetMatch(\n matches: AgnosticDataRouteMatch[],\n location: Location | string\n) {\n let search =\n typeof location === \"string\" ? parsePath(location).search : location.search;\n if (\n matches[matches.length - 1].route.index &&\n hasNakedIndexQuery(search || \"\")\n ) {\n // Return the leaf index route when index is present\n return matches[matches.length - 1];\n }\n // Otherwise grab the deepest \"path contributing\" match (ignoring index and\n // pathless layout routes)\n let pathMatches = getPathContributingMatches(matches);\n return pathMatches[pathMatches.length - 1];\n}\n\nfunction getSubmissionFromNavigation(\n navigation: Navigation\n): Submission | undefined {\n let { formMethod, formAction, formEncType, text, formData, json } =\n navigation;\n if (!formMethod || !formAction || !formEncType) {\n return;\n }\n\n if (text != null) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData: undefined,\n json: undefined,\n text,\n };\n } else if (formData != null) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData,\n json: undefined,\n text: undefined,\n };\n } else if (json !== undefined) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData: undefined,\n json,\n text: undefined,\n };\n }\n}\n\nfunction getLoadingNavigation(\n location: Location,\n submission?: Submission\n): NavigationStates[\"Loading\"] {\n if (submission) {\n let navigation: NavigationStates[\"Loading\"] = {\n state: \"loading\",\n location,\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n };\n return navigation;\n } else {\n let navigation: NavigationStates[\"Loading\"] = {\n state: \"loading\",\n location,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n };\n return navigation;\n }\n}\n\nfunction getSubmittingNavigation(\n location: Location,\n submission: Submission\n): NavigationStates[\"Submitting\"] {\n let navigation: NavigationStates[\"Submitting\"] = {\n state: \"submitting\",\n location,\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n };\n return navigation;\n}\n\nfunction getLoadingFetcher(\n submission?: Submission,\n data?: Fetcher[\"data\"]\n): FetcherStates[\"Loading\"] {\n if (submission) {\n let fetcher: FetcherStates[\"Loading\"] = {\n state: \"loading\",\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n data,\n };\n return fetcher;\n } else {\n let fetcher: FetcherStates[\"Loading\"] = {\n state: \"loading\",\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n data,\n };\n return fetcher;\n }\n}\n\nfunction getSubmittingFetcher(\n submission: Submission,\n existingFetcher?: Fetcher\n): FetcherStates[\"Submitting\"] {\n let fetcher: FetcherStates[\"Submitting\"] = {\n state: \"submitting\",\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n data: existingFetcher ? existingFetcher.data : undefined,\n };\n return fetcher;\n}\n\nfunction getDoneFetcher(data: Fetcher[\"data\"]): FetcherStates[\"Idle\"] {\n let fetcher: FetcherStates[\"Idle\"] = {\n state: \"idle\",\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n data,\n };\n return fetcher;\n}\n\nfunction restoreAppliedTransitions(\n _window: Window,\n transitions: Map>\n) {\n try {\n let sessionPositions = _window.sessionStorage.getItem(\n TRANSITIONS_STORAGE_KEY\n );\n if (sessionPositions) {\n let json = JSON.parse(sessionPositions);\n for (let [k, v] of Object.entries(json || {})) {\n if (v && Array.isArray(v)) {\n transitions.set(k, new Set(v || []));\n }\n }\n }\n } catch (e) {\n // no-op, use default empty object\n }\n}\n\nfunction persistAppliedTransitions(\n _window: Window,\n transitions: Map>\n) {\n if (transitions.size > 0) {\n let json: Record = {};\n for (let [k, v] of transitions) {\n json[k] = [...v];\n }\n try {\n _window.sessionStorage.setItem(\n TRANSITIONS_STORAGE_KEY,\n JSON.stringify(json)\n );\n } catch (error) {\n warning(\n false,\n `Failed to save applied view transitions in sessionStorage (${error}).`\n );\n }\n }\n}\n//#endregion\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","export function isObject(x: any): x is Object {\n return x !== null && typeof x === 'object';\n}\n","export function identity(x: T): T {\n return x;\n}\n","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","\"use strict\";\n\nvar makeError = require('make-error');\n\nvar assign = require('object-assign');\n\nfunction ClientError(res) {\n var props = extractErrorProps(res);\n ClientError.super.call(this, props.message);\n assign(this, props);\n}\n\nfunction ServerError(res) {\n var props = extractErrorProps(res);\n ServerError.super.call(this, props.message);\n assign(this, props);\n}\n\nfunction extractErrorProps(res) {\n var body = res.body;\n var props = {\n response: res,\n statusCode: res.statusCode,\n responseBody: stringifyBody(body, res)\n }; // API/Boom style errors ({statusCode, error, message})\n\n if (body.error && body.message) {\n props.message = \"\".concat(body.error, \" - \").concat(body.message);\n return props;\n } // Query/database errors ({error: {description, other, arb, props}})\n\n\n if (body.error && body.error.description) {\n props.message = body.error.description;\n props.details = body.error;\n return props;\n } // Other, more arbitrary errors\n\n\n props.message = body.error || body.message || httpErrorMessage(res);\n return props;\n}\n\nfunction httpErrorMessage(res) {\n var statusMessage = res.statusMessage ? \" \".concat(res.statusMessage) : '';\n return \"\".concat(res.method, \"-request to \").concat(res.url, \" resulted in HTTP \").concat(res.statusCode).concat(statusMessage);\n}\n\nfunction stringifyBody(body, res) {\n var contentType = (res.headers['content-type'] || '').toLowerCase();\n var isJson = contentType.indexOf('application/json') !== -1;\n return isJson ? JSON.stringify(body, null, 2) : body;\n}\n\nmakeError(ClientError);\nmakeError(ServerError);\nexports.ClientError = ClientError;\nexports.ServerError = ServerError;","import { Observable } from '../Observable';\nimport { scan } from './scan';\nimport { takeLast } from './takeLast';\nimport { defaultIfEmpty } from './defaultIfEmpty';\nimport { OperatorFunction, MonoTypeOperatorFunction } from '../types';\nimport { pipe } from '../util/pipe';\n\n/* tslint:disable:max-line-length */\nexport function reduce(accumulator: (acc: R, value: T, index: number) => R, seed: R): OperatorFunction;\nexport function reduce(accumulator: (acc: T, value: T, index: number) => T, seed?: T): MonoTypeOperatorFunction;\nexport function reduce(accumulator: (acc: R, value: T, index: number) => R): OperatorFunction;\n/* tslint:enable:max-line-length */\n\n/**\n * Applies an accumulator function over the source Observable, and returns the\n * accumulated result when the source completes, given an optional seed value.\n *\n * Combines together all values emitted on the source,\n * using an accumulator function that knows how to join a new source value into\n * the accumulation from the past.\n *\n * ![](reduce.png)\n *\n * Like\n * [Array.prototype.reduce()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/reduce),\n * `reduce` applies an `accumulator` function against an accumulation and each\n * value of the source Observable (from the past) to reduce it to a single\n * value, emitted on the output Observable. Note that `reduce` will only emit\n * one value, only when the source Observable completes. It is equivalent to\n * applying operator {@link scan} followed by operator {@link last}.\n *\n * Returns an Observable that applies a specified `accumulator` function to each\n * item emitted by the source Observable. If a `seed` value is specified, then\n * that value will be used as the initial value for the accumulator. If no seed\n * value is specified, the first item of the source is used as the seed.\n *\n * ## Example\n * Count the number of click events that happened in 5 seconds\n * ```ts\n * import { fromEvent, interval } from 'rxjs';\n * import { reduce, takeUntil, mapTo } from 'rxjs/operators';\n *\n * const clicksInFiveSeconds = fromEvent(document, 'click').pipe(\n * takeUntil(interval(5000)),\n * );\n * const ones = clicksInFiveSeconds.pipe(mapTo(1));\n * const seed = 0;\n * const count = ones.pipe(reduce((acc, one) => acc + one, seed));\n * count.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link count}\n * @see {@link expand}\n * @see {@link mergeScan}\n * @see {@link scan}\n *\n * @param {function(acc: R, value: T, index: number): R} accumulator The accumulator function\n * called on each source value.\n * @param {R} [seed] The initial accumulation value.\n * @return {Observable} An Observable that emits a single value that is the\n * result of accumulating the values emitted by the source Observable.\n * @method reduce\n * @owner Observable\n */\nexport function reduce(accumulator: (acc: T | R, value: T, index?: number) => T | R, seed?: T | R): OperatorFunction {\n // providing a seed of `undefined` *should* be valid and trigger\n // hasSeed! so don't use `seed !== undefined` checks!\n // For this reason, we have to check it here at the original call site\n // otherwise inside Operator/Subscriber we won't know if `undefined`\n // means they didn't provide anything or if they literally provided `undefined`\n if (arguments.length >= 2) {\n return function reduceOperatorFunctionWithSeed(source: Observable): Observable {\n return pipe(scan(accumulator, seed), takeLast(1), defaultIfEmpty(seed))(source);\n };\n }\n return function reduceOperatorFunction(source: Observable): Observable {\n return pipe(\n scan((acc, value, index) => accumulator(acc, value, index + 1)),\n takeLast(1),\n )(source);\n };\n}\n","/** @license React v17.0.2\n * react-dom.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n'use strict';var aa=require(\"react\"),m=require(\"object-assign\"),r=require(\"scheduler\");function y(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;cb}return!1}function B(a,b,c,d,e,f,g){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f;this.removeEmptyString=g}var D={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){D[a]=new B(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];D[b]=new B(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){D[a]=new B(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){D[a]=new B(a,2,!1,a,null,!1,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){D[a]=new B(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){D[a]=new B(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){D[a]=new B(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){D[a]=new B(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){D[a]=new B(a,5,!1,a.toLowerCase(),null,!1,!1)});var oa=/[\\-:]([a-z])/g;function pa(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(oa,\npa);D[b]=new B(b,1,!1,a,null,!1,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(oa,pa);D[b]=new B(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1,!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(oa,pa);D[b]=new B(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){D[a]=new B(a,1,!1,a.toLowerCase(),null,!1,!1)});\nD.xlinkHref=new B(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){D[a]=new B(a,1,!1,a.toLowerCase(),null,!0,!0)});\nfunction qa(a,b,c,d){var e=D.hasOwnProperty(b)?D[b]:null;var f=null!==e?0===e.type:d?!1:!(2h||e[g]!==f[h])return\"\\n\"+e[g].replace(\" at new \",\" at \");while(1<=g&&0<=h)}break}}}finally{Oa=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:\"\")?Na(a):\"\"}\nfunction Qa(a){switch(a.tag){case 5:return Na(a.type);case 16:return Na(\"Lazy\");case 13:return Na(\"Suspense\");case 19:return Na(\"SuspenseList\");case 0:case 2:case 15:return a=Pa(a.type,!1),a;case 11:return a=Pa(a.type.render,!1),a;case 22:return a=Pa(a.type._render,!1),a;case 1:return a=Pa(a.type,!0),a;default:return\"\"}}\nfunction Ra(a){if(null==a)return null;if(\"function\"===typeof a)return a.displayName||a.name||null;if(\"string\"===typeof a)return a;switch(a){case ua:return\"Fragment\";case ta:return\"Portal\";case xa:return\"Profiler\";case wa:return\"StrictMode\";case Ba:return\"Suspense\";case Ca:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case za:return(a.displayName||\"Context\")+\".Consumer\";case ya:return(a._context.displayName||\"Context\")+\".Provider\";case Aa:var b=a.render;b=b.displayName||b.name||\"\";\nreturn a.displayName||(\"\"!==b?\"ForwardRef(\"+b+\")\":\"ForwardRef\");case Da:return Ra(a.type);case Fa:return Ra(a._render);case Ea:b=a._payload;a=a._init;try{return Ra(a(b))}catch(c){}}return null}function Sa(a){switch(typeof a){case \"boolean\":case \"number\":case \"object\":case \"string\":case \"undefined\":return a;default:return\"\"}}function Ta(a){var b=a.type;return(a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===b||\"radio\"===b)}\nfunction Ua(a){var b=Ta(a)?\"checked\":\"value\",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=\"\"+a[b];if(!a.hasOwnProperty(b)&&\"undefined\"!==typeof c&&\"function\"===typeof c.get&&\"function\"===typeof c.set){var e=c.get,f=c.set;Object.defineProperty(a,b,{configurable:!0,get:function(){return e.call(this)},set:function(a){d=\"\"+a;f.call(this,a)}});Object.defineProperty(a,b,{enumerable:c.enumerable});return{getValue:function(){return d},setValue:function(a){d=\"\"+a},stopTracking:function(){a._valueTracker=\nnull;delete a[b]}}}}function Va(a){a._valueTracker||(a._valueTracker=Ua(a))}function Wa(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d=\"\";a&&(d=Ta(a)?a.checked?\"true\":\"false\":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function Xa(a){a=a||(\"undefined\"!==typeof document?document:void 0);if(\"undefined\"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}\nfunction Ya(a,b){var c=b.checked;return m({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}function Za(a,b){var c=null==b.defaultValue?\"\":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=Sa(null!=b.value?b.value:c);a._wrapperState={initialChecked:d,initialValue:c,controlled:\"checkbox\"===b.type||\"radio\"===b.type?null!=b.checked:null!=b.value}}function $a(a,b){b=b.checked;null!=b&&qa(a,\"checked\",b,!1)}\nfunction ab(a,b){$a(a,b);var c=Sa(b.value),d=b.type;if(null!=c)if(\"number\"===d){if(0===c&&\"\"===a.value||a.value!=c)a.value=\"\"+c}else a.value!==\"\"+c&&(a.value=\"\"+c);else if(\"submit\"===d||\"reset\"===d){a.removeAttribute(\"value\");return}b.hasOwnProperty(\"value\")?bb(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&bb(a,b.type,Sa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction cb(a,b,c){if(b.hasOwnProperty(\"value\")||b.hasOwnProperty(\"defaultValue\")){var d=b.type;if(!(\"submit\"!==d&&\"reset\"!==d||void 0!==b.value&&null!==b.value))return;b=\"\"+a._wrapperState.initialValue;c||b===a.value||(a.value=b);a.defaultValue=b}c=a.name;\"\"!==c&&(a.name=\"\");a.defaultChecked=!!a._wrapperState.initialChecked;\"\"!==c&&(a.name=c)}\nfunction bb(a,b,c){if(\"number\"!==b||Xa(a.ownerDocument)!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}function db(a){var b=\"\";aa.Children.forEach(a,function(a){null!=a&&(b+=a)});return b}function eb(a,b){a=m({children:void 0},b);if(b=db(b.children))a.children=b;return a}\nfunction fb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e=c.length))throw Error(y(93));c=c[0]}b=c}null==b&&(b=\"\");c=b}a._wrapperState={initialValue:Sa(c)}}\nfunction ib(a,b){var c=Sa(b.value),d=Sa(b.defaultValue);null!=c&&(c=\"\"+c,c!==a.value&&(a.value=c),null==b.defaultValue&&a.defaultValue!==c&&(a.defaultValue=c));null!=d&&(a.defaultValue=\"\"+d)}function jb(a){var b=a.textContent;b===a._wrapperState.initialValue&&\"\"!==b&&null!==b&&(a.value=b)}var kb={html:\"http://www.w3.org/1999/xhtml\",mathml:\"http://www.w3.org/1998/Math/MathML\",svg:\"http://www.w3.org/2000/svg\"};\nfunction lb(a){switch(a){case \"svg\":return\"http://www.w3.org/2000/svg\";case \"math\":return\"http://www.w3.org/1998/Math/MathML\";default:return\"http://www.w3.org/1999/xhtml\"}}function mb(a,b){return null==a||\"http://www.w3.org/1999/xhtml\"===a?lb(b):\"http://www.w3.org/2000/svg\"===a&&\"foreignObject\"===b?\"http://www.w3.org/1999/xhtml\":a}\nvar nb,ob=function(a){return\"undefined\"!==typeof MSApp&&MSApp.execUnsafeLocalFunction?function(b,c,d,e){MSApp.execUnsafeLocalFunction(function(){return a(b,c,d,e)})}:a}(function(a,b){if(a.namespaceURI!==kb.svg||\"innerHTML\"in a)a.innerHTML=b;else{nb=nb||document.createElement(\"div\");nb.innerHTML=\"\"+b.valueOf().toString()+\"\";for(b=nb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction pb(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar qb={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,\nfloodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},rb=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(qb).forEach(function(a){rb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);qb[b]=qb[a]})});function sb(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||qb.hasOwnProperty(a)&&qb[a]?(\"\"+b).trim():b+\"px\"}\nfunction tb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=sb(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var ub=m({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction vb(a,b){if(b){if(ub[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(y(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(y(60));if(!(\"object\"===typeof b.dangerouslySetInnerHTML&&\"__html\"in b.dangerouslySetInnerHTML))throw Error(y(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(y(62));}}\nfunction wb(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}function xb(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}var yb=null,zb=null,Ab=null;\nfunction Bb(a){if(a=Cb(a)){if(\"function\"!==typeof yb)throw Error(y(280));var b=a.stateNode;b&&(b=Db(b),yb(a.stateNode,a.type,b))}}function Eb(a){zb?Ab?Ab.push(a):Ab=[a]:zb=a}function Fb(){if(zb){var a=zb,b=Ab;Ab=zb=null;Bb(a);if(b)for(a=0;ad?0:1<c;c++)b.push(a);return b}\nfunction $c(a,b,c){a.pendingLanes|=b;var d=b-1;a.suspendedLanes&=d;a.pingedLanes&=d;a=a.eventTimes;b=31-Vc(b);a[b]=c}var Vc=Math.clz32?Math.clz32:ad,bd=Math.log,cd=Math.LN2;function ad(a){return 0===a?32:31-(bd(a)/cd|0)|0}var dd=r.unstable_UserBlockingPriority,ed=r.unstable_runWithPriority,fd=!0;function gd(a,b,c,d){Kb||Ib();var e=hd,f=Kb;Kb=!0;try{Hb(e,a,b,c,d)}finally{(Kb=f)||Mb()}}function id(a,b,c,d){ed(dd,hd.bind(null,a,b,c,d))}\nfunction hd(a,b,c,d){if(fd){var e;if((e=0===(b&4))&&0=be),ee=String.fromCharCode(32),fe=!1;\nfunction ge(a,b){switch(a){case \"keyup\":return-1!==$d.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"focusout\":return!0;default:return!1}}function he(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var ie=!1;function je(a,b){switch(a){case \"compositionend\":return he(b);case \"keypress\":if(32!==b.which)return null;fe=!0;return ee;case \"textInput\":return a=b.data,a===ee&&fe?null:a;default:return null}}\nfunction ke(a,b){if(ie)return\"compositionend\"===a||!ae&&ge(a,b)?(a=nd(),md=ld=kd=null,ie=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Ke(c)}}function Me(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Me(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Ne(){for(var a=window,b=Xa();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=Xa(a.document)}return b}function Oe(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}\nvar Pe=fa&&\"documentMode\"in document&&11>=document.documentMode,Qe=null,Re=null,Se=null,Te=!1;\nfunction Ue(a,b,c){var d=c.window===c?c.document:9===c.nodeType?c:c.ownerDocument;Te||null==Qe||Qe!==Xa(d)||(d=Qe,\"selectionStart\"in d&&Oe(d)?d={start:d.selectionStart,end:d.selectionEnd}:(d=(d.ownerDocument&&d.ownerDocument.defaultView||window).getSelection(),d={anchorNode:d.anchorNode,anchorOffset:d.anchorOffset,focusNode:d.focusNode,focusOffset:d.focusOffset}),Se&&Je(Se,d)||(Se=d,d=oe(Re,\"onSelect\"),0Af||(a.current=zf[Af],zf[Af]=null,Af--)}function I(a,b){Af++;zf[Af]=a.current;a.current=b}var Cf={},M=Bf(Cf),N=Bf(!1),Df=Cf;\nfunction Ef(a,b){var c=a.type.contextTypes;if(!c)return Cf;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}function Ff(a){a=a.childContextTypes;return null!==a&&void 0!==a}function Gf(){H(N);H(M)}function Hf(a,b,c){if(M.current!==Cf)throw Error(y(168));I(M,b);I(N,c)}\nfunction If(a,b,c){var d=a.stateNode;a=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in a))throw Error(y(108,Ra(b)||\"Unknown\",e));return m({},c,d)}function Jf(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Cf;Df=M.current;I(M,a);I(N,N.current);return!0}function Kf(a,b,c){var d=a.stateNode;if(!d)throw Error(y(169));c?(a=If(a,b,Df),d.__reactInternalMemoizedMergedChildContext=a,H(N),H(M),I(M,a)):H(N);I(N,c)}\nvar Lf=null,Mf=null,Nf=r.unstable_runWithPriority,Of=r.unstable_scheduleCallback,Pf=r.unstable_cancelCallback,Qf=r.unstable_shouldYield,Rf=r.unstable_requestPaint,Sf=r.unstable_now,Tf=r.unstable_getCurrentPriorityLevel,Uf=r.unstable_ImmediatePriority,Vf=r.unstable_UserBlockingPriority,Wf=r.unstable_NormalPriority,Xf=r.unstable_LowPriority,Yf=r.unstable_IdlePriority,Zf={},$f=void 0!==Rf?Rf:function(){},ag=null,bg=null,cg=!1,dg=Sf(),O=1E4>dg?Sf:function(){return Sf()-dg};\nfunction eg(){switch(Tf()){case Uf:return 99;case Vf:return 98;case Wf:return 97;case Xf:return 96;case Yf:return 95;default:throw Error(y(332));}}function fg(a){switch(a){case 99:return Uf;case 98:return Vf;case 97:return Wf;case 96:return Xf;case 95:return Yf;default:throw Error(y(332));}}function gg(a,b){a=fg(a);return Nf(a,b)}function hg(a,b,c){a=fg(a);return Of(a,b,c)}function ig(){if(null!==bg){var a=bg;bg=null;Pf(a)}jg()}\nfunction jg(){if(!cg&&null!==ag){cg=!0;var a=0;try{var b=ag;gg(99,function(){for(;az?(q=u,u=null):q=u.sibling;var n=p(e,u,h[z],k);if(null===n){null===u&&(u=q);break}a&&u&&null===\nn.alternate&&b(e,u);g=f(n,g,z);null===t?l=n:t.sibling=n;t=n;u=q}if(z===h.length)return c(e,u),l;if(null===u){for(;zz?(q=u,u=null):q=u.sibling;var w=p(e,u,n.value,k);if(null===w){null===u&&(u=q);break}a&&u&&null===w.alternate&&b(e,u);g=f(w,g,z);null===t?l=w:t.sibling=w;t=w;u=q}if(n.done)return c(e,u),l;if(null===u){for(;!n.done;z++,n=h.next())n=A(e,n.value,k),null!==n&&(g=f(n,g,z),null===t?l=n:t.sibling=n,t=n);return l}for(u=d(e,u);!n.done;z++,n=h.next())n=C(u,e,z,n.value,k),null!==n&&(a&&null!==n.alternate&&\nu.delete(null===n.key?z:n.key),g=f(n,g,z),null===t?l=n:t.sibling=n,t=n);a&&u.forEach(function(a){return b(e,a)});return l}return function(a,d,f,h){var k=\"object\"===typeof f&&null!==f&&f.type===ua&&null===f.key;k&&(f=f.props.children);var l=\"object\"===typeof f&&null!==f;if(l)switch(f.$$typeof){case sa:a:{l=f.key;for(k=d;null!==k;){if(k.key===l){switch(k.tag){case 7:if(f.type===ua){c(a,k.sibling);d=e(k,f.props.children);d.return=a;a=d;break a}break;default:if(k.elementType===f.type){c(a,k.sibling);\nd=e(k,f.props);d.ref=Qg(a,k,f);d.return=a;a=d;break a}}c(a,k);break}else b(a,k);k=k.sibling}f.type===ua?(d=Xg(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=Vg(f.type,f.key,f.props,null,a.mode,h),h.ref=Qg(a,d,f),h.return=a,a=h)}return g(a);case ta:a:{for(k=f.key;null!==d;){if(d.key===k)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=\nWg(f,a.mode,h);d.return=a;a=d}return g(a)}if(\"string\"===typeof f||\"number\"===typeof f)return f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):(c(a,d),d=Ug(f,a.mode,h),d.return=a,a=d),g(a);if(Pg(f))return x(a,d,f,h);if(La(f))return w(a,d,f,h);l&&Rg(a,f);if(\"undefined\"===typeof f&&!k)switch(a.tag){case 1:case 22:case 0:case 11:case 15:throw Error(y(152,Ra(a.type)||\"Component\"));}return c(a,d)}}var Yg=Sg(!0),Zg=Sg(!1),$g={},ah=Bf($g),bh=Bf($g),ch=Bf($g);\nfunction dh(a){if(a===$g)throw Error(y(174));return a}function eh(a,b){I(ch,b);I(bh,a);I(ah,$g);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:mb(null,\"\");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=mb(b,a)}H(ah);I(ah,b)}function fh(){H(ah);H(bh);H(ch)}function gh(a){dh(ch.current);var b=dh(ah.current);var c=mb(b,a.type);b!==c&&(I(bh,a),I(ah,c))}function hh(a){bh.current===a&&(H(ah),H(bh))}var P=Bf(0);\nfunction ih(a){for(var b=a;null!==b;){if(13===b.tag){var c=b.memoizedState;if(null!==c&&(c=c.dehydrated,null===c||\"$?\"===c.data||\"$!\"===c.data))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.flags&64))return b}else if(null!==b.child){b.child.return=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}return null}var jh=null,kh=null,lh=!1;\nfunction mh(a,b){var c=nh(5,null,null,0);c.elementType=\"DELETED\";c.type=\"DELETED\";c.stateNode=b;c.return=a;c.flags=8;null!==a.lastEffect?(a.lastEffect.nextEffect=c,a.lastEffect=c):a.firstEffect=a.lastEffect=c}function oh(a,b){switch(a.tag){case 5:var c=a.type;b=1!==b.nodeType||c.toLowerCase()!==b.nodeName.toLowerCase()?null:b;return null!==b?(a.stateNode=b,!0):!1;case 6:return b=\"\"===a.pendingProps||3!==b.nodeType?null:b,null!==b?(a.stateNode=b,!0):!1;case 13:return!1;default:return!1}}\nfunction ph(a){if(lh){var b=kh;if(b){var c=b;if(!oh(a,b)){b=rf(c.nextSibling);if(!b||!oh(a,b)){a.flags=a.flags&-1025|2;lh=!1;jh=a;return}mh(jh,c)}jh=a;kh=rf(b.firstChild)}else a.flags=a.flags&-1025|2,lh=!1,jh=a}}function qh(a){for(a=a.return;null!==a&&5!==a.tag&&3!==a.tag&&13!==a.tag;)a=a.return;jh=a}\nfunction rh(a){if(a!==jh)return!1;if(!lh)return qh(a),lh=!0,!1;var b=a.type;if(5!==a.tag||\"head\"!==b&&\"body\"!==b&&!nf(b,a.memoizedProps))for(b=kh;b;)mh(a,b),b=rf(b.nextSibling);qh(a);if(13===a.tag){a=a.memoizedState;a=null!==a?a.dehydrated:null;if(!a)throw Error(y(317));a:{a=a.nextSibling;for(b=0;a;){if(8===a.nodeType){var c=a.data;if(\"/$\"===c){if(0===b){kh=rf(a.nextSibling);break a}b--}else\"$\"!==c&&\"$!\"!==c&&\"$?\"!==c||b++}a=a.nextSibling}kh=null}}else kh=jh?rf(a.stateNode.nextSibling):null;return!0}\nfunction sh(){kh=jh=null;lh=!1}var th=[];function uh(){for(var a=0;af))throw Error(y(301));f+=1;T=S=null;b.updateQueue=null;vh.current=Fh;a=c(d,e)}while(zh)}vh.current=Gh;b=null!==S&&null!==S.next;xh=0;T=S=R=null;yh=!1;if(b)throw Error(y(300));return a}function Hh(){var a={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};null===T?R.memoizedState=T=a:T=T.next=a;return T}\nfunction Ih(){if(null===S){var a=R.alternate;a=null!==a?a.memoizedState:null}else a=S.next;var b=null===T?R.memoizedState:T.next;if(null!==b)T=b,S=a;else{if(null===a)throw Error(y(310));S=a;a={memoizedState:S.memoizedState,baseState:S.baseState,baseQueue:S.baseQueue,queue:S.queue,next:null};null===T?R.memoizedState=T=a:T=T.next=a}return T}function Jh(a,b){return\"function\"===typeof b?b(a):b}\nfunction Kh(a){var b=Ih(),c=b.queue;if(null===c)throw Error(y(311));c.lastRenderedReducer=a;var d=S,e=d.baseQueue,f=c.pending;if(null!==f){if(null!==e){var g=e.next;e.next=f.next;f.next=g}d.baseQueue=e=f;c.pending=null}if(null!==e){e=e.next;d=d.baseState;var h=g=f=null,k=e;do{var l=k.lane;if((xh&l)===l)null!==h&&(h=h.next={lane:0,action:k.action,eagerReducer:k.eagerReducer,eagerState:k.eagerState,next:null}),d=k.eagerReducer===a?k.eagerState:a(d,k.action);else{var n={lane:l,action:k.action,eagerReducer:k.eagerReducer,\neagerState:k.eagerState,next:null};null===h?(g=h=n,f=d):h=h.next=n;R.lanes|=l;Dg|=l}k=k.next}while(null!==k&&k!==e);null===h?f=d:h.next=g;He(d,b.memoizedState)||(ug=!0);b.memoizedState=d;b.baseState=f;b.baseQueue=h;c.lastRenderedState=d}return[b.memoizedState,c.dispatch]}\nfunction Lh(a){var b=Ih(),c=b.queue;if(null===c)throw Error(y(311));c.lastRenderedReducer=a;var d=c.dispatch,e=c.pending,f=b.memoizedState;if(null!==e){c.pending=null;var g=e=e.next;do f=a(f,g.action),g=g.next;while(g!==e);He(f,b.memoizedState)||(ug=!0);b.memoizedState=f;null===b.baseQueue&&(b.baseState=f);c.lastRenderedState=f}return[f,d]}\nfunction Mh(a,b,c){var d=b._getVersion;d=d(b._source);var e=b._workInProgressVersionPrimary;if(null!==e)a=e===d;else if(a=a.mutableReadLanes,a=(xh&a)===a)b._workInProgressVersionPrimary=d,th.push(b);if(a)return c(b._source);th.push(b);throw Error(y(350));}\nfunction Nh(a,b,c,d){var e=U;if(null===e)throw Error(y(349));var f=b._getVersion,g=f(b._source),h=vh.current,k=h.useState(function(){return Mh(e,b,c)}),l=k[1],n=k[0];k=T;var A=a.memoizedState,p=A.refs,C=p.getSnapshot,x=A.source;A=A.subscribe;var w=R;a.memoizedState={refs:p,source:b,subscribe:d};h.useEffect(function(){p.getSnapshot=c;p.setSnapshot=l;var a=f(b._source);if(!He(g,a)){a=c(b._source);He(n,a)||(l(a),a=Ig(w),e.mutableReadLanes|=a&e.pendingLanes);a=e.mutableReadLanes;e.entangledLanes|=a;for(var d=\ne.entanglements,h=a;0c?98:c,function(){a(!0)});gg(97\\x3c/script>\",a=a.removeChild(a.firstChild)):\"string\"===typeof d.is?a=g.createElement(c,{is:d.is}):(a=g.createElement(c),\"select\"===c&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,c);a[wf]=b;a[xf]=d;Bi(a,b,!1,!1);b.stateNode=a;g=wb(c,d);switch(c){case \"dialog\":G(\"cancel\",a);G(\"close\",a);\ne=d;break;case \"iframe\":case \"object\":case \"embed\":G(\"load\",a);e=d;break;case \"video\":case \"audio\":for(e=0;eJi&&(b.flags|=64,f=!0,Fi(d,!1),b.lanes=33554432)}else{if(!f)if(a=ih(g),null!==a){if(b.flags|=64,f=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Fi(d,!0),null===d.tail&&\"hidden\"===d.tailMode&&!g.alternate&&!lh)return b=b.lastEffect=d.lastEffect,null!==b&&(b.nextEffect=null),null}else 2*O()-d.renderingStartTime>Ji&&1073741824!==c&&(b.flags|=\n64,f=!0,Fi(d,!1),b.lanes=33554432);d.isBackwards?(g.sibling=b.child,b.child=g):(c=d.last,null!==c?c.sibling=g:b.child=g,d.last=g)}return null!==d.tail?(c=d.tail,d.rendering=c,d.tail=c.sibling,d.lastEffect=b.lastEffect,d.renderingStartTime=O(),c.sibling=null,b=P.current,I(P,f?b&1|2:b&1),c):null;case 23:case 24:return Ki(),null!==a&&null!==a.memoizedState!==(null!==b.memoizedState)&&\"unstable-defer-without-hiding\"!==d.mode&&(b.flags|=4),null}throw Error(y(156,b.tag));}\nfunction Li(a){switch(a.tag){case 1:Ff(a.type)&&Gf();var b=a.flags;return b&4096?(a.flags=b&-4097|64,a):null;case 3:fh();H(N);H(M);uh();b=a.flags;if(0!==(b&64))throw Error(y(285));a.flags=b&-4097|64;return a;case 5:return hh(a),null;case 13:return H(P),b=a.flags,b&4096?(a.flags=b&-4097|64,a):null;case 19:return H(P),null;case 4:return fh(),null;case 10:return rg(a),null;case 23:case 24:return Ki(),null;default:return null}}\nfunction Mi(a,b){try{var c=\"\",d=b;do c+=Qa(d),d=d.return;while(d);var e=c}catch(f){e=\"\\nError generating stack: \"+f.message+\"\\n\"+f.stack}return{value:a,source:b,stack:e}}function Ni(a,b){try{console.error(b.value)}catch(c){setTimeout(function(){throw c;})}}var Oi=\"function\"===typeof WeakMap?WeakMap:Map;function Pi(a,b,c){c=zg(-1,c);c.tag=3;c.payload={element:null};var d=b.value;c.callback=function(){Qi||(Qi=!0,Ri=d);Ni(a,b)};return c}\nfunction Si(a,b,c){c=zg(-1,c);c.tag=3;var d=a.type.getDerivedStateFromError;if(\"function\"===typeof d){var e=b.value;c.payload=function(){Ni(a,b);return d(e)}}var f=a.stateNode;null!==f&&\"function\"===typeof f.componentDidCatch&&(c.callback=function(){\"function\"!==typeof d&&(null===Ti?Ti=new Set([this]):Ti.add(this),Ni(a,b));var c=b.stack;this.componentDidCatch(b.value,{componentStack:null!==c?c:\"\"})});return c}var Ui=\"function\"===typeof WeakSet?WeakSet:Set;\nfunction Vi(a){var b=a.ref;if(null!==b)if(\"function\"===typeof b)try{b(null)}catch(c){Wi(a,c)}else b.current=null}function Xi(a,b){switch(b.tag){case 0:case 11:case 15:case 22:return;case 1:if(b.flags&256&&null!==a){var c=a.memoizedProps,d=a.memoizedState;a=b.stateNode;b=a.getSnapshotBeforeUpdate(b.elementType===b.type?c:lg(b.type,c),d);a.__reactInternalSnapshotBeforeUpdate=b}return;case 3:b.flags&256&&qf(b.stateNode.containerInfo);return;case 5:case 6:case 4:case 17:return}throw Error(y(163));}\nfunction Yi(a,b,c){switch(c.tag){case 0:case 11:case 15:case 22:b=c.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){a=b=b.next;do{if(3===(a.tag&3)){var d=a.create;a.destroy=d()}a=a.next}while(a!==b)}b=c.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){a=b=b.next;do{var e=a;d=e.next;e=e.tag;0!==(e&4)&&0!==(e&1)&&(Zi(c,a),$i(c,a));a=d}while(a!==b)}return;case 1:a=c.stateNode;c.flags&4&&(null===b?a.componentDidMount():(d=c.elementType===c.type?b.memoizedProps:lg(c.type,b.memoizedProps),a.componentDidUpdate(d,\nb.memoizedState,a.__reactInternalSnapshotBeforeUpdate)));b=c.updateQueue;null!==b&&Eg(c,b,a);return;case 3:b=c.updateQueue;if(null!==b){a=null;if(null!==c.child)switch(c.child.tag){case 5:a=c.child.stateNode;break;case 1:a=c.child.stateNode}Eg(c,b,a)}return;case 5:a=c.stateNode;null===b&&c.flags&4&&mf(c.type,c.memoizedProps)&&a.focus();return;case 6:return;case 4:return;case 12:return;case 13:null===c.memoizedState&&(c=c.alternate,null!==c&&(c=c.memoizedState,null!==c&&(c=c.dehydrated,null!==c&&Cc(c))));\nreturn;case 19:case 17:case 20:case 21:case 23:case 24:return}throw Error(y(163));}\nfunction aj(a,b){for(var c=a;;){if(5===c.tag){var d=c.stateNode;if(b)d=d.style,\"function\"===typeof d.setProperty?d.setProperty(\"display\",\"none\",\"important\"):d.display=\"none\";else{d=c.stateNode;var e=c.memoizedProps.style;e=void 0!==e&&null!==e&&e.hasOwnProperty(\"display\")?e.display:null;d.style.display=sb(\"display\",e)}}else if(6===c.tag)c.stateNode.nodeValue=b?\"\":c.memoizedProps;else if((23!==c.tag&&24!==c.tag||null===c.memoizedState||c===a)&&null!==c.child){c.child.return=c;c=c.child;continue}if(c===\na)break;for(;null===c.sibling;){if(null===c.return||c.return===a)return;c=c.return}c.sibling.return=c.return;c=c.sibling}}\nfunction bj(a,b){if(Mf&&\"function\"===typeof Mf.onCommitFiberUnmount)try{Mf.onCommitFiberUnmount(Lf,b)}catch(f){}switch(b.tag){case 0:case 11:case 14:case 15:case 22:a=b.updateQueue;if(null!==a&&(a=a.lastEffect,null!==a)){var c=a=a.next;do{var d=c,e=d.destroy;d=d.tag;if(void 0!==e)if(0!==(d&4))Zi(b,c);else{d=b;try{e()}catch(f){Wi(d,f)}}c=c.next}while(c!==a)}break;case 1:Vi(b);a=b.stateNode;if(\"function\"===typeof a.componentWillUnmount)try{a.props=b.memoizedProps,a.state=b.memoizedState,a.componentWillUnmount()}catch(f){Wi(b,\nf)}break;case 5:Vi(b);break;case 4:cj(a,b)}}function dj(a){a.alternate=null;a.child=null;a.dependencies=null;a.firstEffect=null;a.lastEffect=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.return=null;a.updateQueue=null}function ej(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction fj(a){a:{for(var b=a.return;null!==b;){if(ej(b))break a;b=b.return}throw Error(y(160));}var c=b;b=c.stateNode;switch(c.tag){case 5:var d=!1;break;case 3:b=b.containerInfo;d=!0;break;case 4:b=b.containerInfo;d=!0;break;default:throw Error(y(161));}c.flags&16&&(pb(b,\"\"),c.flags&=-17);a:b:for(c=a;;){for(;null===c.sibling;){if(null===c.return||ej(c.return)){c=null;break a}c=c.return}c.sibling.return=c.return;for(c=c.sibling;5!==c.tag&&6!==c.tag&&18!==c.tag;){if(c.flags&2)continue b;if(null===\nc.child||4===c.tag)continue b;else c.child.return=c,c=c.child}if(!(c.flags&2)){c=c.stateNode;break a}}d?gj(a,c,b):hj(a,c,b)}\nfunction gj(a,b,c){var d=a.tag,e=5===d||6===d;if(e)a=e?a.stateNode:a.stateNode.instance,b?8===c.nodeType?c.parentNode.insertBefore(a,b):c.insertBefore(a,b):(8===c.nodeType?(b=c.parentNode,b.insertBefore(a,c)):(b=c,b.appendChild(a)),c=c._reactRootContainer,null!==c&&void 0!==c||null!==b.onclick||(b.onclick=jf));else if(4!==d&&(a=a.child,null!==a))for(gj(a,b,c),a=a.sibling;null!==a;)gj(a,b,c),a=a.sibling}\nfunction hj(a,b,c){var d=a.tag,e=5===d||6===d;if(e)a=e?a.stateNode:a.stateNode.instance,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(hj(a,b,c),a=a.sibling;null!==a;)hj(a,b,c),a=a.sibling}\nfunction cj(a,b){for(var c=b,d=!1,e,f;;){if(!d){d=c.return;a:for(;;){if(null===d)throw Error(y(160));e=d.stateNode;switch(d.tag){case 5:f=!1;break a;case 3:e=e.containerInfo;f=!0;break a;case 4:e=e.containerInfo;f=!0;break a}d=d.return}d=!0}if(5===c.tag||6===c.tag){a:for(var g=a,h=c,k=h;;)if(bj(g,k),null!==k.child&&4!==k.tag)k.child.return=k,k=k.child;else{if(k===h)break a;for(;null===k.sibling;){if(null===k.return||k.return===h)break a;k=k.return}k.sibling.return=k.return;k=k.sibling}f?(g=e,h=c.stateNode,\n8===g.nodeType?g.parentNode.removeChild(h):g.removeChild(h)):e.removeChild(c.stateNode)}else if(4===c.tag){if(null!==c.child){e=c.stateNode.containerInfo;f=!0;c.child.return=c;c=c.child;continue}}else if(bj(a,c),null!==c.child){c.child.return=c;c=c.child;continue}if(c===b)break;for(;null===c.sibling;){if(null===c.return||c.return===b)return;c=c.return;4===c.tag&&(d=!1)}c.sibling.return=c.return;c=c.sibling}}\nfunction ij(a,b){switch(b.tag){case 0:case 11:case 14:case 15:case 22:var c=b.updateQueue;c=null!==c?c.lastEffect:null;if(null!==c){var d=c=c.next;do 3===(d.tag&3)&&(a=d.destroy,d.destroy=void 0,void 0!==a&&a()),d=d.next;while(d!==c)}return;case 1:return;case 5:c=b.stateNode;if(null!=c){d=b.memoizedProps;var e=null!==a?a.memoizedProps:d;a=b.type;var f=b.updateQueue;b.updateQueue=null;if(null!==f){c[xf]=d;\"input\"===a&&\"radio\"===d.type&&null!=d.name&&$a(c,d);wb(a,e);b=wb(a,d);for(e=0;ee&&(e=g);c&=~f}c=e;c=O()-c;c=(120>c?120:480>c?480:1080>c?1080:1920>c?1920:3E3>c?3E3:4320>\nc?4320:1960*nj(c/1960))-c;if(10 component higher in the tree to provide a loading indicator or placeholder to display.\")}5!==V&&(V=2);k=Mi(k,h);p=\ng;do{switch(p.tag){case 3:f=k;p.flags|=4096;b&=-b;p.lanes|=b;var J=Pi(p,f,b);Bg(p,J);break a;case 1:f=k;var K=p.type,Q=p.stateNode;if(0===(p.flags&64)&&(\"function\"===typeof K.getDerivedStateFromError||null!==Q&&\"function\"===typeof Q.componentDidCatch&&(null===Ti||!Ti.has(Q)))){p.flags|=4096;b&=-b;p.lanes|=b;var L=Si(p,f,b);Bg(p,L);break a}}p=p.return}while(null!==p)}Zj(c)}catch(va){b=va;Y===c&&null!==c&&(Y=c=c.return);continue}break}while(1)}\nfunction Pj(){var a=oj.current;oj.current=Gh;return null===a?Gh:a}function Tj(a,b){var c=X;X|=16;var d=Pj();U===a&&W===b||Qj(a,b);do try{ak();break}catch(e){Sj(a,e)}while(1);qg();X=c;oj.current=d;if(null!==Y)throw Error(y(261));U=null;W=0;return V}function ak(){for(;null!==Y;)bk(Y)}function Rj(){for(;null!==Y&&!Qf();)bk(Y)}function bk(a){var b=ck(a.alternate,a,qj);a.memoizedProps=a.pendingProps;null===b?Zj(a):Y=b;pj.current=null}\nfunction Zj(a){var b=a;do{var c=b.alternate;a=b.return;if(0===(b.flags&2048)){c=Gi(c,b,qj);if(null!==c){Y=c;return}c=b;if(24!==c.tag&&23!==c.tag||null===c.memoizedState||0!==(qj&1073741824)||0===(c.mode&4)){for(var d=0,e=c.child;null!==e;)d|=e.lanes|e.childLanes,e=e.sibling;c.childLanes=d}null!==a&&0===(a.flags&2048)&&(null===a.firstEffect&&(a.firstEffect=b.firstEffect),null!==b.lastEffect&&(null!==a.lastEffect&&(a.lastEffect.nextEffect=b.firstEffect),a.lastEffect=b.lastEffect),1g&&(h=g,g=J,J=h),h=Le(t,J),f=Le(t,g),h&&f&&(1!==v.rangeCount||v.anchorNode!==h.node||v.anchorOffset!==h.offset||v.focusNode!==f.node||v.focusOffset!==f.offset)&&(q=q.createRange(),q.setStart(h.node,h.offset),v.removeAllRanges(),J>g?(v.addRange(q),v.extend(f.node,f.offset)):(q.setEnd(f.node,f.offset),v.addRange(q))))));q=[];for(v=t;v=v.parentNode;)1===v.nodeType&&q.push({element:v,left:v.scrollLeft,top:v.scrollTop});\"function\"===typeof t.focus&&t.focus();for(t=\n0;tO()-jj?Qj(a,0):uj|=c);Mj(a,b)}function lj(a,b){var c=a.stateNode;null!==c&&c.delete(b);b=0;0===b&&(b=a.mode,0===(b&2)?b=1:0===(b&4)?b=99===eg()?1:2:(0===Gj&&(Gj=tj),b=Yc(62914560&~Gj),0===b&&(b=4194304)));c=Hg();a=Kj(a,b);null!==a&&($c(a,b,c),Mj(a,c))}var ck;\nck=function(a,b,c){var d=b.lanes;if(null!==a)if(a.memoizedProps!==b.pendingProps||N.current)ug=!0;else if(0!==(c&d))ug=0!==(a.flags&16384)?!0:!1;else{ug=!1;switch(b.tag){case 3:ri(b);sh();break;case 5:gh(b);break;case 1:Ff(b.type)&&Jf(b);break;case 4:eh(b,b.stateNode.containerInfo);break;case 10:d=b.memoizedProps.value;var e=b.type._context;I(mg,e._currentValue);e._currentValue=d;break;case 13:if(null!==b.memoizedState){if(0!==(c&b.child.childLanes))return ti(a,b,c);I(P,P.current&1);b=hi(a,b,c);return null!==\nb?b.sibling:null}I(P,P.current&1);break;case 19:d=0!==(c&b.childLanes);if(0!==(a.flags&64)){if(d)return Ai(a,b,c);b.flags|=64}e=b.memoizedState;null!==e&&(e.rendering=null,e.tail=null,e.lastEffect=null);I(P,P.current);if(d)break;else return null;case 23:case 24:return b.lanes=0,mi(a,b,c)}return hi(a,b,c)}else ug=!1;b.lanes=0;switch(b.tag){case 2:d=b.type;null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2);a=b.pendingProps;e=Ef(b,M.current);tg(b,c);e=Ch(null,b,d,a,e,c);b.flags|=1;if(\"object\"===\ntypeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof){b.tag=1;b.memoizedState=null;b.updateQueue=null;if(Ff(d)){var f=!0;Jf(b)}else f=!1;b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null;xg(b);var g=d.getDerivedStateFromProps;\"function\"===typeof g&&Gg(b,d,g,a);e.updater=Kg;b.stateNode=e;e._reactInternals=b;Og(b,d,a,c);b=qi(null,b,d,!0,f,c)}else b.tag=0,fi(null,b,e,c),b=b.child;return b;case 16:e=b.elementType;a:{null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2);\na=b.pendingProps;f=e._init;e=f(e._payload);b.type=e;f=b.tag=hk(e);a=lg(e,a);switch(f){case 0:b=li(null,b,e,a,c);break a;case 1:b=pi(null,b,e,a,c);break a;case 11:b=gi(null,b,e,a,c);break a;case 14:b=ii(null,b,e,lg(e.type,a),d,c);break a}throw Error(y(306,e,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:lg(d,e),li(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:lg(d,e),pi(a,b,d,e,c);case 3:ri(b);d=b.updateQueue;if(null===a||null===d)throw Error(y(282));\nd=b.pendingProps;e=b.memoizedState;e=null!==e?e.element:null;yg(a,b);Cg(b,d,null,c);d=b.memoizedState.element;if(d===e)sh(),b=hi(a,b,c);else{e=b.stateNode;if(f=e.hydrate)kh=rf(b.stateNode.containerInfo.firstChild),jh=b,f=lh=!0;if(f){a=e.mutableSourceEagerHydrationData;if(null!=a)for(e=0;e = {\n closed: true,\n next(value: any): void { /* noop */},\n error(err: any): void {\n if (config.useDeprecatedSynchronousErrorHandling) {\n throw err;\n } else {\n hostReportError(err);\n }\n },\n complete(): void { /*noop*/ }\n};\n","\"use strict\";\n\nmodule.exports = [];","\"use strict\";\n\nvar _excluded = [\"tag\"];\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nvar enc = encodeURIComponent;\n\nmodule.exports = function (_ref) {\n var query = _ref.query,\n _ref$params = _ref.params,\n params = _ref$params === void 0 ? {} : _ref$params,\n _ref$options = _ref.options,\n options = _ref$options === void 0 ? {} : _ref$options;\n\n // We generally want tag at the start of the query string\n var tag = options.tag,\n opts = _objectWithoutProperties(options, _excluded);\n\n var q = \"query=\".concat(enc(query));\n var base = tag ? \"?tag=\".concat(enc(tag), \"&\").concat(q) : \"?\".concat(q);\n var qString = Object.keys(params).reduce(function (qs, param) {\n return \"\".concat(qs, \"&\").concat(enc(\"$\".concat(param)), \"=\").concat(enc(JSON.stringify(params[param])));\n }, base);\n return Object.keys(opts).reduce(function (qs, option) {\n // Only include the option if it is truthy\n return options[option] ? \"\".concat(qs, \"&\").concat(enc(option), \"=\").concat(enc(options[option])) : qs;\n }, qString);\n};","const objectAssign = require('object-assign')\nconst buildMarksTree = require('./buildMarksTree')\nconst nestLists = require('./nestLists')\nconst generateKeys = require('./generateKeys')\nconst mergeSerializers = require('./mergeSerializers')\n\n// Properties to extract from props and pass to serializers as options\nconst optionProps = ['projectId', 'dataset', 'imageOptions']\nconst isDefined = val => typeof val !== 'undefined'\nconst defaults = {imageOptions: {}}\n\nfunction blocksToNodes(h, properties, defaultSerializers, serializeSpan) {\n const props = objectAssign({}, defaults, properties)\n const rawBlocks = Array.isArray(props.blocks) ? props.blocks : [props.blocks]\n const keyedBlocks = generateKeys(rawBlocks)\n const blocks = nestLists(keyedBlocks, props.listNestMode)\n const serializers = mergeSerializers(defaultSerializers, props.serializers || {})\n\n const options = optionProps.reduce((opts, key) => {\n const value = props[key]\n if (isDefined(value)) {\n opts[key] = value\n }\n return opts\n }, {})\n\n function serializeNode(node, index, siblings, isInline) {\n if (isList(node)) {\n return serializeList(node)\n }\n\n if (isListItem(node)) {\n return serializeListItem(node, findListItemIndex(node, siblings))\n }\n\n if (isSpan(node)) {\n return serializeSpan(node, serializers, index, {serializeNode})\n }\n\n return serializeBlock(node, index, isInline)\n }\n\n function findListItemIndex(node, siblings) {\n let index = 0\n for (let i = 0; i < siblings.length; i++) {\n if (siblings[i] === node) {\n return index\n }\n\n if (!isListItem(siblings[i])) {\n continue\n }\n\n index++\n }\n\n return index\n }\n\n function serializeBlock(block, index, isInline) {\n const tree = buildMarksTree(block)\n const children = tree.map((node, i, siblings) => serializeNode(node, i, siblings, true))\n const blockProps = {\n key: block._key || `block-${index}`,\n node: block,\n isInline,\n serializers,\n options\n }\n\n return h(serializers.block, blockProps, children)\n }\n\n function serializeListItem(block, index) {\n const key = block._key\n const tree = buildMarksTree(block)\n const children = tree.map(serializeNode)\n return h(serializers.listItem, {node: block, serializers, index, key, options}, children)\n }\n\n function serializeList(list) {\n const type = list.listItem\n const level = list.level\n const key = list._key\n const children = list.children.map(serializeNode)\n return h(serializers.list, {key, level, type, options}, children)\n }\n\n // Default to false, so `undefined` will evaluate to the default here\n const renderContainerOnSingleChild = Boolean(props.renderContainerOnSingleChild)\n\n const nodes = blocks.map(serializeNode)\n if (renderContainerOnSingleChild || nodes.length > 1) {\n const containerProps = props.className ? {className: props.className} : {}\n return h(serializers.container, containerProps, nodes)\n }\n\n if (nodes[0]) {\n return nodes[0]\n }\n\n return typeof serializers.empty === 'function' ? h(serializers.empty) : serializers.empty\n}\n\nfunction isList(block) {\n return block._type === 'list' && block.listItem\n}\n\nfunction isListItem(block) {\n return block._type === 'block' && block.listItem\n}\n\nfunction isSpan(block) {\n return typeof block === 'string' || block.marks || block._type === 'span'\n}\n\nmodule.exports = blocksToNodes\n","import * as React from \"react\";\nimport type {\n AgnosticIndexRouteObject,\n AgnosticNonIndexRouteObject,\n AgnosticRouteMatch,\n History,\n LazyRouteFunction,\n Location,\n Action as NavigationType,\n RelativeRoutingType,\n Router,\n StaticHandlerContext,\n To,\n TrackedPromise,\n} from \"@remix-run/router\";\n\n// Create react-specific types from the agnostic types in @remix-run/router to\n// export from react-router\nexport interface IndexRouteObject {\n caseSensitive?: AgnosticIndexRouteObject[\"caseSensitive\"];\n path?: AgnosticIndexRouteObject[\"path\"];\n id?: AgnosticIndexRouteObject[\"id\"];\n loader?: AgnosticIndexRouteObject[\"loader\"];\n action?: AgnosticIndexRouteObject[\"action\"];\n hasErrorBoundary?: AgnosticIndexRouteObject[\"hasErrorBoundary\"];\n shouldRevalidate?: AgnosticIndexRouteObject[\"shouldRevalidate\"];\n handle?: AgnosticIndexRouteObject[\"handle\"];\n index: true;\n children?: undefined;\n element?: React.ReactNode | null;\n hydrateFallbackElement?: React.ReactNode | null;\n errorElement?: React.ReactNode | null;\n Component?: React.ComponentType | null;\n HydrateFallback?: React.ComponentType | null;\n ErrorBoundary?: React.ComponentType | null;\n lazy?: LazyRouteFunction;\n}\n\nexport interface NonIndexRouteObject {\n caseSensitive?: AgnosticNonIndexRouteObject[\"caseSensitive\"];\n path?: AgnosticNonIndexRouteObject[\"path\"];\n id?: AgnosticNonIndexRouteObject[\"id\"];\n loader?: AgnosticNonIndexRouteObject[\"loader\"];\n action?: AgnosticNonIndexRouteObject[\"action\"];\n hasErrorBoundary?: AgnosticNonIndexRouteObject[\"hasErrorBoundary\"];\n shouldRevalidate?: AgnosticNonIndexRouteObject[\"shouldRevalidate\"];\n handle?: AgnosticNonIndexRouteObject[\"handle\"];\n index?: false;\n children?: RouteObject[];\n element?: React.ReactNode | null;\n hydrateFallbackElement?: React.ReactNode | null;\n errorElement?: React.ReactNode | null;\n Component?: React.ComponentType | null;\n HydrateFallback?: React.ComponentType | null;\n ErrorBoundary?: React.ComponentType | null;\n lazy?: LazyRouteFunction;\n}\n\nexport type RouteObject = IndexRouteObject | NonIndexRouteObject;\n\nexport type DataRouteObject = RouteObject & {\n children?: DataRouteObject[];\n id: string;\n};\n\nexport interface RouteMatch<\n ParamKey extends string = string,\n RouteObjectType extends RouteObject = RouteObject\n> extends AgnosticRouteMatch {}\n\nexport interface DataRouteMatch extends RouteMatch {}\n\nexport interface DataRouterContextObject\n // Omit `future` since those can be pulled from the `router`\n // `NavigationContext` needs future since it doesn't have a `router` in all cases\n extends Omit {\n router: Router;\n staticContext?: StaticHandlerContext;\n}\n\nexport const DataRouterContext =\n React.createContext(null);\nif (__DEV__) {\n DataRouterContext.displayName = \"DataRouter\";\n}\n\nexport const DataRouterStateContext = React.createContext<\n Router[\"state\"] | null\n>(null);\nif (__DEV__) {\n DataRouterStateContext.displayName = \"DataRouterState\";\n}\n\nexport const AwaitContext = React.createContext(null);\nif (__DEV__) {\n AwaitContext.displayName = \"Await\";\n}\n\nexport interface NavigateOptions {\n replace?: boolean;\n state?: any;\n preventScrollReset?: boolean;\n relative?: RelativeRoutingType;\n flushSync?: boolean;\n viewTransition?: boolean;\n}\n\n/**\n * A Navigator is a \"location changer\"; it's how you get to different locations.\n *\n * Every history instance conforms to the Navigator interface, but the\n * distinction is useful primarily when it comes to the low-level `` API\n * where both the location and a navigator must be provided separately in order\n * to avoid \"tearing\" that may occur in a suspense-enabled app if the action\n * and/or location were to be read directly from the history instance.\n */\nexport interface Navigator {\n createHref: History[\"createHref\"];\n // Optional for backwards-compat with Router/HistoryRouter usage (edge case)\n encodeLocation?: History[\"encodeLocation\"];\n go: History[\"go\"];\n push(to: To, state?: any, opts?: NavigateOptions): void;\n replace(to: To, state?: any, opts?: NavigateOptions): void;\n}\n\ninterface NavigationContextObject {\n basename: string;\n navigator: Navigator;\n static: boolean;\n future: {\n v7_relativeSplatPath: boolean;\n };\n}\n\nexport const NavigationContext = React.createContext(\n null!\n);\n\nif (__DEV__) {\n NavigationContext.displayName = \"Navigation\";\n}\n\ninterface LocationContextObject {\n location: Location;\n navigationType: NavigationType;\n}\n\nexport const LocationContext = React.createContext(\n null!\n);\n\nif (__DEV__) {\n LocationContext.displayName = \"Location\";\n}\n\nexport interface RouteContextObject {\n outlet: React.ReactElement | null;\n matches: RouteMatch[];\n isDataRoute: boolean;\n}\n\nexport const RouteContext = React.createContext({\n outlet: null,\n matches: [],\n isDataRoute: false,\n});\n\nif (__DEV__) {\n RouteContext.displayName = \"Route\";\n}\n\nexport const RouteErrorContext = React.createContext(null);\n\nif (__DEV__) {\n RouteErrorContext.displayName = \"RouteError\";\n}\n","import * as React from \"react\";\nimport type {\n AgnosticRouteMatch,\n Blocker,\n BlockerFunction,\n Location,\n ParamParseKey,\n Params,\n Path,\n PathMatch,\n PathPattern,\n RelativeRoutingType,\n Router as RemixRouter,\n RevalidationState,\n To,\n UIMatch,\n} from \"@remix-run/router\";\nimport {\n IDLE_BLOCKER,\n Action as NavigationType,\n UNSAFE_convertRouteMatchToUiMatch as convertRouteMatchToUiMatch,\n UNSAFE_decodePath as decodePath,\n UNSAFE_getResolveToMatches as getResolveToMatches,\n UNSAFE_invariant as invariant,\n isRouteErrorResponse,\n joinPaths,\n matchPath,\n matchRoutes,\n parsePath,\n resolveTo,\n stripBasename,\n UNSAFE_warning as warning,\n} from \"@remix-run/router\";\n\nimport type {\n DataRouteMatch,\n NavigateOptions,\n RouteContextObject,\n RouteMatch,\n RouteObject,\n} from \"./context\";\nimport {\n AwaitContext,\n DataRouterContext,\n DataRouterStateContext,\n LocationContext,\n NavigationContext,\n RouteContext,\n RouteErrorContext,\n} from \"./context\";\n\n/**\n * Returns the full href for the given \"to\" value. This is useful for building\n * custom links that are also accessible and preserve right-click behavior.\n *\n * @see https://reactrouter.com/v6/hooks/use-href\n */\nexport function useHref(\n to: To,\n { relative }: { relative?: RelativeRoutingType } = {}\n): string {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useHref() may be used only in the context of a component.`\n );\n\n let { basename, navigator } = React.useContext(NavigationContext);\n let { hash, pathname, search } = useResolvedPath(to, { relative });\n\n let joinedPathname = pathname;\n\n // If we're operating within a basename, prepend it to the pathname prior\n // to creating the href. If this is a root navigation, then just use the raw\n // basename which allows the basename to have full control over the presence\n // of a trailing slash on root links\n if (basename !== \"/\") {\n joinedPathname =\n pathname === \"/\" ? basename : joinPaths([basename, pathname]);\n }\n\n return navigator.createHref({ pathname: joinedPathname, search, hash });\n}\n\n/**\n * Returns true if this component is a descendant of a ``.\n *\n * @see https://reactrouter.com/v6/hooks/use-in-router-context\n */\nexport function useInRouterContext(): boolean {\n return React.useContext(LocationContext) != null;\n}\n\n/**\n * Returns the current location object, which represents the current URL in web\n * browsers.\n *\n * Note: If you're using this it may mean you're doing some of your own\n * \"routing\" in your app, and we'd like to know what your use case is. We may\n * be able to provide something higher-level to better suit your needs.\n *\n * @see https://reactrouter.com/v6/hooks/use-location\n */\nexport function useLocation(): Location {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useLocation() may be used only in the context of a component.`\n );\n\n return React.useContext(LocationContext).location;\n}\n\n/**\n * Returns the current navigation action which describes how the router came to\n * the current location, either by a pop, push, or replace on the history stack.\n *\n * @see https://reactrouter.com/v6/hooks/use-navigation-type\n */\nexport function useNavigationType(): NavigationType {\n return React.useContext(LocationContext).navigationType;\n}\n\n/**\n * Returns a PathMatch object if the given pattern matches the current URL.\n * This is useful for components that need to know \"active\" state, e.g.\n * ``.\n *\n * @see https://reactrouter.com/v6/hooks/use-match\n */\nexport function useMatch<\n ParamKey extends ParamParseKey,\n Path extends string\n>(pattern: PathPattern | Path): PathMatch | null {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useMatch() may be used only in the context of a component.`\n );\n\n let { pathname } = useLocation();\n return React.useMemo(\n () => matchPath(pattern, decodePath(pathname)),\n [pathname, pattern]\n );\n}\n\n/**\n * The interface for the navigate() function returned from useNavigate().\n */\nexport interface NavigateFunction {\n (to: To, options?: NavigateOptions): void;\n (delta: number): void;\n}\n\nconst navigateEffectWarning =\n `You should call navigate() in a React.useEffect(), not when ` +\n `your component is first rendered.`;\n\n// Mute warnings for calls to useNavigate in SSR environments\nfunction useIsomorphicLayoutEffect(\n cb: Parameters[0]\n) {\n let isStatic = React.useContext(NavigationContext).static;\n if (!isStatic) {\n // We should be able to get rid of this once react 18.3 is released\n // See: https://github.com/facebook/react/pull/26395\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useLayoutEffect(cb);\n }\n}\n\n/**\n * Returns an imperative method for changing the location. Used by ``s, but\n * may also be used by other elements to change the location.\n *\n * @see https://reactrouter.com/v6/hooks/use-navigate\n */\nexport function useNavigate(): NavigateFunction {\n let { isDataRoute } = React.useContext(RouteContext);\n // Conditional usage is OK here because the usage of a data router is static\n // eslint-disable-next-line react-hooks/rules-of-hooks\n return isDataRoute ? useNavigateStable() : useNavigateUnstable();\n}\n\nfunction useNavigateUnstable(): NavigateFunction {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useNavigate() may be used only in the context of a component.`\n );\n\n let dataRouterContext = React.useContext(DataRouterContext);\n let { basename, future, navigator } = React.useContext(NavigationContext);\n let { matches } = React.useContext(RouteContext);\n let { pathname: locationPathname } = useLocation();\n\n let routePathnamesJson = JSON.stringify(\n getResolveToMatches(matches, future.v7_relativeSplatPath)\n );\n\n let activeRef = React.useRef(false);\n useIsomorphicLayoutEffect(() => {\n activeRef.current = true;\n });\n\n let navigate: NavigateFunction = React.useCallback(\n (to: To | number, options: NavigateOptions = {}) => {\n warning(activeRef.current, navigateEffectWarning);\n\n // Short circuit here since if this happens on first render the navigate\n // is useless because we haven't wired up our history listener yet\n if (!activeRef.current) return;\n\n if (typeof to === \"number\") {\n navigator.go(to);\n return;\n }\n\n let path = resolveTo(\n to,\n JSON.parse(routePathnamesJson),\n locationPathname,\n options.relative === \"path\"\n );\n\n // If we're operating within a basename, prepend it to the pathname prior\n // to handing off to history (but only if we're not in a data router,\n // otherwise it'll prepend the basename inside of the router).\n // If this is a root navigation, then we navigate to the raw basename\n // which allows the basename to have full control over the presence of a\n // trailing slash on root links\n if (dataRouterContext == null && basename !== \"/\") {\n path.pathname =\n path.pathname === \"/\"\n ? basename\n : joinPaths([basename, path.pathname]);\n }\n\n (!!options.replace ? navigator.replace : navigator.push)(\n path,\n options.state,\n options\n );\n },\n [\n basename,\n navigator,\n routePathnamesJson,\n locationPathname,\n dataRouterContext,\n ]\n );\n\n return navigate;\n}\n\nconst OutletContext = React.createContext(null);\n\n/**\n * Returns the context (if provided) for the child route at this level of the route\n * hierarchy.\n * @see https://reactrouter.com/v6/hooks/use-outlet-context\n */\nexport function useOutletContext(): Context {\n return React.useContext(OutletContext) as Context;\n}\n\n/**\n * Returns the element for the child route at this level of the route\n * hierarchy. Used internally by `` to render child routes.\n *\n * @see https://reactrouter.com/v6/hooks/use-outlet\n */\nexport function useOutlet(context?: unknown): React.ReactElement | null {\n let outlet = React.useContext(RouteContext).outlet;\n if (outlet) {\n return (\n {outlet}\n );\n }\n return outlet;\n}\n\n/**\n * Returns an object of key/value pairs of the dynamic params from the current\n * URL that were matched by the route path.\n *\n * @see https://reactrouter.com/v6/hooks/use-params\n */\nexport function useParams<\n ParamsOrKey extends string | Record = string\n>(): Readonly<\n [ParamsOrKey] extends [string] ? Params : Partial\n> {\n let { matches } = React.useContext(RouteContext);\n let routeMatch = matches[matches.length - 1];\n return routeMatch ? (routeMatch.params as any) : {};\n}\n\n/**\n * Resolves the pathname of the given `to` value against the current location.\n *\n * @see https://reactrouter.com/v6/hooks/use-resolved-path\n */\nexport function useResolvedPath(\n to: To,\n { relative }: { relative?: RelativeRoutingType } = {}\n): Path {\n let { future } = React.useContext(NavigationContext);\n let { matches } = React.useContext(RouteContext);\n let { pathname: locationPathname } = useLocation();\n let routePathnamesJson = JSON.stringify(\n getResolveToMatches(matches, future.v7_relativeSplatPath)\n );\n\n return React.useMemo(\n () =>\n resolveTo(\n to,\n JSON.parse(routePathnamesJson),\n locationPathname,\n relative === \"path\"\n ),\n [to, routePathnamesJson, locationPathname, relative]\n );\n}\n\n/**\n * Returns the element of the route that matched the current location, prepared\n * with the correct context to render the remainder of the route tree. Route\n * elements in the tree must render an `` to render their child route's\n * element.\n *\n * @see https://reactrouter.com/v6/hooks/use-routes\n */\nexport function useRoutes(\n routes: RouteObject[],\n locationArg?: Partial | string\n): React.ReactElement | null {\n return useRoutesImpl(routes, locationArg);\n}\n\n// Internal implementation with accept optional param for RouterProvider usage\nexport function useRoutesImpl(\n routes: RouteObject[],\n locationArg?: Partial | string,\n dataRouterState?: RemixRouter[\"state\"],\n future?: RemixRouter[\"future\"]\n): React.ReactElement | null {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useRoutes() may be used only in the context of a component.`\n );\n\n let { navigator, static: isStatic } = React.useContext(NavigationContext);\n let { matches: parentMatches } = React.useContext(RouteContext);\n let routeMatch = parentMatches[parentMatches.length - 1];\n let parentParams = routeMatch ? routeMatch.params : {};\n let parentPathname = routeMatch ? routeMatch.pathname : \"/\";\n let parentPathnameBase = routeMatch ? routeMatch.pathnameBase : \"/\";\n let parentRoute = routeMatch && routeMatch.route;\n\n if (__DEV__) {\n // You won't get a warning about 2 different under a \n // without a trailing *, but this is a best-effort warning anyway since we\n // cannot even give the warning unless they land at the parent route.\n //\n // Example:\n //\n // \n // {/* This route path MUST end with /* because otherwise\n // it will never match /blog/post/123 */}\n // } />\n // } />\n // \n //\n // function Blog() {\n // return (\n // \n // } />\n // \n // );\n // }\n let parentPath = (parentRoute && parentRoute.path) || \"\";\n warningOnce(\n parentPathname,\n !parentRoute || parentPath.endsWith(\"*\"),\n `You rendered descendant (or called \\`useRoutes()\\`) at ` +\n `\"${parentPathname}\" (under ) but the ` +\n `parent route path has no trailing \"*\". This means if you navigate ` +\n `deeper, the parent won't match anymore and therefore the child ` +\n `routes will never render.\\n\\n` +\n `Please change the parent to .`\n );\n }\n\n let locationFromContext = useLocation();\n\n let location;\n if (locationArg) {\n let parsedLocationArg =\n typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n\n invariant(\n parentPathnameBase === \"/\" ||\n parsedLocationArg.pathname?.startsWith(parentPathnameBase),\n `When overriding the location using \\`\\` or \\`useRoutes(routes, location)\\`, ` +\n `the location pathname must begin with the portion of the URL pathname that was ` +\n `matched by all parent routes. The current pathname base is \"${parentPathnameBase}\" ` +\n `but pathname \"${parsedLocationArg.pathname}\" was given in the \\`location\\` prop.`\n );\n\n location = parsedLocationArg;\n } else {\n location = locationFromContext;\n }\n\n let pathname = location.pathname || \"/\";\n\n let remainingPathname = pathname;\n if (parentPathnameBase !== \"/\") {\n // Determine the remaining pathname by removing the # of URL segments the\n // parentPathnameBase has, instead of removing based on character count.\n // This is because we can't guarantee that incoming/outgoing encodings/\n // decodings will match exactly.\n // We decode paths before matching on a per-segment basis with\n // decodeURIComponent(), but we re-encode pathnames via `new URL()` so they\n // match what `window.location.pathname` would reflect. Those don't 100%\n // align when it comes to encoded URI characters such as % and &.\n //\n // So we may end up with:\n // pathname: \"/descendant/a%25b/match\"\n // parentPathnameBase: \"/descendant/a%b\"\n //\n // And the direct substring removal approach won't work :/\n let parentSegments = parentPathnameBase.replace(/^\\//, \"\").split(\"/\");\n let segments = pathname.replace(/^\\//, \"\").split(\"/\");\n remainingPathname = \"/\" + segments.slice(parentSegments.length).join(\"/\");\n }\n\n let matches =\n !isStatic &&\n dataRouterState &&\n dataRouterState.matches &&\n dataRouterState.matches.length > 0\n ? (dataRouterState.matches as AgnosticRouteMatch[])\n : matchRoutes(routes, { pathname: remainingPathname });\n\n if (__DEV__) {\n warning(\n parentRoute || matches != null,\n `No routes matched location \"${location.pathname}${location.search}${location.hash}\" `\n );\n\n warning(\n matches == null ||\n matches[matches.length - 1].route.element !== undefined ||\n matches[matches.length - 1].route.Component !== undefined ||\n matches[matches.length - 1].route.lazy !== undefined,\n `Matched leaf route at location \"${location.pathname}${location.search}${location.hash}\" ` +\n `does not have an element or Component. This means it will render an with a ` +\n `null value by default resulting in an \"empty\" page.`\n );\n }\n\n let renderedMatches = _renderMatches(\n matches &&\n matches.map((match) =>\n Object.assign({}, match, {\n params: Object.assign({}, parentParams, match.params),\n pathname: joinPaths([\n parentPathnameBase,\n // Re-encode pathnames that were decoded inside matchRoutes\n navigator.encodeLocation\n ? navigator.encodeLocation(match.pathname).pathname\n : match.pathname,\n ]),\n pathnameBase:\n match.pathnameBase === \"/\"\n ? parentPathnameBase\n : joinPaths([\n parentPathnameBase,\n // Re-encode pathnames that were decoded inside matchRoutes\n navigator.encodeLocation\n ? navigator.encodeLocation(match.pathnameBase).pathname\n : match.pathnameBase,\n ]),\n })\n ),\n parentMatches,\n dataRouterState,\n future\n );\n\n // When a user passes in a `locationArg`, the associated routes need to\n // be wrapped in a new `LocationContext.Provider` in order for `useLocation`\n // to use the scoped location instead of the global location.\n if (locationArg && renderedMatches) {\n return (\n \n {renderedMatches}\n \n );\n }\n\n return renderedMatches;\n}\n\nfunction DefaultErrorComponent() {\n let error = useRouteError();\n let message = isRouteErrorResponse(error)\n ? `${error.status} ${error.statusText}`\n : error instanceof Error\n ? error.message\n : JSON.stringify(error);\n let stack = error instanceof Error ? error.stack : null;\n let lightgrey = \"rgba(200,200,200, 0.5)\";\n let preStyles = { padding: \"0.5rem\", backgroundColor: lightgrey };\n let codeStyles = { padding: \"2px 4px\", backgroundColor: lightgrey };\n\n let devInfo = null;\n if (__DEV__) {\n console.error(\n \"Error handled by React Router default ErrorBoundary:\",\n error\n );\n\n devInfo = (\n <>\n

💿 Hey developer 👋

\n

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

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

Unexpected Application Error!

\n

{message}

\n {stack ?
{stack}
: null}\n {devInfo}\n \n );\n}\n\nconst defaultErrorElement = ;\n\ntype RenderErrorBoundaryProps = React.PropsWithChildren<{\n location: Location;\n revalidation: RevalidationState;\n error: any;\n component: React.ReactNode;\n routeContext: RouteContextObject;\n}>;\n\ntype RenderErrorBoundaryState = {\n location: Location;\n revalidation: RevalidationState;\n error: any;\n};\n\nexport class RenderErrorBoundary extends React.Component<\n RenderErrorBoundaryProps,\n RenderErrorBoundaryState\n> {\n constructor(props: RenderErrorBoundaryProps) {\n super(props);\n this.state = {\n location: props.location,\n revalidation: props.revalidation,\n error: props.error,\n };\n }\n\n static getDerivedStateFromError(error: any) {\n return { error: error };\n }\n\n static getDerivedStateFromProps(\n props: RenderErrorBoundaryProps,\n state: RenderErrorBoundaryState\n ) {\n // When we get into an error state, the user will likely click \"back\" to the\n // previous page that didn't have an error. Because this wraps the entire\n // application, that will have no effect--the error page continues to display.\n // This gives us a mechanism to recover from the error when the location changes.\n //\n // Whether we're in an error state or not, we update the location in state\n // so that when we are in an error state, it gets reset when a new location\n // comes in and the user recovers from the error.\n if (\n state.location !== props.location ||\n (state.revalidation !== \"idle\" && props.revalidation === \"idle\")\n ) {\n return {\n error: props.error,\n location: props.location,\n revalidation: props.revalidation,\n };\n }\n\n // If we're not changing locations, preserve the location but still surface\n // any new errors that may come through. We retain the existing error, we do\n // this because the error provided from the app state may be cleared without\n // the location changing.\n return {\n error: props.error !== undefined ? props.error : state.error,\n location: state.location,\n revalidation: props.revalidation || state.revalidation,\n };\n }\n\n componentDidCatch(error: any, errorInfo: any) {\n console.error(\n \"React Router caught the following error during render\",\n error,\n errorInfo\n );\n }\n\n render() {\n return this.state.error !== undefined ? (\n \n \n \n ) : (\n this.props.children\n );\n }\n}\n\ninterface RenderedRouteProps {\n routeContext: RouteContextObject;\n match: RouteMatch;\n children: React.ReactNode | null;\n}\n\nfunction RenderedRoute({ routeContext, match, children }: RenderedRouteProps) {\n let dataRouterContext = React.useContext(DataRouterContext);\n\n // Track how deep we got in our render pass to emulate SSR componentDidCatch\n // in a DataStaticRouter\n if (\n dataRouterContext &&\n dataRouterContext.static &&\n dataRouterContext.staticContext &&\n (match.route.errorElement || match.route.ErrorBoundary)\n ) {\n dataRouterContext.staticContext._deepestRenderedBoundaryId = match.route.id;\n }\n\n return (\n \n {children}\n \n );\n}\n\nexport function _renderMatches(\n matches: RouteMatch[] | null,\n parentMatches: RouteMatch[] = [],\n dataRouterState: RemixRouter[\"state\"] | null = null,\n future: RemixRouter[\"future\"] | null = null\n): React.ReactElement | null {\n if (matches == null) {\n if (!dataRouterState) {\n return null;\n }\n\n if (dataRouterState.errors) {\n // Don't bail if we have data router errors so we can render them in the\n // boundary. Use the pre-matched (or shimmed) matches\n matches = dataRouterState.matches as DataRouteMatch[];\n } else if (\n future?.v7_partialHydration &&\n parentMatches.length === 0 &&\n !dataRouterState.initialized &&\n dataRouterState.matches.length > 0\n ) {\n // Don't bail if we're initializing with partial hydration and we have\n // router matches. That means we're actively running `patchRoutesOnNavigation`\n // so we should render down the partial matches to the appropriate\n // `HydrateFallback`. We only do this if `parentMatches` is empty so it\n // only impacts the root matches for `RouterProvider` and no descendant\n // ``\n matches = dataRouterState.matches as DataRouteMatch[];\n } else {\n return null;\n }\n }\n\n let renderedMatches = matches;\n\n // If we have data errors, trim matches to the highest error boundary\n let errors = dataRouterState?.errors;\n if (errors != null) {\n let errorIndex = renderedMatches.findIndex(\n (m) => m.route.id && errors?.[m.route.id] !== undefined\n );\n invariant(\n errorIndex >= 0,\n `Could not find a matching route for errors on route IDs: ${Object.keys(\n errors\n ).join(\",\")}`\n );\n renderedMatches = renderedMatches.slice(\n 0,\n Math.min(renderedMatches.length, errorIndex + 1)\n );\n }\n\n // If we're in a partial hydration mode, detect if we need to render down to\n // a given HydrateFallback while we load the rest of the hydration data\n let renderFallback = false;\n let fallbackIndex = -1;\n if (dataRouterState && future && future.v7_partialHydration) {\n for (let i = 0; i < renderedMatches.length; i++) {\n let match = renderedMatches[i];\n // Track the deepest fallback up until the first route without data\n if (match.route.HydrateFallback || match.route.hydrateFallbackElement) {\n fallbackIndex = i;\n }\n\n if (match.route.id) {\n let { loaderData, errors } = dataRouterState;\n let needsToRunLoader =\n match.route.loader &&\n loaderData[match.route.id] === undefined &&\n (!errors || errors[match.route.id] === undefined);\n if (match.route.lazy || needsToRunLoader) {\n // We found the first route that's not ready to render (waiting on\n // lazy, or has a loader that hasn't run yet). Flag that we need to\n // render a fallback and render up until the appropriate fallback\n renderFallback = true;\n if (fallbackIndex >= 0) {\n renderedMatches = renderedMatches.slice(0, fallbackIndex + 1);\n } else {\n renderedMatches = [renderedMatches[0]];\n }\n break;\n }\n }\n }\n }\n\n return renderedMatches.reduceRight((outlet, match, index) => {\n // Only data routers handle errors/fallbacks\n let error: any;\n let shouldRenderHydrateFallback = false;\n let errorElement: React.ReactNode | null = null;\n let hydrateFallbackElement: React.ReactNode | null = null;\n if (dataRouterState) {\n error = errors && match.route.id ? errors[match.route.id] : undefined;\n errorElement = match.route.errorElement || defaultErrorElement;\n\n if (renderFallback) {\n if (fallbackIndex < 0 && index === 0) {\n warningOnce(\n \"route-fallback\",\n false,\n \"No `HydrateFallback` element provided to render during initial hydration\"\n );\n shouldRenderHydrateFallback = true;\n hydrateFallbackElement = null;\n } else if (fallbackIndex === index) {\n shouldRenderHydrateFallback = true;\n hydrateFallbackElement = match.route.hydrateFallbackElement || null;\n }\n }\n }\n\n let matches = parentMatches.concat(renderedMatches.slice(0, index + 1));\n let getChildren = () => {\n let children: React.ReactNode;\n if (error) {\n children = errorElement;\n } else if (shouldRenderHydrateFallback) {\n children = hydrateFallbackElement;\n } else if (match.route.Component) {\n // Note: This is a de-optimized path since React won't re-use the\n // ReactElement since it's identity changes with each new\n // React.createElement call. We keep this so folks can use\n // `` in `` but generally `Component`\n // usage is only advised in `RouterProvider` when we can convert it to\n // `element` ahead of time.\n children = ;\n } else if (match.route.element) {\n children = match.route.element;\n } else {\n children = outlet;\n }\n return (\n \n );\n };\n // Only wrap in an error boundary within data router usages when we have an\n // ErrorBoundary/errorElement on this route. Otherwise let it bubble up to\n // an ancestor ErrorBoundary/errorElement\n return dataRouterState &&\n (match.route.ErrorBoundary || match.route.errorElement || index === 0) ? (\n \n ) : (\n getChildren()\n );\n }, null as React.ReactElement | null);\n}\n\nenum DataRouterHook {\n UseBlocker = \"useBlocker\",\n UseRevalidator = \"useRevalidator\",\n UseNavigateStable = \"useNavigate\",\n}\n\nenum DataRouterStateHook {\n UseBlocker = \"useBlocker\",\n UseLoaderData = \"useLoaderData\",\n UseActionData = \"useActionData\",\n UseRouteError = \"useRouteError\",\n UseNavigation = \"useNavigation\",\n UseRouteLoaderData = \"useRouteLoaderData\",\n UseMatches = \"useMatches\",\n UseRevalidator = \"useRevalidator\",\n UseNavigateStable = \"useNavigate\",\n UseRouteId = \"useRouteId\",\n}\n\nfunction getDataRouterConsoleError(\n hookName: DataRouterHook | DataRouterStateHook\n) {\n return `${hookName} must be used within a data router. See https://reactrouter.com/v6/routers/picking-a-router.`;\n}\n\nfunction useDataRouterContext(hookName: DataRouterHook) {\n let ctx = React.useContext(DataRouterContext);\n invariant(ctx, getDataRouterConsoleError(hookName));\n return ctx;\n}\n\nfunction useDataRouterState(hookName: DataRouterStateHook) {\n let state = React.useContext(DataRouterStateContext);\n invariant(state, getDataRouterConsoleError(hookName));\n return state;\n}\n\nfunction useRouteContext(hookName: DataRouterStateHook) {\n let route = React.useContext(RouteContext);\n invariant(route, getDataRouterConsoleError(hookName));\n return route;\n}\n\n// Internal version with hookName-aware debugging\nfunction useCurrentRouteId(hookName: DataRouterStateHook) {\n let route = useRouteContext(hookName);\n let thisRoute = route.matches[route.matches.length - 1];\n invariant(\n thisRoute.route.id,\n `${hookName} can only be used on routes that contain a unique \"id\"`\n );\n return thisRoute.route.id;\n}\n\n/**\n * Returns the ID for the nearest contextual route\n */\nexport function useRouteId() {\n return useCurrentRouteId(DataRouterStateHook.UseRouteId);\n}\n\n/**\n * Returns the current navigation, defaulting to an \"idle\" navigation when\n * no navigation is in progress\n */\nexport function useNavigation() {\n let state = useDataRouterState(DataRouterStateHook.UseNavigation);\n return state.navigation;\n}\n\n/**\n * Returns a revalidate function for manually triggering revalidation, as well\n * as the current state of any manual revalidations\n */\nexport function useRevalidator() {\n let dataRouterContext = useDataRouterContext(DataRouterHook.UseRevalidator);\n let state = useDataRouterState(DataRouterStateHook.UseRevalidator);\n return React.useMemo(\n () => ({\n revalidate: dataRouterContext.router.revalidate,\n state: state.revalidation,\n }),\n [dataRouterContext.router.revalidate, state.revalidation]\n );\n}\n\n/**\n * Returns the active route matches, useful for accessing loaderData for\n * parent/child routes or the route \"handle\" property\n */\nexport function useMatches(): UIMatch[] {\n let { matches, loaderData } = useDataRouterState(\n DataRouterStateHook.UseMatches\n );\n return React.useMemo(\n () => matches.map((m) => convertRouteMatchToUiMatch(m, loaderData)),\n [matches, loaderData]\n );\n}\n\n/**\n * Returns the loader data for the nearest ancestor Route loader\n */\nexport function useLoaderData(): unknown {\n let state = useDataRouterState(DataRouterStateHook.UseLoaderData);\n let routeId = useCurrentRouteId(DataRouterStateHook.UseLoaderData);\n\n if (state.errors && state.errors[routeId] != null) {\n console.error(\n `You cannot \\`useLoaderData\\` in an errorElement (routeId: ${routeId})`\n );\n return undefined;\n }\n return state.loaderData[routeId];\n}\n\n/**\n * Returns the loaderData for the given routeId\n */\nexport function useRouteLoaderData(routeId: string): unknown {\n let state = useDataRouterState(DataRouterStateHook.UseRouteLoaderData);\n return state.loaderData[routeId];\n}\n\n/**\n * Returns the action data for the nearest ancestor Route action\n */\nexport function useActionData(): unknown {\n let state = useDataRouterState(DataRouterStateHook.UseActionData);\n let routeId = useCurrentRouteId(DataRouterStateHook.UseLoaderData);\n return state.actionData ? state.actionData[routeId] : undefined;\n}\n\n/**\n * Returns the nearest ancestor Route error, which could be a loader/action\n * error or a render error. This is intended to be called from your\n * ErrorBoundary/errorElement to display a proper error message.\n */\nexport function useRouteError(): unknown {\n let error = React.useContext(RouteErrorContext);\n let state = useDataRouterState(DataRouterStateHook.UseRouteError);\n let routeId = useCurrentRouteId(DataRouterStateHook.UseRouteError);\n\n // If this was a render error, we put it in a RouteError context inside\n // of RenderErrorBoundary\n if (error !== undefined) {\n return error;\n }\n\n // Otherwise look for errors from our data router state\n return state.errors?.[routeId];\n}\n\n/**\n * Returns the happy-path data from the nearest ancestor `` value\n */\nexport function useAsyncValue(): unknown {\n let value = React.useContext(AwaitContext);\n return value?._data;\n}\n\n/**\n * Returns the error from the nearest ancestor `` value\n */\nexport function useAsyncError(): unknown {\n let value = React.useContext(AwaitContext);\n return value?._error;\n}\n\nlet blockerId = 0;\n\n/**\n * Allow the application to block navigations within the SPA and present the\n * user a confirmation dialog to confirm the navigation. Mostly used to avoid\n * using half-filled form data. This does not handle hard-reloads or\n * cross-origin navigations.\n */\nexport function useBlocker(shouldBlock: boolean | BlockerFunction): Blocker {\n let { router, basename } = useDataRouterContext(DataRouterHook.UseBlocker);\n let state = useDataRouterState(DataRouterStateHook.UseBlocker);\n\n let [blockerKey, setBlockerKey] = React.useState(\"\");\n let blockerFunction = React.useCallback(\n (arg) => {\n if (typeof shouldBlock !== \"function\") {\n return !!shouldBlock;\n }\n if (basename === \"/\") {\n return shouldBlock(arg);\n }\n\n // If they provided us a function and we've got an active basename, strip\n // it from the locations we expose to the user to match the behavior of\n // useLocation\n let { currentLocation, nextLocation, historyAction } = arg;\n return shouldBlock({\n currentLocation: {\n ...currentLocation,\n pathname:\n stripBasename(currentLocation.pathname, basename) ||\n currentLocation.pathname,\n },\n nextLocation: {\n ...nextLocation,\n pathname:\n stripBasename(nextLocation.pathname, basename) ||\n nextLocation.pathname,\n },\n historyAction,\n });\n },\n [basename, shouldBlock]\n );\n\n // This effect is in charge of blocker key assignment and deletion (which is\n // tightly coupled to the key)\n React.useEffect(() => {\n let key = String(++blockerId);\n setBlockerKey(key);\n return () => router.deleteBlocker(key);\n }, [router]);\n\n // This effect handles assigning the blockerFunction. This is to handle\n // unstable blocker function identities, and happens only after the prior\n // effect so we don't get an orphaned blockerFunction in the router with a\n // key of \"\". Until then we just have the IDLE_BLOCKER.\n React.useEffect(() => {\n if (blockerKey !== \"\") {\n router.getBlocker(blockerKey, blockerFunction);\n }\n }, [router, blockerKey, blockerFunction]);\n\n // Prefer the blocker from `state` not `router.state` since DataRouterContext\n // is memoized so this ensures we update on blocker state updates\n return blockerKey && state.blockers.has(blockerKey)\n ? state.blockers.get(blockerKey)!\n : IDLE_BLOCKER;\n}\n\n/**\n * Stable version of useNavigate that is used when we are in the context of\n * a RouterProvider.\n */\nfunction useNavigateStable(): NavigateFunction {\n let { router } = useDataRouterContext(DataRouterHook.UseNavigateStable);\n let id = useCurrentRouteId(DataRouterStateHook.UseNavigateStable);\n\n let activeRef = React.useRef(false);\n useIsomorphicLayoutEffect(() => {\n activeRef.current = true;\n });\n\n let navigate: NavigateFunction = React.useCallback(\n (to: To | number, options: NavigateOptions = {}) => {\n warning(activeRef.current, navigateEffectWarning);\n\n // Short circuit here since if this happens on first render the navigate\n // is useless because we haven't wired up our router subscriber yet\n if (!activeRef.current) return;\n\n if (typeof to === \"number\") {\n router.navigate(to);\n } else {\n router.navigate(to, { fromRouteId: id, ...options });\n }\n },\n [router, id]\n );\n\n return navigate;\n}\n\nconst alreadyWarned: Record = {};\n\nfunction warningOnce(key: string, cond: boolean, message: string) {\n if (!cond && !alreadyWarned[key]) {\n alreadyWarned[key] = true;\n warning(false, message);\n }\n}\n","import type { FutureConfig as RouterFutureConfig } from \"@remix-run/router\";\nimport type { FutureConfig as RenderFutureConfig } from \"./components\";\n\nconst alreadyWarned: { [key: string]: boolean } = {};\n\nexport function warnOnce(key: string, message: string): void {\n if (__DEV__ && !alreadyWarned[message]) {\n alreadyWarned[message] = true;\n console.warn(message);\n }\n}\n\nconst logDeprecation = (flag: string, msg: string, link: string) =>\n warnOnce(\n flag,\n `⚠️ React Router Future Flag Warning: ${msg}. ` +\n `You can use the \\`${flag}\\` future flag to opt-in early. ` +\n `For more information, see ${link}.`\n );\n\nexport function logV6DeprecationWarnings(\n renderFuture: Partial | undefined,\n routerFuture?: Omit\n) {\n if (renderFuture?.v7_startTransition === undefined) {\n logDeprecation(\n \"v7_startTransition\",\n \"React Router will begin wrapping state updates in `React.startTransition` in v7\",\n \"https://reactrouter.com/v6/upgrading/future#v7_starttransition\"\n );\n }\n\n if (\n renderFuture?.v7_relativeSplatPath === undefined &&\n (!routerFuture || !routerFuture.v7_relativeSplatPath)\n ) {\n logDeprecation(\n \"v7_relativeSplatPath\",\n \"Relative route resolution within Splat routes is changing in v7\",\n \"https://reactrouter.com/v6/upgrading/future#v7_relativesplatpath\"\n );\n }\n\n if (routerFuture) {\n if (routerFuture.v7_fetcherPersist === undefined) {\n logDeprecation(\n \"v7_fetcherPersist\",\n \"The persistence behavior of fetchers is changing in v7\",\n \"https://reactrouter.com/v6/upgrading/future#v7_fetcherpersist\"\n );\n }\n\n if (routerFuture.v7_normalizeFormMethod === undefined) {\n logDeprecation(\n \"v7_normalizeFormMethod\",\n \"Casing of `formMethod` fields is being normalized to uppercase in v7\",\n \"https://reactrouter.com/v6/upgrading/future#v7_normalizeformmethod\"\n );\n }\n\n if (routerFuture.v7_partialHydration === undefined) {\n logDeprecation(\n \"v7_partialHydration\",\n \"`RouterProvider` hydration behavior is changing in v7\",\n \"https://reactrouter.com/v6/upgrading/future#v7_partialhydration\"\n );\n }\n\n if (routerFuture.v7_skipActionErrorRevalidation === undefined) {\n logDeprecation(\n \"v7_skipActionErrorRevalidation\",\n \"The revalidation behavior after 4xx/5xx `action` responses is changing in v7\",\n \"https://reactrouter.com/v6/upgrading/future#v7_skipactionerrorrevalidation\"\n );\n }\n }\n}\n","import type {\n InitialEntry,\n LazyRouteFunction,\n Location,\n MemoryHistory,\n RelativeRoutingType,\n Router as RemixRouter,\n RouterState,\n RouterSubscriber,\n To,\n TrackedPromise,\n} from \"@remix-run/router\";\nimport {\n AbortedDeferredError,\n Action as NavigationType,\n createMemoryHistory,\n UNSAFE_getResolveToMatches as getResolveToMatches,\n UNSAFE_invariant as invariant,\n parsePath,\n resolveTo,\n stripBasename,\n UNSAFE_warning as warning,\n} from \"@remix-run/router\";\nimport * as React from \"react\";\n\nimport type {\n DataRouteObject,\n IndexRouteObject,\n Navigator,\n NonIndexRouteObject,\n RouteMatch,\n RouteObject,\n} from \"./context\";\nimport {\n AwaitContext,\n DataRouterContext,\n DataRouterStateContext,\n LocationContext,\n NavigationContext,\n RouteContext,\n} from \"./context\";\nimport {\n _renderMatches,\n useAsyncValue,\n useInRouterContext,\n useLocation,\n useNavigate,\n useOutlet,\n useRoutes,\n useRoutesImpl,\n} from \"./hooks\";\nimport { logV6DeprecationWarnings } from \"./deprecations\";\n\nexport interface FutureConfig {\n v7_relativeSplatPath: boolean;\n v7_startTransition: boolean;\n}\n\nexport interface RouterProviderProps {\n fallbackElement?: React.ReactNode;\n router: RemixRouter;\n // Only accept future flags relevant to rendering behavior\n // routing flags should be accessed via router.future\n future?: Partial>;\n}\n\n/**\n Webpack + React 17 fails to compile on any of the following because webpack\n complains that `startTransition` doesn't exist in `React`:\n * import { startTransition } from \"react\"\n * import * as React from from \"react\";\n \"startTransition\" in React ? React.startTransition(() => setState()) : setState()\n * import * as React from from \"react\";\n \"startTransition\" in React ? React[\"startTransition\"](() => setState()) : setState()\n\n Moving it to a constant such as the following solves the Webpack/React 17 issue:\n * import * as React from from \"react\";\n const START_TRANSITION = \"startTransition\";\n START_TRANSITION in React ? React[START_TRANSITION](() => setState()) : setState()\n\n However, that introduces webpack/terser minification issues in production builds\n in React 18 where minification/obfuscation ends up removing the call of\n React.startTransition entirely from the first half of the ternary. Grabbing\n this exported reference once up front resolves that issue.\n\n See https://github.com/remix-run/react-router/issues/10579\n*/\nconst START_TRANSITION = \"startTransition\";\nconst startTransitionImpl = React[START_TRANSITION];\n\n/**\n * Given a Remix Router instance, render the appropriate UI\n */\nexport function RouterProvider({\n fallbackElement,\n router,\n future,\n}: RouterProviderProps): React.ReactElement {\n let [state, setStateImpl] = React.useState(router.state);\n let { v7_startTransition } = future || {};\n\n let setState = React.useCallback(\n (newState: RouterState) => {\n if (v7_startTransition && startTransitionImpl) {\n startTransitionImpl(() => setStateImpl(newState));\n } else {\n setStateImpl(newState);\n }\n },\n [setStateImpl, v7_startTransition]\n );\n\n // Need to use a layout effect here so we are subscribed early enough to\n // pick up on any render-driven redirects/navigations (useEffect/)\n React.useLayoutEffect(() => router.subscribe(setState), [router, setState]);\n\n React.useEffect(() => {\n warning(\n fallbackElement == null || !router.future.v7_partialHydration,\n \"`` is deprecated when using \" +\n \"`v7_partialHydration`, use a `HydrateFallback` component instead\"\n );\n // Only log this once on initial mount\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n let navigator = React.useMemo((): Navigator => {\n return {\n createHref: router.createHref,\n encodeLocation: router.encodeLocation,\n go: (n) => router.navigate(n),\n push: (to, state, opts) =>\n router.navigate(to, {\n state,\n preventScrollReset: opts?.preventScrollReset,\n }),\n replace: (to, state, opts) =>\n router.navigate(to, {\n replace: true,\n state,\n preventScrollReset: opts?.preventScrollReset,\n }),\n };\n }, [router]);\n\n let basename = router.basename || \"/\";\n\n let dataRouterContext = React.useMemo(\n () => ({\n router,\n navigator,\n static: false,\n basename,\n }),\n [router, navigator, basename]\n );\n\n React.useEffect(\n () => logV6DeprecationWarnings(future, router.future),\n [router, future]\n );\n\n // The fragment and {null} here are important! We need them to keep React 18's\n // useId happy when we are server-rendering since we may have a