@distinctagency/cms-client 1.1.0 → 1.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +16 -6629
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +17 -6642
- package/dist/index.mjs.map +1 -1
- package/package.json +5 -2
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../node_modules/.pnpm/react@19.2.4/node_modules/react/cjs/react.production.js","../../../node_modules/.pnpm/react@19.2.4/node_modules/react/cjs/react.development.js","../../../node_modules/.pnpm/react@19.2.4/node_modules/react/index.js","../../../node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_interop_require_wildcard.cjs","../../../node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../node_modules/.pnpm/next@16.2.1_@babel+core@7.29.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/src/shared/lib/app-router-context.shared-runtime.ts","../../../node_modules/.pnpm/next@16.2.1_@babel+core@7.29.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/src/client/components/readonly-url-search-params.ts","../../../node_modules/.pnpm/next@16.2.1_@babel+core@7.29.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/src/shared/lib/hooks-client-context.shared-runtime.ts","../../../node_modules/.pnpm/next@16.2.1_@babel+core@7.29.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/src/shared/lib/segment.ts","../../../node_modules/.pnpm/next@16.2.1_@babel+core@7.29.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/src/shared/lib/server-inserted-html.shared-runtime.tsx","../../../node_modules/.pnpm/next@16.2.1_@babel+core@7.29.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/src/client/components/unrecognized-action-error.ts","../../../node_modules/.pnpm/next@16.2.1_@babel+core@7.29.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/src/client/components/redirect-status-code.ts","../../../node_modules/.pnpm/next@16.2.1_@babel+core@7.29.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/src/client/components/redirect-error.ts","../../../node_modules/.pnpm/next@16.2.1_@babel+core@7.29.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/src/server/app-render/async-local-storage.ts","../../../node_modules/.pnpm/next@16.2.1_@babel+core@7.29.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/src/server/app-render/action-async-storage-instance.ts","../../../node_modules/.pnpm/next@16.2.1_@babel+core@7.29.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/src/server/app-render/action-async-storage.external.ts","../../../node_modules/.pnpm/next@16.2.1_@babel+core@7.29.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/src/client/components/redirect.ts","../../../node_modules/.pnpm/next@16.2.1_@babel+core@7.29.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/src/client/components/http-access-fallback/http-access-fallback.ts","../../../node_modules/.pnpm/next@16.2.1_@babel+core@7.29.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/src/client/components/not-found.ts","../../../node_modules/.pnpm/next@16.2.1_@babel+core@7.29.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/src/client/components/forbidden.ts","../../../node_modules/.pnpm/next@16.2.1_@babel+core@7.29.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/src/client/components/unauthorized.ts","../../../node_modules/.pnpm/next@16.2.1_@babel+core@7.29.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/src/shared/lib/invariant-error.ts","../../../node_modules/.pnpm/next@16.2.1_@babel+core@7.29.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/src/shared/lib/promise-with-resolvers.ts","../../../node_modules/.pnpm/next@16.2.1_@babel+core@7.29.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/src/server/app-render/staged-rendering.ts","../../../node_modules/.pnpm/next@16.2.1_@babel+core@7.29.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/src/server/dynamic-rendering-utils.ts","../../../node_modules/.pnpm/next@16.2.1_@babel+core@7.29.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/src/server/lib/router-utils/is-postpone.ts","../../../node_modules/.pnpm/next@16.2.1_@babel+core@7.29.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/src/shared/lib/lazy-dynamic/bailout-to-csr.ts","../../../node_modules/.pnpm/next@16.2.1_@babel+core@7.29.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/src/client/components/is-next-router-error.ts","../../../node_modules/.pnpm/next@16.2.1_@babel+core@7.29.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/src/client/components/hooks-server-context.ts","../../../node_modules/.pnpm/next@16.2.1_@babel+core@7.29.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/src/client/components/static-generation-bailout.ts","../../../node_modules/.pnpm/next@16.2.1_@babel+core@7.29.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/src/server/app-render/work-unit-async-storage-instance.ts","../../../node_modules/.pnpm/next@16.2.1_@babel+core@7.29.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/src/client/components/app-router-headers.ts","../../../node_modules/.pnpm/next@16.2.1_@babel+core@7.29.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/src/server/app-render/work-unit-async-storage.external.ts","../../../node_modules/.pnpm/next@16.2.1_@babel+core@7.29.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/src/server/app-render/work-async-storage-instance.ts","../../../node_modules/.pnpm/next@16.2.1_@babel+core@7.29.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/src/server/app-render/work-async-storage.external.ts","../../../node_modules/.pnpm/next@16.2.1_@babel+core@7.29.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/src/lib/framework/boundary-constants.tsx","../../../node_modules/.pnpm/next@16.2.1_@babel+core@7.29.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/src/lib/scheduler.ts","../../../node_modules/.pnpm/next@16.2.1_@babel+core@7.29.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/src/server/app-render/instant-validation/boundary-constants.ts","../../../node_modules/.pnpm/next@16.2.1_@babel+core@7.29.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/src/server/app-render/dynamic-rendering.ts","../../../node_modules/.pnpm/next@16.2.1_@babel+core@7.29.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/src/client/components/unstable-rethrow.server.ts","../../../node_modules/.pnpm/next@16.2.1_@babel+core@7.29.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/src/client/components/unstable-rethrow.browser.ts","../../../node_modules/.pnpm/next@16.2.1_@babel+core@7.29.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/src/client/components/unstable-rethrow.ts","../../../node_modules/.pnpm/next@16.2.1_@babel+core@7.29.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/src/client/components/navigation.react-server.ts","../../../node_modules/.pnpm/next@16.2.1_@babel+core@7.29.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/compiled/@edge-runtime/cookies/index.js","../../../node_modules/.pnpm/next@16.2.1_@babel+core@7.29.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/src/server/web/spec-extension/cookies.ts","../../../node_modules/.pnpm/next@16.2.1_@babel+core@7.29.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/src/server/web/spec-extension/adapters/reflect.ts","../../../node_modules/.pnpm/next@16.2.1_@babel+core@7.29.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/src/shared/lib/action-revalidation-kind.ts","../../../node_modules/.pnpm/next@16.2.1_@babel+core@7.29.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/src/server/web/spec-extension/adapters/request-cookies.ts","../../../node_modules/.pnpm/next@16.2.1_@babel+core@7.29.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/src/server/web/spec-extension/adapters/headers.ts","../../../node_modules/.pnpm/next@16.2.1_@babel+core@7.29.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/src/shared/lib/page-path/ensure-leading-slash.ts","../../../node_modules/.pnpm/next@16.2.1_@babel+core@7.29.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/src/shared/lib/router/utils/app-paths.ts","../../../node_modules/.pnpm/next@16.2.1_@babel+core@7.29.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/src/shared/lib/router/utils/interception-routes.ts","../../../node_modules/.pnpm/next@16.2.1_@babel+core@7.29.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/src/shared/lib/router/utils/get-segment-param.tsx","../../../node_modules/.pnpm/next@16.2.1_@babel+core@7.29.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/src/shared/lib/utils.ts","../../../node_modules/.pnpm/next@16.2.1_@babel+core@7.29.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/src/shared/lib/router/utils/querystring.ts","../../../node_modules/.pnpm/next@16.2.1_@babel+core@7.29.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/src/shared/lib/router/utils/parse-relative-url.ts","../../../node_modules/.pnpm/next@16.2.1_@babel+core@7.29.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/src/server/app-render/instant-validation/instant-validation-error.ts","../../../node_modules/.pnpm/next@16.2.1_@babel+core@7.29.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/src/shared/lib/utils/reflect-utils.ts","../../../node_modules/.pnpm/next@16.2.1_@babel+core@7.29.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/src/server/app-render/instant-validation/instant-samples.ts","../../../node_modules/.pnpm/next@16.2.1_@babel+core@7.29.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/src/server/app-render/instant-validation/instant-samples-client.ts","../../../node_modules/.pnpm/next@16.2.1_@babel+core@7.29.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/src/client/components/navigation.ts","../../../node_modules/.pnpm/next@16.2.1_@babel+core@7.29.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/navigation.js","../src/index.ts","../src/queries.ts","../src/shop.ts","../src/analytics.tsx","../src/page-tracker.tsx","../src/cdn.ts"],"sourcesContent":["/**\n * @license React\n * react.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\nvar REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_PORTAL_TYPE = Symbol.for(\"react.portal\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\"),\n REACT_STRICT_MODE_TYPE = Symbol.for(\"react.strict_mode\"),\n REACT_PROFILER_TYPE = Symbol.for(\"react.profiler\"),\n REACT_CONSUMER_TYPE = Symbol.for(\"react.consumer\"),\n REACT_CONTEXT_TYPE = Symbol.for(\"react.context\"),\n REACT_FORWARD_REF_TYPE = Symbol.for(\"react.forward_ref\"),\n REACT_SUSPENSE_TYPE = Symbol.for(\"react.suspense\"),\n REACT_MEMO_TYPE = Symbol.for(\"react.memo\"),\n REACT_LAZY_TYPE = Symbol.for(\"react.lazy\"),\n REACT_ACTIVITY_TYPE = Symbol.for(\"react.activity\"),\n MAYBE_ITERATOR_SYMBOL = Symbol.iterator;\nfunction getIteratorFn(maybeIterable) {\n if (null === maybeIterable || \"object\" !== typeof maybeIterable) return null;\n maybeIterable =\n (MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL]) ||\n maybeIterable[\"@@iterator\"];\n return \"function\" === typeof maybeIterable ? maybeIterable : null;\n}\nvar ReactNoopUpdateQueue = {\n isMounted: function () {\n return !1;\n },\n enqueueForceUpdate: function () {},\n enqueueReplaceState: function () {},\n enqueueSetState: function () {}\n },\n assign = Object.assign,\n emptyObject = {};\nfunction Component(props, context, updater) {\n this.props = props;\n this.context = context;\n this.refs = emptyObject;\n this.updater = updater || ReactNoopUpdateQueue;\n}\nComponent.prototype.isReactComponent = {};\nComponent.prototype.setState = function (partialState, callback) {\n if (\n \"object\" !== typeof partialState &&\n \"function\" !== typeof partialState &&\n null != partialState\n )\n throw Error(\n \"takes an object of state variables to update or a function which returns an object of state variables.\"\n );\n this.updater.enqueueSetState(this, partialState, callback, \"setState\");\n};\nComponent.prototype.forceUpdate = function (callback) {\n this.updater.enqueueForceUpdate(this, callback, \"forceUpdate\");\n};\nfunction ComponentDummy() {}\nComponentDummy.prototype = Component.prototype;\nfunction PureComponent(props, context, updater) {\n this.props = props;\n this.context = context;\n this.refs = emptyObject;\n this.updater = updater || ReactNoopUpdateQueue;\n}\nvar pureComponentPrototype = (PureComponent.prototype = new ComponentDummy());\npureComponentPrototype.constructor = PureComponent;\nassign(pureComponentPrototype, Component.prototype);\npureComponentPrototype.isPureReactComponent = !0;\nvar isArrayImpl = Array.isArray;\nfunction noop() {}\nvar ReactSharedInternals = { H: null, A: null, T: null, S: null },\n hasOwnProperty = Object.prototype.hasOwnProperty;\nfunction ReactElement(type, key, props) {\n var refProp = props.ref;\n return {\n $$typeof: REACT_ELEMENT_TYPE,\n type: type,\n key: key,\n ref: void 0 !== refProp ? refProp : null,\n props: props\n };\n}\nfunction cloneAndReplaceKey(oldElement, newKey) {\n return ReactElement(oldElement.type, newKey, oldElement.props);\n}\nfunction isValidElement(object) {\n return (\n \"object\" === typeof object &&\n null !== object &&\n object.$$typeof === REACT_ELEMENT_TYPE\n );\n}\nfunction escape(key) {\n var escaperLookup = { \"=\": \"=0\", \":\": \"=2\" };\n return (\n \"$\" +\n key.replace(/[=:]/g, function (match) {\n return escaperLookup[match];\n })\n );\n}\nvar userProvidedKeyEscapeRegex = /\\/+/g;\nfunction getElementKey(element, index) {\n return \"object\" === typeof element && null !== element && null != element.key\n ? escape(\"\" + element.key)\n : index.toString(36);\n}\nfunction resolveThenable(thenable) {\n switch (thenable.status) {\n case \"fulfilled\":\n return thenable.value;\n case \"rejected\":\n throw thenable.reason;\n default:\n switch (\n (\"string\" === typeof thenable.status\n ? thenable.then(noop, noop)\n : ((thenable.status = \"pending\"),\n thenable.then(\n function (fulfilledValue) {\n \"pending\" === thenable.status &&\n ((thenable.status = \"fulfilled\"),\n (thenable.value = fulfilledValue));\n },\n function (error) {\n \"pending\" === thenable.status &&\n ((thenable.status = \"rejected\"), (thenable.reason = error));\n }\n )),\n thenable.status)\n ) {\n case \"fulfilled\":\n return thenable.value;\n case \"rejected\":\n throw thenable.reason;\n }\n }\n throw thenable;\n}\nfunction mapIntoArray(children, array, escapedPrefix, nameSoFar, callback) {\n var type = typeof children;\n if (\"undefined\" === type || \"boolean\" === type) children = null;\n var invokeCallback = !1;\n if (null === children) invokeCallback = !0;\n else\n switch (type) {\n case \"bigint\":\n case \"string\":\n case \"number\":\n invokeCallback = !0;\n break;\n case \"object\":\n switch (children.$$typeof) {\n case REACT_ELEMENT_TYPE:\n case REACT_PORTAL_TYPE:\n invokeCallback = !0;\n break;\n case REACT_LAZY_TYPE:\n return (\n (invokeCallback = children._init),\n mapIntoArray(\n invokeCallback(children._payload),\n array,\n escapedPrefix,\n nameSoFar,\n callback\n )\n );\n }\n }\n if (invokeCallback)\n return (\n (callback = callback(children)),\n (invokeCallback =\n \"\" === nameSoFar ? \".\" + getElementKey(children, 0) : nameSoFar),\n isArrayImpl(callback)\n ? ((escapedPrefix = \"\"),\n null != invokeCallback &&\n (escapedPrefix =\n invokeCallback.replace(userProvidedKeyEscapeRegex, \"$&/\") + \"/\"),\n mapIntoArray(callback, array, escapedPrefix, \"\", function (c) {\n return c;\n }))\n : null != callback &&\n (isValidElement(callback) &&\n (callback = cloneAndReplaceKey(\n callback,\n escapedPrefix +\n (null == callback.key ||\n (children && children.key === callback.key)\n ? \"\"\n : (\"\" + callback.key).replace(\n userProvidedKeyEscapeRegex,\n \"$&/\"\n ) + \"/\") +\n invokeCallback\n )),\n array.push(callback)),\n 1\n );\n invokeCallback = 0;\n var nextNamePrefix = \"\" === nameSoFar ? \".\" : nameSoFar + \":\";\n if (isArrayImpl(children))\n for (var i = 0; i < children.length; i++)\n (nameSoFar = children[i]),\n (type = nextNamePrefix + getElementKey(nameSoFar, i)),\n (invokeCallback += mapIntoArray(\n nameSoFar,\n array,\n escapedPrefix,\n type,\n callback\n ));\n else if (((i = getIteratorFn(children)), \"function\" === typeof i))\n for (\n children = i.call(children), i = 0;\n !(nameSoFar = children.next()).done;\n\n )\n (nameSoFar = nameSoFar.value),\n (type = nextNamePrefix + getElementKey(nameSoFar, i++)),\n (invokeCallback += mapIntoArray(\n nameSoFar,\n array,\n escapedPrefix,\n type,\n callback\n ));\n else if (\"object\" === type) {\n if (\"function\" === typeof children.then)\n return mapIntoArray(\n resolveThenable(children),\n array,\n escapedPrefix,\n nameSoFar,\n callback\n );\n array = String(children);\n throw Error(\n \"Objects are not valid as a React child (found: \" +\n (\"[object Object]\" === array\n ? \"object with keys {\" + Object.keys(children).join(\", \") + \"}\"\n : array) +\n \"). If you meant to render a collection of children, use an array instead.\"\n );\n }\n return invokeCallback;\n}\nfunction mapChildren(children, func, context) {\n if (null == children) return children;\n var result = [],\n count = 0;\n mapIntoArray(children, result, \"\", \"\", function (child) {\n return func.call(context, child, count++);\n });\n return result;\n}\nfunction lazyInitializer(payload) {\n if (-1 === payload._status) {\n var ctor = payload._result;\n ctor = ctor();\n ctor.then(\n function (moduleObject) {\n if (0 === payload._status || -1 === payload._status)\n (payload._status = 1), (payload._result = moduleObject);\n },\n function (error) {\n if (0 === payload._status || -1 === payload._status)\n (payload._status = 2), (payload._result = error);\n }\n );\n -1 === payload._status && ((payload._status = 0), (payload._result = ctor));\n }\n if (1 === payload._status) return payload._result.default;\n throw payload._result;\n}\nvar reportGlobalError =\n \"function\" === typeof reportError\n ? reportError\n : function (error) {\n if (\n \"object\" === typeof window &&\n \"function\" === typeof window.ErrorEvent\n ) {\n var event = new window.ErrorEvent(\"error\", {\n bubbles: !0,\n cancelable: !0,\n message:\n \"object\" === typeof error &&\n null !== error &&\n \"string\" === typeof error.message\n ? String(error.message)\n : String(error),\n error: error\n });\n if (!window.dispatchEvent(event)) return;\n } else if (\n \"object\" === typeof process &&\n \"function\" === typeof process.emit\n ) {\n process.emit(\"uncaughtException\", error);\n return;\n }\n console.error(error);\n },\n Children = {\n map: mapChildren,\n forEach: function (children, forEachFunc, forEachContext) {\n mapChildren(\n children,\n function () {\n forEachFunc.apply(this, arguments);\n },\n forEachContext\n );\n },\n count: function (children) {\n var n = 0;\n mapChildren(children, function () {\n n++;\n });\n return n;\n },\n toArray: function (children) {\n return (\n mapChildren(children, function (child) {\n return child;\n }) || []\n );\n },\n only: function (children) {\n if (!isValidElement(children))\n throw Error(\n \"React.Children.only expected to receive a single React element child.\"\n );\n return children;\n }\n };\nexports.Activity = REACT_ACTIVITY_TYPE;\nexports.Children = Children;\nexports.Component = Component;\nexports.Fragment = REACT_FRAGMENT_TYPE;\nexports.Profiler = REACT_PROFILER_TYPE;\nexports.PureComponent = PureComponent;\nexports.StrictMode = REACT_STRICT_MODE_TYPE;\nexports.Suspense = REACT_SUSPENSE_TYPE;\nexports.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE =\n ReactSharedInternals;\nexports.__COMPILER_RUNTIME = {\n __proto__: null,\n c: function (size) {\n return ReactSharedInternals.H.useMemoCache(size);\n }\n};\nexports.cache = function (fn) {\n return function () {\n return fn.apply(null, arguments);\n };\n};\nexports.cacheSignal = function () {\n return null;\n};\nexports.cloneElement = function (element, config, children) {\n if (null === element || void 0 === element)\n throw Error(\n \"The argument must be a React element, but you passed \" + element + \".\"\n );\n var props = assign({}, element.props),\n key = element.key;\n if (null != config)\n for (propName in (void 0 !== config.key && (key = \"\" + config.key), config))\n !hasOwnProperty.call(config, propName) ||\n \"key\" === propName ||\n \"__self\" === propName ||\n \"__source\" === propName ||\n (\"ref\" === propName && void 0 === config.ref) ||\n (props[propName] = config[propName]);\n var propName = arguments.length - 2;\n if (1 === propName) props.children = children;\n else if (1 < propName) {\n for (var childArray = Array(propName), i = 0; i < propName; i++)\n childArray[i] = arguments[i + 2];\n props.children = childArray;\n }\n return ReactElement(element.type, key, props);\n};\nexports.createContext = function (defaultValue) {\n defaultValue = {\n $$typeof: REACT_CONTEXT_TYPE,\n _currentValue: defaultValue,\n _currentValue2: defaultValue,\n _threadCount: 0,\n Provider: null,\n Consumer: null\n };\n defaultValue.Provider = defaultValue;\n defaultValue.Consumer = {\n $$typeof: REACT_CONSUMER_TYPE,\n _context: defaultValue\n };\n return defaultValue;\n};\nexports.createElement = function (type, config, children) {\n var propName,\n props = {},\n key = null;\n if (null != config)\n for (propName in (void 0 !== config.key && (key = \"\" + config.key), config))\n hasOwnProperty.call(config, propName) &&\n \"key\" !== propName &&\n \"__self\" !== propName &&\n \"__source\" !== propName &&\n (props[propName] = config[propName]);\n var childrenLength = arguments.length - 2;\n if (1 === childrenLength) props.children = children;\n else if (1 < childrenLength) {\n for (var childArray = Array(childrenLength), i = 0; i < childrenLength; i++)\n childArray[i] = arguments[i + 2];\n props.children = childArray;\n }\n if (type && type.defaultProps)\n for (propName in ((childrenLength = type.defaultProps), childrenLength))\n void 0 === props[propName] &&\n (props[propName] = childrenLength[propName]);\n return ReactElement(type, key, props);\n};\nexports.createRef = function () {\n return { current: null };\n};\nexports.forwardRef = function (render) {\n return { $$typeof: REACT_FORWARD_REF_TYPE, render: render };\n};\nexports.isValidElement = isValidElement;\nexports.lazy = function (ctor) {\n return {\n $$typeof: REACT_LAZY_TYPE,\n _payload: { _status: -1, _result: ctor },\n _init: lazyInitializer\n };\n};\nexports.memo = function (type, compare) {\n return {\n $$typeof: REACT_MEMO_TYPE,\n type: type,\n compare: void 0 === compare ? null : compare\n };\n};\nexports.startTransition = function (scope) {\n var prevTransition = ReactSharedInternals.T,\n currentTransition = {};\n ReactSharedInternals.T = currentTransition;\n try {\n var returnValue = scope(),\n onStartTransitionFinish = ReactSharedInternals.S;\n null !== onStartTransitionFinish &&\n onStartTransitionFinish(currentTransition, returnValue);\n \"object\" === typeof returnValue &&\n null !== returnValue &&\n \"function\" === typeof returnValue.then &&\n returnValue.then(noop, reportGlobalError);\n } catch (error) {\n reportGlobalError(error);\n } finally {\n null !== prevTransition &&\n null !== currentTransition.types &&\n (prevTransition.types = currentTransition.types),\n (ReactSharedInternals.T = prevTransition);\n }\n};\nexports.unstable_useCacheRefresh = function () {\n return ReactSharedInternals.H.useCacheRefresh();\n};\nexports.use = function (usable) {\n return ReactSharedInternals.H.use(usable);\n};\nexports.useActionState = function (action, initialState, permalink) {\n return ReactSharedInternals.H.useActionState(action, initialState, permalink);\n};\nexports.useCallback = function (callback, deps) {\n return ReactSharedInternals.H.useCallback(callback, deps);\n};\nexports.useContext = function (Context) {\n return ReactSharedInternals.H.useContext(Context);\n};\nexports.useDebugValue = function () {};\nexports.useDeferredValue = function (value, initialValue) {\n return ReactSharedInternals.H.useDeferredValue(value, initialValue);\n};\nexports.useEffect = function (create, deps) {\n return ReactSharedInternals.H.useEffect(create, deps);\n};\nexports.useEffectEvent = function (callback) {\n return ReactSharedInternals.H.useEffectEvent(callback);\n};\nexports.useId = function () {\n return ReactSharedInternals.H.useId();\n};\nexports.useImperativeHandle = function (ref, create, deps) {\n return ReactSharedInternals.H.useImperativeHandle(ref, create, deps);\n};\nexports.useInsertionEffect = function (create, deps) {\n return ReactSharedInternals.H.useInsertionEffect(create, deps);\n};\nexports.useLayoutEffect = function (create, deps) {\n return ReactSharedInternals.H.useLayoutEffect(create, deps);\n};\nexports.useMemo = function (create, deps) {\n return ReactSharedInternals.H.useMemo(create, deps);\n};\nexports.useOptimistic = function (passthrough, reducer) {\n return ReactSharedInternals.H.useOptimistic(passthrough, reducer);\n};\nexports.useReducer = function (reducer, initialArg, init) {\n return ReactSharedInternals.H.useReducer(reducer, initialArg, init);\n};\nexports.useRef = function (initialValue) {\n return ReactSharedInternals.H.useRef(initialValue);\n};\nexports.useState = function (initialState) {\n return ReactSharedInternals.H.useState(initialState);\n};\nexports.useSyncExternalStore = function (\n subscribe,\n getSnapshot,\n getServerSnapshot\n) {\n return ReactSharedInternals.H.useSyncExternalStore(\n subscribe,\n getSnapshot,\n getServerSnapshot\n );\n};\nexports.useTransition = function () {\n return ReactSharedInternals.H.useTransition();\n};\nexports.version = \"19.2.4\";\n","/**\n * @license React\n * react.development.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\n\"production\" !== process.env.NODE_ENV &&\n (function () {\n function defineDeprecationWarning(methodName, info) {\n Object.defineProperty(Component.prototype, methodName, {\n get: function () {\n console.warn(\n \"%s(...) is deprecated in plain JavaScript React classes. %s\",\n info[0],\n info[1]\n );\n }\n });\n }\n function getIteratorFn(maybeIterable) {\n if (null === maybeIterable || \"object\" !== typeof maybeIterable)\n return null;\n maybeIterable =\n (MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL]) ||\n maybeIterable[\"@@iterator\"];\n return \"function\" === typeof maybeIterable ? maybeIterable : null;\n }\n function warnNoop(publicInstance, callerName) {\n publicInstance =\n ((publicInstance = publicInstance.constructor) &&\n (publicInstance.displayName || publicInstance.name)) ||\n \"ReactClass\";\n var warningKey = publicInstance + \".\" + callerName;\n didWarnStateUpdateForUnmountedComponent[warningKey] ||\n (console.error(\n \"Can't call %s on a component that is not yet mounted. This is a no-op, but it might indicate a bug in your application. Instead, assign to `this.state` directly or define a `state = {};` class property with the desired state in the %s component.\",\n callerName,\n publicInstance\n ),\n (didWarnStateUpdateForUnmountedComponent[warningKey] = !0));\n }\n function Component(props, context, updater) {\n this.props = props;\n this.context = context;\n this.refs = emptyObject;\n this.updater = updater || ReactNoopUpdateQueue;\n }\n function ComponentDummy() {}\n function PureComponent(props, context, updater) {\n this.props = props;\n this.context = context;\n this.refs = emptyObject;\n this.updater = updater || ReactNoopUpdateQueue;\n }\n function noop() {}\n function testStringCoercion(value) {\n return \"\" + value;\n }\n function checkKeyStringCoercion(value) {\n try {\n testStringCoercion(value);\n var JSCompiler_inline_result = !1;\n } catch (e) {\n JSCompiler_inline_result = !0;\n }\n if (JSCompiler_inline_result) {\n JSCompiler_inline_result = console;\n var JSCompiler_temp_const = JSCompiler_inline_result.error;\n var JSCompiler_inline_result$jscomp$0 =\n (\"function\" === typeof Symbol &&\n Symbol.toStringTag &&\n value[Symbol.toStringTag]) ||\n value.constructor.name ||\n \"Object\";\n JSCompiler_temp_const.call(\n JSCompiler_inline_result,\n \"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.\",\n JSCompiler_inline_result$jscomp$0\n );\n return testStringCoercion(value);\n }\n }\n function getComponentNameFromType(type) {\n if (null == type) return null;\n if (\"function\" === typeof type)\n return type.$$typeof === REACT_CLIENT_REFERENCE\n ? null\n : type.displayName || type.name || null;\n if (\"string\" === typeof type) return type;\n switch (type) {\n case REACT_FRAGMENT_TYPE:\n return \"Fragment\";\n case REACT_PROFILER_TYPE:\n return \"Profiler\";\n case REACT_STRICT_MODE_TYPE:\n return \"StrictMode\";\n case REACT_SUSPENSE_TYPE:\n return \"Suspense\";\n case REACT_SUSPENSE_LIST_TYPE:\n return \"SuspenseList\";\n case REACT_ACTIVITY_TYPE:\n return \"Activity\";\n }\n if (\"object\" === typeof type)\n switch (\n (\"number\" === typeof type.tag &&\n console.error(\n \"Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue.\"\n ),\n type.$$typeof)\n ) {\n case REACT_PORTAL_TYPE:\n return \"Portal\";\n case REACT_CONTEXT_TYPE:\n return type.displayName || \"Context\";\n case REACT_CONSUMER_TYPE:\n return (type._context.displayName || \"Context\") + \".Consumer\";\n case REACT_FORWARD_REF_TYPE:\n var innerType = type.render;\n type = type.displayName;\n type ||\n ((type = innerType.displayName || innerType.name || \"\"),\n (type = \"\" !== type ? \"ForwardRef(\" + type + \")\" : \"ForwardRef\"));\n return type;\n case REACT_MEMO_TYPE:\n return (\n (innerType = type.displayName || null),\n null !== innerType\n ? innerType\n : getComponentNameFromType(type.type) || \"Memo\"\n );\n case REACT_LAZY_TYPE:\n innerType = type._payload;\n type = type._init;\n try {\n return getComponentNameFromType(type(innerType));\n } catch (x) {}\n }\n return null;\n }\n function getTaskName(type) {\n if (type === REACT_FRAGMENT_TYPE) return \"<>\";\n if (\n \"object\" === typeof type &&\n null !== type &&\n type.$$typeof === REACT_LAZY_TYPE\n )\n return \"<...>\";\n try {\n var name = getComponentNameFromType(type);\n return name ? \"<\" + name + \">\" : \"<...>\";\n } catch (x) {\n return \"<...>\";\n }\n }\n function getOwner() {\n var dispatcher = ReactSharedInternals.A;\n return null === dispatcher ? null : dispatcher.getOwner();\n }\n function UnknownOwner() {\n return Error(\"react-stack-top-frame\");\n }\n function hasValidKey(config) {\n if (hasOwnProperty.call(config, \"key\")) {\n var getter = Object.getOwnPropertyDescriptor(config, \"key\").get;\n if (getter && getter.isReactWarning) return !1;\n }\n return void 0 !== config.key;\n }\n function defineKeyPropWarningGetter(props, displayName) {\n function warnAboutAccessingKey() {\n specialPropKeyWarningShown ||\n ((specialPropKeyWarningShown = !0),\n console.error(\n \"%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)\",\n displayName\n ));\n }\n warnAboutAccessingKey.isReactWarning = !0;\n Object.defineProperty(props, \"key\", {\n get: warnAboutAccessingKey,\n configurable: !0\n });\n }\n function elementRefGetterWithDeprecationWarning() {\n var componentName = getComponentNameFromType(this.type);\n didWarnAboutElementRef[componentName] ||\n ((didWarnAboutElementRef[componentName] = !0),\n console.error(\n \"Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release.\"\n ));\n componentName = this.props.ref;\n return void 0 !== componentName ? componentName : null;\n }\n function ReactElement(type, key, props, owner, debugStack, debugTask) {\n var refProp = props.ref;\n type = {\n $$typeof: REACT_ELEMENT_TYPE,\n type: type,\n key: key,\n props: props,\n _owner: owner\n };\n null !== (void 0 !== refProp ? refProp : null)\n ? Object.defineProperty(type, \"ref\", {\n enumerable: !1,\n get: elementRefGetterWithDeprecationWarning\n })\n : Object.defineProperty(type, \"ref\", { enumerable: !1, value: null });\n type._store = {};\n Object.defineProperty(type._store, \"validated\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: 0\n });\n Object.defineProperty(type, \"_debugInfo\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: null\n });\n Object.defineProperty(type, \"_debugStack\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: debugStack\n });\n Object.defineProperty(type, \"_debugTask\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: debugTask\n });\n Object.freeze && (Object.freeze(type.props), Object.freeze(type));\n return type;\n }\n function cloneAndReplaceKey(oldElement, newKey) {\n newKey = ReactElement(\n oldElement.type,\n newKey,\n oldElement.props,\n oldElement._owner,\n oldElement._debugStack,\n oldElement._debugTask\n );\n oldElement._store &&\n (newKey._store.validated = oldElement._store.validated);\n return newKey;\n }\n function validateChildKeys(node) {\n isValidElement(node)\n ? node._store && (node._store.validated = 1)\n : \"object\" === typeof node &&\n null !== node &&\n node.$$typeof === REACT_LAZY_TYPE &&\n (\"fulfilled\" === node._payload.status\n ? isValidElement(node._payload.value) &&\n node._payload.value._store &&\n (node._payload.value._store.validated = 1)\n : node._store && (node._store.validated = 1));\n }\n function isValidElement(object) {\n return (\n \"object\" === typeof object &&\n null !== object &&\n object.$$typeof === REACT_ELEMENT_TYPE\n );\n }\n function escape(key) {\n var escaperLookup = { \"=\": \"=0\", \":\": \"=2\" };\n return (\n \"$\" +\n key.replace(/[=:]/g, function (match) {\n return escaperLookup[match];\n })\n );\n }\n function getElementKey(element, index) {\n return \"object\" === typeof element &&\n null !== element &&\n null != element.key\n ? (checkKeyStringCoercion(element.key), escape(\"\" + element.key))\n : index.toString(36);\n }\n function resolveThenable(thenable) {\n switch (thenable.status) {\n case \"fulfilled\":\n return thenable.value;\n case \"rejected\":\n throw thenable.reason;\n default:\n switch (\n (\"string\" === typeof thenable.status\n ? thenable.then(noop, noop)\n : ((thenable.status = \"pending\"),\n thenable.then(\n function (fulfilledValue) {\n \"pending\" === thenable.status &&\n ((thenable.status = \"fulfilled\"),\n (thenable.value = fulfilledValue));\n },\n function (error) {\n \"pending\" === thenable.status &&\n ((thenable.status = \"rejected\"),\n (thenable.reason = error));\n }\n )),\n thenable.status)\n ) {\n case \"fulfilled\":\n return thenable.value;\n case \"rejected\":\n throw thenable.reason;\n }\n }\n throw thenable;\n }\n function mapIntoArray(children, array, escapedPrefix, nameSoFar, callback) {\n var type = typeof children;\n if (\"undefined\" === type || \"boolean\" === type) children = null;\n var invokeCallback = !1;\n if (null === children) invokeCallback = !0;\n else\n switch (type) {\n case \"bigint\":\n case \"string\":\n case \"number\":\n invokeCallback = !0;\n break;\n case \"object\":\n switch (children.$$typeof) {\n case REACT_ELEMENT_TYPE:\n case REACT_PORTAL_TYPE:\n invokeCallback = !0;\n break;\n case REACT_LAZY_TYPE:\n return (\n (invokeCallback = children._init),\n mapIntoArray(\n invokeCallback(children._payload),\n array,\n escapedPrefix,\n nameSoFar,\n callback\n )\n );\n }\n }\n if (invokeCallback) {\n invokeCallback = children;\n callback = callback(invokeCallback);\n var childKey =\n \"\" === nameSoFar ? \".\" + getElementKey(invokeCallback, 0) : nameSoFar;\n isArrayImpl(callback)\n ? ((escapedPrefix = \"\"),\n null != childKey &&\n (escapedPrefix =\n childKey.replace(userProvidedKeyEscapeRegex, \"$&/\") + \"/\"),\n mapIntoArray(callback, array, escapedPrefix, \"\", function (c) {\n return c;\n }))\n : null != callback &&\n (isValidElement(callback) &&\n (null != callback.key &&\n ((invokeCallback && invokeCallback.key === callback.key) ||\n checkKeyStringCoercion(callback.key)),\n (escapedPrefix = cloneAndReplaceKey(\n callback,\n escapedPrefix +\n (null == callback.key ||\n (invokeCallback && invokeCallback.key === callback.key)\n ? \"\"\n : (\"\" + callback.key).replace(\n userProvidedKeyEscapeRegex,\n \"$&/\"\n ) + \"/\") +\n childKey\n )),\n \"\" !== nameSoFar &&\n null != invokeCallback &&\n isValidElement(invokeCallback) &&\n null == invokeCallback.key &&\n invokeCallback._store &&\n !invokeCallback._store.validated &&\n (escapedPrefix._store.validated = 2),\n (callback = escapedPrefix)),\n array.push(callback));\n return 1;\n }\n invokeCallback = 0;\n childKey = \"\" === nameSoFar ? \".\" : nameSoFar + \":\";\n if (isArrayImpl(children))\n for (var i = 0; i < children.length; i++)\n (nameSoFar = children[i]),\n (type = childKey + getElementKey(nameSoFar, i)),\n (invokeCallback += mapIntoArray(\n nameSoFar,\n array,\n escapedPrefix,\n type,\n callback\n ));\n else if (((i = getIteratorFn(children)), \"function\" === typeof i))\n for (\n i === children.entries &&\n (didWarnAboutMaps ||\n console.warn(\n \"Using Maps as children is not supported. Use an array of keyed ReactElements instead.\"\n ),\n (didWarnAboutMaps = !0)),\n children = i.call(children),\n i = 0;\n !(nameSoFar = children.next()).done;\n\n )\n (nameSoFar = nameSoFar.value),\n (type = childKey + getElementKey(nameSoFar, i++)),\n (invokeCallback += mapIntoArray(\n nameSoFar,\n array,\n escapedPrefix,\n type,\n callback\n ));\n else if (\"object\" === type) {\n if (\"function\" === typeof children.then)\n return mapIntoArray(\n resolveThenable(children),\n array,\n escapedPrefix,\n nameSoFar,\n callback\n );\n array = String(children);\n throw Error(\n \"Objects are not valid as a React child (found: \" +\n (\"[object Object]\" === array\n ? \"object with keys {\" + Object.keys(children).join(\", \") + \"}\"\n : array) +\n \"). If you meant to render a collection of children, use an array instead.\"\n );\n }\n return invokeCallback;\n }\n function mapChildren(children, func, context) {\n if (null == children) return children;\n var result = [],\n count = 0;\n mapIntoArray(children, result, \"\", \"\", function (child) {\n return func.call(context, child, count++);\n });\n return result;\n }\n function lazyInitializer(payload) {\n if (-1 === payload._status) {\n var ioInfo = payload._ioInfo;\n null != ioInfo && (ioInfo.start = ioInfo.end = performance.now());\n ioInfo = payload._result;\n var thenable = ioInfo();\n thenable.then(\n function (moduleObject) {\n if (0 === payload._status || -1 === payload._status) {\n payload._status = 1;\n payload._result = moduleObject;\n var _ioInfo = payload._ioInfo;\n null != _ioInfo && (_ioInfo.end = performance.now());\n void 0 === thenable.status &&\n ((thenable.status = \"fulfilled\"),\n (thenable.value = moduleObject));\n }\n },\n function (error) {\n if (0 === payload._status || -1 === payload._status) {\n payload._status = 2;\n payload._result = error;\n var _ioInfo2 = payload._ioInfo;\n null != _ioInfo2 && (_ioInfo2.end = performance.now());\n void 0 === thenable.status &&\n ((thenable.status = \"rejected\"), (thenable.reason = error));\n }\n }\n );\n ioInfo = payload._ioInfo;\n if (null != ioInfo) {\n ioInfo.value = thenable;\n var displayName = thenable.displayName;\n \"string\" === typeof displayName && (ioInfo.name = displayName);\n }\n -1 === payload._status &&\n ((payload._status = 0), (payload._result = thenable));\n }\n if (1 === payload._status)\n return (\n (ioInfo = payload._result),\n void 0 === ioInfo &&\n console.error(\n \"lazy: Expected the result of a dynamic import() call. Instead received: %s\\n\\nYour code should look like: \\n const MyComponent = lazy(() => import('./MyComponent'))\\n\\nDid you accidentally put curly braces around the import?\",\n ioInfo\n ),\n \"default\" in ioInfo ||\n console.error(\n \"lazy: Expected the result of a dynamic import() call. Instead received: %s\\n\\nYour code should look like: \\n const MyComponent = lazy(() => import('./MyComponent'))\",\n ioInfo\n ),\n ioInfo.default\n );\n throw payload._result;\n }\n function resolveDispatcher() {\n var dispatcher = ReactSharedInternals.H;\n null === dispatcher &&\n console.error(\n \"Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons:\\n1. You might have mismatching versions of React and the renderer (such as React DOM)\\n2. You might be breaking the Rules of Hooks\\n3. You might have more than one copy of React in the same app\\nSee https://react.dev/link/invalid-hook-call for tips about how to debug and fix this problem.\"\n );\n return dispatcher;\n }\n function releaseAsyncTransition() {\n ReactSharedInternals.asyncTransitions--;\n }\n function enqueueTask(task) {\n if (null === enqueueTaskImpl)\n try {\n var requireString = (\"require\" + Math.random()).slice(0, 7);\n enqueueTaskImpl = (module && module[requireString]).call(\n module,\n \"timers\"\n ).setImmediate;\n } catch (_err) {\n enqueueTaskImpl = function (callback) {\n !1 === didWarnAboutMessageChannel &&\n ((didWarnAboutMessageChannel = !0),\n \"undefined\" === typeof MessageChannel &&\n console.error(\n \"This browser does not have a MessageChannel implementation, so enqueuing tasks via await act(async () => ...) will fail. Please file an issue at https://github.com/facebook/react/issues if you encounter this warning.\"\n ));\n var channel = new MessageChannel();\n channel.port1.onmessage = callback;\n channel.port2.postMessage(void 0);\n };\n }\n return enqueueTaskImpl(task);\n }\n function aggregateErrors(errors) {\n return 1 < errors.length && \"function\" === typeof AggregateError\n ? new AggregateError(errors)\n : errors[0];\n }\n function popActScope(prevActQueue, prevActScopeDepth) {\n prevActScopeDepth !== actScopeDepth - 1 &&\n console.error(\n \"You seem to have overlapping act() calls, this is not supported. Be sure to await previous act() calls before making a new one. \"\n );\n actScopeDepth = prevActScopeDepth;\n }\n function recursivelyFlushAsyncActWork(returnValue, resolve, reject) {\n var queue = ReactSharedInternals.actQueue;\n if (null !== queue)\n if (0 !== queue.length)\n try {\n flushActQueue(queue);\n enqueueTask(function () {\n return recursivelyFlushAsyncActWork(returnValue, resolve, reject);\n });\n return;\n } catch (error) {\n ReactSharedInternals.thrownErrors.push(error);\n }\n else ReactSharedInternals.actQueue = null;\n 0 < ReactSharedInternals.thrownErrors.length\n ? ((queue = aggregateErrors(ReactSharedInternals.thrownErrors)),\n (ReactSharedInternals.thrownErrors.length = 0),\n reject(queue))\n : resolve(returnValue);\n }\n function flushActQueue(queue) {\n if (!isFlushing) {\n isFlushing = !0;\n var i = 0;\n try {\n for (; i < queue.length; i++) {\n var callback = queue[i];\n do {\n ReactSharedInternals.didUsePromise = !1;\n var continuation = callback(!1);\n if (null !== continuation) {\n if (ReactSharedInternals.didUsePromise) {\n queue[i] = callback;\n queue.splice(0, i);\n return;\n }\n callback = continuation;\n } else break;\n } while (1);\n }\n queue.length = 0;\n } catch (error) {\n queue.splice(0, i + 1), ReactSharedInternals.thrownErrors.push(error);\n } finally {\n isFlushing = !1;\n }\n }\n }\n \"undefined\" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ &&\n \"function\" ===\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart &&\n __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(Error());\n var REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_PORTAL_TYPE = Symbol.for(\"react.portal\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\"),\n REACT_STRICT_MODE_TYPE = Symbol.for(\"react.strict_mode\"),\n REACT_PROFILER_TYPE = Symbol.for(\"react.profiler\"),\n REACT_CONSUMER_TYPE = Symbol.for(\"react.consumer\"),\n REACT_CONTEXT_TYPE = Symbol.for(\"react.context\"),\n REACT_FORWARD_REF_TYPE = Symbol.for(\"react.forward_ref\"),\n REACT_SUSPENSE_TYPE = Symbol.for(\"react.suspense\"),\n REACT_SUSPENSE_LIST_TYPE = Symbol.for(\"react.suspense_list\"),\n REACT_MEMO_TYPE = Symbol.for(\"react.memo\"),\n REACT_LAZY_TYPE = Symbol.for(\"react.lazy\"),\n REACT_ACTIVITY_TYPE = Symbol.for(\"react.activity\"),\n MAYBE_ITERATOR_SYMBOL = Symbol.iterator,\n didWarnStateUpdateForUnmountedComponent = {},\n ReactNoopUpdateQueue = {\n isMounted: function () {\n return !1;\n },\n enqueueForceUpdate: function (publicInstance) {\n warnNoop(publicInstance, \"forceUpdate\");\n },\n enqueueReplaceState: function (publicInstance) {\n warnNoop(publicInstance, \"replaceState\");\n },\n enqueueSetState: function (publicInstance) {\n warnNoop(publicInstance, \"setState\");\n }\n },\n assign = Object.assign,\n emptyObject = {};\n Object.freeze(emptyObject);\n Component.prototype.isReactComponent = {};\n Component.prototype.setState = function (partialState, callback) {\n if (\n \"object\" !== typeof partialState &&\n \"function\" !== typeof partialState &&\n null != partialState\n )\n throw Error(\n \"takes an object of state variables to update or a function which returns an object of state variables.\"\n );\n this.updater.enqueueSetState(this, partialState, callback, \"setState\");\n };\n Component.prototype.forceUpdate = function (callback) {\n this.updater.enqueueForceUpdate(this, callback, \"forceUpdate\");\n };\n var deprecatedAPIs = {\n isMounted: [\n \"isMounted\",\n \"Instead, make sure to clean up subscriptions and pending requests in componentWillUnmount to prevent memory leaks.\"\n ],\n replaceState: [\n \"replaceState\",\n \"Refactor your code to use setState instead (see https://github.com/facebook/react/issues/3236).\"\n ]\n };\n for (fnName in deprecatedAPIs)\n deprecatedAPIs.hasOwnProperty(fnName) &&\n defineDeprecationWarning(fnName, deprecatedAPIs[fnName]);\n ComponentDummy.prototype = Component.prototype;\n deprecatedAPIs = PureComponent.prototype = new ComponentDummy();\n deprecatedAPIs.constructor = PureComponent;\n assign(deprecatedAPIs, Component.prototype);\n deprecatedAPIs.isPureReactComponent = !0;\n var isArrayImpl = Array.isArray,\n REACT_CLIENT_REFERENCE = Symbol.for(\"react.client.reference\"),\n ReactSharedInternals = {\n H: null,\n A: null,\n T: null,\n S: null,\n actQueue: null,\n asyncTransitions: 0,\n isBatchingLegacy: !1,\n didScheduleLegacyUpdate: !1,\n didUsePromise: !1,\n thrownErrors: [],\n getCurrentStack: null,\n recentlyCreatedOwnerStacks: 0\n },\n hasOwnProperty = Object.prototype.hasOwnProperty,\n createTask = console.createTask\n ? console.createTask\n : function () {\n return null;\n };\n deprecatedAPIs = {\n react_stack_bottom_frame: function (callStackForError) {\n return callStackForError();\n }\n };\n var specialPropKeyWarningShown, didWarnAboutOldJSXRuntime;\n var didWarnAboutElementRef = {};\n var unknownOwnerDebugStack = deprecatedAPIs.react_stack_bottom_frame.bind(\n deprecatedAPIs,\n UnknownOwner\n )();\n var unknownOwnerDebugTask = createTask(getTaskName(UnknownOwner));\n var didWarnAboutMaps = !1,\n userProvidedKeyEscapeRegex = /\\/+/g,\n reportGlobalError =\n \"function\" === typeof reportError\n ? reportError\n : function (error) {\n if (\n \"object\" === typeof window &&\n \"function\" === typeof window.ErrorEvent\n ) {\n var event = new window.ErrorEvent(\"error\", {\n bubbles: !0,\n cancelable: !0,\n message:\n \"object\" === typeof error &&\n null !== error &&\n \"string\" === typeof error.message\n ? String(error.message)\n : String(error),\n error: error\n });\n if (!window.dispatchEvent(event)) return;\n } else if (\n \"object\" === typeof process &&\n \"function\" === typeof process.emit\n ) {\n process.emit(\"uncaughtException\", error);\n return;\n }\n console.error(error);\n },\n didWarnAboutMessageChannel = !1,\n enqueueTaskImpl = null,\n actScopeDepth = 0,\n didWarnNoAwaitAct = !1,\n isFlushing = !1,\n queueSeveralMicrotasks =\n \"function\" === typeof queueMicrotask\n ? function (callback) {\n queueMicrotask(function () {\n return queueMicrotask(callback);\n });\n }\n : enqueueTask;\n deprecatedAPIs = Object.freeze({\n __proto__: null,\n c: function (size) {\n return resolveDispatcher().useMemoCache(size);\n }\n });\n var fnName = {\n map: mapChildren,\n forEach: function (children, forEachFunc, forEachContext) {\n mapChildren(\n children,\n function () {\n forEachFunc.apply(this, arguments);\n },\n forEachContext\n );\n },\n count: function (children) {\n var n = 0;\n mapChildren(children, function () {\n n++;\n });\n return n;\n },\n toArray: function (children) {\n return (\n mapChildren(children, function (child) {\n return child;\n }) || []\n );\n },\n only: function (children) {\n if (!isValidElement(children))\n throw Error(\n \"React.Children.only expected to receive a single React element child.\"\n );\n return children;\n }\n };\n exports.Activity = REACT_ACTIVITY_TYPE;\n exports.Children = fnName;\n exports.Component = Component;\n exports.Fragment = REACT_FRAGMENT_TYPE;\n exports.Profiler = REACT_PROFILER_TYPE;\n exports.PureComponent = PureComponent;\n exports.StrictMode = REACT_STRICT_MODE_TYPE;\n exports.Suspense = REACT_SUSPENSE_TYPE;\n exports.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE =\n ReactSharedInternals;\n exports.__COMPILER_RUNTIME = deprecatedAPIs;\n exports.act = function (callback) {\n var prevActQueue = ReactSharedInternals.actQueue,\n prevActScopeDepth = actScopeDepth;\n actScopeDepth++;\n var queue = (ReactSharedInternals.actQueue =\n null !== prevActQueue ? prevActQueue : []),\n didAwaitActCall = !1;\n try {\n var result = callback();\n } catch (error) {\n ReactSharedInternals.thrownErrors.push(error);\n }\n if (0 < ReactSharedInternals.thrownErrors.length)\n throw (\n (popActScope(prevActQueue, prevActScopeDepth),\n (callback = aggregateErrors(ReactSharedInternals.thrownErrors)),\n (ReactSharedInternals.thrownErrors.length = 0),\n callback)\n );\n if (\n null !== result &&\n \"object\" === typeof result &&\n \"function\" === typeof result.then\n ) {\n var thenable = result;\n queueSeveralMicrotasks(function () {\n didAwaitActCall ||\n didWarnNoAwaitAct ||\n ((didWarnNoAwaitAct = !0),\n console.error(\n \"You called act(async () => ...) without await. This could lead to unexpected testing behaviour, interleaving multiple act calls and mixing their scopes. You should - await act(async () => ...);\"\n ));\n });\n return {\n then: function (resolve, reject) {\n didAwaitActCall = !0;\n thenable.then(\n function (returnValue) {\n popActScope(prevActQueue, prevActScopeDepth);\n if (0 === prevActScopeDepth) {\n try {\n flushActQueue(queue),\n enqueueTask(function () {\n return recursivelyFlushAsyncActWork(\n returnValue,\n resolve,\n reject\n );\n });\n } catch (error$0) {\n ReactSharedInternals.thrownErrors.push(error$0);\n }\n if (0 < ReactSharedInternals.thrownErrors.length) {\n var _thrownError = aggregateErrors(\n ReactSharedInternals.thrownErrors\n );\n ReactSharedInternals.thrownErrors.length = 0;\n reject(_thrownError);\n }\n } else resolve(returnValue);\n },\n function (error) {\n popActScope(prevActQueue, prevActScopeDepth);\n 0 < ReactSharedInternals.thrownErrors.length\n ? ((error = aggregateErrors(\n ReactSharedInternals.thrownErrors\n )),\n (ReactSharedInternals.thrownErrors.length = 0),\n reject(error))\n : reject(error);\n }\n );\n }\n };\n }\n var returnValue$jscomp$0 = result;\n popActScope(prevActQueue, prevActScopeDepth);\n 0 === prevActScopeDepth &&\n (flushActQueue(queue),\n 0 !== queue.length &&\n queueSeveralMicrotasks(function () {\n didAwaitActCall ||\n didWarnNoAwaitAct ||\n ((didWarnNoAwaitAct = !0),\n console.error(\n \"A component suspended inside an `act` scope, but the `act` call was not awaited. When testing React components that depend on asynchronous data, you must await the result:\\n\\nawait act(() => ...)\"\n ));\n }),\n (ReactSharedInternals.actQueue = null));\n if (0 < ReactSharedInternals.thrownErrors.length)\n throw (\n ((callback = aggregateErrors(ReactSharedInternals.thrownErrors)),\n (ReactSharedInternals.thrownErrors.length = 0),\n callback)\n );\n return {\n then: function (resolve, reject) {\n didAwaitActCall = !0;\n 0 === prevActScopeDepth\n ? ((ReactSharedInternals.actQueue = queue),\n enqueueTask(function () {\n return recursivelyFlushAsyncActWork(\n returnValue$jscomp$0,\n resolve,\n reject\n );\n }))\n : resolve(returnValue$jscomp$0);\n }\n };\n };\n exports.cache = function (fn) {\n return function () {\n return fn.apply(null, arguments);\n };\n };\n exports.cacheSignal = function () {\n return null;\n };\n exports.captureOwnerStack = function () {\n var getCurrentStack = ReactSharedInternals.getCurrentStack;\n return null === getCurrentStack ? null : getCurrentStack();\n };\n exports.cloneElement = function (element, config, children) {\n if (null === element || void 0 === element)\n throw Error(\n \"The argument must be a React element, but you passed \" +\n element +\n \".\"\n );\n var props = assign({}, element.props),\n key = element.key,\n owner = element._owner;\n if (null != config) {\n var JSCompiler_inline_result;\n a: {\n if (\n hasOwnProperty.call(config, \"ref\") &&\n (JSCompiler_inline_result = Object.getOwnPropertyDescriptor(\n config,\n \"ref\"\n ).get) &&\n JSCompiler_inline_result.isReactWarning\n ) {\n JSCompiler_inline_result = !1;\n break a;\n }\n JSCompiler_inline_result = void 0 !== config.ref;\n }\n JSCompiler_inline_result && (owner = getOwner());\n hasValidKey(config) &&\n (checkKeyStringCoercion(config.key), (key = \"\" + config.key));\n for (propName in config)\n !hasOwnProperty.call(config, propName) ||\n \"key\" === propName ||\n \"__self\" === propName ||\n \"__source\" === propName ||\n (\"ref\" === propName && void 0 === config.ref) ||\n (props[propName] = config[propName]);\n }\n var propName = arguments.length - 2;\n if (1 === propName) props.children = children;\n else if (1 < propName) {\n JSCompiler_inline_result = Array(propName);\n for (var i = 0; i < propName; i++)\n JSCompiler_inline_result[i] = arguments[i + 2];\n props.children = JSCompiler_inline_result;\n }\n props = ReactElement(\n element.type,\n key,\n props,\n owner,\n element._debugStack,\n element._debugTask\n );\n for (key = 2; key < arguments.length; key++)\n validateChildKeys(arguments[key]);\n return props;\n };\n exports.createContext = function (defaultValue) {\n defaultValue = {\n $$typeof: REACT_CONTEXT_TYPE,\n _currentValue: defaultValue,\n _currentValue2: defaultValue,\n _threadCount: 0,\n Provider: null,\n Consumer: null\n };\n defaultValue.Provider = defaultValue;\n defaultValue.Consumer = {\n $$typeof: REACT_CONSUMER_TYPE,\n _context: defaultValue\n };\n defaultValue._currentRenderer = null;\n defaultValue._currentRenderer2 = null;\n return defaultValue;\n };\n exports.createElement = function (type, config, children) {\n for (var i = 2; i < arguments.length; i++)\n validateChildKeys(arguments[i]);\n i = {};\n var key = null;\n if (null != config)\n for (propName in (didWarnAboutOldJSXRuntime ||\n !(\"__self\" in config) ||\n \"key\" in config ||\n ((didWarnAboutOldJSXRuntime = !0),\n console.warn(\n \"Your app (or one of its dependencies) is using an outdated JSX transform. Update to the modern JSX transform for faster performance: https://react.dev/link/new-jsx-transform\"\n )),\n hasValidKey(config) &&\n (checkKeyStringCoercion(config.key), (key = \"\" + config.key)),\n config))\n hasOwnProperty.call(config, propName) &&\n \"key\" !== propName &&\n \"__self\" !== propName &&\n \"__source\" !== propName &&\n (i[propName] = config[propName]);\n var childrenLength = arguments.length - 2;\n if (1 === childrenLength) i.children = children;\n else if (1 < childrenLength) {\n for (\n var childArray = Array(childrenLength), _i = 0;\n _i < childrenLength;\n _i++\n )\n childArray[_i] = arguments[_i + 2];\n Object.freeze && Object.freeze(childArray);\n i.children = childArray;\n }\n if (type && type.defaultProps)\n for (propName in ((childrenLength = type.defaultProps), childrenLength))\n void 0 === i[propName] && (i[propName] = childrenLength[propName]);\n key &&\n defineKeyPropWarningGetter(\n i,\n \"function\" === typeof type\n ? type.displayName || type.name || \"Unknown\"\n : type\n );\n var propName = 1e4 > ReactSharedInternals.recentlyCreatedOwnerStacks++;\n return ReactElement(\n type,\n key,\n i,\n getOwner(),\n propName ? Error(\"react-stack-top-frame\") : unknownOwnerDebugStack,\n propName ? createTask(getTaskName(type)) : unknownOwnerDebugTask\n );\n };\n exports.createRef = function () {\n var refObject = { current: null };\n Object.seal(refObject);\n return refObject;\n };\n exports.forwardRef = function (render) {\n null != render && render.$$typeof === REACT_MEMO_TYPE\n ? console.error(\n \"forwardRef requires a render function but received a `memo` component. Instead of forwardRef(memo(...)), use memo(forwardRef(...)).\"\n )\n : \"function\" !== typeof render\n ? console.error(\n \"forwardRef requires a render function but was given %s.\",\n null === render ? \"null\" : typeof render\n )\n : 0 !== render.length &&\n 2 !== render.length &&\n console.error(\n \"forwardRef render functions accept exactly two parameters: props and ref. %s\",\n 1 === render.length\n ? \"Did you forget to use the ref parameter?\"\n : \"Any additional parameter will be undefined.\"\n );\n null != render &&\n null != render.defaultProps &&\n console.error(\n \"forwardRef render functions do not support defaultProps. Did you accidentally pass a React component?\"\n );\n var elementType = { $$typeof: REACT_FORWARD_REF_TYPE, render: render },\n ownName;\n Object.defineProperty(elementType, \"displayName\", {\n enumerable: !1,\n configurable: !0,\n get: function () {\n return ownName;\n },\n set: function (name) {\n ownName = name;\n render.name ||\n render.displayName ||\n (Object.defineProperty(render, \"name\", { value: name }),\n (render.displayName = name));\n }\n });\n return elementType;\n };\n exports.isValidElement = isValidElement;\n exports.lazy = function (ctor) {\n ctor = { _status: -1, _result: ctor };\n var lazyType = {\n $$typeof: REACT_LAZY_TYPE,\n _payload: ctor,\n _init: lazyInitializer\n },\n ioInfo = {\n name: \"lazy\",\n start: -1,\n end: -1,\n value: null,\n owner: null,\n debugStack: Error(\"react-stack-top-frame\"),\n debugTask: console.createTask ? console.createTask(\"lazy()\") : null\n };\n ctor._ioInfo = ioInfo;\n lazyType._debugInfo = [{ awaited: ioInfo }];\n return lazyType;\n };\n exports.memo = function (type, compare) {\n null == type &&\n console.error(\n \"memo: The first argument must be a component. Instead received: %s\",\n null === type ? \"null\" : typeof type\n );\n compare = {\n $$typeof: REACT_MEMO_TYPE,\n type: type,\n compare: void 0 === compare ? null : compare\n };\n var ownName;\n Object.defineProperty(compare, \"displayName\", {\n enumerable: !1,\n configurable: !0,\n get: function () {\n return ownName;\n },\n set: function (name) {\n ownName = name;\n type.name ||\n type.displayName ||\n (Object.defineProperty(type, \"name\", { value: name }),\n (type.displayName = name));\n }\n });\n return compare;\n };\n exports.startTransition = function (scope) {\n var prevTransition = ReactSharedInternals.T,\n currentTransition = {};\n currentTransition._updatedFibers = new Set();\n ReactSharedInternals.T = currentTransition;\n try {\n var returnValue = scope(),\n onStartTransitionFinish = ReactSharedInternals.S;\n null !== onStartTransitionFinish &&\n onStartTransitionFinish(currentTransition, returnValue);\n \"object\" === typeof returnValue &&\n null !== returnValue &&\n \"function\" === typeof returnValue.then &&\n (ReactSharedInternals.asyncTransitions++,\n returnValue.then(releaseAsyncTransition, releaseAsyncTransition),\n returnValue.then(noop, reportGlobalError));\n } catch (error) {\n reportGlobalError(error);\n } finally {\n null === prevTransition &&\n currentTransition._updatedFibers &&\n ((scope = currentTransition._updatedFibers.size),\n currentTransition._updatedFibers.clear(),\n 10 < scope &&\n console.warn(\n \"Detected a large number of updates inside startTransition. If this is due to a subscription please re-write it to use React provided hooks. Otherwise concurrent mode guarantees are off the table.\"\n )),\n null !== prevTransition &&\n null !== currentTransition.types &&\n (null !== prevTransition.types &&\n prevTransition.types !== currentTransition.types &&\n console.error(\n \"We expected inner Transitions to have transferred the outer types set and that you cannot add to the outer Transition while inside the inner.This is a bug in React.\"\n ),\n (prevTransition.types = currentTransition.types)),\n (ReactSharedInternals.T = prevTransition);\n }\n };\n exports.unstable_useCacheRefresh = function () {\n return resolveDispatcher().useCacheRefresh();\n };\n exports.use = function (usable) {\n return resolveDispatcher().use(usable);\n };\n exports.useActionState = function (action, initialState, permalink) {\n return resolveDispatcher().useActionState(\n action,\n initialState,\n permalink\n );\n };\n exports.useCallback = function (callback, deps) {\n return resolveDispatcher().useCallback(callback, deps);\n };\n exports.useContext = function (Context) {\n var dispatcher = resolveDispatcher();\n Context.$$typeof === REACT_CONSUMER_TYPE &&\n console.error(\n \"Calling useContext(Context.Consumer) is not supported and will cause bugs. Did you mean to call useContext(Context) instead?\"\n );\n return dispatcher.useContext(Context);\n };\n exports.useDebugValue = function (value, formatterFn) {\n return resolveDispatcher().useDebugValue(value, formatterFn);\n };\n exports.useDeferredValue = function (value, initialValue) {\n return resolveDispatcher().useDeferredValue(value, initialValue);\n };\n exports.useEffect = function (create, deps) {\n null == create &&\n console.warn(\n \"React Hook useEffect requires an effect callback. Did you forget to pass a callback to the hook?\"\n );\n return resolveDispatcher().useEffect(create, deps);\n };\n exports.useEffectEvent = function (callback) {\n return resolveDispatcher().useEffectEvent(callback);\n };\n exports.useId = function () {\n return resolveDispatcher().useId();\n };\n exports.useImperativeHandle = function (ref, create, deps) {\n return resolveDispatcher().useImperativeHandle(ref, create, deps);\n };\n exports.useInsertionEffect = function (create, deps) {\n null == create &&\n console.warn(\n \"React Hook useInsertionEffect requires an effect callback. Did you forget to pass a callback to the hook?\"\n );\n return resolveDispatcher().useInsertionEffect(create, deps);\n };\n exports.useLayoutEffect = function (create, deps) {\n null == create &&\n console.warn(\n \"React Hook useLayoutEffect requires an effect callback. Did you forget to pass a callback to the hook?\"\n );\n return resolveDispatcher().useLayoutEffect(create, deps);\n };\n exports.useMemo = function (create, deps) {\n return resolveDispatcher().useMemo(create, deps);\n };\n exports.useOptimistic = function (passthrough, reducer) {\n return resolveDispatcher().useOptimistic(passthrough, reducer);\n };\n exports.useReducer = function (reducer, initialArg, init) {\n return resolveDispatcher().useReducer(reducer, initialArg, init);\n };\n exports.useRef = function (initialValue) {\n return resolveDispatcher().useRef(initialValue);\n };\n exports.useState = function (initialState) {\n return resolveDispatcher().useState(initialState);\n };\n exports.useSyncExternalStore = function (\n subscribe,\n getSnapshot,\n getServerSnapshot\n ) {\n return resolveDispatcher().useSyncExternalStore(\n subscribe,\n getSnapshot,\n getServerSnapshot\n );\n };\n exports.useTransition = function () {\n return resolveDispatcher().useTransition();\n };\n exports.version = \"19.2.4\";\n \"undefined\" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ &&\n \"function\" ===\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop &&\n __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(Error());\n })();\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react.production.js');\n} else {\n module.exports = require('./cjs/react.development.js');\n}\n","\"use strict\";\n\nfunction _getRequireWildcardCache(nodeInterop) {\n if (typeof WeakMap !== \"function\") return null;\n\n var cacheBabelInterop = new WeakMap();\n var cacheNodeInterop = new WeakMap();\n\n return (_getRequireWildcardCache = function(nodeInterop) {\n return nodeInterop ? cacheNodeInterop : cacheBabelInterop;\n })(nodeInterop);\n}\nfunction _interop_require_wildcard(obj, nodeInterop) {\n if (!nodeInterop && obj && obj.__esModule) return obj;\n if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") return { default: obj };\n\n var cache = _getRequireWildcardCache(nodeInterop);\n\n if (cache && cache.has(obj)) return cache.get(obj);\n\n var newObj = { __proto__: null };\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n\n for (var key in obj) {\n if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n if (desc && (desc.get || desc.set)) Object.defineProperty(newObj, key, desc);\n else newObj[key] = obj[key];\n }\n }\n\n newObj.default = obj;\n\n if (cache) cache.set(obj, newObj);\n\n return newObj;\n}\nexports._ = _interop_require_wildcard;\n","\"use strict\";\n\nfunction _interop_require_default(obj) {\n return obj && obj.__esModule ? obj : { default: obj };\n}\nexports._ = _interop_require_default;\n","'use client'\n\nimport type {\n FocusAndScrollRef,\n PrefetchKind,\n} from '../../client/components/router-reducer/router-reducer-types'\nimport type { Params } from '../../server/request/params'\nimport type {\n FlightRouterState,\n FlightSegmentPath,\n CacheNode,\n LoadingModuleData,\n} from './app-router-types'\nimport React from 'react'\n\nexport interface NavigateOptions {\n scroll?: boolean\n /**\n * Transition types to apply when navigating. These types are passed to\n * [`React.addTransitionType`](https://react.dev/reference/react/addTransitionType)\n * inside the navigation transition, enabling\n * [`<ViewTransition>`](https://react.dev/reference/react/ViewTransition) components\n * to apply different animations based on the type of navigation.\n */\n transitionTypes?: string[]\n}\n\nexport interface PrefetchOptions {\n kind: PrefetchKind\n onInvalidate?: () => void\n}\n\nexport interface AppRouterInstance {\n /**\n * Navigate to the previous history entry.\n */\n back(): void\n /**\n * Navigate to the next history entry.\n */\n forward(): void\n /**\n * Refresh the current page.\n */\n refresh(): void\n /**\n * Refresh the current page. Use in development only.\n * @internal\n */\n hmrRefresh(): void\n /**\n * Navigate to the provided href.\n * Pushes a new history entry.\n */\n push(href: string, options?: NavigateOptions): void\n /**\n * Navigate to the provided href.\n * Replaces the current history entry.\n */\n replace(href: string, options?: NavigateOptions): void\n /**\n * Prefetch the provided href.\n */\n prefetch(href: string, options?: PrefetchOptions): void\n /**\n * Perform a gesture navigation using prefetched data.\n * Only available when experimental.gestureTransition is enabled.\n * @experimental\n */\n experimental_gesturePush?(href: string, options?: NavigateOptions): void\n}\n\nexport const AppRouterContext = React.createContext<AppRouterInstance | null>(\n null\n)\nexport const LayoutRouterContext = React.createContext<{\n parentTree: FlightRouterState\n parentCacheNode: CacheNode\n parentSegmentPath: FlightSegmentPath | null\n parentParams: Params\n parentLoadingData: LoadingModuleData | null\n debugNameContext: string\n url: string\n isActive: boolean\n} | null>(null)\n\nexport const GlobalLayoutRouterContext = React.createContext<{\n tree: FlightRouterState\n focusAndScrollRef: FocusAndScrollRef\n nextUrl: string | null\n previousNextUrl: string | null\n}>(null as any)\n\nexport const TemplateContext = React.createContext<React.ReactNode>(null as any)\n\nif (process.env.NODE_ENV !== 'production') {\n AppRouterContext.displayName = 'AppRouterContext'\n LayoutRouterContext.displayName = 'LayoutRouterContext'\n GlobalLayoutRouterContext.displayName = 'GlobalLayoutRouterContext'\n TemplateContext.displayName = 'TemplateContext'\n}\n\nexport const MissingSlotContext = React.createContext<Set<string>>(new Set())\n","/**\n * ReadonlyURLSearchParams implementation shared between client and server.\n * This file is intentionally not marked as 'use client' or 'use server'\n * so it can be imported by both environments.\n */\n\n/** @internal */\nclass ReadonlyURLSearchParamsError extends Error {\n constructor() {\n super(\n 'Method unavailable on `ReadonlyURLSearchParams`. Read more: https://nextjs.org/docs/app/api-reference/functions/use-search-params#updating-searchparams'\n )\n }\n}\n\n/**\n * A read-only version of URLSearchParams that throws errors when mutation methods are called.\n * This ensures that the URLSearchParams returned by useSearchParams() cannot be mutated.\n */\nexport class ReadonlyURLSearchParams extends URLSearchParams {\n /** @deprecated Method unavailable on `ReadonlyURLSearchParams`. Read more: https://nextjs.org/docs/app/api-reference/functions/use-search-params#updating-searchparams */\n append() {\n throw new ReadonlyURLSearchParamsError()\n }\n /** @deprecated Method unavailable on `ReadonlyURLSearchParams`. Read more: https://nextjs.org/docs/app/api-reference/functions/use-search-params#updating-searchparams */\n delete() {\n throw new ReadonlyURLSearchParamsError()\n }\n /** @deprecated Method unavailable on `ReadonlyURLSearchParams`. Read more: https://nextjs.org/docs/app/api-reference/functions/use-search-params#updating-searchparams */\n set() {\n throw new ReadonlyURLSearchParamsError()\n }\n /** @deprecated Method unavailable on `ReadonlyURLSearchParams`. Read more: https://nextjs.org/docs/app/api-reference/functions/use-search-params#updating-searchparams */\n sort() {\n throw new ReadonlyURLSearchParamsError()\n }\n}\n","'use client'\n\nimport { createContext } from 'react'\nimport type { Params } from '../../server/request/params'\nimport { ReadonlyURLSearchParams } from '../../client/components/readonly-url-search-params'\n\nexport const SearchParamsContext = createContext<URLSearchParams | null>(null)\nexport const PathnameContext = createContext<string | null>(null)\nexport const PathParamsContext = createContext<Params | null>(null)\n\n// Dev-only context for Suspense DevTools instrumentation\n// These promises are used to track navigation hook usage in React DevTools\nexport type InstrumentedPromise<T> = Promise<T> & {\n status: 'fulfilled'\n value: T\n displayName: string\n}\n\nexport type NavigationPromises = {\n pathname: InstrumentedPromise<string>\n searchParams: InstrumentedPromise<ReadonlyURLSearchParams>\n params: InstrumentedPromise<Params>\n // Layout segment hooks (updated at each layout boundary)\n selectedLayoutSegmentPromises?: Map<\n string,\n InstrumentedPromise<string | null>\n >\n selectedLayoutSegmentsPromises?: Map<string, InstrumentedPromise<string[]>>\n}\n\nexport const NavigationPromisesContext =\n createContext<NavigationPromises | null>(null)\n\n// Creates an instrumented promise for Suspense DevTools\n// These promises are always fulfilled and exist purely for\n// tracking in React's Suspense DevTools.\nexport function createDevToolsInstrumentedPromise<T>(\n displayName: string,\n value: T\n): InstrumentedPromise<T> {\n const promise = Promise.resolve(value) as InstrumentedPromise<T>\n promise.status = 'fulfilled'\n promise.value = value\n promise.displayName = `${displayName} (SSR)`\n return promise\n}\n\nexport { ReadonlyURLSearchParams }\n\nif (process.env.NODE_ENV !== 'production') {\n SearchParamsContext.displayName = 'SearchParamsContext'\n PathnameContext.displayName = 'PathnameContext'\n PathParamsContext.displayName = 'PathParamsContext'\n NavigationPromisesContext.displayName = 'NavigationPromisesContext'\n}\n","import type { FlightRouterState, Segment } from './app-router-types'\n\nexport function getSegmentValue(segment: Segment) {\n return Array.isArray(segment) ? segment[1] : segment\n}\n\nexport function isGroupSegment(segment: string) {\n // Use array[0] for performant purpose\n return segment[0] === '(' && segment.endsWith(')')\n}\n\nexport function isParallelRouteSegment(segment: string) {\n return segment.startsWith('@') && segment !== '@children'\n}\n\nexport function addSearchParamsIfPageSegment(\n segment: Segment,\n searchParams: Record<string, string | string[] | undefined>\n) {\n const isPageSegment = segment.includes(PAGE_SEGMENT_KEY)\n\n if (isPageSegment) {\n const stringifiedQuery = JSON.stringify(searchParams)\n return stringifiedQuery !== '{}'\n ? PAGE_SEGMENT_KEY + '?' + stringifiedQuery\n : PAGE_SEGMENT_KEY\n }\n\n return segment\n}\n\nexport function computeSelectedLayoutSegment(\n segments: string[] | null,\n parallelRouteKey: string\n): string | null {\n if (!segments || segments.length === 0) {\n return null\n }\n\n // For 'children', use first segment; for other parallel routes, use last segment\n const rawSegment =\n parallelRouteKey === 'children'\n ? segments[0]\n : segments[segments.length - 1]\n\n // If the default slot is showing, return null since it's not technically \"selected\" (it's a fallback)\n // Returning an internal value like `__DEFAULT__` would be confusing\n return rawSegment === DEFAULT_SEGMENT_KEY ? null : rawSegment\n}\n\n/** Get the canonical parameters from the current level to the leaf node. */\nexport function getSelectedLayoutSegmentPath(\n tree: FlightRouterState,\n parallelRouteKey: string,\n first = true,\n segmentPath: string[] = []\n): string[] {\n let node: FlightRouterState\n if (first) {\n // Use the provided parallel route key on the first parallel route\n node = tree[1][parallelRouteKey]\n } else {\n // After first parallel route prefer children, if there's no children pick the first parallel route.\n const parallelRoutes = tree[1]\n node = parallelRoutes.children ?? Object.values(parallelRoutes)[0]\n }\n\n if (!node) return segmentPath\n const segment = node[0]\n\n let segmentValue = getSegmentValue(segment)\n\n if (!segmentValue || segmentValue.startsWith(PAGE_SEGMENT_KEY)) {\n return segmentPath\n }\n\n segmentPath.push(segmentValue)\n\n return getSelectedLayoutSegmentPath(\n node,\n parallelRouteKey,\n false,\n segmentPath\n )\n}\n\nexport const PAGE_SEGMENT_KEY = '__PAGE__'\nexport const DEFAULT_SEGMENT_KEY = '__DEFAULT__'\nexport const NOT_FOUND_SEGMENT_KEY = '/_not-found'\n","'use client'\n\nimport React, { useContext } from 'react'\n\nexport type ServerInsertedHTMLHook = (callbacks: () => React.ReactNode) => void\n\n// Use `React.createContext` to avoid errors from the RSC checks because\n// it can't be imported directly in Server Components:\n//\n// import { createContext } from 'react'\n//\n// More info: https://github.com/vercel/next.js/pull/40686\nexport const ServerInsertedHTMLContext =\n React.createContext<ServerInsertedHTMLHook | null>(null as any)\n\nexport function useServerInsertedHTML(callback: () => React.ReactNode): void {\n const addInsertedServerHTMLCallback = useContext(ServerInsertedHTMLContext)\n // Should have no effects on client where there's no flush effects provider\n if (addInsertedServerHTMLCallback) {\n addInsertedServerHTMLCallback(callback)\n }\n}\n","export class UnrecognizedActionError extends Error {\n constructor(...args: ConstructorParameters<typeof Error>) {\n super(...args)\n this.name = 'UnrecognizedActionError'\n }\n}\n\n/**\n * Check whether a server action call failed because the server action was not recognized by the server.\n * This can happen if the client and the server are not from the same deployment.\n *\n * Example usage:\n * ```ts\n * try {\n * await myServerAction();\n * } catch (err) {\n * if (unstable_isUnrecognizedActionError(err)) {\n * // The client is from a different deployment than the server.\n * // Reloading the page will fix this mismatch.\n * window.alert(\"Please refresh the page and try again\");\n * return;\n * }\n * }\n * ```\n * */\nexport function unstable_isUnrecognizedActionError(\n error: unknown\n): error is UnrecognizedActionError {\n return !!(\n error &&\n typeof error === 'object' &&\n error instanceof UnrecognizedActionError\n )\n}\n","export enum RedirectStatusCode {\n SeeOther = 303,\n TemporaryRedirect = 307,\n PermanentRedirect = 308,\n}\n","import { RedirectStatusCode } from './redirect-status-code'\n\nexport const REDIRECT_ERROR_CODE = 'NEXT_REDIRECT'\n\nexport type RedirectType = 'push' | 'replace'\n\nexport type RedirectError = Error & {\n digest: `${typeof REDIRECT_ERROR_CODE};${RedirectType};${string};${RedirectStatusCode};`\n}\n\n/**\n * Checks an error to determine if it's an error generated by the\n * `redirect(url)` helper.\n *\n * @param error the error that may reference a redirect error\n * @returns true if the error is a redirect error\n */\nexport function isRedirectError(error: unknown): error is RedirectError {\n if (\n typeof error !== 'object' ||\n error === null ||\n !('digest' in error) ||\n typeof error.digest !== 'string'\n ) {\n return false\n }\n\n const digest = error.digest.split(';')\n const [errorCode, type] = digest\n const destination = digest.slice(2, -2).join(';')\n const status = digest.at(-2)\n\n const statusCode = Number(status)\n\n return (\n errorCode === REDIRECT_ERROR_CODE &&\n (type === 'replace' || type === 'push') &&\n typeof destination === 'string' &&\n !isNaN(statusCode) &&\n statusCode in RedirectStatusCode\n )\n}\n","import type { AsyncLocalStorage } from 'async_hooks'\n\nconst sharedAsyncLocalStorageNotAvailableError = new Error(\n 'Invariant: AsyncLocalStorage accessed in runtime where it is not available'\n)\n\nclass FakeAsyncLocalStorage<Store extends {}>\n implements AsyncLocalStorage<Store>\n{\n disable(): void {\n throw sharedAsyncLocalStorageNotAvailableError\n }\n\n getStore(): Store | undefined {\n // This fake implementation of AsyncLocalStorage always returns `undefined`.\n return undefined\n }\n\n run<R>(): R {\n throw sharedAsyncLocalStorageNotAvailableError\n }\n\n exit<R>(): R {\n throw sharedAsyncLocalStorageNotAvailableError\n }\n\n enterWith(): void {\n throw sharedAsyncLocalStorageNotAvailableError\n }\n\n static bind<T>(fn: T): T {\n return fn\n }\n}\n\nconst maybeGlobalAsyncLocalStorage =\n typeof globalThis !== 'undefined' && (globalThis as any).AsyncLocalStorage\n\nexport function createAsyncLocalStorage<\n Store extends {},\n>(): AsyncLocalStorage<Store> {\n if (maybeGlobalAsyncLocalStorage) {\n return new maybeGlobalAsyncLocalStorage()\n }\n return new FakeAsyncLocalStorage()\n}\n\nexport function bindSnapshot<T>(\n // WARNING: Don't pass a named function to this argument! See: https://github.com/facebook/react/pull/34911\n fn: T\n): T {\n if (maybeGlobalAsyncLocalStorage) {\n return maybeGlobalAsyncLocalStorage.bind(fn)\n }\n return FakeAsyncLocalStorage.bind(fn)\n}\n\nexport function createSnapshot(): <R, TArgs extends any[]>(\n fn: (...args: TArgs) => R,\n ...args: TArgs\n) => R {\n if (maybeGlobalAsyncLocalStorage) {\n return maybeGlobalAsyncLocalStorage.snapshot()\n }\n return function (fn: any, ...args: any[]) {\n return fn(...args)\n }\n}\n","import type { ActionAsyncStorage } from './action-async-storage.external'\nimport { createAsyncLocalStorage } from './async-local-storage'\n\nexport const actionAsyncStorageInstance: ActionAsyncStorage =\n createAsyncLocalStorage()\n","import type { AsyncLocalStorage } from 'async_hooks'\n\n// Share the instance module in the next-shared layer\nimport { actionAsyncStorageInstance } from './action-async-storage-instance' with { 'turbopack-transition': 'next-shared' }\nexport interface ActionStore {\n readonly isAction?: boolean\n readonly isAppRoute?: boolean\n}\n\nexport type ActionAsyncStorage = AsyncLocalStorage<ActionStore>\n\nexport { actionAsyncStorageInstance as actionAsyncStorage }\n","import { RedirectStatusCode } from './redirect-status-code'\nimport {\n type RedirectType,\n type RedirectError,\n isRedirectError,\n REDIRECT_ERROR_CODE,\n} from './redirect-error'\n\nconst actionAsyncStorage =\n typeof window === 'undefined'\n ? (\n require('../../server/app-render/action-async-storage.external') as typeof import('../../server/app-render/action-async-storage.external')\n ).actionAsyncStorage\n : undefined\n\nexport function getRedirectError(\n url: string,\n type: RedirectType,\n statusCode: RedirectStatusCode = RedirectStatusCode.TemporaryRedirect\n): RedirectError {\n const error = new Error(REDIRECT_ERROR_CODE) as RedirectError\n error.digest = `${REDIRECT_ERROR_CODE};${type};${url};${statusCode};`\n return error\n}\n\n/**\n * This function allows you to redirect the user to another URL. It can be used in\n * [Server Components](https://nextjs.org/docs/app/building-your-application/rendering/server-components),\n * [Route Handlers](https://nextjs.org/docs/app/building-your-application/routing/route-handlers), and\n * [Server Actions](https://nextjs.org/docs/app/building-your-application/data-fetching/server-actions-and-mutations).\n *\n * - In a Server Component, this will insert a meta tag to redirect the user to the target page.\n * - In a Route Handler or Server Action, it will serve a 307/303 to the caller.\n * - In a Server Action, type defaults to 'push' and 'replace' elsewhere.\n *\n * Read more: [Next.js Docs: `redirect`](https://nextjs.org/docs/app/api-reference/functions/redirect)\n */\nexport function redirect(\n /** The URL to redirect to */\n url: string,\n type?: RedirectType\n): never {\n type ??= actionAsyncStorage?.getStore()?.isAction ? 'push' : 'replace'\n\n throw getRedirectError(url, type, RedirectStatusCode.TemporaryRedirect)\n}\n\n/**\n * This function allows you to redirect the user to another URL. It can be used in\n * [Server Components](https://nextjs.org/docs/app/building-your-application/rendering/server-components),\n * [Route Handlers](https://nextjs.org/docs/app/building-your-application/routing/route-handlers), and\n * [Server Actions](https://nextjs.org/docs/app/building-your-application/data-fetching/server-actions-and-mutations).\n *\n * - In a Server Component, this will insert a meta tag to redirect the user to the target page.\n * - In a Route Handler or Server Action, it will serve a 308/303 to the caller.\n *\n * Read more: [Next.js Docs: `redirect`](https://nextjs.org/docs/app/api-reference/functions/redirect)\n */\nexport function permanentRedirect(\n /** The URL to redirect to */\n url: string,\n type: RedirectType = 'replace'\n): never {\n throw getRedirectError(url, type, RedirectStatusCode.PermanentRedirect)\n}\n\n/**\n * Returns the encoded URL from the error if it's a RedirectError, null\n * otherwise. Note that this does not validate the URL returned.\n *\n * @param error the error that may be a redirect error\n * @return the url if the error was a redirect error\n */\nexport function getURLFromRedirectError(error: RedirectError): string\nexport function getURLFromRedirectError(error: unknown): string | null {\n if (!isRedirectError(error)) return null\n\n // Slices off the beginning of the digest that contains the code and the\n // separating ';'.\n return error.digest.split(';').slice(2, -2).join(';')\n}\n\nexport function getRedirectTypeFromError(error: RedirectError): RedirectType {\n if (!isRedirectError(error)) {\n throw new Error('Not a redirect error')\n }\n\n return error.digest.split(';', 2)[1] as RedirectType\n}\n\nexport function getRedirectStatusCodeFromError(error: RedirectError): number {\n if (!isRedirectError(error)) {\n throw new Error('Not a redirect error')\n }\n\n return Number(error.digest.split(';').at(-2))\n}\n","export const HTTPAccessErrorStatus = {\n NOT_FOUND: 404,\n FORBIDDEN: 403,\n UNAUTHORIZED: 401,\n}\n\nconst ALLOWED_CODES = new Set(Object.values(HTTPAccessErrorStatus))\n\nexport const HTTP_ERROR_FALLBACK_ERROR_CODE = 'NEXT_HTTP_ERROR_FALLBACK'\n\nexport type HTTPAccessFallbackError = Error & {\n digest: `${typeof HTTP_ERROR_FALLBACK_ERROR_CODE};${string}`\n}\n\n/**\n * Checks an error to determine if it's an error generated by\n * the HTTP navigation APIs `notFound()`, `forbidden()` or `unauthorized()`.\n *\n * @param error the error that may reference a HTTP access error\n * @returns true if the error is a HTTP access error\n */\nexport function isHTTPAccessFallbackError(\n error: unknown\n): error is HTTPAccessFallbackError {\n if (\n typeof error !== 'object' ||\n error === null ||\n !('digest' in error) ||\n typeof error.digest !== 'string'\n ) {\n return false\n }\n const [prefix, httpStatus] = error.digest.split(';')\n\n return (\n prefix === HTTP_ERROR_FALLBACK_ERROR_CODE &&\n ALLOWED_CODES.has(Number(httpStatus))\n )\n}\n\nexport function getAccessFallbackHTTPStatus(\n error: HTTPAccessFallbackError\n): number {\n const httpStatus = error.digest.split(';')[1]\n return Number(httpStatus)\n}\n\nexport function getAccessFallbackErrorTypeByStatus(\n status: number\n): 'not-found' | 'forbidden' | 'unauthorized' | undefined {\n switch (status) {\n case 401:\n return 'unauthorized'\n case 403:\n return 'forbidden'\n case 404:\n return 'not-found'\n default:\n return\n }\n}\n","import {\n HTTP_ERROR_FALLBACK_ERROR_CODE,\n type HTTPAccessFallbackError,\n} from './http-access-fallback/http-access-fallback'\n\n/**\n * This function allows you to render the [not-found.js file](https://nextjs.org/docs/app/api-reference/file-conventions/not-found)\n * within a route segment as well as inject a tag.\n *\n * `notFound()` can be used in\n * [Server Components](https://nextjs.org/docs/app/building-your-application/rendering/server-components),\n * [Route Handlers](https://nextjs.org/docs/app/building-your-application/routing/route-handlers), and\n * [Server Actions](https://nextjs.org/docs/app/building-your-application/data-fetching/server-actions-and-mutations).\n *\n * - In a Server Component, this will insert a `<meta name=\"robots\" content=\"noindex\" />` meta tag and set the status code to 404.\n * - In a Route Handler or Server Action, it will serve a 404 to the caller.\n *\n * Read more: [Next.js Docs: `notFound`](https://nextjs.org/docs/app/api-reference/functions/not-found)\n */\n\nconst DIGEST = `${HTTP_ERROR_FALLBACK_ERROR_CODE};404`\n\nexport function notFound(): never {\n const error = new Error(DIGEST) as HTTPAccessFallbackError\n ;(error as HTTPAccessFallbackError).digest = DIGEST\n\n throw error\n}\n","import {\n HTTP_ERROR_FALLBACK_ERROR_CODE,\n type HTTPAccessFallbackError,\n} from './http-access-fallback/http-access-fallback'\n\n// TODO: Add `forbidden` docs\n/**\n * @experimental\n * This function allows you to render the [forbidden.js file](https://nextjs.org/docs/app/api-reference/file-conventions/forbidden)\n * within a route segment as well as inject a tag.\n *\n * `forbidden()` can be used in\n * [Server Components](https://nextjs.org/docs/app/building-your-application/rendering/server-components),\n * [Route Handlers](https://nextjs.org/docs/app/building-your-application/routing/route-handlers), and\n * [Server Actions](https://nextjs.org/docs/app/building-your-application/data-fetching/server-actions-and-mutations).\n *\n * Read more: [Next.js Docs: `forbidden`](https://nextjs.org/docs/app/api-reference/functions/forbidden)\n */\n\nconst DIGEST = `${HTTP_ERROR_FALLBACK_ERROR_CODE};403`\n\nexport function forbidden(): never {\n if (!process.env.__NEXT_EXPERIMENTAL_AUTH_INTERRUPTS) {\n throw new Error(\n `\\`forbidden()\\` is experimental and only allowed to be enabled when \\`experimental.authInterrupts\\` is enabled.`\n )\n }\n\n const error = new Error(DIGEST) as HTTPAccessFallbackError\n ;(error as HTTPAccessFallbackError).digest = DIGEST\n throw error\n}\n","import {\n HTTP_ERROR_FALLBACK_ERROR_CODE,\n type HTTPAccessFallbackError,\n} from './http-access-fallback/http-access-fallback'\n\n// TODO: Add `unauthorized` docs\n/**\n * @experimental\n * This function allows you to render the [unauthorized.js file](https://nextjs.org/docs/app/api-reference/file-conventions/unauthorized)\n * within a route segment as well as inject a tag.\n *\n * `unauthorized()` can be used in\n * [Server Components](https://nextjs.org/docs/app/building-your-application/rendering/server-components),\n * [Route Handlers](https://nextjs.org/docs/app/building-your-application/routing/route-handlers), and\n * [Server Actions](https://nextjs.org/docs/app/building-your-application/data-fetching/server-actions-and-mutations).\n *\n *\n * Read more: [Next.js Docs: `unauthorized`](https://nextjs.org/docs/app/api-reference/functions/unauthorized)\n */\n\nconst DIGEST = `${HTTP_ERROR_FALLBACK_ERROR_CODE};401`\n\nexport function unauthorized(): never {\n if (!process.env.__NEXT_EXPERIMENTAL_AUTH_INTERRUPTS) {\n throw new Error(\n `\\`unauthorized()\\` is experimental and only allowed to be used when \\`experimental.authInterrupts\\` is enabled.`\n )\n }\n\n const error = new Error(DIGEST) as HTTPAccessFallbackError\n ;(error as HTTPAccessFallbackError).digest = DIGEST\n throw error\n}\n","export class InvariantError extends Error {\n constructor(message: string, options?: ErrorOptions) {\n super(\n `Invariant: ${message.endsWith('.') ? message : message + '.'} This is a bug in Next.js.`,\n options\n )\n this.name = 'InvariantError'\n }\n}\n","export function createPromiseWithResolvers<T>(): PromiseWithResolvers<T> {\n // Shim of Stage 4 Promise.withResolvers proposal\n let resolve: (value: T | PromiseLike<T>) => void\n let reject: (reason: any) => void\n const promise = new Promise<T>((res, rej) => {\n resolve = res\n reject = rej\n })\n return { resolve: resolve!, reject: reject!, promise }\n}\n","import { InvariantError } from '../../shared/lib/invariant-error'\nimport { createPromiseWithResolvers } from '../../shared/lib/promise-with-resolvers'\n\nexport enum RenderStage {\n Before = 1,\n EarlyStatic = 2,\n Static = 3,\n EarlyRuntime = 4,\n Runtime = 5,\n Dynamic = 6,\n Abandoned = 7,\n}\n\nexport type AdvanceableRenderStage =\n | RenderStage.Static\n | RenderStage.EarlyRuntime\n | RenderStage.Runtime\n | RenderStage.Dynamic\n\nexport class StagedRenderingController {\n currentStage: RenderStage = RenderStage.Before\n\n syncInterruptReason: Error | null = null\n staticStageEndTime: number = Infinity\n runtimeStageEndTime: number = Infinity\n\n private staticStageListeners: Array<() => void> = []\n private earlyRuntimeStageListeners: Array<() => void> = []\n private runtimeStageListeners: Array<() => void> = []\n private dynamicStageListeners: Array<() => void> = []\n\n private staticStagePromise = createPromiseWithResolvers<void>()\n private earlyRuntimeStagePromise = createPromiseWithResolvers<void>()\n private runtimeStagePromise = createPromiseWithResolvers<void>()\n private dynamicStagePromise = createPromiseWithResolvers<void>()\n\n constructor(\n private abortSignal: AbortSignal | null,\n private abandonController: AbortController | null,\n private shouldTrackSyncIO: boolean\n ) {\n if (abortSignal) {\n abortSignal.addEventListener(\n 'abort',\n () => {\n // Reject all stage promises that haven't already been resolved.\n // If a promise was already resolved via advanceStage, the reject\n // is a no-op. The ignoreReject handler suppresses unhandled\n // rejection warnings for promises that no one is awaiting.\n const { reason } = abortSignal\n this.staticStagePromise.promise.catch(ignoreReject)\n this.staticStagePromise.reject(reason)\n this.earlyRuntimeStagePromise.promise.catch(ignoreReject)\n this.earlyRuntimeStagePromise.reject(reason)\n this.runtimeStagePromise.promise.catch(ignoreReject)\n this.runtimeStagePromise.reject(reason)\n this.dynamicStagePromise.promise.catch(ignoreReject)\n this.dynamicStagePromise.reject(reason)\n },\n { once: true }\n )\n }\n\n if (abandonController) {\n abandonController.signal.addEventListener(\n 'abort',\n () => {\n this.abandonRender()\n },\n { once: true }\n )\n }\n }\n\n onStage(stage: AdvanceableRenderStage, callback: () => void) {\n if (this.currentStage >= stage) {\n callback()\n } else if (stage === RenderStage.Static) {\n this.staticStageListeners.push(callback)\n } else if (stage === RenderStage.EarlyRuntime) {\n this.earlyRuntimeStageListeners.push(callback)\n } else if (stage === RenderStage.Runtime) {\n this.runtimeStageListeners.push(callback)\n } else if (stage === RenderStage.Dynamic) {\n this.dynamicStageListeners.push(callback)\n } else {\n // This should never happen\n throw new InvariantError(`Invalid render stage: ${stage}`)\n }\n }\n\n shouldTrackSyncInterrupt(): boolean {\n if (!this.shouldTrackSyncIO) {\n return false\n }\n\n switch (this.currentStage) {\n case RenderStage.Before:\n // If we haven't started the render yet, it can't be interrupted.\n return false\n case RenderStage.EarlyStatic:\n case RenderStage.Static:\n return true\n case RenderStage.EarlyRuntime:\n // EarlyRuntime is for runtime-prefetchable segments. Sync IO\n // should error because it would abort a runtime prefetch.\n return true\n case RenderStage.Runtime:\n // Runtime is for non-prefetchable segments. Sync IO is fine there\n // because in practice this segment will never be runtime prefetched\n return false\n case RenderStage.Dynamic:\n case RenderStage.Abandoned:\n return false\n default:\n return false\n }\n }\n\n syncInterruptCurrentStageWithReason(reason: Error) {\n if (this.currentStage === RenderStage.Before) {\n return\n }\n\n // If the render has already been abandoned, there's nothing to interrupt.\n if (this.currentStage === RenderStage.Abandoned) {\n return\n }\n\n // If Sync IO occurs during an abandonable render, we trigger the abandon.\n // The abandon listener will call abandonRender which advances through\n // stages to let caches fill before marking as Abandoned.\n if (this.abandonController) {\n this.abandonController.abort()\n return\n }\n\n if (this.abortSignal) {\n // If this is an abortable render, we capture the interruption reason and stop advancing.\n // We don't release any more promises.\n // The caller is expected to abort the signal.\n this.syncInterruptReason = reason\n this.currentStage = RenderStage.Abandoned\n return\n }\n\n // If we're in a non-abandonable & non-abortable render,\n // we need to advance to the Dynamic stage and capture the interruption reason.\n // (in dev, this will be the restarted render)\n switch (this.currentStage) {\n case RenderStage.EarlyStatic:\n case RenderStage.Static:\n case RenderStage.EarlyRuntime: {\n // EarlyRuntime is for runtime-prefetchable segments. Sync IO here\n // means the prefetch would be aborted too early.\n this.syncInterruptReason = reason\n this.advanceStage(RenderStage.Dynamic)\n return\n }\n case RenderStage.Runtime: {\n // canSyncInterrupt returns false for Runtime, so we should\n // never get here. Defensive no-op.\n return\n }\n case RenderStage.Dynamic:\n default:\n }\n }\n\n getSyncInterruptReason() {\n return this.syncInterruptReason\n }\n\n getStaticStageEndTime() {\n return this.staticStageEndTime\n }\n\n getRuntimeStageEndTime() {\n return this.runtimeStageEndTime\n }\n\n private abandonRender() {\n // In staged rendering, only the initial render is abandonable.\n // We can abandon the initial render if\n // 1. We notice a cache miss, and need to wait for caches to fill\n // 2. A sync IO error occurs, and the render should be interrupted\n // (this might be a lazy intitialization of a module,\n // so we still want to restart in this case and see if it still occurs)\n // In either case, we'll be doing another render after this one,\n // so we only want to unblock the next stage, not Dynamic, because\n // unblocking the dynamic stage would likely lead to wasted (uncached) IO.\n const { currentStage } = this\n switch (currentStage) {\n case RenderStage.EarlyStatic: {\n this.resolveStaticStage()\n }\n // intentional fallthrough\n case RenderStage.Static: {\n this.resolveEarlyRuntimeStage()\n }\n // intentional fallthrough\n case RenderStage.EarlyRuntime: {\n this.resolveRuntimeStage()\n }\n // intentional fallthrough\n case RenderStage.Runtime: {\n this.currentStage = RenderStage.Abandoned\n return\n }\n case RenderStage.Dynamic:\n case RenderStage.Before:\n case RenderStage.Abandoned:\n break\n default: {\n currentStage satisfies never\n }\n }\n }\n\n advanceStage(\n stage:\n | RenderStage.EarlyStatic\n | RenderStage.Static\n | RenderStage.EarlyRuntime\n | RenderStage.Runtime\n | RenderStage.Dynamic\n ) {\n // If we're already at the target stage or beyond, do nothing.\n // (this can happen e.g. if sync IO advanced us to the dynamic stage)\n if (stage <= this.currentStage) {\n return\n }\n\n let currentStage = this.currentStage\n this.currentStage = stage\n\n if (currentStage < RenderStage.Static && stage >= RenderStage.Static) {\n this.resolveStaticStage()\n }\n if (\n currentStage < RenderStage.EarlyRuntime &&\n stage >= RenderStage.EarlyRuntime\n ) {\n this.resolveEarlyRuntimeStage()\n }\n if (currentStage < RenderStage.Runtime && stage >= RenderStage.Runtime) {\n this.staticStageEndTime = performance.now() + performance.timeOrigin\n this.resolveRuntimeStage()\n }\n if (currentStage < RenderStage.Dynamic && stage >= RenderStage.Dynamic) {\n this.runtimeStageEndTime = performance.now() + performance.timeOrigin\n this.resolveDynamicStage()\n return\n }\n }\n\n /** Fire the `onStage` listeners for the static stage and unblock any promises waiting for it. */\n private resolveStaticStage() {\n const staticListeners = this.staticStageListeners\n for (let i = 0; i < staticListeners.length; i++) {\n staticListeners[i]()\n }\n staticListeners.length = 0\n this.staticStagePromise.resolve()\n }\n\n /** Fire the `onStage` listeners for the early runtime stage and unblock any promises waiting for it. */\n private resolveEarlyRuntimeStage() {\n const earlyRuntimeListeners = this.earlyRuntimeStageListeners\n for (let i = 0; i < earlyRuntimeListeners.length; i++) {\n earlyRuntimeListeners[i]()\n }\n earlyRuntimeListeners.length = 0\n this.earlyRuntimeStagePromise.resolve()\n }\n\n /** Fire the `onStage` listeners for the runtime stage and unblock any promises waiting for it. */\n private resolveRuntimeStage() {\n const runtimeListeners = this.runtimeStageListeners\n for (let i = 0; i < runtimeListeners.length; i++) {\n runtimeListeners[i]()\n }\n runtimeListeners.length = 0\n this.runtimeStagePromise.resolve()\n }\n\n /** Fire the `onStage` listeners for the dynamic stage and unblock any promises waiting for it. */\n private resolveDynamicStage() {\n const dynamicListeners = this.dynamicStageListeners\n for (let i = 0; i < dynamicListeners.length; i++) {\n dynamicListeners[i]()\n }\n dynamicListeners.length = 0\n this.dynamicStagePromise.resolve()\n }\n\n private getStagePromise(stage: AdvanceableRenderStage): Promise<void> {\n switch (stage) {\n case RenderStage.Static: {\n return this.staticStagePromise.promise\n }\n case RenderStage.EarlyRuntime: {\n return this.earlyRuntimeStagePromise.promise\n }\n case RenderStage.Runtime: {\n return this.runtimeStagePromise.promise\n }\n case RenderStage.Dynamic: {\n return this.dynamicStagePromise.promise\n }\n default: {\n stage satisfies never\n throw new InvariantError(`Invalid render stage: ${stage}`)\n }\n }\n }\n\n waitForStage(stage: AdvanceableRenderStage) {\n return this.getStagePromise(stage)\n }\n\n delayUntilStage<T>(\n stage: AdvanceableRenderStage,\n displayName: string | undefined,\n resolvedValue: T\n ) {\n const ioTriggerPromise = this.getStagePromise(stage)\n\n const promise = makeDevtoolsIOPromiseFromIOTrigger(\n ioTriggerPromise,\n displayName,\n resolvedValue\n )\n\n // Analogously to `makeHangingPromise`, we might reject this promise if the signal is invoked.\n // (e.g. in the case where we don't want want the render to proceed to the dynamic stage and abort it).\n // We shouldn't consider this an unhandled rejection, so we attach a noop catch handler here to suppress this warning.\n if (this.abortSignal) {\n promise.catch(ignoreReject)\n }\n return promise\n }\n}\n\nfunction ignoreReject() {}\n\n// TODO(restart-on-cache-miss): the layering of `delayUntilStage`,\n// `makeDevtoolsIOPromiseFromIOTrigger` and and `makeDevtoolsIOAwarePromise`\n// is confusing, we should clean it up.\nfunction makeDevtoolsIOPromiseFromIOTrigger<T>(\n ioTrigger: Promise<any>,\n displayName: string | undefined,\n resolvedValue: T\n): Promise<T> {\n // If we create a `new Promise` and give it a displayName\n // (with no userspace code above us in the stack)\n // React Devtools will use it as the IO cause when determining \"suspended by\".\n // In particular, it should shadow any inner IO that resolved/rejected the promise\n // (in case of staged rendering, this will be the `setTimeout` that triggers the relevant stage)\n const promise = new Promise<T>((resolve, reject) => {\n ioTrigger.then(resolve.bind(null, resolvedValue), reject)\n })\n if (displayName !== undefined) {\n // @ts-expect-error\n promise.displayName = displayName\n }\n return promise\n}\n","import {\n RenderStage,\n type AdvanceableRenderStage,\n type StagedRenderingController,\n} from './app-render/staged-rendering'\nimport type {\n PrerenderStoreModernRuntime,\n RequestStore,\n} from './app-render/work-unit-async-storage.external'\n\nexport function isHangingPromiseRejectionError(\n err: unknown\n): err is HangingPromiseRejectionError {\n if (typeof err !== 'object' || err === null || !('digest' in err)) {\n return false\n }\n\n return err.digest === HANGING_PROMISE_REJECTION\n}\n\nconst HANGING_PROMISE_REJECTION = 'HANGING_PROMISE_REJECTION'\n\nclass HangingPromiseRejectionError extends Error {\n public readonly digest = HANGING_PROMISE_REJECTION\n\n constructor(\n public readonly route: string,\n public readonly expression: string\n ) {\n super(\n `During prerendering, ${expression} rejects when the prerender is complete. Typically these errors are handled by React but if you move ${expression} to a different context by using \\`setTimeout\\`, \\`after\\`, or similar functions you may observe this error and you should handle it in that context. This occurred at route \"${route}\".`\n )\n }\n}\n\ntype AbortListeners = Array<(err: unknown) => void>\nconst abortListenersBySignal = new WeakMap<AbortSignal, AbortListeners>()\n\n/**\n * This function constructs a promise that will never resolve. This is primarily\n * useful for cacheComponents where we use promise resolution timing to determine which\n * parts of a render can be included in a prerender.\n *\n * @internal\n */\nexport function makeHangingPromise<T>(\n signal: AbortSignal,\n route: string,\n expression: string\n): Promise<T> {\n if (signal.aborted) {\n return Promise.reject(new HangingPromiseRejectionError(route, expression))\n } else {\n const hangingPromise = new Promise<T>((_, reject) => {\n const boundRejection = reject.bind(\n null,\n new HangingPromiseRejectionError(route, expression)\n )\n let currentListeners = abortListenersBySignal.get(signal)\n if (currentListeners) {\n currentListeners.push(boundRejection)\n } else {\n const listeners = [boundRejection]\n abortListenersBySignal.set(signal, listeners)\n signal.addEventListener(\n 'abort',\n () => {\n for (let i = 0; i < listeners.length; i++) {\n listeners[i]()\n }\n },\n { once: true }\n )\n }\n })\n // We are fine if no one actually awaits this promise. We shouldn't consider this an unhandled rejection so\n // we attach a noop catch handler here to suppress this warning. If you actually await somewhere or construct\n // your own promise out of it you'll need to ensure you handle the error when it rejects.\n hangingPromise.catch(ignoreReject)\n return hangingPromise\n }\n}\n\nfunction ignoreReject() {}\n\nexport function makeDevtoolsIOAwarePromise<T>(\n underlying: T,\n requestStore: RequestStore,\n stage: AdvanceableRenderStage\n): Promise<T> {\n if (requestStore.stagedRendering) {\n // We resolve each stage in a timeout, so React DevTools will pick this up as IO.\n return requestStore.stagedRendering.delayUntilStage(\n stage,\n undefined,\n underlying\n )\n }\n // in React DevTools if we resolve in a setTimeout we will observe\n // the promise resolution as something that can suspend a boundary or root.\n return new Promise<T>((resolve) => {\n // Must use setTimeout to be considered IO React DevTools. setImmediate will not work.\n setTimeout(() => {\n resolve(underlying)\n }, 0)\n })\n}\n\n/**\n * Returns the appropriate runtime stage for the current point in the render.\n * Runtime-prefetchable segments render in the early stages and should wait\n * for EarlyRuntime. Non-prefetchable segments render in the later stages\n * and should wait for Runtime.\n */\nexport function getRuntimeStage(\n stagedRendering: StagedRenderingController\n): RenderStage.EarlyRuntime | RenderStage.Runtime {\n if (\n stagedRendering.currentStage === RenderStage.EarlyStatic ||\n stagedRendering.currentStage === RenderStage.EarlyRuntime\n ) {\n return RenderStage.EarlyRuntime\n }\n return RenderStage.Runtime\n}\n\n/**\n * Delays until the appropriate runtime stage based on the current stage of\n * the rendering pipeline:\n *\n * - Early stages → wait for EarlyRuntime\n * (for runtime-prefetchable segments)\n * - Later stages → wait for Runtime\n * (for segments not using runtime prefetch)\n *\n * This ensures that cookies()/headers()/etc. resolve at the right time for\n * each segment type.\n */\nexport function delayUntilRuntimeStage<T>(\n prerenderStore: PrerenderStoreModernRuntime,\n result: Promise<T>\n): Promise<T> {\n const { stagedRendering } = prerenderStore\n if (!stagedRendering) {\n return result\n }\n return stagedRendering\n .waitForStage(getRuntimeStage(stagedRendering))\n .then(() => result)\n}\n","const REACT_POSTPONE_TYPE: symbol = Symbol.for('react.postpone')\n\nexport function isPostpone(error: any): boolean {\n return (\n typeof error === 'object' &&\n error !== null &&\n error.$$typeof === REACT_POSTPONE_TYPE\n )\n}\n","// This has to be a shared module which is shared between client component error boundary and dynamic component\nconst BAILOUT_TO_CSR = 'BAILOUT_TO_CLIENT_SIDE_RENDERING'\n\n/** An error that should be thrown when we want to bail out to client-side rendering. */\nexport class BailoutToCSRError extends Error {\n public readonly digest = BAILOUT_TO_CSR\n\n constructor(public readonly reason: string) {\n super(`Bail out to client-side rendering: ${reason}`)\n }\n}\n\n/** Checks if a passed argument is an error that is thrown if we want to bail out to client-side rendering. */\nexport function isBailoutToCSRError(err: unknown): err is BailoutToCSRError {\n if (typeof err !== 'object' || err === null || !('digest' in err)) {\n return false\n }\n\n return err.digest === BAILOUT_TO_CSR\n}\n","import {\n isHTTPAccessFallbackError,\n type HTTPAccessFallbackError,\n} from './http-access-fallback/http-access-fallback'\nimport { isRedirectError, type RedirectError } from './redirect-error'\n\n/**\n * Returns true if the error is a navigation signal error. These errors are\n * thrown by user code to perform navigation operations and interrupt the React\n * render.\n */\nexport function isNextRouterError(\n error: unknown\n): error is RedirectError | HTTPAccessFallbackError {\n return isRedirectError(error) || isHTTPAccessFallbackError(error)\n}\n","const DYNAMIC_ERROR_CODE = 'DYNAMIC_SERVER_USAGE'\n\nexport class DynamicServerError extends Error {\n digest: typeof DYNAMIC_ERROR_CODE = DYNAMIC_ERROR_CODE\n\n constructor(public readonly description: string) {\n super(`Dynamic server usage: ${description}`)\n }\n}\n\nexport function isDynamicServerError(err: unknown): err is DynamicServerError {\n if (\n typeof err !== 'object' ||\n err === null ||\n !('digest' in err) ||\n typeof err.digest !== 'string'\n ) {\n return false\n }\n\n return err.digest === DYNAMIC_ERROR_CODE\n}\n","const NEXT_STATIC_GEN_BAILOUT = 'NEXT_STATIC_GEN_BAILOUT'\n\nexport class StaticGenBailoutError extends Error {\n public readonly code = NEXT_STATIC_GEN_BAILOUT\n}\n\nexport function isStaticGenBailoutError(\n error: unknown\n): error is StaticGenBailoutError {\n if (typeof error !== 'object' || error === null || !('code' in error)) {\n return false\n }\n\n return error.code === NEXT_STATIC_GEN_BAILOUT\n}\n","import { createAsyncLocalStorage } from './async-local-storage'\nimport type { WorkUnitAsyncStorage } from './work-unit-async-storage.external'\n\nexport const workUnitAsyncStorageInstance: WorkUnitAsyncStorage =\n createAsyncLocalStorage()\n","export const RSC_HEADER = 'rsc' as const\nexport const ACTION_HEADER = 'next-action' as const\n// TODO: Instead of sending the full router state, we only need to send the\n// segment path. Saves bytes. Then we could also use this field for segment\n// prefetches, which also need to specify a particular segment.\nexport const NEXT_ROUTER_STATE_TREE_HEADER = 'next-router-state-tree' as const\nexport const NEXT_ROUTER_PREFETCH_HEADER = 'next-router-prefetch' as const\n// This contains the path to the segment being prefetched.\n// TODO: If we change next-router-state-tree to be a segment path, we can use\n// that instead. Then next-router-prefetch and next-router-segment-prefetch can\n// be merged into a single enum.\nexport const NEXT_ROUTER_SEGMENT_PREFETCH_HEADER =\n 'next-router-segment-prefetch' as const\nexport const NEXT_HMR_REFRESH_HEADER = 'next-hmr-refresh' as const\nexport const NEXT_HMR_REFRESH_HASH_COOKIE = '__next_hmr_refresh_hash__' as const\nexport const NEXT_URL = 'next-url' as const\nexport const RSC_CONTENT_TYPE_HEADER = 'text/x-component' as const\n\n// Header for the Instant Navigation Testing API. In development and testing\n// builds, static pre-renders normally don't happen. This header tells the\n// server to perform a static pre-render anyway, allowing tests to assert on\n// the prefetched UI. Not exposed in production builds by default.\nexport const NEXT_INSTANT_PREFETCH_HEADER =\n 'next-instant-navigation-testing-prefetch' as const\n\n// Cookie for the Instant Navigation Testing API. Used for MPA navigations\n// (page reload, full page load) where we can't set request headers. When set,\n// the server renders only the static shell. Not exposed in production builds\n// by default.\nexport const NEXT_INSTANT_TEST_COOKIE =\n 'next-instant-navigation-testing' as const\n\nexport const FLIGHT_HEADERS = [\n RSC_HEADER,\n NEXT_ROUTER_STATE_TREE_HEADER,\n NEXT_ROUTER_PREFETCH_HEADER,\n NEXT_HMR_REFRESH_HEADER,\n NEXT_ROUTER_SEGMENT_PREFETCH_HEADER,\n] as const\n\nexport const NEXT_RSC_UNION_QUERY = '_rsc' as const\n\nexport const NEXT_ROUTER_STALE_TIME_HEADER = 'x-nextjs-stale-time' as const\nexport const NEXT_DID_POSTPONE_HEADER = 'x-nextjs-postponed' as const\nexport const NEXT_REWRITTEN_PATH_HEADER = 'x-nextjs-rewritten-path' as const\nexport const NEXT_REWRITTEN_QUERY_HEADER = 'x-nextjs-rewritten-query' as const\nexport const NEXT_IS_PRERENDER_HEADER = 'x-nextjs-prerender' as const\nexport const NEXT_ACTION_NOT_FOUND_HEADER = 'x-nextjs-action-not-found' as const\nexport const NEXT_REQUEST_ID_HEADER = 'x-nextjs-request-id' as const\nexport const NEXT_HTML_REQUEST_ID_HEADER = 'x-nextjs-html-request-id' as const\n\n// TODO: Should this include nextjs in the name, like the others?\nexport const NEXT_ACTION_REVALIDATED_HEADER = 'x-action-revalidated' as const\n","import type { AsyncLocalStorage } from 'async_hooks'\nimport type { DraftModeProvider } from '../async-storage/draft-mode-provider'\nimport type { ResponseCookies } from '../web/spec-extension/cookies'\nimport type { ReadonlyHeaders } from '../web/spec-extension/adapters/headers'\nimport type { ReadonlyRequestCookies } from '../web/spec-extension/adapters/request-cookies'\nimport type { CacheSignal } from './cache-signal'\nimport type { ResponseVaryParamsAccumulator } from './vary-params'\nimport type { DynamicTrackingState } from './dynamic-rendering'\nimport type { OpaqueFallbackRouteParams } from '../request/fallback-params'\n\n// Share the instance module in the next-shared layer\nimport { workUnitAsyncStorageInstance } from './work-unit-async-storage-instance' with { 'turbopack-transition': 'next-shared' }\nimport type { ServerComponentsHmrCache } from '../response-cache'\nimport type {\n RenderResumeDataCache,\n PrerenderResumeDataCache,\n} from '../resume-data-cache/resume-data-cache'\nimport type { Params } from '../request/params'\nimport type { ImplicitTags } from '../lib/implicit-tags'\nimport type { WorkStore } from './work-async-storage.external'\nimport { NEXT_HMR_REFRESH_HASH_COOKIE } from '../../client/components/app-router-headers'\nimport { InvariantError } from '../../shared/lib/invariant-error'\nimport type { StagedRenderingController } from './staged-rendering'\nimport { RenderStage } from './staged-rendering'\nimport type { ValidationBoundaryTracking } from './instant-validation/boundary-tracking'\nimport type { InstantValidationSampleTracking } from './instant-validation/instant-samples'\n\nexport type WorkUnitPhase = 'action' | 'render' | 'after'\n\nexport interface CommonWorkUnitStore {\n /** NOTE: Will be mutated as phases change */\n phase: WorkUnitPhase\n readonly implicitTags: ImplicitTags\n}\n\nexport interface RequestStore extends CommonWorkUnitStore {\n readonly type: 'request'\n\n /**\n * The URL of the request. This only specifies the pathname and the search\n * part of the URL.\n */\n readonly url: {\n /**\n * The pathname of the requested URL.\n */\n readonly pathname: string\n\n /**\n * The search part of the requested URL. If the request did not provide a\n * search part, this will be an empty string.\n */\n readonly search: string\n }\n\n readonly headers: ReadonlyHeaders\n // This is mutable because we need to reassign it when transitioning from the action phase to the render phase.\n // The cookie object itself is deliberately read only and thus can't be updated.\n cookies: ReadonlyRequestCookies\n readonly mutableCookies: ResponseCookies\n readonly userspaceMutableCookies: ResponseCookies\n readonly draftMode: DraftModeProvider\n readonly isHmrRefresh?: boolean\n readonly serverComponentsHmrCache?: ServerComponentsHmrCache\n\n readonly rootParams: Params\n\n /**\n * The resume data cache for this request. This will be a immutable cache.\n */\n renderResumeDataCache: RenderResumeDataCache | null\n\n stale?: number\n stagedRendering?: StagedRenderingController | null\n asyncApiPromises?: AsyncApiPromises\n cacheSignal?: CacheSignal | null\n prerenderResumeDataCache?: PrerenderResumeDataCache | null\n fallbackParams?: OpaqueFallbackRouteParams | null\n\n // Only in build-time instant-validation\n // We mirror the controller/renderSignal from prerender stores to allow aborting the render\n // in case we hit an error that makes it unnecessary to continue\n controller?: AbortController\n renderSignal?: AbortSignal\n validationSamples?: InstantValidationSamples\n validationSampleTracking?: InstantValidationSampleTracking | null\n\n // DEV-only\n usedDynamic?: boolean\n}\n\nexport type InstantValidationSamples = {\n params: Params | undefined\n searchParams: Record<string, string | string[] | null> | undefined\n}\n\nexport type AsyncApiPromises = {\n cookies: Promise<ReadonlyRequestCookies>\n earlyCookies: Promise<ReadonlyRequestCookies>\n\n mutableCookies: Promise<ReadonlyRequestCookies>\n earlyMutableCookies: Promise<ReadonlyRequestCookies>\n\n headers: Promise<ReadonlyHeaders>\n earlyHeaders: Promise<ReadonlyHeaders>\n\n sharedParamsParent: Promise<string>\n earlySharedParamsParent: Promise<string>\n\n sharedSearchParamsParent: Promise<string>\n earlySharedSearchParamsParent: Promise<string>\n\n // Connection is not a runtime promise and doesn't\n // need to distinguish between early and late\n connection: Promise<undefined>\n}\n\n/**\n * Returns true if the current render stage is an early stage (EarlyStatic or\n * EarlyRuntime). The early stages are for runtime-prefetchable segments. When\n * true, runtime APIs should use the early promise variant that resolves at\n * EarlyRuntime rather than Runtime.\n */\nexport function isInEarlyRenderStage(requestStore: RequestStore): boolean {\n const stagedRendering = requestStore.stagedRendering\n if (stagedRendering) {\n return (\n stagedRendering.currentStage === RenderStage.EarlyStatic ||\n stagedRendering.currentStage === RenderStage.EarlyRuntime\n )\n }\n return false\n}\n\n/**\n * The Prerender store is for tracking information related to prerenders.\n *\n * It can be used for both RSC and SSR prerendering and should be scoped as close\n * to the individual `renderTo...` API call as possible. To keep the type simple\n * we don't distinguish between RSC and SSR prerendering explicitly but instead\n * use conditional object properties to infer which mode we are in. For instance cache tracking\n * only needs to happen during the RSC prerender when we are prospectively prerendering\n * to fill all caches.\n */\nexport type PrerenderStoreModern =\n | PrerenderStoreModernClient\n | PrerenderStoreModernServer\n | PrerenderStoreModernRuntime\n | ValidationStoreClient\n\n/** Like `PrerenderStoreModern`, but only including static prerenders (i.e. not runtime prerenders) */\nexport type StaticPrerenderStoreModern = Exclude<\n PrerenderStoreModern,\n PrerenderStoreModernRuntime | ValidationStoreClient\n>\n\nexport interface PrerenderStoreModernClient\n extends PrerenderStoreModernCommon,\n StaticPrerenderStoreCommon {\n readonly type: 'prerender-client'\n}\n\nexport interface ValidationStoreClient extends PrerenderStoreModernCommon {\n readonly type: 'validation-client'\n readonly boundaryState: ValidationBoundaryTracking | null\n validationSamples: InstantValidationSamples | null\n validationSampleTracking: InstantValidationSampleTracking | null\n fallbackRouteParams: OpaqueFallbackRouteParams | null\n}\n\nexport interface PrerenderStoreModernServer\n extends PrerenderStoreModernCommon,\n StaticPrerenderStoreCommon {\n readonly type: 'prerender'\n}\n\nexport interface PrerenderStoreModernRuntime\n extends PrerenderStoreModernCommon {\n readonly type: 'prerender-runtime'\n\n /**\n * The staged rendering controller for this prerender. Models stage\n * transitions (Before → Static → Runtime → Dynamic). Null for prospective\n * renders where all stages run without sequencing.\n */\n readonly stagedRendering: StagedRenderingController | null\n\n readonly headers: RequestStore['headers']\n readonly cookies: RequestStore['cookies']\n readonly draftMode: RequestStore['draftMode']\n}\n\nexport interface RevalidateStore {\n // Collected revalidate times and tags for this document during the prerender.\n revalidate: number // in seconds. 0 means dynamic. INFINITE_CACHE and higher means never revalidate.\n expire: number // server expiration time\n stale: number // client expiration time\n tags: null | string[]\n}\n\ninterface PrerenderStoreModernCommon\n extends CommonWorkUnitStore,\n RevalidateStore {\n /**\n * The render signal is aborted after React's `prerender` function is aborted\n * (using a separate signal), which happens in two cases:\n *\n * 1. When all caches are filled during the prospective prerender.\n * 2. When the final prerender is aborted immediately after the prerender was\n * started.\n *\n * It can be used to reject any pending I/O, including hanging promises. This\n * allows React to properly track the async I/O in dev mode, which yields\n * better owner stacks for dynamic validation errors.\n */\n readonly renderSignal: AbortSignal\n\n /**\n * This is the AbortController which represents the boundary between Prerender\n * and dynamic. In some renders it is the same as the controller for React,\n * but in others it is a separate controller. It should be aborted whenever we\n * are no longer in the prerender phase of rendering. Typically this is after\n * one task, or when you call a sync API which requires the prerender to end\n * immediately.\n */\n readonly controller: AbortController\n\n /**\n * When not null, this signal is used to track cache reads during prerendering\n * and to await all cache reads completing, before aborting the prerender.\n */\n readonly cacheSignal: null | CacheSignal\n\n /**\n * During some prerenders we want to track dynamic access.\n */\n readonly dynamicTracking: null | DynamicTrackingState\n\n readonly rootParams: Params\n\n /**\n * A mutable resume data cache for this prerender.\n */\n prerenderResumeDataCache: PrerenderResumeDataCache | null\n\n /**\n * An immutable resume data cache for this prerender. This may be provided\n * instead of the `prerenderResumeDataCache` if the prerender is not supposed\n * to fill caches, and only read from prefilled caches, e.g. when prerendering\n * an optional fallback shell.\n */\n renderResumeDataCache: RenderResumeDataCache | null\n\n /**\n * The HMR refresh hash is only provided in dev mode. It is needed for the dev\n * warmup render to ensure that the cache keys will be identical for the\n * subsequent dynamic render.\n */\n readonly hmrRefreshHash: string | undefined\n\n /**\n * A mutable accumulator for per-segment vary params during prerender. Tracks\n * which route params each segment actually accesses, allowing the client\n * cache to re-key entries for better sharing across different param values.\n */\n readonly varyParamsAccumulator: ResponseVaryParamsAccumulator | null\n}\n\ninterface StaticPrerenderStoreCommon {\n /**\n * The set of unknown route parameters. Accessing these will be tracked as\n * a dynamic access.\n */\n readonly fallbackRouteParams: OpaqueFallbackRouteParams | null\n\n /**\n * When true, the page is prerendered as a fallback shell, while allowing any\n * dynamic accesses to result in an empty shell. This is the case when there\n * are also routes prerendered with a more complete set of params.\n * Prerendering those routes would catch any invalid dynamic accesses.\n */\n readonly allowEmptyStaticShell: boolean\n}\n\nexport interface PrerenderStorePPR\n extends CommonWorkUnitStore,\n RevalidateStore {\n readonly type: 'prerender-ppr'\n readonly rootParams: Params\n readonly dynamicTracking: null | DynamicTrackingState\n\n /**\n * The set of unknown route parameters. Accessing these will be tracked as\n * a dynamic access.\n */\n readonly fallbackRouteParams: OpaqueFallbackRouteParams | null\n\n /**\n * The resume data cache for this prerender.\n */\n prerenderResumeDataCache: PrerenderResumeDataCache\n}\n\nexport interface PrerenderStoreLegacy\n extends CommonWorkUnitStore,\n RevalidateStore {\n readonly type: 'prerender-legacy'\n readonly rootParams: Params\n}\n\nexport type PrerenderStore =\n | PrerenderStoreLegacy\n | PrerenderStorePPR\n | PrerenderStoreModern\n\n// /** Like `PrerenderStoreModern`, but only including static prerenders (i.e. not runtime prerenders) */\nexport type StaticPrerenderStore = Exclude<\n PrerenderStore,\n PrerenderStoreModernRuntime | ValidationStoreClient\n>\n\nexport interface CommonCacheStore\n extends Omit<CommonWorkUnitStore, 'implicitTags'> {\n /**\n * A cache work unit store might not always have an outer work unit store,\n * from which implicit tags could be inherited.\n */\n readonly implicitTags: ImplicitTags | undefined\n /**\n * Draft mode is only available if the outer work unit store is a request\n * store and draft mode is enabled.\n */\n readonly draftMode: DraftModeProvider | undefined\n}\n\nexport interface CommonUseCacheStore extends CommonCacheStore, RevalidateStore {\n explicitRevalidate: undefined | number // explicit revalidate time from cacheLife() calls\n explicitExpire: undefined | number // server expiration time\n explicitStale: undefined | number // client expiration time\n readonly hmrRefreshHash: string | undefined\n readonly isHmrRefresh: boolean\n readonly serverComponentsHmrCache: ServerComponentsHmrCache | undefined\n readonly forceRevalidate: boolean\n}\n\nexport interface PublicUseCacheStore extends CommonUseCacheStore {\n readonly type: 'cache'\n\n /**\n * The root params for the current route. `undefined` when nested inside\n * `unstable_cache`, which doesn't carry root params. Currently, `\"use cache\"`\n * inside `unstable_cache` is allowed, so this case must be handled. The error\n * message in `getRootParam` assumes this is the only scenario where\n * `rootParams` is `undefined`.\n */\n readonly rootParams: Params | undefined\n /**\n * Tracks which root param names were read during this cache invocation.\n */\n readonly readRootParamNames: Set<string>\n}\n\nexport interface PrivateUseCacheStore extends CommonUseCacheStore {\n readonly type: 'private-cache'\n\n readonly headers: ReadonlyHeaders\n readonly cookies: ReadonlyRequestCookies\n\n /**\n * Private caches don't currently need to track read root params for the cache\n * key because they're not persisted anywhere.\n */\n readonly rootParams: Params\n}\n\nexport type UseCacheStore = PublicUseCacheStore | PrivateUseCacheStore\n\nexport interface UnstableCacheStore extends CommonCacheStore {\n readonly type: 'unstable-cache'\n /**\n * Always `undefined` for `unstable_cache` — root params are not available in\n * this context. If a `\"use cache\"` function nested inside `unstable_cache`\n * tries to access root params, it will encounter `undefined` here and throw.\n */\n readonly rootParams: undefined\n}\n\n/**\n * The Cache store is for tracking information inside a \"use cache\" or\n * unstable_cache context. A cache store shadows an outer request store (if\n * present) as a work unit, so that we never accidentally expose any request or\n * page specific information to cache functions, unless it's explicitly desired.\n * For those exceptions, the data is copied over from the request store to the\n * cache store, instead of generally making the request store available to cache\n * functions.\n */\nexport type CacheStore = UseCacheStore | UnstableCacheStore\n\nexport interface GenerateStaticParamsStore extends CommonWorkUnitStore {\n readonly type: 'generate-static-params'\n readonly rootParams: Params\n}\n\nexport type WorkUnitStore =\n | RequestStore\n | CacheStore\n | PrerenderStore\n | GenerateStaticParamsStore\n\nexport type WorkUnitAsyncStorage = AsyncLocalStorage<WorkUnitStore>\n\nexport { workUnitAsyncStorageInstance as workUnitAsyncStorage }\n\nexport function throwForMissingRequestStore(callingExpression: string): never {\n throw new Error(\n `\\`${callingExpression}\\` was called outside a request scope. Read more: https://nextjs.org/docs/messages/next-dynamic-api-wrong-context`\n )\n}\n\nexport function throwInvariantForMissingStore(): never {\n throw new InvariantError('Expected workUnitAsyncStorage to have a store.')\n}\n\nexport function getPrerenderResumeDataCache(\n workUnitStore: WorkUnitStore\n): PrerenderResumeDataCache | null {\n switch (workUnitStore.type) {\n case 'prerender':\n case 'prerender-runtime':\n case 'prerender-ppr':\n return workUnitStore.prerenderResumeDataCache\n case 'prerender-client':\n case 'validation-client':\n // TODO eliminate fetch caching in client scope and stop exposing this data\n // cache during SSR.\n return workUnitStore.prerenderResumeDataCache\n case 'request': {\n // In dev, we might fill caches even during a dynamic request.\n if (workUnitStore.prerenderResumeDataCache) {\n return workUnitStore.prerenderResumeDataCache\n }\n // fallthrough\n }\n case 'prerender-legacy':\n case 'cache':\n case 'private-cache':\n case 'unstable-cache':\n case 'generate-static-params':\n return null\n default:\n return workUnitStore satisfies never\n }\n}\n\nexport function getRenderResumeDataCache(\n workUnitStore: WorkUnitStore\n): RenderResumeDataCache | null {\n switch (workUnitStore.type) {\n case 'request':\n case 'prerender':\n case 'prerender-runtime':\n case 'prerender-client':\n case 'validation-client':\n if (workUnitStore.renderResumeDataCache) {\n // If we are in a prerender, we might have a render resume data cache\n // that is used to read from prefilled caches.\n return workUnitStore.renderResumeDataCache\n }\n // fallthrough\n case 'prerender-ppr':\n // Otherwise we return the mutable resume data cache here as an immutable\n // version of the cache as it can also be used for reading.\n return workUnitStore.prerenderResumeDataCache ?? null\n case 'cache':\n case 'private-cache':\n case 'unstable-cache':\n case 'prerender-legacy':\n case 'generate-static-params':\n return null\n default:\n return workUnitStore satisfies never\n }\n}\n\nexport function getHmrRefreshHash(\n workUnitStore: WorkUnitStore\n): string | undefined {\n if (process.env.__NEXT_DEV_SERVER) {\n switch (workUnitStore.type) {\n case 'cache':\n case 'private-cache':\n case 'prerender':\n case 'prerender-runtime':\n return workUnitStore.hmrRefreshHash\n case 'request':\n return workUnitStore.cookies.get(NEXT_HMR_REFRESH_HASH_COOKIE)?.value\n case 'prerender-client':\n case 'validation-client':\n case 'prerender-ppr':\n case 'prerender-legacy':\n case 'unstable-cache':\n case 'generate-static-params':\n break\n default:\n workUnitStore satisfies never\n }\n }\n\n return undefined\n}\n\nexport function isHmrRefresh(workUnitStore: WorkUnitStore): boolean {\n if (process.env.__NEXT_DEV_SERVER) {\n switch (workUnitStore.type) {\n case 'cache':\n case 'private-cache':\n case 'request':\n return workUnitStore.isHmrRefresh ?? false\n case 'prerender':\n case 'prerender-client':\n case 'validation-client':\n case 'prerender-runtime':\n case 'prerender-ppr':\n case 'prerender-legacy':\n case 'unstable-cache':\n case 'generate-static-params':\n break\n default:\n workUnitStore satisfies never\n }\n }\n\n return false\n}\n\nexport function getServerComponentsHmrCache(\n workUnitStore: WorkUnitStore\n): ServerComponentsHmrCache | undefined {\n if (process.env.__NEXT_DEV_SERVER) {\n switch (workUnitStore.type) {\n case 'cache':\n case 'private-cache':\n case 'request':\n return workUnitStore.serverComponentsHmrCache\n case 'prerender':\n case 'prerender-client':\n case 'validation-client':\n case 'prerender-runtime':\n case 'prerender-ppr':\n case 'prerender-legacy':\n case 'unstable-cache':\n case 'generate-static-params':\n break\n default:\n workUnitStore satisfies never\n }\n }\n\n return undefined\n}\n\n/**\n * Returns a draft mode provider only if draft mode is enabled.\n */\nexport function getDraftModeProviderForCacheScope(\n workStore: WorkStore,\n workUnitStore: WorkUnitStore\n): DraftModeProvider | undefined {\n if (workStore.isDraftMode) {\n switch (workUnitStore.type) {\n case 'cache':\n case 'private-cache':\n case 'unstable-cache':\n case 'prerender-runtime':\n case 'request':\n return workUnitStore.draftMode\n case 'prerender':\n case 'prerender-client':\n case 'validation-client':\n case 'prerender-ppr':\n case 'prerender-legacy':\n case 'generate-static-params':\n break\n default:\n workUnitStore satisfies never\n }\n }\n\n return undefined\n}\n\nexport function getStagedRenderingController(\n workUnitStore: WorkUnitStore\n): StagedRenderingController | null {\n switch (workUnitStore.type) {\n case 'request':\n case 'prerender-runtime':\n return workUnitStore.stagedRendering ?? null\n case 'prerender':\n case 'prerender-client':\n case 'validation-client':\n case 'prerender-ppr':\n case 'prerender-legacy':\n case 'cache':\n case 'private-cache':\n case 'unstable-cache':\n case 'generate-static-params':\n return null\n default:\n return workUnitStore satisfies never\n }\n}\n\nexport function getCacheSignal(\n workUnitStore: WorkUnitStore\n): CacheSignal | null {\n switch (workUnitStore.type) {\n case 'prerender':\n case 'prerender-client':\n case 'validation-client':\n case 'prerender-runtime':\n return workUnitStore.cacheSignal\n case 'request': {\n // In dev, we might fill caches even during a dynamic request.\n if (workUnitStore.cacheSignal) {\n return workUnitStore.cacheSignal\n }\n // fallthrough\n }\n case 'prerender-ppr':\n case 'prerender-legacy':\n case 'cache':\n case 'private-cache':\n case 'unstable-cache':\n case 'generate-static-params':\n return null\n default:\n return workUnitStore satisfies never\n }\n}\n","import type { WorkAsyncStorage } from './work-async-storage.external'\nimport { createAsyncLocalStorage } from './async-local-storage'\n\nexport const workAsyncStorageInstance: WorkAsyncStorage =\n createAsyncLocalStorage()\n","import type { AsyncLocalStorage } from 'async_hooks'\nimport type { IncrementalCache } from '../lib/incremental-cache'\nimport type { FetchMetrics } from '../base-http'\nimport type { DeepReadonly } from '../../shared/lib/deep-readonly'\nimport type { AppSegmentConfig } from '../../build/segment-config/app/app-segment-config'\nimport type { AfterContext } from '../after/after-context'\nimport type { CacheLife } from '../use-cache/cache-life'\n\n// Share the instance module in the next-shared layer\nimport { workAsyncStorageInstance } from './work-async-storage-instance' with { 'turbopack-transition': 'next-shared' }\nimport type { LazyResult } from '../lib/lazy-result'\nimport type { DigestedError } from './create-error-handler'\nimport type { ActionRevalidationKind } from '../../shared/lib/action-revalidation-kind'\n\nexport interface WorkStore {\n readonly isStaticGeneration: boolean\n\n /**\n * The page that is being rendered. This relates to the path to the page file.\n */\n readonly page: string\n\n /**\n * The route that is being rendered. This is the page property without the\n * trailing `/page` or `/route` suffix.\n */\n readonly route: string\n\n readonly incrementalCache?: IncrementalCache\n readonly cacheLifeProfiles?: { [profile: string]: CacheLife }\n\n readonly isOnDemandRevalidate?: boolean\n readonly isBuildTimePrerendering?: boolean\n\n forceDynamic?: boolean\n fetchCache?: AppSegmentConfig['fetchCache']\n\n forceStatic?: boolean\n dynamicShouldError?: boolean\n pendingRevalidates?: Record<string, Promise<any>>\n pendingRevalidateWrites?: Array<Promise<void>> // This is like pendingRevalidates but isn't used for deduping.\n readonly afterContext: AfterContext\n\n dynamicUsageDescription?: string\n dynamicUsageStack?: string\n\n /**\n * Invalid dynamic usage errors might be caught in userland. We attach them to\n * the work store to ensure we can still fail the build, or show en error in\n * dev mode.\n */\n // TODO: Collect an array of errors, and throw as AggregateError when\n // `serializeError` and the Dev Overlay support it.\n invalidDynamicUsageError?: Error\n\n nextFetchId?: number\n pathWasRevalidated?: ActionRevalidationKind\n\n /**\n * Tags that were revalidated during the current request. They need to be sent\n * to cache handlers to propagate their revalidation.\n */\n pendingRevalidatedTags?: Array<{\n tag: string\n profile?: string | { stale?: number; revalidate?: number; expire?: number }\n }>\n\n /**\n * Tags that were previously revalidated (e.g. by a redirecting server action)\n * and have already been sent to cache handlers. Retrieved cache entries that\n * include any of these tags must be discarded.\n */\n readonly previouslyRevalidatedTags: readonly string[]\n\n /**\n * This map contains lazy results so that we can evaluate them when the first\n * cache entry is read. It allows us to skip refreshing tags if no caches are\n * read at all.\n */\n readonly refreshTagsByCacheKind: Map<string, LazyResult<void>>\n\n fetchMetrics?: FetchMetrics\n shouldTrackFetchMetrics: boolean\n\n isDraftMode?: boolean\n isUnstableNoStore?: boolean\n isPrefetchRequest?: boolean\n\n /**\n * Prefer `sharedContext.buildId` instead. This only exists because it's needed in use-cache-wrapper\n */\n buildId: string\n\n readonly reactLoadableManifest?: DeepReadonly<\n Record<string, { files: string[] }>\n >\n readonly assetPrefix?: string\n readonly nonce?: string\n\n cacheComponentsEnabled: boolean\n\n /**\n * Run the given function inside a clean AsyncLocalStorage snapshot. This is\n * useful when generating cache entries, to ensure that the cache generation\n * cannot read anything from the context we're currently executing in, which\n * might include request-specific things like `cookies()` inside a\n * `React.cache()`.\n */\n runInCleanSnapshot: <R, TArgs extends any[]>(\n fn: (...args: TArgs) => R,\n ...args: TArgs\n ) => R\n\n reactServerErrorsByDigest: Map<string, DigestedError>\n}\n\nexport type WorkAsyncStorage = AsyncLocalStorage<WorkStore>\n\nexport { workAsyncStorageInstance as workAsyncStorage }\n","export const METADATA_BOUNDARY_NAME = '__next_metadata_boundary__'\nexport const VIEWPORT_BOUNDARY_NAME = '__next_viewport_boundary__'\nexport const OUTLET_BOUNDARY_NAME = '__next_outlet_boundary__'\nexport const ROOT_LAYOUT_BOUNDARY_NAME = '__next_root_layout_boundary__'\n","export type ScheduledFn<T = void> = () => T | PromiseLike<T>\nexport type SchedulerFn<T = void> = (cb: ScheduledFn<T>) => void\n\n/**\n * Schedules a function to be called on the next tick after the other promises\n * have been resolved.\n *\n * @param cb the function to schedule\n */\nexport const scheduleOnNextTick = (cb: ScheduledFn<void>) => {\n // We use Promise.resolve().then() here so that the operation is scheduled at\n // the end of the promise job queue, we then add it to the next process tick\n // to ensure it's evaluated afterwards.\n //\n // This was inspired by the implementation of the DataLoader interface: https://github.com/graphql/dataloader/blob/d336bd15282664e0be4b4a657cb796f09bafbc6b/src/index.js#L213-L255\n //\n Promise.resolve().then(() => {\n if (process.env.NEXT_RUNTIME === 'edge') {\n setTimeout(cb, 0)\n } else {\n process.nextTick(cb)\n }\n })\n}\n\n/**\n * Schedules a function to be called using `setImmediate` or `setTimeout` if\n * `setImmediate` is not available (like in the Edge runtime).\n *\n * @param cb the function to schedule\n */\nexport const scheduleImmediate = (cb: ScheduledFn<void>): void => {\n if (process.env.NEXT_RUNTIME === 'edge') {\n setTimeout(cb, 0)\n } else {\n setImmediate(cb)\n }\n}\n\n/**\n * returns a promise than resolves in a future task. There is no guarantee that the task it resolves in\n * will be the next task but if you await it you can at least be sure that the current task is over and\n * most usefully that the entire microtask queue of the current task has been emptied.\n */\nexport function atLeastOneTask() {\n return new Promise<void>((resolve) => scheduleImmediate(resolve))\n}\n\n/**\n * This utility function is extracted to make it easier to find places where we are doing\n * specific timing tricks to try to schedule work after React has rendered. This is especially\n * important at the moment because Next.js uses the edge builds of React which use setTimeout to\n * schedule work when you might expect that something like setImmediate would do the trick.\n *\n * Long term we should switch to the node versions of React rendering when possible and then\n * update this to use setImmediate rather than setTimeout\n */\nexport function waitAtLeastOneReactRenderTask(): Promise<void> {\n if (process.env.NEXT_RUNTIME === 'edge') {\n return new Promise((r) => setTimeout(r, 0))\n } else {\n return new Promise((r) => setImmediate(r))\n }\n}\n","export const INSTANT_VALIDATION_BOUNDARY_NAME =\n '__next_instant_validation_boundary__'\n","/**\n * The functions provided by this module are used to communicate certain properties\n * about the currently running code so that Next.js can make decisions on how to handle\n * the current execution in different rendering modes such as pre-rendering, resuming, and SSR.\n *\n * Today Next.js treats all code as potentially static. Certain APIs may only make sense when dynamically rendering.\n * Traditionally this meant deopting the entire render to dynamic however with PPR we can now deopt parts\n * of a React tree as dynamic while still keeping other parts static. There are really two different kinds of\n * Dynamic indications.\n *\n * The first is simply an intention to be dynamic. unstable_noStore is an example of this where\n * the currently executing code simply declares that the current scope is dynamic but if you use it\n * inside unstable_cache it can still be cached. This type of indication can be removed if we ever\n * make the default dynamic to begin with because the only way you would ever be static is inside\n * a cache scope which this indication does not affect.\n *\n * The second is an indication that a dynamic data source was read. This is a stronger form of dynamic\n * because it means that it is inappropriate to cache this at all. using a dynamic data source inside\n * unstable_cache should error. If you want to use some dynamic data inside unstable_cache you should\n * read that data outside the cache and pass it in as an argument to the cached function.\n */\n\nimport type { WorkStore } from '../app-render/work-async-storage.external'\nimport type {\n WorkUnitStore,\n PrerenderStoreLegacy,\n PrerenderStoreModern,\n ValidationStoreClient,\n} from '../app-render/work-unit-async-storage.external'\n\n// Once postpone is in stable we should switch to importing the postpone export directly\nimport React from 'react'\n\nimport { DynamicServerError } from '../../client/components/hooks-server-context'\nimport { StaticGenBailoutError } from '../../client/components/static-generation-bailout'\nimport {\n throwForMissingRequestStore,\n workUnitAsyncStorage,\n} from './work-unit-async-storage.external'\nimport { workAsyncStorage } from '../app-render/work-async-storage.external'\nimport { makeHangingPromise, getRuntimeStage } from '../dynamic-rendering-utils'\nimport {\n METADATA_BOUNDARY_NAME,\n VIEWPORT_BOUNDARY_NAME,\n OUTLET_BOUNDARY_NAME,\n ROOT_LAYOUT_BOUNDARY_NAME,\n} from '../../lib/framework/boundary-constants'\nimport { scheduleOnNextTick } from '../../lib/scheduler'\nimport { BailoutToCSRError } from '../../shared/lib/lazy-dynamic/bailout-to-csr'\nimport { InvariantError } from '../../shared/lib/invariant-error'\nimport { INSTANT_VALIDATION_BOUNDARY_NAME } from './instant-validation/boundary-constants'\nimport type { ValidationBoundaryTracking } from './instant-validation/boundary-tracking'\nimport type { InstantValidationSampleTracking } from './instant-validation/instant-samples'\n\nconst hasPostpone = typeof React.unstable_postpone === 'function'\n\nexport type DynamicAccess = {\n /**\n * If debugging, this will contain the stack trace of where the dynamic access\n * occurred. This is used to provide more information to the user about why\n * their page is being rendered dynamically.\n */\n stack?: string\n\n /**\n * The expression that was accessed dynamically.\n */\n expression: string\n}\n\n// Stores dynamic reasons used during an RSC render.\nexport type DynamicTrackingState = {\n /**\n * When true, stack information will also be tracked during dynamic access.\n */\n readonly isDebugDynamicAccesses: boolean | undefined\n\n /**\n * The dynamic accesses that occurred during the render.\n */\n readonly dynamicAccesses: Array<DynamicAccess>\n\n syncDynamicErrorWithStack: null | Error\n}\n\n// Stores dynamic reasons used during an SSR render.\nexport type DynamicValidationState = {\n hasSuspenseAboveBody: boolean\n hasDynamicMetadata: boolean\n dynamicMetadata: null | Error\n hasDynamicViewport: boolean\n hasAllowedDynamic: boolean\n dynamicErrors: Array<Error>\n}\n\nexport function createDynamicTrackingState(\n isDebugDynamicAccesses: boolean | undefined\n): DynamicTrackingState {\n return {\n isDebugDynamicAccesses,\n dynamicAccesses: [],\n syncDynamicErrorWithStack: null,\n }\n}\n\nexport function createDynamicValidationState(): DynamicValidationState {\n return {\n hasSuspenseAboveBody: false,\n hasDynamicMetadata: false,\n dynamicMetadata: null,\n hasDynamicViewport: false,\n hasAllowedDynamic: false,\n dynamicErrors: [],\n }\n}\n\nexport function getFirstDynamicReason(\n trackingState: DynamicTrackingState\n): undefined | string {\n return trackingState.dynamicAccesses[0]?.expression\n}\n\n/**\n * This function communicates that the current scope should be treated as dynamic.\n *\n * In most cases this function is a no-op but if called during\n * a PPR prerender it will postpone the current sub-tree and calling\n * it during a normal prerender will cause the entire prerender to abort\n */\nexport function markCurrentScopeAsDynamic(\n store: WorkStore,\n workUnitStore: undefined | Exclude<WorkUnitStore, PrerenderStoreModern>,\n expression: string\n): void {\n if (workUnitStore) {\n switch (workUnitStore.type) {\n case 'cache':\n case 'unstable-cache':\n // Inside cache scopes, marking a scope as dynamic has no effect,\n // because the outer cache scope creates a cache boundary. This is\n // subtly different from reading a dynamic data source, which is\n // forbidden inside a cache scope.\n return\n case 'private-cache':\n // A private cache scope is already dynamic by definition.\n return\n case 'prerender-legacy':\n case 'prerender-ppr':\n case 'request':\n case 'generate-static-params':\n break\n default:\n workUnitStore satisfies never\n }\n }\n\n // If we're forcing dynamic rendering or we're forcing static rendering, we\n // don't need to do anything here because the entire page is already dynamic\n // or it's static and it should not throw or postpone here.\n if (store.forceDynamic || store.forceStatic) return\n\n if (store.dynamicShouldError) {\n throw new StaticGenBailoutError(\n `Route ${store.route} with \\`dynamic = \"error\"\\` couldn't be rendered statically because it used \\`${expression}\\`. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`\n )\n }\n\n if (workUnitStore) {\n switch (workUnitStore.type) {\n case 'prerender-ppr':\n return postponeWithTracking(\n store.route,\n expression,\n workUnitStore.dynamicTracking\n )\n case 'prerender-legacy':\n workUnitStore.revalidate = 0\n\n // We aren't prerendering, but we are generating a static page. We need\n // to bail out of static generation.\n const err = new DynamicServerError(\n `Route ${store.route} couldn't be rendered statically because it used ${expression}. See more info here: https://nextjs.org/docs/messages/dynamic-server-error`\n )\n store.dynamicUsageDescription = expression\n store.dynamicUsageStack = err.stack\n\n throw err\n case 'request':\n if (process.env.NODE_ENV !== 'production') {\n workUnitStore.usedDynamic = true\n }\n break\n case 'generate-static-params':\n break\n default:\n workUnitStore satisfies never\n }\n }\n}\n\n/**\n * This function is meant to be used when prerendering without cacheComponents or PPR.\n * When called during a build it will cause Next.js to consider the route as dynamic.\n *\n * @internal\n */\nexport function throwToInterruptStaticGeneration(\n expression: string,\n store: WorkStore,\n prerenderStore: PrerenderStoreLegacy\n): never {\n // We aren't prerendering but we are generating a static page. We need to bail out of static generation\n const err = new DynamicServerError(\n `Route ${store.route} couldn't be rendered statically because it used \\`${expression}\\`. See more info here: https://nextjs.org/docs/messages/dynamic-server-error`\n )\n\n prerenderStore.revalidate = 0\n\n store.dynamicUsageDescription = expression\n store.dynamicUsageStack = err.stack\n\n throw err\n}\n\n/**\n * This function should be used to track whether something dynamic happened even when\n * we are in a dynamic render. This is useful for Dev where all renders are dynamic but\n * we still track whether dynamic APIs were accessed for helpful messaging\n *\n * @internal\n */\nexport function trackDynamicDataInDynamicRender(workUnitStore: WorkUnitStore) {\n switch (workUnitStore.type) {\n case 'cache':\n case 'unstable-cache':\n // Inside cache scopes, marking a scope as dynamic has no effect,\n // because the outer cache scope creates a cache boundary. This is\n // subtly different from reading a dynamic data source, which is\n // forbidden inside a cache scope.\n return\n case 'private-cache':\n // A private cache scope is already dynamic by definition.\n return\n case 'prerender':\n case 'prerender-runtime':\n case 'prerender-legacy':\n case 'prerender-ppr':\n case 'prerender-client':\n case 'validation-client':\n case 'generate-static-params':\n break\n case 'request':\n if (process.env.NODE_ENV !== 'production') {\n workUnitStore.usedDynamic = true\n }\n break\n default:\n workUnitStore satisfies never\n }\n}\n\nfunction abortOnSynchronousDynamicDataAccess(\n route: string,\n expression: string,\n prerenderStore: PrerenderStoreModern\n): void {\n const reason = `Route ${route} needs to bail out of prerendering at this point because it used ${expression}.`\n\n const error = createPrerenderInterruptedError(reason)\n\n prerenderStore.controller.abort(error)\n\n const dynamicTracking = prerenderStore.dynamicTracking\n if (dynamicTracking) {\n dynamicTracking.dynamicAccesses.push({\n // When we aren't debugging, we don't need to create another error for the\n // stack trace.\n stack: dynamicTracking.isDebugDynamicAccesses\n ? new Error().stack\n : undefined,\n expression,\n })\n }\n}\n\nexport function abortOnSynchronousPlatformIOAccess(\n route: string,\n expression: string,\n errorWithStack: Error,\n prerenderStore: PrerenderStoreModern\n): void {\n const dynamicTracking = prerenderStore.dynamicTracking\n abortOnSynchronousDynamicDataAccess(route, expression, prerenderStore)\n // It is important that we set this tracking value after aborting. Aborts are executed\n // synchronously except for the case where you abort during render itself. By setting this\n // value late we can use it to determine if any of the aborted tasks are the task that\n // called the sync IO expression in the first place.\n if (dynamicTracking) {\n if (dynamicTracking.syncDynamicErrorWithStack === null) {\n dynamicTracking.syncDynamicErrorWithStack = errorWithStack\n }\n }\n}\n\n/**\n * use this function when prerendering with cacheComponents. If we are doing a\n * prospective prerender we don't actually abort because we want to discover\n * all caches for the shell. If this is the actual prerender we do abort.\n *\n * This function accepts a prerenderStore but the caller should ensure we're\n * actually running in cacheComponents mode.\n *\n * @internal\n */\nexport function abortAndThrowOnSynchronousRequestDataAccess(\n route: string,\n expression: string,\n errorWithStack: Error,\n prerenderStore: PrerenderStoreModern\n): never {\n const prerenderSignal = prerenderStore.controller.signal\n if (prerenderSignal.aborted === false) {\n // TODO it would be better to move this aborted check into the callsite so we can avoid making\n // the error object when it isn't relevant to the aborting of the prerender however\n // since we need the throw semantics regardless of whether we abort it is easier to land\n // this way. See how this was handled with `abortOnSynchronousPlatformIOAccess` for a closer\n // to ideal implementation\n abortOnSynchronousDynamicDataAccess(route, expression, prerenderStore)\n // It is important that we set this tracking value after aborting. Aborts are executed\n // synchronously except for the case where you abort during render itself. By setting this\n // value late we can use it to determine if any of the aborted tasks are the task that\n // called the sync IO expression in the first place.\n const dynamicTracking = prerenderStore.dynamicTracking\n if (dynamicTracking) {\n if (dynamicTracking.syncDynamicErrorWithStack === null) {\n dynamicTracking.syncDynamicErrorWithStack = errorWithStack\n }\n }\n }\n throw createPrerenderInterruptedError(\n `Route ${route} needs to bail out of prerendering at this point because it used ${expression}.`\n )\n}\n\n/**\n * This component will call `React.postpone` that throws the postponed error.\n */\ntype PostponeProps = {\n reason: string\n route: string\n}\nexport function Postpone({ reason, route }: PostponeProps): never {\n const prerenderStore = workUnitAsyncStorage.getStore()\n const dynamicTracking =\n prerenderStore && prerenderStore.type === 'prerender-ppr'\n ? prerenderStore.dynamicTracking\n : null\n postponeWithTracking(route, reason, dynamicTracking)\n}\n\nexport function postponeWithTracking(\n route: string,\n expression: string,\n dynamicTracking: null | DynamicTrackingState\n): never {\n assertPostpone()\n if (dynamicTracking) {\n dynamicTracking.dynamicAccesses.push({\n // When we aren't debugging, we don't need to create another error for the\n // stack trace.\n stack: dynamicTracking.isDebugDynamicAccesses\n ? new Error().stack\n : undefined,\n expression,\n })\n }\n\n React.unstable_postpone(createPostponeReason(route, expression))\n}\n\nfunction createPostponeReason(route: string, expression: string) {\n return (\n `Route ${route} needs to bail out of prerendering at this point because it used ${expression}. ` +\n `React throws this special object to indicate where. It should not be caught by ` +\n `your own try/catch. Learn more: https://nextjs.org/docs/messages/ppr-caught-error`\n )\n}\n\nexport function isDynamicPostpone(err: unknown) {\n if (\n typeof err === 'object' &&\n err !== null &&\n typeof (err as any).message === 'string'\n ) {\n return isDynamicPostponeReason((err as any).message)\n }\n return false\n}\n\nfunction isDynamicPostponeReason(reason: string) {\n return (\n reason.includes(\n 'needs to bail out of prerendering at this point because it used'\n ) &&\n reason.includes(\n 'Learn more: https://nextjs.org/docs/messages/ppr-caught-error'\n )\n )\n}\n\nif (isDynamicPostponeReason(createPostponeReason('%%%', '^^^')) === false) {\n throw new Error(\n 'Invariant: isDynamicPostpone misidentified a postpone reason. This is a bug in Next.js'\n )\n}\n\nconst NEXT_PRERENDER_INTERRUPTED = 'NEXT_PRERENDER_INTERRUPTED'\n\nfunction createPrerenderInterruptedError(message: string): Error {\n const error = new Error(message)\n ;(error as any).digest = NEXT_PRERENDER_INTERRUPTED\n return error\n}\n\ntype DigestError = Error & {\n digest: string\n}\n\nexport function isPrerenderInterruptedError(\n error: unknown\n): error is DigestError {\n return (\n typeof error === 'object' &&\n error !== null &&\n (error as any).digest === NEXT_PRERENDER_INTERRUPTED &&\n 'name' in error &&\n 'message' in error &&\n error instanceof Error\n )\n}\n\nexport function accessedDynamicData(\n dynamicAccesses: Array<DynamicAccess>\n): boolean {\n return dynamicAccesses.length > 0\n}\n\nexport function consumeDynamicAccess(\n serverDynamic: DynamicTrackingState,\n clientDynamic: DynamicTrackingState\n): DynamicTrackingState['dynamicAccesses'] {\n // We mutate because we only call this once we are no longer writing\n // to the dynamicTrackingState and it's more efficient than creating a new\n // array.\n serverDynamic.dynamicAccesses.push(...clientDynamic.dynamicAccesses)\n return serverDynamic.dynamicAccesses\n}\n\nexport function formatDynamicAPIAccesses(\n dynamicAccesses: Array<DynamicAccess>\n): string[] {\n return dynamicAccesses\n .filter(\n (access): access is Required<DynamicAccess> =>\n typeof access.stack === 'string' && access.stack.length > 0\n )\n .map(({ expression, stack }) => {\n stack = stack\n .split('\\n')\n // Remove the \"Error: \" prefix from the first line of the stack trace as\n // well as the first 4 lines of the stack trace which is the distance\n // from the user code and the `new Error().stack` call.\n .slice(4)\n .filter((line) => {\n // Exclude Next.js internals from the stack trace.\n if (line.includes('node_modules/next/')) {\n return false\n }\n\n // Exclude anonymous functions from the stack trace.\n if (line.includes(' (<anonymous>)')) {\n return false\n }\n\n // Exclude Node.js internals from the stack trace.\n if (line.includes(' (node:')) {\n return false\n }\n\n return true\n })\n .join('\\n')\n return `Dynamic API Usage Debug - ${expression}:\\n${stack}`\n })\n}\n\nfunction assertPostpone() {\n if (!hasPostpone) {\n throw new Error(\n `Invariant: React.unstable_postpone is not defined. This suggests the wrong version of React was loaded. This is a bug in Next.js`\n )\n }\n}\n\n/**\n * This is a bit of a hack to allow us to abort a render using a Postpone instance instead of an Error which changes React's\n * abort semantics slightly.\n */\nexport function createRenderInBrowserAbortSignal(): AbortSignal {\n const controller = new AbortController()\n controller.abort(new BailoutToCSRError('Render in Browser'))\n return controller.signal\n}\n\n/**\n * In a prerender, we may end up with hanging Promises as inputs due them\n * stalling on connection() or because they're loading dynamic data. In that\n * case we need to abort the encoding of arguments since they'll never complete.\n */\nexport function createHangingInputAbortSignal(\n workUnitStore: WorkUnitStore\n): AbortSignal | undefined {\n switch (workUnitStore.type) {\n case 'prerender':\n case 'prerender-runtime':\n const controller = new AbortController()\n\n if (workUnitStore.cacheSignal) {\n // If we have a cacheSignal it means we're in a prospective render. If\n // the input we're waiting on is coming from another cache, we do want\n // to wait for it so that we can resolve this cache entry too.\n workUnitStore.cacheSignal.inputReady().then(() => {\n controller.abort()\n })\n } else {\n // Otherwise we're in the final render and we should already have all\n // our caches filled.\n // If the prerender uses stages, we have wait until the runtime stage,\n // at which point all runtime inputs will be resolved.\n // (otherwise, a runtime prerender might consider `cookies()` hanging\n // even though they'd resolve in the next task.)\n //\n // We might still be waiting on some microtasks so we\n // wait one tick before giving up. When we give up, we still want to\n // render the content of this cache as deeply as we can so that we can\n // suspend as deeply as possible in the tree or not at all if we don't\n // end up waiting for the input.\n if (\n // eslint-disable-next-line no-restricted-syntax -- We are discriminating between two different refined types and don't need an addition exhaustive switch here\n workUnitStore.type === 'prerender-runtime' &&\n workUnitStore.stagedRendering\n ) {\n const { stagedRendering } = workUnitStore\n stagedRendering\n .waitForStage(getRuntimeStage(stagedRendering))\n .then(() => scheduleOnNextTick(() => controller.abort()))\n } else {\n scheduleOnNextTick(() => controller.abort())\n }\n }\n\n return controller.signal\n case 'prerender-client':\n case 'validation-client':\n case 'prerender-ppr':\n case 'prerender-legacy':\n case 'request':\n case 'cache':\n case 'private-cache':\n case 'unstable-cache':\n case 'generate-static-params':\n return undefined\n default:\n workUnitStore satisfies never\n }\n}\n\nexport function annotateDynamicAccess(\n expression: string,\n prerenderStore: PrerenderStoreModern | ValidationStoreClient\n) {\n const dynamicTracking = prerenderStore.dynamicTracking\n if (dynamicTracking) {\n dynamicTracking.dynamicAccesses.push({\n stack: dynamicTracking.isDebugDynamicAccesses\n ? new Error().stack\n : undefined,\n expression,\n })\n }\n}\n\nexport function useDynamicRouteParams(expression: string) {\n const workStore = workAsyncStorage.getStore()\n const workUnitStore = workUnitAsyncStorage.getStore()\n if (workStore && workUnitStore) {\n switch (workUnitStore.type) {\n case 'prerender-client':\n case 'prerender': {\n const fallbackParams = workUnitStore.fallbackRouteParams\n\n if (fallbackParams && fallbackParams.size > 0) {\n // We are in a prerender with cacheComponents semantics. We are going to\n // hang here and never resolve. This will cause the currently\n // rendering component to effectively be a dynamic hole.\n React.use(\n makeHangingPromise(\n workUnitStore.renderSignal,\n workStore.route,\n expression\n )\n )\n }\n break\n }\n case 'prerender-ppr': {\n const fallbackParams = workUnitStore.fallbackRouteParams\n if (fallbackParams && fallbackParams.size > 0) {\n return postponeWithTracking(\n workStore.route,\n expression,\n workUnitStore.dynamicTracking\n )\n }\n break\n }\n case 'validation-client': {\n // Don't check fallbackRouteParams here. We handle params that weren't\n // provided in the samples using a proxy that throws when accessed.\n break\n }\n case 'prerender-runtime':\n throw new InvariantError(\n `\\`${expression}\\` was called during a runtime prerender. Next.js should be preventing ${expression} from being included in server components statically, but did not in this case.`\n )\n case 'cache':\n case 'private-cache':\n throw new InvariantError(\n `\\`${expression}\\` was called inside a cache scope. Next.js should be preventing ${expression} from being included in server components statically, but did not in this case.`\n )\n case 'generate-static-params':\n throw new InvariantError(\n `\\`${expression}\\` was called in \\`generateStaticParams\\`. Next.js should be preventing ${expression} from being included in server component files statically, but did not in this case.`\n )\n case 'prerender-legacy':\n case 'request':\n case 'unstable-cache':\n break\n default:\n workUnitStore satisfies never\n }\n }\n}\n\nexport function useDynamicSearchParams(expression: string) {\n const workStore = workAsyncStorage.getStore()\n const workUnitStore = workUnitAsyncStorage.getStore()\n\n if (!workStore) {\n // We assume pages router context and just return\n return\n }\n\n if (!workUnitStore) {\n throwForMissingRequestStore(expression)\n }\n\n switch (workUnitStore.type) {\n case 'validation-client':\n // During instant validation we try to behave as close to client as possible,\n // so this shouldn't hang during SSR.\n return\n case 'prerender-client': {\n React.use(\n makeHangingPromise(\n workUnitStore.renderSignal,\n workStore.route,\n expression\n )\n )\n break\n }\n case 'prerender-legacy':\n case 'prerender-ppr': {\n if (workStore.forceStatic) {\n return\n }\n throw new BailoutToCSRError(expression)\n }\n case 'prerender':\n case 'prerender-runtime':\n throw new InvariantError(\n `\\`${expression}\\` was called from a Server Component. Next.js should be preventing ${expression} from being included in server components statically, but did not in this case.`\n )\n case 'cache':\n case 'unstable-cache':\n case 'private-cache':\n throw new InvariantError(\n `\\`${expression}\\` was called inside a cache scope. Next.js should be preventing ${expression} from being included in server components statically, but did not in this case.`\n )\n case 'generate-static-params':\n throw new InvariantError(\n `\\`${expression}\\` was called in \\`generateStaticParams\\`. Next.js should be preventing ${expression} from being included in server component files statically, but did not in this case.`\n )\n case 'request':\n return\n default:\n workUnitStore satisfies never\n }\n}\n\nconst hasSuspenseRegex = /\\n\\s+at Suspense \\(<anonymous>\\)/\n\n// Common implicit body tags that React will treat as body when placed directly in html\nconst bodyAndImplicitTags =\n 'body|div|main|section|article|aside|header|footer|nav|form|p|span|h1|h2|h3|h4|h5|h6'\n\n// Detects when RootLayoutBoundary (our framework marker component) appears\n// after Suspense in the component stack, indicating the root layout is wrapped\n// within a Suspense boundary. Ensures no body/html/implicit-body components are in between.\n//\n// Example matches:\n// at Suspense (<anonymous>)\n// at __next_root_layout_boundary__ (<anonymous>)\n//\n// Or with other components in between (but not body/html/implicit-body):\n// at Suspense (<anonymous>)\n// at SomeComponent (<anonymous>)\n// at __next_root_layout_boundary__ (<anonymous>)\nconst hasSuspenseBeforeRootLayoutWithoutBodyOrImplicitBodyRegex = new RegExp(\n `\\\\n\\\\s+at Suspense \\\\(<anonymous>\\\\)(?:(?!\\\\n\\\\s+at (?:${bodyAndImplicitTags}) \\\\(<anonymous>\\\\))[\\\\s\\\\S])*?\\\\n\\\\s+at ${ROOT_LAYOUT_BOUNDARY_NAME} \\\\([^\\\\n]*\\\\)`\n)\n\nconst hasMetadataRegex = new RegExp(\n `\\\\n\\\\s+at ${METADATA_BOUNDARY_NAME}[\\\\n\\\\s]`\n)\nconst hasViewportRegex = new RegExp(\n `\\\\n\\\\s+at ${VIEWPORT_BOUNDARY_NAME}[\\\\n\\\\s]`\n)\nconst hasOutletRegex = new RegExp(`\\\\n\\\\s+at ${OUTLET_BOUNDARY_NAME}[\\\\n\\\\s]`)\n\nconst hasInstantValidationBoundaryRegex = new RegExp(\n `\\\\n\\\\s+at ${INSTANT_VALIDATION_BOUNDARY_NAME}[\\\\n\\\\s]`\n)\n\nexport function trackAllowedDynamicAccess(\n workStore: WorkStore,\n componentStack: string,\n dynamicValidation: DynamicValidationState,\n clientDynamic: DynamicTrackingState\n) {\n if (hasOutletRegex.test(componentStack)) {\n // We don't need to track that this is dynamic. It is only so when something else is also dynamic.\n return\n } else if (hasMetadataRegex.test(componentStack)) {\n dynamicValidation.hasDynamicMetadata = true\n return\n } else if (hasViewportRegex.test(componentStack)) {\n dynamicValidation.hasDynamicViewport = true\n return\n } else if (\n hasSuspenseBeforeRootLayoutWithoutBodyOrImplicitBodyRegex.test(\n componentStack\n )\n ) {\n // For Suspense within body, the prelude wouldn't be empty so it wouldn't violate the empty static shells rule.\n // But if you have Suspense above body, the prelude is empty but we allow that because having Suspense\n // is an explicit signal from the user that they acknowledge the empty shell and want dynamic rendering.\n dynamicValidation.hasAllowedDynamic = true\n dynamicValidation.hasSuspenseAboveBody = true\n return\n } else if (hasSuspenseRegex.test(componentStack)) {\n // this error had a Suspense boundary above it so we don't need to report it as a source\n // of disallowed\n dynamicValidation.hasAllowedDynamic = true\n return\n } else if (clientDynamic.syncDynamicErrorWithStack) {\n // This task was the task that called the sync error.\n dynamicValidation.dynamicErrors.push(\n clientDynamic.syncDynamicErrorWithStack\n )\n return\n } else {\n const message =\n `Route \"${workStore.route}\": Uncached data was accessed outside of ` +\n '<Suspense>. This delays the entire page from rendering, resulting in a ' +\n 'slow user experience. Learn more: ' +\n 'https://nextjs.org/docs/messages/blocking-route'\n const error = addErrorContext(new Error(message), componentStack, null)\n dynamicValidation.dynamicErrors.push(error)\n return\n }\n}\n\nexport enum DynamicHoleKind {\n /** We know that this hole is caused by runtime data. */\n Runtime = 1,\n /** We know that this hole is caused by dynamic data. */\n Dynamic = 2,\n}\n\n/** Stores dynamic reasons used during an SSR render in instant validation. */\nexport type InstantValidationState = {\n hasDynamicMetadata: boolean\n hasAllowedClientDynamicAboveBoundary: boolean\n dynamicMetadata: null | Error\n hasDynamicViewport: boolean\n hasAllowedDynamic: boolean\n dynamicErrors: Array<Error>\n validationPreventingErrors: Array<Error>\n thrownErrorsOutsideBoundary: Array<unknown>\n createInstantStack: (() => Error) | null\n}\n\nexport function createInstantValidationState(\n createInstantStack: (() => Error) | null\n): InstantValidationState {\n return {\n hasDynamicMetadata: false,\n hasAllowedClientDynamicAboveBoundary: false,\n dynamicMetadata: null,\n hasDynamicViewport: false,\n hasAllowedDynamic: false,\n dynamicErrors: [],\n validationPreventingErrors: [],\n thrownErrorsOutsideBoundary: [],\n createInstantStack,\n }\n}\n\nexport function trackDynamicHoleInNavigation(\n workStore: WorkStore,\n componentStack: string,\n dynamicValidation: InstantValidationState,\n clientDynamic: DynamicTrackingState,\n kind: DynamicHoleKind,\n boundaryState: ValidationBoundaryTracking\n) {\n if (hasOutletRegex.test(componentStack)) {\n // We don't need to track that this is dynamic. It is only so when something else is also dynamic.\n return\n }\n if (hasMetadataRegex.test(componentStack)) {\n const usageDescription =\n kind === DynamicHoleKind.Runtime\n ? `Runtime data such as \\`cookies()\\`, \\`headers()\\`, \\`params\\`, or \\`searchParams\\` was accessed inside \\`generateMetadata\\` or you have file-based metadata such as icons that depend on dynamic params segments.`\n : `Uncached data or \\`connection()\\` was accessed inside \\`generateMetadata\\`.`\n const message = `Route \"${workStore.route}\": ${usageDescription} Except for this instance, the page would have been entirely prerenderable which may have been the intended behavior. See more info here: https://nextjs.org/docs/messages/next-prerender-dynamic-metadata`\n const error = addErrorContext(\n new Error(message),\n componentStack,\n dynamicValidation.createInstantStack\n )\n dynamicValidation.dynamicMetadata = error\n return\n }\n if (hasViewportRegex.test(componentStack)) {\n const usageDescription =\n kind === DynamicHoleKind.Runtime\n ? `Runtime data such as \\`cookies()\\`, \\`headers()\\`, \\`params\\`, or \\`searchParams\\` was accessed inside \\`generateViewport\\`.`\n : `Uncached data or \\`connection()\\` was accessed inside \\`generateViewport\\`.`\n const message = `Route \"${workStore.route}\": ${usageDescription} This delays the entire page from rendering, resulting in a slow user experience. Learn more: https://nextjs.org/docs/messages/next-prerender-dynamic-viewport`\n const error = addErrorContext(\n new Error(message),\n componentStack,\n dynamicValidation.createInstantStack\n )\n dynamicValidation.dynamicErrors.push(error)\n return\n }\n\n const boundaryLocation =\n hasInstantValidationBoundaryRegex.exec(componentStack)\n if (!boundaryLocation) {\n // We don't see the validation boundary in the component stack,\n // so this hole must be coming from a shared parent.\n // Shared parents are fully resolved and don't have RSC holes,\n // but they can still suspend in a client component during SSR.\n\n // If we managed to render all the validation boundaries, that means\n // that the client holes aren't blocking validation and we can disregard them.\n // Note that we don't even care whether they have suspense or not.\n if (boundaryState.expectedIds.size === boundaryState.renderedIds.size) {\n dynamicValidation.hasAllowedClientDynamicAboveBoundary = true\n dynamicValidation.hasAllowedDynamic = true // Holes outside the boundary contribute to allowing dynamic metadata\n return\n } else {\n // TODO(instant-validation) TODO(NAR-787)\n // If shared parents blocked us from validating, we should only log\n // the errors from the innermost (segments), i.e. omit layouts whose\n // slots managed to render (because clearly they didn't block validation)\n const message = `Route \"${workStore.route}\": Could not validate \\`unstable_instant\\` because a Client Component in a parent segment prevented the page from rendering.`\n const error = addErrorContext(\n new Error(message),\n componentStack,\n dynamicValidation.createInstantStack\n )\n dynamicValidation.validationPreventingErrors.push(error)\n return\n }\n } else {\n // The hole originates inside the validation boundary.\n //\n // Check if we have a Suspense above the hole, but below the validation boundary.\n // If we do, then this dynamic usage wouldn't block a navigation to this subtree.\n // Conversely, if the nearest suspense is above the validation boundary, then this subtree would block.\n //\n // Note that in the component stack, children come before parents.\n //\n // Valid:\n // ...\n // at Suspense\n // ...\n // at __next_prefetch_validation_boundary__\n //\n // Invalid:\n // ...\n // at __next_prefetch_validation_boundary__\n // ...\n // at Suspense\n //\n const suspenseLocation = hasSuspenseRegex.exec(componentStack)\n if (suspenseLocation) {\n if (suspenseLocation.index < boundaryLocation.index) {\n dynamicValidation.hasAllowedDynamic = true\n return\n } else {\n // invalid - fallthrough\n }\n }\n }\n\n if (clientDynamic.syncDynamicErrorWithStack) {\n // This task was the task that called the sync error.\n const syncError = clientDynamic.syncDynamicErrorWithStack\n if (\n dynamicValidation.createInstantStack !== null &&\n syncError.cause === undefined\n ) {\n syncError.cause = dynamicValidation.createInstantStack()\n }\n dynamicValidation.dynamicErrors.push(syncError)\n return\n }\n\n const usageDescription =\n kind === DynamicHoleKind.Runtime\n ? `Runtime data such as \\`cookies()\\`, \\`headers()\\`, \\`params\\`, or \\`searchParams\\` was accessed outside of \\`<Suspense>\\`.`\n : `Uncached data or \\`connection()\\` was accessed outside of \\`<Suspense>\\`.`\n const message = `Route \"${workStore.route}\": ${usageDescription} This delays the entire page from rendering, resulting in a slow user experience. Learn more: https://nextjs.org/docs/messages/blocking-route`\n const error = addErrorContext(\n new Error(message),\n componentStack,\n dynamicValidation.createInstantStack\n )\n dynamicValidation.dynamicErrors.push(error)\n return\n}\n\nexport function trackThrownErrorInNavigation(\n workStore: WorkStore,\n dynamicValidation: InstantValidationState,\n thrownValue: unknown,\n componentStack: string\n) {\n const boundaryLocation =\n hasInstantValidationBoundaryRegex.exec(componentStack)\n if (!boundaryLocation) {\n // There's no validation boundary on the component stack.\n // This error may have blocked a boundary from rendering.\n\n // Wrap the error to provide component context.\n // This helps for errors from node_modules which would otherwise\n // have no useful stack information due to ignore-listing,\n // e.g. next/dynamic with `ssr: false`.\n const error = addErrorContext(\n new Error(\n 'An error occurred while attempting to validate instant UI. This error may be preventing the validation from completing.',\n { cause: thrownValue }\n ),\n componentStack,\n null\n )\n dynamicValidation.thrownErrorsOutsideBoundary.push(error)\n } else {\n // There's validation boundary on the component stack,\n // so we know this error didn't block a validation boundary from rendering.\n // However, this error might be hiding be hiding dynamic content that would\n // cause validation to fail.\n const suspenseLocation = hasSuspenseRegex.exec(componentStack)\n if (suspenseLocation) {\n if (suspenseLocation.index < boundaryLocation.index) {\n // There's a Suspense below the validation boundary but above this error's location.\n // This subtree can't fail instant validation because any potential\n // dynamic holes would be guarded by the Suspense anyway,\n // so we can allow this.\n return\n } else {\n // invalid - fallthrough\n }\n }\n const message = `Route \"${workStore.route}\": Could not validate \\`unstable_instant\\` because an error prevented the target segment from rendering.`\n const error = addErrorContext(\n new Error(message, { cause: thrownValue }),\n componentStack,\n null // TODO(instant-validation-build): conflicting use of cause\n )\n dynamicValidation.validationPreventingErrors.push(error)\n }\n}\n\nexport function trackDynamicHoleInRuntimeShell(\n workStore: WorkStore,\n componentStack: string,\n dynamicValidation: DynamicValidationState,\n clientDynamic: DynamicTrackingState\n) {\n if (hasOutletRegex.test(componentStack)) {\n // We don't need to track that this is dynamic. It is only so when something else is also dynamic.\n return\n } else if (hasMetadataRegex.test(componentStack)) {\n const message = `Route \"${workStore.route}\": Uncached data or \\`connection()\\` was accessed inside \\`generateMetadata\\`. Except for this instance, the page would have been entirely prerenderable which may have been the intended behavior. See more info here: https://nextjs.org/docs/messages/next-prerender-dynamic-metadata`\n const error = addErrorContext(new Error(message), componentStack, null)\n dynamicValidation.dynamicMetadata = error\n return\n } else if (hasViewportRegex.test(componentStack)) {\n // TODO(instant-validation): If the page only has holes caused by runtime data,\n // we won't find out if there's a suspense-above-body and error for dynamic viewport\n // even if there is in fact a suspense-above-body\n const message = `Route \"${workStore.route}\": Uncached data or \\`connection()\\` was accessed inside \\`generateViewport\\`. This delays the entire page from rendering, resulting in a slow user experience. Learn more: https://nextjs.org/docs/messages/next-prerender-dynamic-viewport`\n const error = addErrorContext(new Error(message), componentStack, null)\n dynamicValidation.dynamicErrors.push(error)\n return\n } else if (\n hasSuspenseBeforeRootLayoutWithoutBodyOrImplicitBodyRegex.test(\n componentStack\n )\n ) {\n // For Suspense within body, the prelude wouldn't be empty so it wouldn't violate the empty static shells rule.\n // But if you have Suspense above body, the prelude is empty but we allow that because having Suspense\n // is an explicit signal from the user that they acknowledge the empty shell and want dynamic rendering.\n dynamicValidation.hasAllowedDynamic = true\n dynamicValidation.hasSuspenseAboveBody = true\n return\n } else if (hasSuspenseRegex.test(componentStack)) {\n // this error had a Suspense boundary above it so we don't need to report it as a source\n // of disallowed\n dynamicValidation.hasAllowedDynamic = true\n return\n } else if (clientDynamic.syncDynamicErrorWithStack) {\n // This task was the task that called the sync error.\n dynamicValidation.dynamicErrors.push(\n clientDynamic.syncDynamicErrorWithStack\n )\n return\n }\n\n const message = `Route \"${workStore.route}\": Uncached data or \\`connection()\\` was accessed outside of \\`<Suspense>\\`. This delays the entire page from rendering, resulting in a slow user experience. Learn more: https://nextjs.org/docs/messages/blocking-route`\n const error = addErrorContext(new Error(message), componentStack, null)\n dynamicValidation.dynamicErrors.push(error)\n return\n}\n\nexport function trackDynamicHoleInStaticShell(\n workStore: WorkStore,\n componentStack: string,\n dynamicValidation: DynamicValidationState,\n clientDynamic: DynamicTrackingState\n) {\n if (hasOutletRegex.test(componentStack)) {\n // We don't need to track that this is dynamic. It is only so when something else is also dynamic.\n return\n } else if (hasMetadataRegex.test(componentStack)) {\n const message = `Route \"${workStore.route}\": Runtime data such as \\`cookies()\\`, \\`headers()\\`, \\`params\\`, or \\`searchParams\\` was accessed inside \\`generateMetadata\\` or you have file-based metadata such as icons that depend on dynamic params segments. Except for this instance, the page would have been entirely prerenderable which may have been the intended behavior. See more info here: https://nextjs.org/docs/messages/next-prerender-dynamic-metadata`\n const error = addErrorContext(new Error(message), componentStack, null)\n dynamicValidation.dynamicMetadata = error\n return\n } else if (hasViewportRegex.test(componentStack)) {\n const message = `Route \"${workStore.route}\": Runtime data such as \\`cookies()\\`, \\`headers()\\`, \\`params\\`, or \\`searchParams\\` was accessed inside \\`generateViewport\\`. This delays the entire page from rendering, resulting in a slow user experience. Learn more: https://nextjs.org/docs/messages/next-prerender-dynamic-viewport`\n const error = addErrorContext(new Error(message), componentStack, null)\n dynamicValidation.dynamicErrors.push(error)\n return\n } else if (\n hasSuspenseBeforeRootLayoutWithoutBodyOrImplicitBodyRegex.test(\n componentStack\n )\n ) {\n // For Suspense within body, the prelude wouldn't be empty so it wouldn't violate the empty static shells rule.\n // But if you have Suspense above body, the prelude is empty but we allow that because having Suspense\n // is an explicit signal from the user that they acknowledge the empty shell and want dynamic rendering.\n dynamicValidation.hasAllowedDynamic = true\n dynamicValidation.hasSuspenseAboveBody = true\n return\n } else if (hasSuspenseRegex.test(componentStack)) {\n // this error had a Suspense boundary above it so we don't need to report it as a source\n // of disallowed\n dynamicValidation.hasAllowedDynamic = true\n return\n } else if (clientDynamic.syncDynamicErrorWithStack) {\n // This task was the task that called the sync error.\n dynamicValidation.dynamicErrors.push(\n clientDynamic.syncDynamicErrorWithStack\n )\n return\n } else {\n const message = `Route \"${workStore.route}\": Runtime data such as \\`cookies()\\`, \\`headers()\\`, \\`params\\`, or \\`searchParams\\` was accessed outside of \\`<Suspense>\\`. This delays the entire page from rendering, resulting in a slow user experience. Learn more: https://nextjs.org/docs/messages/blocking-route`\n const error = addErrorContext(new Error(message), componentStack, null)\n dynamicValidation.dynamicErrors.push(error)\n return\n }\n}\n\n/**\n * In dev mode, we prefer using the owner stack, otherwise the provided\n * component stack is used.\n *\n * Accepts an already-created Error so the SWC error-code plugin can see the\n * `new Error(...)` call at each call site and auto-assign error codes.\n */\nfunction addErrorContext(\n error: Error,\n componentStack: string,\n createInstantStack: (() => Error) | null\n) {\n const ownerStack =\n process.env.NODE_ENV !== 'production' && React.captureOwnerStack\n ? React.captureOwnerStack()\n : null\n\n if (createInstantStack !== null) {\n error.cause = createInstantStack()\n }\n // TODO go back to owner stack here if available. This is temporarily using componentStack to get the right\n //\n error.stack =\n error.name + ': ' + error.message + (ownerStack || componentStack)\n return error\n}\n\nexport enum PreludeState {\n Full = 0,\n Empty = 1,\n Errored = 2,\n}\n\nexport function logDisallowedDynamicError(\n workStore: WorkStore,\n error: Error\n): void {\n console.error(error)\n\n if (process.env.NODE_ENV !== 'development') {\n console.error(`To get a more detailed stack trace and pinpoint the issue, try one of the following:\n - Start the app in development mode by running \\`next dev\\`, then open \"${workStore.route}\" in your browser to investigate the error.\n - Rerun the production build with \\`next build --debug-prerender\\` to generate better stack traces.`)\n } else if (!process.env.__NEXT_DEV_SERVER) {\n console.error(\n `To debug the issue, start the app in development mode by running \\`next dev\\`, then open \"${workStore.route}\" in your browser to investigate the error.`\n )\n }\n}\n\nexport function throwIfDisallowedDynamic(\n workStore: WorkStore,\n prelude: PreludeState,\n dynamicValidation: DynamicValidationState,\n serverDynamic: DynamicTrackingState\n): void {\n if (serverDynamic.syncDynamicErrorWithStack) {\n logDisallowedDynamicError(\n workStore,\n serverDynamic.syncDynamicErrorWithStack\n )\n throw new StaticGenBailoutError()\n }\n\n if (prelude !== PreludeState.Full) {\n if (dynamicValidation.hasSuspenseAboveBody) {\n // This route has opted into allowing fully dynamic rendering\n // by including a Suspense boundary above the body. In this case\n // a lack of a shell is not considered disallowed so we simply return\n return\n }\n\n // We didn't have any sync bailouts but there may be user code which\n // blocked the root. We would have captured these during the prerender\n // and can log them here and then terminate the build/validating render\n const dynamicErrors = dynamicValidation.dynamicErrors\n if (dynamicErrors.length > 0) {\n for (let i = 0; i < dynamicErrors.length; i++) {\n logDisallowedDynamicError(workStore, dynamicErrors[i])\n }\n\n throw new StaticGenBailoutError()\n }\n\n // If we got this far then the only other thing that could be blocking\n // the root is dynamic Viewport. If this is dynamic then\n // you need to opt into that by adding a Suspense boundary above the body\n // to indicate your are ok with fully dynamic rendering.\n if (dynamicValidation.hasDynamicViewport) {\n console.error(\n `Route \"${workStore.route}\" has a \\`generateViewport\\` that depends on Request data (\\`cookies()\\`, etc...) or uncached external data (\\`fetch(...)\\`, etc...) without explicitly allowing fully dynamic rendering. See more info here: https://nextjs.org/docs/messages/next-prerender-dynamic-viewport`\n )\n throw new StaticGenBailoutError()\n }\n\n if (prelude === PreludeState.Empty) {\n // If we ever get this far then we messed up the tracking of invalid dynamic.\n // We still adhere to the constraint that you must produce a shell but invite the\n // user to report this as a bug in Next.js.\n console.error(\n `Route \"${workStore.route}\" did not produce a static shell and Next.js was unable to determine a reason. This is a bug in Next.js.`\n )\n throw new StaticGenBailoutError()\n }\n } else {\n if (\n dynamicValidation.hasAllowedDynamic === false &&\n dynamicValidation.hasDynamicMetadata\n ) {\n console.error(\n `Route \"${workStore.route}\" has a \\`generateMetadata\\` that depends on Request data (\\`cookies()\\`, etc...) or uncached external data (\\`fetch(...)\\`, etc...) when the rest of the route does not. See more info here: https://nextjs.org/docs/messages/next-prerender-dynamic-metadata`\n )\n throw new StaticGenBailoutError()\n }\n }\n}\n\nexport function getStaticShellDisallowedDynamicReasons(\n workStore: WorkStore,\n prelude: PreludeState,\n dynamicValidation: DynamicValidationState,\n configAllowsBlocking: boolean\n): Array<Error> {\n if (configAllowsBlocking || dynamicValidation.hasSuspenseAboveBody) {\n // This route has opted into allowing fully dynamic rendering\n // by including a Suspense boundary above the body. In this case\n // a lack of a shell is not considered disallowed so we simply return\n return []\n }\n\n if (prelude !== PreludeState.Full) {\n // We didn't have any sync bailouts but there may be user code which\n // blocked the root. We would have captured these during the prerender\n // and can log them here and then terminate the build/validating render\n const dynamicErrors = dynamicValidation.dynamicErrors\n if (dynamicErrors.length > 0) {\n return dynamicErrors\n }\n\n if (prelude === PreludeState.Empty) {\n // If we ever get this far then we messed up the tracking of invalid dynamic.\n // We still adhere to the constraint that you must produce a shell but invite the\n // user to report this as a bug in Next.js.\n return [\n new InvariantError(\n `Route \"${workStore.route}\" did not produce a static shell and Next.js was unable to determine a reason.`\n ),\n ]\n }\n } else {\n // We have a prelude but we might still have dynamic metadata without any other dynamic access\n if (\n dynamicValidation.hasAllowedDynamic === false &&\n dynamicValidation.dynamicErrors.length === 0 &&\n dynamicValidation.dynamicMetadata\n ) {\n return [dynamicValidation.dynamicMetadata]\n }\n }\n // We had a non-empty prelude and there are no dynamic holes\n return []\n}\n\nexport function getNavigationDisallowedDynamicReasons(\n workStore: WorkStore,\n prelude: PreludeState,\n dynamicValidation: InstantValidationState,\n validationSampleTracking: InstantValidationSampleTracking | null,\n boundaryState: ValidationBoundaryTracking\n): Array<Error> {\n // If we have errors related to missing samples, those should take precedence over everything else.\n if (validationSampleTracking) {\n const { missingSampleErrors } = validationSampleTracking\n if (missingSampleErrors.length > 0) {\n return missingSampleErrors\n }\n }\n\n const { validationPreventingErrors } = dynamicValidation\n if (validationPreventingErrors.length > 0) {\n return validationPreventingErrors\n }\n\n if (boundaryState.renderedIds.size < boundaryState.expectedIds.size) {\n const { thrownErrorsOutsideBoundary, createInstantStack } =\n dynamicValidation\n if (thrownErrorsOutsideBoundary.length === 0) {\n const message = `Route \"${workStore.route}\": Could not validate \\`unstable_instant\\` because the target segment was prevented from rendering for an unknown reason.`\n const error =\n createInstantStack !== null ? createInstantStack() : new Error()\n error.name = 'Error'\n error.message = message\n return [error]\n } else if (thrownErrorsOutsideBoundary.length === 1) {\n const message = `Route \"${workStore.route}\": Could not validate \\`unstable_instant\\` because the target segment was prevented from rendering, likely due to the following error.`\n const error =\n createInstantStack !== null ? createInstantStack() : new Error()\n error.name = 'Error'\n error.message = message\n return [error, thrownErrorsOutsideBoundary[0] as Error]\n } else {\n const message = `Route \"${workStore.route}\": Could not validate \\`unstable_instant\\` because the target segment was prevented from rendering, likely due to one of the following errors.`\n const error =\n createInstantStack !== null ? createInstantStack() : new Error()\n error.name = 'Error'\n error.message = message\n return [error, ...(thrownErrorsOutsideBoundary as Error[])]\n }\n }\n\n // NOTE: We don't care about Suspense above body here,\n // we're only concerned with the validation boundary\n if (prelude !== PreludeState.Full) {\n const dynamicErrors = dynamicValidation.dynamicErrors\n if (dynamicErrors.length > 0) {\n return dynamicErrors\n }\n\n if (prelude === PreludeState.Empty) {\n // If a client component suspended prevented us from rendering a shell\n // but didn't block validation, we don't require a prelude.\n if (dynamicValidation.hasAllowedClientDynamicAboveBoundary) {\n return []\n }\n // If we ever get this far then we messed up the tracking of invalid dynamic.\n return [\n new InvariantError(\n `Route \"${workStore.route}\" failed to render during instant validation and Next.js was unable to determine a reason.`\n ),\n ]\n }\n } else {\n const dynamicErrors = dynamicValidation.dynamicErrors\n if (dynamicErrors.length > 0) {\n return dynamicErrors\n }\n\n if (\n dynamicValidation.hasAllowedDynamic === false &&\n dynamicValidation.dynamicMetadata\n ) {\n return [dynamicValidation.dynamicMetadata]\n }\n }\n // We had a non-empty prelude and there are no dynamic holes\n return []\n}\n","import { isHangingPromiseRejectionError } from '../../server/dynamic-rendering-utils'\nimport { isPostpone } from '../../server/lib/router-utils/is-postpone'\nimport { isBailoutToCSRError } from '../../shared/lib/lazy-dynamic/bailout-to-csr'\nimport { isNextRouterError } from './is-next-router-error'\nimport {\n isDynamicPostpone,\n isPrerenderInterruptedError,\n} from '../../server/app-render/dynamic-rendering'\nimport { isDynamicServerError } from './hooks-server-context'\n\nexport function unstable_rethrow(error: unknown): void {\n if (\n isNextRouterError(error) ||\n isBailoutToCSRError(error) ||\n isDynamicServerError(error) ||\n isDynamicPostpone(error) ||\n isPostpone(error) ||\n isHangingPromiseRejectionError(error) ||\n isPrerenderInterruptedError(error)\n ) {\n throw error\n }\n\n if (error instanceof Error && 'cause' in error) {\n unstable_rethrow(error.cause)\n }\n}\n","import { isBailoutToCSRError } from '../../shared/lib/lazy-dynamic/bailout-to-csr'\nimport { isNextRouterError } from './is-next-router-error'\n\nexport function unstable_rethrow(error: unknown): void {\n if (isNextRouterError(error) || isBailoutToCSRError(error)) {\n throw error\n }\n\n if (error instanceof Error && 'cause' in error) {\n unstable_rethrow(error.cause)\n }\n}\n","/**\n * This function should be used to rethrow internal Next.js errors so that they can be handled by the framework.\n * When wrapping an API that uses errors to interrupt control flow, you should use this function before you do any error handling.\n * This function will rethrow the error if it is a Next.js error so it can be handled, otherwise it will do nothing.\n *\n * Read more: [Next.js Docs: `unstable_rethrow`](https://nextjs.org/docs/app/api-reference/functions/unstable_rethrow)\n */\nexport const unstable_rethrow =\n typeof window === 'undefined'\n ? (\n require('./unstable-rethrow.server') as typeof import('./unstable-rethrow.server')\n ).unstable_rethrow\n : (\n require('./unstable-rethrow.browser') as typeof import('./unstable-rethrow.browser')\n ).unstable_rethrow\n","import { ReadonlyURLSearchParams } from './readonly-url-search-params'\n\nexport function unstable_isUnrecognizedActionError(): boolean {\n throw new Error(\n '`unstable_isUnrecognizedActionError` can only be used on the client.'\n )\n}\n\nexport { redirect, permanentRedirect } from './redirect'\nexport { notFound } from './not-found'\nexport { forbidden } from './forbidden'\nexport { unauthorized } from './unauthorized'\nexport { unstable_rethrow } from './unstable-rethrow'\nexport { ReadonlyURLSearchParams }\n\nexport const RedirectType = {\n push: 'push',\n replace: 'replace',\n} as const\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar src_exports = {};\n__export(src_exports, {\n RequestCookies: () => RequestCookies,\n ResponseCookies: () => ResponseCookies,\n parseCookie: () => parseCookie,\n parseSetCookie: () => parseSetCookie,\n stringifyCookie: () => stringifyCookie\n});\nmodule.exports = __toCommonJS(src_exports);\n\n// src/serialize.ts\nfunction stringifyCookie(c) {\n var _a;\n const attrs = [\n \"path\" in c && c.path && `Path=${c.path}`,\n \"expires\" in c && (c.expires || c.expires === 0) && `Expires=${(typeof c.expires === \"number\" ? new Date(c.expires) : c.expires).toUTCString()}`,\n \"maxAge\" in c && typeof c.maxAge === \"number\" && `Max-Age=${c.maxAge}`,\n \"domain\" in c && c.domain && `Domain=${c.domain}`,\n \"secure\" in c && c.secure && \"Secure\",\n \"httpOnly\" in c && c.httpOnly && \"HttpOnly\",\n \"sameSite\" in c && c.sameSite && `SameSite=${c.sameSite}`,\n \"partitioned\" in c && c.partitioned && \"Partitioned\",\n \"priority\" in c && c.priority && `Priority=${c.priority}`\n ].filter(Boolean);\n const stringified = `${c.name}=${encodeURIComponent((_a = c.value) != null ? _a : \"\")}`;\n return attrs.length === 0 ? stringified : `${stringified}; ${attrs.join(\"; \")}`;\n}\nfunction parseCookie(cookie) {\n const map = /* @__PURE__ */ new Map();\n for (const pair of cookie.split(/; */)) {\n if (!pair)\n continue;\n const splitAt = pair.indexOf(\"=\");\n if (splitAt === -1) {\n map.set(pair, \"true\");\n continue;\n }\n const [key, value] = [pair.slice(0, splitAt), pair.slice(splitAt + 1)];\n try {\n map.set(key, decodeURIComponent(value != null ? value : \"true\"));\n } catch {\n }\n }\n return map;\n}\nfunction parseSetCookie(setCookie) {\n if (!setCookie) {\n return void 0;\n }\n const [[name, value], ...attributes] = parseCookie(setCookie);\n const {\n domain,\n expires,\n httponly,\n maxage,\n path,\n samesite,\n secure,\n partitioned,\n priority\n } = Object.fromEntries(\n attributes.map(([key, value2]) => [\n key.toLowerCase().replace(/-/g, \"\"),\n value2\n ])\n );\n const cookie = {\n name,\n value: decodeURIComponent(value),\n domain,\n ...expires && { expires: new Date(expires) },\n ...httponly && { httpOnly: true },\n ...typeof maxage === \"string\" && { maxAge: Number(maxage) },\n path,\n ...samesite && { sameSite: parseSameSite(samesite) },\n ...secure && { secure: true },\n ...priority && { priority: parsePriority(priority) },\n ...partitioned && { partitioned: true }\n };\n return compact(cookie);\n}\nfunction compact(t) {\n const newT = {};\n for (const key in t) {\n if (t[key]) {\n newT[key] = t[key];\n }\n }\n return newT;\n}\nvar SAME_SITE = [\"strict\", \"lax\", \"none\"];\nfunction parseSameSite(string) {\n string = string.toLowerCase();\n return SAME_SITE.includes(string) ? string : void 0;\n}\nvar PRIORITY = [\"low\", \"medium\", \"high\"];\nfunction parsePriority(string) {\n string = string.toLowerCase();\n return PRIORITY.includes(string) ? string : void 0;\n}\nfunction splitCookiesString(cookiesString) {\n if (!cookiesString)\n return [];\n var cookiesStrings = [];\n var pos = 0;\n var start;\n var ch;\n var lastComma;\n var nextStart;\n var cookiesSeparatorFound;\n function skipWhitespace() {\n while (pos < cookiesString.length && /\\s/.test(cookiesString.charAt(pos))) {\n pos += 1;\n }\n return pos < cookiesString.length;\n }\n function notSpecialChar() {\n ch = cookiesString.charAt(pos);\n return ch !== \"=\" && ch !== \";\" && ch !== \",\";\n }\n while (pos < cookiesString.length) {\n start = pos;\n cookiesSeparatorFound = false;\n while (skipWhitespace()) {\n ch = cookiesString.charAt(pos);\n if (ch === \",\") {\n lastComma = pos;\n pos += 1;\n skipWhitespace();\n nextStart = pos;\n while (pos < cookiesString.length && notSpecialChar()) {\n pos += 1;\n }\n if (pos < cookiesString.length && cookiesString.charAt(pos) === \"=\") {\n cookiesSeparatorFound = true;\n pos = nextStart;\n cookiesStrings.push(cookiesString.substring(start, lastComma));\n start = pos;\n } else {\n pos = lastComma + 1;\n }\n } else {\n pos += 1;\n }\n }\n if (!cookiesSeparatorFound || pos >= cookiesString.length) {\n cookiesStrings.push(cookiesString.substring(start, cookiesString.length));\n }\n }\n return cookiesStrings;\n}\n\n// src/request-cookies.ts\nvar RequestCookies = class {\n constructor(requestHeaders) {\n /** @internal */\n this._parsed = /* @__PURE__ */ new Map();\n this._headers = requestHeaders;\n const header = requestHeaders.get(\"cookie\");\n if (header) {\n const parsed = parseCookie(header);\n for (const [name, value] of parsed) {\n this._parsed.set(name, { name, value });\n }\n }\n }\n [Symbol.iterator]() {\n return this._parsed[Symbol.iterator]();\n }\n /**\n * The amount of cookies received from the client\n */\n get size() {\n return this._parsed.size;\n }\n get(...args) {\n const name = typeof args[0] === \"string\" ? args[0] : args[0].name;\n return this._parsed.get(name);\n }\n getAll(...args) {\n var _a;\n const all = Array.from(this._parsed);\n if (!args.length) {\n return all.map(([_, value]) => value);\n }\n const name = typeof args[0] === \"string\" ? args[0] : (_a = args[0]) == null ? void 0 : _a.name;\n return all.filter(([n]) => n === name).map(([_, value]) => value);\n }\n has(name) {\n return this._parsed.has(name);\n }\n set(...args) {\n const [name, value] = args.length === 1 ? [args[0].name, args[0].value] : args;\n const map = this._parsed;\n map.set(name, { name, value });\n this._headers.set(\n \"cookie\",\n Array.from(map).map(([_, value2]) => stringifyCookie(value2)).join(\"; \")\n );\n return this;\n }\n /**\n * Delete the cookies matching the passed name or names in the request.\n */\n delete(names) {\n const map = this._parsed;\n const result = !Array.isArray(names) ? map.delete(names) : names.map((name) => map.delete(name));\n this._headers.set(\n \"cookie\",\n Array.from(map).map(([_, value]) => stringifyCookie(value)).join(\"; \")\n );\n return result;\n }\n /**\n * Delete all the cookies in the cookies in the request.\n */\n clear() {\n this.delete(Array.from(this._parsed.keys()));\n return this;\n }\n /**\n * Format the cookies in the request as a string for logging\n */\n [Symbol.for(\"edge-runtime.inspect.custom\")]() {\n return `RequestCookies ${JSON.stringify(Object.fromEntries(this._parsed))}`;\n }\n toString() {\n return [...this._parsed.values()].map((v) => `${v.name}=${encodeURIComponent(v.value)}`).join(\"; \");\n }\n};\n\n// src/response-cookies.ts\nvar ResponseCookies = class {\n constructor(responseHeaders) {\n /** @internal */\n this._parsed = /* @__PURE__ */ new Map();\n var _a, _b, _c;\n this._headers = responseHeaders;\n const setCookie = (_c = (_b = (_a = responseHeaders.getSetCookie) == null ? void 0 : _a.call(responseHeaders)) != null ? _b : responseHeaders.get(\"set-cookie\")) != null ? _c : [];\n const cookieStrings = Array.isArray(setCookie) ? setCookie : splitCookiesString(setCookie);\n for (const cookieString of cookieStrings) {\n const parsed = parseSetCookie(cookieString);\n if (parsed)\n this._parsed.set(parsed.name, parsed);\n }\n }\n /**\n * {@link https://wicg.github.io/cookie-store/#CookieStore-get CookieStore#get} without the Promise.\n */\n get(...args) {\n const key = typeof args[0] === \"string\" ? args[0] : args[0].name;\n return this._parsed.get(key);\n }\n /**\n * {@link https://wicg.github.io/cookie-store/#CookieStore-getAll CookieStore#getAll} without the Promise.\n */\n getAll(...args) {\n var _a;\n const all = Array.from(this._parsed.values());\n if (!args.length) {\n return all;\n }\n const key = typeof args[0] === \"string\" ? args[0] : (_a = args[0]) == null ? void 0 : _a.name;\n return all.filter((c) => c.name === key);\n }\n has(name) {\n return this._parsed.has(name);\n }\n /**\n * {@link https://wicg.github.io/cookie-store/#CookieStore-set CookieStore#set} without the Promise.\n */\n set(...args) {\n const [name, value, cookie] = args.length === 1 ? [args[0].name, args[0].value, args[0]] : args;\n const map = this._parsed;\n map.set(name, normalizeCookie({ name, value, ...cookie }));\n replace(map, this._headers);\n return this;\n }\n /**\n * {@link https://wicg.github.io/cookie-store/#CookieStore-delete CookieStore#delete} without the Promise.\n */\n delete(...args) {\n const [name, options] = typeof args[0] === \"string\" ? [args[0]] : [args[0].name, args[0]];\n return this.set({ ...options, name, value: \"\", expires: /* @__PURE__ */ new Date(0) });\n }\n [Symbol.for(\"edge-runtime.inspect.custom\")]() {\n return `ResponseCookies ${JSON.stringify(Object.fromEntries(this._parsed))}`;\n }\n toString() {\n return [...this._parsed.values()].map(stringifyCookie).join(\"; \");\n }\n};\nfunction replace(bag, headers) {\n headers.delete(\"set-cookie\");\n for (const [, value] of bag) {\n const serialized = stringifyCookie(value);\n headers.append(\"set-cookie\", serialized);\n }\n}\nfunction normalizeCookie(cookie = { name: \"\", value: \"\" }) {\n if (typeof cookie.expires === \"number\") {\n cookie.expires = new Date(cookie.expires);\n }\n if (cookie.maxAge) {\n cookie.expires = new Date(Date.now() + cookie.maxAge * 1e3);\n }\n if (cookie.path === null || cookie.path === void 0) {\n cookie.path = \"/\";\n }\n return cookie;\n}\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n RequestCookies,\n ResponseCookies,\n parseCookie,\n parseSetCookie,\n stringifyCookie\n});\n","export {\n RequestCookies,\n ResponseCookies,\n stringifyCookie,\n} from 'next/dist/compiled/@edge-runtime/cookies'\n","export class ReflectAdapter {\n static get<T extends object>(\n target: T,\n prop: string | symbol,\n receiver: unknown\n ): any {\n const value = Reflect.get(target, prop, receiver)\n if (typeof value === 'function') {\n return value.bind(target)\n }\n\n return value\n }\n\n static set<T extends object>(\n target: T,\n prop: string | symbol,\n value: any,\n receiver: any\n ): boolean {\n return Reflect.set(target, prop, value, receiver)\n }\n\n static has<T extends object>(target: T, prop: string | symbol): boolean {\n return Reflect.has(target, prop)\n }\n\n static deleteProperty<T extends object>(\n target: T,\n prop: string | symbol\n ): boolean {\n return Reflect.deleteProperty(target, prop)\n }\n}\n","export type ActionRevalidationKind = 0 | 1 | 2\n\nexport const ActionDidNotRevalidate = 0\nexport const ActionDidRevalidateStaticAndDynamic = 1\nexport const ActionDidRevalidateDynamicOnly = 2\n","import { RequestCookies } from '../cookies'\n\nimport { ResponseCookies } from '../cookies'\nimport { ReflectAdapter } from './reflect'\nimport { workAsyncStorage } from '../../../app-render/work-async-storage.external'\nimport type { RequestStore } from '../../../app-render/work-unit-async-storage.external'\nimport { ActionDidRevalidateStaticAndDynamic } from '../../../../shared/lib/action-revalidation-kind'\n\n/**\n * @internal\n */\nexport class ReadonlyRequestCookiesError extends Error {\n constructor() {\n super(\n 'Cookies can only be modified in a Server Action or Route Handler. Read more: https://nextjs.org/docs/app/api-reference/functions/cookies#options'\n )\n }\n\n public static callable() {\n throw new ReadonlyRequestCookiesError()\n }\n}\n\n// We use this to type some APIs but we don't construct instances directly\nexport type { ResponseCookies }\n\n// The `cookies()` API is a mix of request and response cookies. For `.get()` methods,\n// we want to return the request cookie if it exists. For mutative methods like `.set()`,\n// we want to return the response cookie.\nexport type ReadonlyRequestCookies = Omit<\n RequestCookies,\n 'set' | 'clear' | 'delete'\n> &\n Pick<ResponseCookies, 'set' | 'delete'>\n\nexport class RequestCookiesAdapter {\n public static seal(cookies: RequestCookies): ReadonlyRequestCookies {\n return new Proxy(cookies as any, {\n get(target, prop, receiver) {\n switch (prop) {\n case 'clear':\n case 'delete':\n case 'set':\n return ReadonlyRequestCookiesError.callable\n default:\n return ReflectAdapter.get(target, prop, receiver)\n }\n },\n })\n }\n}\n\nconst SYMBOL_MODIFY_COOKIE_VALUES = Symbol.for('next.mutated.cookies')\n\nexport function getModifiedCookieValues(\n cookies: ResponseCookies\n): ResponseCookie[] {\n const modified: ResponseCookie[] | undefined = (cookies as unknown as any)[\n SYMBOL_MODIFY_COOKIE_VALUES\n ]\n if (!modified || !Array.isArray(modified) || modified.length === 0) {\n return []\n }\n\n return modified\n}\n\ntype SetCookieArgs =\n | [key: string, value: string, cookie?: Partial<ResponseCookie>]\n | [options: ResponseCookie]\n\nexport function appendMutableCookies(\n headers: Headers,\n mutableCookies: ResponseCookies\n): boolean {\n const modifiedCookieValues = getModifiedCookieValues(mutableCookies)\n if (modifiedCookieValues.length === 0) {\n return false\n }\n\n // Return a new response that extends the response with\n // the modified cookies as fallbacks. `res` cookies\n // will still take precedence.\n const resCookies = new ResponseCookies(headers)\n const returnedCookies = resCookies.getAll()\n\n // Set the modified cookies as fallbacks.\n for (const cookie of modifiedCookieValues) {\n resCookies.set(cookie)\n }\n\n // Set the original cookies as the final values.\n for (const cookie of returnedCookies) {\n resCookies.set(cookie)\n }\n\n return true\n}\n\ntype ResponseCookie = NonNullable<\n ReturnType<InstanceType<typeof ResponseCookies>['get']>\n>\n\nexport class MutableRequestCookiesAdapter {\n public static wrap(\n cookies: RequestCookies,\n onUpdateCookies?: (cookies: string[]) => void\n ): ResponseCookies {\n const responseCookies = new ResponseCookies(new Headers())\n for (const cookie of cookies.getAll()) {\n responseCookies.set(cookie)\n }\n\n let modifiedValues: ResponseCookie[] = []\n const modifiedCookies = new Set<string>()\n const updateResponseCookies = () => {\n // TODO-APP: change method of getting workStore\n const workStore = workAsyncStorage.getStore()\n if (workStore) {\n workStore.pathWasRevalidated = ActionDidRevalidateStaticAndDynamic\n }\n\n const allCookies = responseCookies.getAll()\n modifiedValues = allCookies.filter((c) => modifiedCookies.has(c.name))\n if (onUpdateCookies) {\n const serializedCookies: string[] = []\n for (const cookie of modifiedValues) {\n const tempCookies = new ResponseCookies(new Headers())\n tempCookies.set(cookie)\n serializedCookies.push(tempCookies.toString())\n }\n\n onUpdateCookies(serializedCookies)\n }\n }\n\n const wrappedCookies = new Proxy(responseCookies, {\n get(target, prop, receiver) {\n switch (prop) {\n // A special symbol to get the modified cookie values\n case SYMBOL_MODIFY_COOKIE_VALUES:\n return modifiedValues\n\n // TODO: Throw error if trying to set a cookie after the response\n // headers have been set.\n case 'delete':\n return function (...args: [string] | [ResponseCookie]) {\n modifiedCookies.add(\n typeof args[0] === 'string' ? args[0] : args[0].name\n )\n try {\n target.delete(...args)\n return wrappedCookies\n } finally {\n updateResponseCookies()\n }\n }\n case 'set':\n return function (...args: SetCookieArgs) {\n modifiedCookies.add(\n typeof args[0] === 'string' ? args[0] : args[0].name\n )\n try {\n target.set(...args)\n return wrappedCookies\n } finally {\n updateResponseCookies()\n }\n }\n\n default:\n return ReflectAdapter.get(target, prop, receiver)\n }\n },\n })\n\n return wrappedCookies\n }\n}\n\nexport function createCookiesWithMutableAccessCheck(\n requestStore: RequestStore\n): ResponseCookies {\n const wrappedCookies = new Proxy(requestStore.mutableCookies, {\n get(target, prop, receiver) {\n switch (prop) {\n case 'delete':\n return function (...args: [string] | [ResponseCookie]) {\n ensureCookiesAreStillMutable(requestStore, 'cookies().delete')\n target.delete(...args)\n return wrappedCookies\n }\n case 'set':\n return function (...args: SetCookieArgs) {\n ensureCookiesAreStillMutable(requestStore, 'cookies().set')\n target.set(...args)\n return wrappedCookies\n }\n\n default:\n return ReflectAdapter.get(target, prop, receiver)\n }\n },\n })\n return wrappedCookies\n}\n\nexport function areCookiesMutableInCurrentPhase(requestStore: RequestStore) {\n return requestStore.phase === 'action'\n}\n\n/** Ensure that cookies() starts throwing on mutation\n * if we changed phases and can no longer mutate.\n *\n * This can happen when going:\n * 'render' -> 'after'\n * 'action' -> 'render'\n * */\nfunction ensureCookiesAreStillMutable(\n requestStore: RequestStore,\n _callingExpression: string\n) {\n if (!areCookiesMutableInCurrentPhase(requestStore)) {\n // TODO: maybe we can give a more precise error message based on callingExpression?\n throw new ReadonlyRequestCookiesError()\n }\n}\n\nexport function responseCookiesToRequestCookies(\n responseCookies: ResponseCookies\n): RequestCookies {\n const requestCookies = new RequestCookies(new Headers())\n for (const cookie of responseCookies.getAll()) {\n requestCookies.set(cookie)\n }\n return requestCookies\n}\n","import type { IncomingHttpHeaders } from 'http'\n\nimport { ReflectAdapter } from './reflect'\n\n/**\n * @internal\n */\nexport class ReadonlyHeadersError extends Error {\n constructor() {\n super(\n 'Headers cannot be modified. Read more: https://nextjs.org/docs/app/api-reference/functions/headers'\n )\n }\n\n public static callable() {\n throw new ReadonlyHeadersError()\n }\n}\n\nexport type ReadonlyHeaders = Headers & {\n /** @deprecated Method unavailable on `ReadonlyHeaders`. Read more: https://nextjs.org/docs/app/api-reference/functions/headers */\n append(...args: any[]): void\n /** @deprecated Method unavailable on `ReadonlyHeaders`. Read more: https://nextjs.org/docs/app/api-reference/functions/headers */\n set(...args: any[]): void\n /** @deprecated Method unavailable on `ReadonlyHeaders`. Read more: https://nextjs.org/docs/app/api-reference/functions/headers */\n delete(...args: any[]): void\n}\nexport class HeadersAdapter extends Headers {\n private readonly headers: IncomingHttpHeaders\n\n constructor(headers: IncomingHttpHeaders) {\n // We've already overridden the methods that would be called, so we're just\n // calling the super constructor to ensure that the instanceof check works.\n super()\n\n this.headers = new Proxy(headers, {\n get(target, prop, receiver) {\n // Because this is just an object, we expect that all \"get\" operations\n // are for properties. If it's a \"get\" for a symbol, we'll just return\n // the symbol.\n if (typeof prop === 'symbol') {\n return ReflectAdapter.get(target, prop, receiver)\n }\n\n const lowercased = prop.toLowerCase()\n\n // Let's find the original casing of the key. This assumes that there is\n // no mixed case keys (e.g. \"Content-Type\" and \"content-type\") in the\n // headers object.\n const original = Object.keys(headers).find(\n (o) => o.toLowerCase() === lowercased\n )\n\n // If the original casing doesn't exist, return undefined.\n if (typeof original === 'undefined') return\n\n // If the original casing exists, return the value.\n return ReflectAdapter.get(target, original, receiver)\n },\n set(target, prop, value, receiver) {\n if (typeof prop === 'symbol') {\n return ReflectAdapter.set(target, prop, value, receiver)\n }\n\n const lowercased = prop.toLowerCase()\n\n // Let's find the original casing of the key. This assumes that there is\n // no mixed case keys (e.g. \"Content-Type\" and \"content-type\") in the\n // headers object.\n const original = Object.keys(headers).find(\n (o) => o.toLowerCase() === lowercased\n )\n\n // If the original casing doesn't exist, use the prop as the key.\n return ReflectAdapter.set(target, original ?? prop, value, receiver)\n },\n has(target, prop) {\n if (typeof prop === 'symbol') return ReflectAdapter.has(target, prop)\n\n const lowercased = prop.toLowerCase()\n\n // Let's find the original casing of the key. This assumes that there is\n // no mixed case keys (e.g. \"Content-Type\" and \"content-type\") in the\n // headers object.\n const original = Object.keys(headers).find(\n (o) => o.toLowerCase() === lowercased\n )\n\n // If the original casing doesn't exist, return false.\n if (typeof original === 'undefined') return false\n\n // If the original casing exists, return true.\n return ReflectAdapter.has(target, original)\n },\n deleteProperty(target, prop) {\n if (typeof prop === 'symbol')\n return ReflectAdapter.deleteProperty(target, prop)\n\n const lowercased = prop.toLowerCase()\n\n // Let's find the original casing of the key. This assumes that there is\n // no mixed case keys (e.g. \"Content-Type\" and \"content-type\") in the\n // headers object.\n const original = Object.keys(headers).find(\n (o) => o.toLowerCase() === lowercased\n )\n\n // If the original casing doesn't exist, return true.\n if (typeof original === 'undefined') return true\n\n // If the original casing exists, delete the property.\n return ReflectAdapter.deleteProperty(target, original)\n },\n })\n }\n\n /**\n * Seals a Headers instance to prevent modification by throwing an error when\n * any mutating method is called.\n */\n public static seal(headers: Headers): ReadonlyHeaders {\n return new Proxy<ReadonlyHeaders>(headers, {\n get(target, prop, receiver) {\n switch (prop) {\n case 'append':\n case 'delete':\n case 'set':\n return ReadonlyHeadersError.callable\n default:\n return ReflectAdapter.get(target, prop, receiver)\n }\n },\n })\n }\n\n /**\n * Merges a header value into a string. This stores multiple values as an\n * array, so we need to merge them into a string.\n *\n * @param value a header value\n * @returns a merged header value (a string)\n */\n private merge(value: string | string[]): string {\n if (Array.isArray(value)) return value.join(', ')\n\n return value\n }\n\n /**\n * Creates a Headers instance from a plain object or a Headers instance.\n *\n * @param headers a plain object or a Headers instance\n * @returns a headers instance\n */\n public static from(headers: IncomingHttpHeaders | Headers): Headers {\n if (headers instanceof Headers) return headers\n\n return new HeadersAdapter(headers)\n }\n\n public append(name: string, value: string): void {\n const existing = this.headers[name]\n if (typeof existing === 'string') {\n this.headers[name] = [existing, value]\n } else if (Array.isArray(existing)) {\n existing.push(value)\n } else {\n this.headers[name] = value\n }\n }\n\n public delete(name: string): void {\n delete this.headers[name]\n }\n\n public get(name: string): string | null {\n const value = this.headers[name]\n if (typeof value !== 'undefined') return this.merge(value)\n\n return null\n }\n\n public has(name: string): boolean {\n return typeof this.headers[name] !== 'undefined'\n }\n\n public set(name: string, value: string): void {\n this.headers[name] = value\n }\n\n public forEach(\n callbackfn: (value: string, name: string, parent: Headers) => void,\n thisArg?: any\n ): void {\n for (const [name, value] of this.entries()) {\n callbackfn.call(thisArg, value, name, this)\n }\n }\n\n public *entries(): HeadersIterator<[string, string]> {\n for (const key of Object.keys(this.headers)) {\n const name = key.toLowerCase()\n // We assert here that this is a string because we got it from the\n // Object.keys() call above.\n const value = this.get(name) as string\n\n yield [name, value] as [string, string]\n }\n }\n\n public *keys(): HeadersIterator<string> {\n for (const key of Object.keys(this.headers)) {\n const name = key.toLowerCase()\n yield name\n }\n }\n\n public *values(): HeadersIterator<string> {\n for (const key of Object.keys(this.headers)) {\n // We assert here that this is a string because we got it from the\n // Object.keys() call above.\n const value = this.get(key) as string\n\n yield value\n }\n }\n\n public [Symbol.iterator](): HeadersIterator<[string, string]> {\n return this.entries()\n }\n}\n","/**\n * For a given page path, this function ensures that there is a leading slash.\n * If there is not a leading slash, one is added, otherwise it is noop.\n */\nexport function ensureLeadingSlash(path: string) {\n return path.startsWith('/') ? path : `/${path}`\n}\n","import { ensureLeadingSlash } from '../../page-path/ensure-leading-slash'\nimport { isGroupSegment } from '../../segment'\n\n/**\n * Normalizes an app route so it represents the actual request path. Essentially\n * performing the following transformations:\n *\n * - `/(dashboard)/user/[id]/page` to `/user/[id]`\n * - `/(dashboard)/account/page` to `/account`\n * - `/user/[id]/page` to `/user/[id]`\n * - `/account/page` to `/account`\n * - `/page` to `/`\n * - `/(dashboard)/user/[id]/route` to `/user/[id]`\n * - `/(dashboard)/account/route` to `/account`\n * - `/user/[id]/route` to `/user/[id]`\n * - `/account/route` to `/account`\n * - `/route` to `/`\n * - `/` to `/`\n *\n * @param route the app route to normalize\n * @returns the normalized pathname\n */\nexport function normalizeAppPath(route: string) {\n return ensureLeadingSlash(\n route.split('/').reduce((pathname, segment, index, segments) => {\n // Empty segments are ignored.\n if (!segment) {\n return pathname\n }\n\n // Groups are ignored.\n if (isGroupSegment(segment)) {\n return pathname\n }\n\n // Parallel segments are ignored.\n if (segment[0] === '@') {\n return pathname\n }\n\n // The last segment (if it's a leaf) should be ignored.\n if (\n (segment === 'page' || segment === 'route') &&\n index === segments.length - 1\n ) {\n return pathname\n }\n\n return `${pathname}/${segment}`\n }, '')\n )\n}\n\n/**\n * Comparator for sorting app paths so that parallel slot paths (containing\n * `/@`) come before the children/root page path. This ensures the last item\n * is always the children page, which is what `renderPageComponent` reads via\n * `appPaths[appPaths.length - 1]`.\n *\n * Without this, route group prefixes like `(group)` (char code 0x28) sort\n * before `@` (0x40), causing the children page to sort first instead of last\n * and leading to a manifest mismatch / 404 in webpack dev mode.\n */\nexport function compareAppPaths(a: string, b: string): number {\n const aHasSlot = a.includes('/@')\n const bHasSlot = b.includes('/@')\n if (aHasSlot && !bHasSlot) return -1\n if (!aHasSlot && bHasSlot) return 1\n return a.localeCompare(b)\n}\n\n/**\n * Strips the `.rsc` extension if it's in the pathname.\n * Since this function is used on full urls it checks `?` for searchParams handling.\n */\nexport function normalizeRscURL(url: string) {\n return url.replace(\n /\\.rsc($|\\?)/,\n // $1 ensures `?` is preserved\n '$1'\n )\n}\n","import { normalizeAppPath } from './app-paths'\n\n// order matters here, the first match will be used\nexport const INTERCEPTION_ROUTE_MARKERS = [\n '(..)(..)',\n '(.)',\n '(..)',\n '(...)',\n] as const\n\nexport type InterceptionMarker = (typeof INTERCEPTION_ROUTE_MARKERS)[number]\n\nexport function isInterceptionRouteAppPath(path: string): boolean {\n // TODO-APP: add more serious validation\n return (\n path\n .split('/')\n .find((segment) =>\n INTERCEPTION_ROUTE_MARKERS.find((m) => segment.startsWith(m))\n ) !== undefined\n )\n}\n\ntype InterceptionRouteInformation = {\n /**\n * The intercepting route. This is the route that is being intercepted or the\n * route that the user was coming from. This is matched by the Next-Url\n * header.\n */\n interceptingRoute: string\n\n /**\n * The intercepted route. This is the route that is being intercepted or the\n * route that the user is going to. This is matched by the request pathname.\n */\n interceptedRoute: string\n}\n\nexport function extractInterceptionRouteInformation(\n path: string\n): InterceptionRouteInformation {\n let interceptingRoute: string | undefined\n let marker: (typeof INTERCEPTION_ROUTE_MARKERS)[number] | undefined\n let interceptedRoute: string | undefined\n\n for (const segment of path.split('/')) {\n marker = INTERCEPTION_ROUTE_MARKERS.find((m) => segment.startsWith(m))\n if (marker) {\n ;[interceptingRoute, interceptedRoute] = path.split(marker, 2)\n break\n }\n }\n\n if (!interceptingRoute || !marker || !interceptedRoute) {\n throw new Error(\n `Invalid interception route: ${path}. Must be in the format /<intercepting route>/(..|...|..)(..)/<intercepted route>`\n )\n }\n\n interceptingRoute = normalizeAppPath(interceptingRoute) // normalize the path, e.g. /(blog)/feed -> /feed\n\n switch (marker) {\n case '(.)':\n // (.) indicates that we should match with sibling routes, so we just need to append the intercepted route to the intercepting route\n if (interceptingRoute === '/') {\n interceptedRoute = `/${interceptedRoute}`\n } else {\n interceptedRoute = interceptingRoute + '/' + interceptedRoute\n }\n break\n case '(..)':\n // (..) indicates that we should match at one level up, so we need to remove the last segment of the intercepting route\n if (interceptingRoute === '/') {\n throw new Error(\n `Invalid interception route: ${path}. Cannot use (..) marker at the root level, use (.) instead.`\n )\n }\n interceptedRoute = interceptingRoute\n .split('/')\n .slice(0, -1)\n .concat(interceptedRoute)\n .join('/')\n break\n case '(...)':\n // (...) will match the route segment in the root directory, so we need to use the root directory to prepend the intercepted route\n interceptedRoute = '/' + interceptedRoute\n break\n case '(..)(..)':\n // (..)(..) indicates that we should match at two levels up, so we need to remove the last two segments of the intercepting route\n\n const splitInterceptingRoute = interceptingRoute.split('/')\n if (splitInterceptingRoute.length <= 2) {\n throw new Error(\n `Invalid interception route: ${path}. Cannot use (..)(..) marker at the root level or one level up.`\n )\n }\n\n interceptedRoute = splitInterceptingRoute\n .slice(0, -2)\n .concat(interceptedRoute)\n .join('/')\n break\n default:\n throw new Error('Invariant: unexpected marker')\n }\n\n return { interceptingRoute, interceptedRoute }\n}\n","import { INTERCEPTION_ROUTE_MARKERS } from './interception-routes'\nimport type { DynamicParamTypes } from '../../app-router-types'\n\nexport type SegmentParam = {\n paramName: string\n paramType: DynamicParamTypes\n}\n\n/**\n * Parse dynamic route segment to type of parameter\n */\nexport function getSegmentParam(segment: string): SegmentParam | null {\n const interceptionMarker = INTERCEPTION_ROUTE_MARKERS.find((marker) =>\n segment.startsWith(marker)\n )\n\n // if an interception marker is part of the path segment, we need to jump ahead\n // to the relevant portion for param parsing\n if (interceptionMarker) {\n segment = segment.slice(interceptionMarker.length)\n }\n\n if (segment.startsWith('[[...') && segment.endsWith(']]')) {\n return {\n // TODO-APP: Optional catchall does not currently work with parallel routes,\n // so for now aren't handling a potential interception marker.\n paramType: 'optional-catchall',\n paramName: segment.slice(5, -2),\n }\n }\n\n if (segment.startsWith('[...') && segment.endsWith(']')) {\n return {\n paramType: interceptionMarker\n ? `catchall-intercepted-${interceptionMarker}`\n : 'catchall',\n paramName: segment.slice(4, -1),\n }\n }\n\n if (segment.startsWith('[') && segment.endsWith(']')) {\n return {\n paramType: interceptionMarker\n ? `dynamic-intercepted-${interceptionMarker}`\n : 'dynamic',\n paramName: segment.slice(1, -1),\n }\n }\n\n return null\n}\n\nexport function isCatchAll(\n type: DynamicParamTypes\n): type is\n | 'catchall'\n | 'catchall-intercepted-(..)(..)'\n | 'catchall-intercepted-(.)'\n | 'catchall-intercepted-(..)'\n | 'catchall-intercepted-(...)'\n | 'optional-catchall' {\n return (\n type === 'catchall' ||\n type === 'catchall-intercepted-(..)(..)' ||\n type === 'catchall-intercepted-(.)' ||\n type === 'catchall-intercepted-(..)' ||\n type === 'catchall-intercepted-(...)' ||\n type === 'optional-catchall'\n )\n}\n\nexport function getParamProperties(paramType: DynamicParamTypes): {\n repeat: boolean\n optional: boolean\n} {\n let repeat = false\n let optional = false\n\n switch (paramType) {\n case 'catchall':\n case 'catchall-intercepted-(..)(..)':\n case 'catchall-intercepted-(.)':\n case 'catchall-intercepted-(..)':\n case 'catchall-intercepted-(...)':\n repeat = true\n break\n case 'optional-catchall':\n repeat = true\n optional = true\n break\n case 'dynamic':\n case 'dynamic-intercepted-(..)(..)':\n case 'dynamic-intercepted-(.)':\n case 'dynamic-intercepted-(..)':\n case 'dynamic-intercepted-(...)':\n break\n default:\n paramType satisfies never\n }\n\n return { repeat, optional }\n}\n","import type { HtmlProps } from './html-context.shared-runtime'\nimport type { ComponentType, JSX } from 'react'\nimport type { DomainLocale } from '../../server/config'\nimport type { Env } from '@next/env'\nimport type { IncomingMessage, ServerResponse } from 'http'\nimport type { NextRouter } from './router/router'\nimport type { ParsedUrlQuery } from 'querystring'\nimport type { PreviewData } from '../../types'\nimport type { COMPILER_NAMES } from './constants'\nimport type fs from 'fs'\n\nexport type NextComponentType<\n Context extends BaseContext = NextPageContext,\n InitialProps = {},\n Props = {},\n> = ComponentType<Props> & {\n /**\n * Used for initial page load data population. Data returned from `getInitialProps` is serialized when server rendered.\n * Make sure to return plain `Object` without using `Date`, `Map`, `Set`.\n * @param context Context of `page`\n */\n getInitialProps?(context: Context): InitialProps | Promise<InitialProps>\n}\n\nexport type DocumentType = NextComponentType<\n DocumentContext,\n DocumentInitialProps,\n DocumentProps\n>\n\nexport type AppType<P = {}> = NextComponentType<\n AppContextType,\n P,\n AppPropsType<any, P>\n>\n\nexport type AppTreeType = ComponentType<\n AppInitialProps & { [name: string]: any }\n>\n\n/**\n * Web vitals provided to _app.reportWebVitals by Core Web Vitals plugin developed by Google Chrome team.\n * https://nextjs.org/blog/next-9-4#integrated-web-vitals-reporting\n */\nexport const WEB_VITALS = ['CLS', 'FCP', 'FID', 'INP', 'LCP', 'TTFB'] as const\nexport type NextWebVitalsMetric = {\n id: string\n startTime: number\n value: number\n attribution?: { [key: string]: unknown }\n} & (\n | {\n label: 'web-vital'\n name: (typeof WEB_VITALS)[number]\n }\n | {\n label: 'custom'\n name:\n | 'Next.js-hydration'\n | 'Next.js-route-change-to-render'\n | 'Next.js-render'\n }\n)\n\nexport type Enhancer<C> = (Component: C) => C\n\nexport type ComponentsEnhancer =\n | {\n enhanceApp?: Enhancer<AppType>\n enhanceComponent?: Enhancer<NextComponentType>\n }\n | Enhancer<NextComponentType>\n\nexport type RenderPageResult = {\n html: string\n head?: Array<JSX.Element | null>\n}\n\nexport type RenderPage = (\n options?: ComponentsEnhancer\n) => DocumentInitialProps | Promise<DocumentInitialProps>\n\nexport type BaseContext = {\n res?: ServerResponse\n [k: string]: any\n}\n\nexport type NEXT_DATA = {\n props: Record<string, any>\n page: string\n query: ParsedUrlQuery\n buildId: string\n assetPrefix?: string\n nextExport?: boolean\n autoExport?: boolean\n isFallback?: boolean\n isExperimentalCompile?: boolean\n dynamicIds?: (string | number)[]\n err?: Error & {\n statusCode?: number\n source?: typeof COMPILER_NAMES.server | typeof COMPILER_NAMES.edgeServer\n }\n gsp?: boolean\n gssp?: boolean\n customServer?: boolean\n gip?: boolean\n appGip?: boolean\n locale?: string\n locales?: readonly string[]\n defaultLocale?: string\n domainLocales?: readonly DomainLocale[]\n scriptLoader?: any[]\n isPreview?: boolean\n notFoundSrcPage?: string\n}\n\n/**\n * `Next` context\n */\nexport interface NextPageContext {\n /**\n * Error object if encountered during rendering\n */\n err?: (Error & { statusCode?: number }) | null\n /**\n * `HTTP` request object.\n */\n req?: IncomingMessage\n /**\n * `HTTP` response object.\n */\n res?: ServerResponse\n /**\n * Path section of `URL`.\n */\n pathname: string\n /**\n * Query string section of `URL` parsed as an object.\n */\n query: ParsedUrlQuery\n /**\n * `String` of the actual path including query.\n */\n asPath?: string\n /**\n * The currently active locale\n */\n locale?: string\n /**\n * All configured locales\n */\n locales?: readonly string[]\n /**\n * The configured default locale\n */\n defaultLocale?: string\n /**\n * `Component` the tree of the App to use if needing to render separately\n */\n AppTree: AppTreeType\n}\n\nexport type AppContextType<Router extends NextRouter = NextRouter> = {\n Component: NextComponentType<NextPageContext>\n AppTree: AppTreeType\n ctx: NextPageContext\n router: Router\n}\n\nexport type AppInitialProps<PageProps = any> = {\n pageProps: PageProps\n}\n\nexport type AppPropsType<\n Router extends NextRouter = NextRouter,\n PageProps = {},\n> = AppInitialProps<PageProps> & {\n Component: NextComponentType<NextPageContext, any, any>\n router: Router\n __N_SSG?: boolean\n __N_SSP?: boolean\n}\n\nexport type DocumentContext = NextPageContext & {\n renderPage: RenderPage\n defaultGetInitialProps(\n ctx: DocumentContext,\n options?: { nonce?: string }\n ): Promise<DocumentInitialProps>\n}\n\nexport type DocumentInitialProps = RenderPageResult & {\n styles?: React.ReactElement[] | Iterable<React.ReactNode> | JSX.Element\n}\n\nexport type DocumentProps = DocumentInitialProps & HtmlProps\n\n/**\n * Next `API` route request\n */\nexport interface NextApiRequest extends IncomingMessage {\n /**\n * Object of `query` values from url\n */\n query: Partial<{\n [key: string]: string | string[]\n }>\n /**\n * Object of `cookies` from header\n */\n cookies: Partial<{\n [key: string]: string\n }>\n\n body: any\n\n env: Env\n\n draftMode?: boolean\n\n preview?: boolean\n /**\n * Preview data set on the request, if any\n * */\n previewData?: PreviewData\n}\n\n/**\n * Send body of response\n */\ntype Send<T> = (body: T) => void\n\n/**\n * Next `API` route response\n */\nexport type NextApiResponse<Data = any> = ServerResponse & {\n /**\n * Send data `any` data in response\n */\n send: Send<Data>\n /**\n * Send data `json` data in response\n */\n json: Send<Data>\n status: (statusCode: number) => NextApiResponse<Data>\n redirect(url: string): NextApiResponse<Data>\n redirect(status: number, url: string): NextApiResponse<Data>\n\n /**\n * Set draft mode\n */\n setDraftMode: (options: { enable: boolean }) => NextApiResponse<Data>\n\n /**\n * Set preview data for Next.js' prerender mode\n */\n setPreviewData: (\n data: object | string,\n options?: {\n /**\n * Specifies the number (in seconds) for the preview session to last for.\n * The given number will be converted to an integer by rounding down.\n * By default, no maximum age is set and the preview session finishes\n * when the client shuts down (browser is closed).\n */\n maxAge?: number\n /**\n * Specifies the path for the preview session to work under. By default,\n * the path is considered the \"default path\", i.e., any pages under \"/\".\n */\n path?: string\n }\n ) => NextApiResponse<Data>\n\n /**\n * Clear preview data for Next.js' prerender mode\n */\n clearPreviewData: (options?: { path?: string }) => NextApiResponse<Data>\n\n /**\n * Revalidate a specific page and regenerate it using On-Demand Incremental\n * Static Regeneration.\n * The path should be an actual path, not a rewritten path. E.g. for\n * \"/blog/[slug]\" this should be \"/blog/post-1\".\n * @link https://nextjs.org/docs/app/building-your-application/data-fetching/incremental-static-regeneration#on-demand-revalidation-with-revalidatepath\n */\n revalidate: (\n urlPath: string,\n opts?: {\n unstable_onlyGenerated?: boolean\n }\n ) => Promise<void>\n}\n\n/**\n * Next `API` route handler\n */\nexport type NextApiHandler<T = any> = (\n req: NextApiRequest,\n res: NextApiResponse<T>\n) => unknown | Promise<unknown>\n\n/**\n * Utils\n */\nexport function execOnce<T extends (...args: any[]) => ReturnType<T>>(\n fn: T\n): T {\n let used = false\n let result: ReturnType<T>\n\n return ((...args: any[]) => {\n if (!used) {\n used = true\n result = fn(...args)\n }\n return result\n }) as T\n}\n\n// Scheme: https://tools.ietf.org/html/rfc3986#section-3.1\n// Absolute URL: https://tools.ietf.org/html/rfc3986#section-4.3\nconst ABSOLUTE_URL_REGEX = /^[a-zA-Z][a-zA-Z\\d+\\-.]*?:/\nexport const isAbsoluteUrl = (url: string) => ABSOLUTE_URL_REGEX.test(url)\n\nexport function getLocationOrigin() {\n const { protocol, hostname, port } = window.location\n return `${protocol}//${hostname}${port ? ':' + port : ''}`\n}\n\nexport function getURL() {\n const { href } = window.location\n const origin = getLocationOrigin()\n return href.substring(origin.length)\n}\n\nexport function getDisplayName<P>(Component: ComponentType<P>) {\n return typeof Component === 'string'\n ? Component\n : Component.displayName || Component.name || 'Unknown'\n}\n\nexport function isResSent(res: ServerResponse) {\n return res.finished || res.headersSent\n}\n\nexport function normalizeRepeatedSlashes(url: string) {\n const urlParts = url.split('?')\n const urlNoQuery = urlParts[0]\n\n return (\n urlNoQuery\n // first we replace any non-encoded backslashes with forward\n // then normalize repeated forward slashes\n .replace(/\\\\/g, '/')\n .replace(/\\/\\/+/g, '/') +\n (urlParts[1] ? `?${urlParts.slice(1).join('?')}` : '')\n )\n}\n\nexport async function loadGetInitialProps<\n C extends BaseContext,\n IP = {},\n P = {},\n>(App: NextComponentType<C, IP, P>, ctx: C): Promise<IP> {\n if (process.env.NODE_ENV !== 'production') {\n if (App.prototype?.getInitialProps) {\n const message = `\"${getDisplayName(\n App\n )}.getInitialProps()\" is defined as an instance method - visit https://nextjs.org/docs/messages/get-initial-props-as-an-instance-method for more information.`\n throw new Error(message)\n }\n }\n // when called from _app `ctx` is nested in `ctx`\n const res = ctx.res || (ctx.ctx && ctx.ctx.res)\n\n if (!App.getInitialProps) {\n if (ctx.ctx && ctx.Component) {\n // @ts-ignore pageProps default\n return {\n pageProps: await loadGetInitialProps(ctx.Component, ctx.ctx),\n }\n }\n return {} as IP\n }\n\n const props = await App.getInitialProps(ctx)\n\n if (res && isResSent(res)) {\n return props\n }\n\n if (!props) {\n const message = `\"${getDisplayName(\n App\n )}.getInitialProps()\" should resolve to an object. But found \"${props}\" instead.`\n throw new Error(message)\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if (Object.keys(props).length === 0 && !ctx.ctx) {\n console.warn(\n `${getDisplayName(\n App\n )} returned an empty object from \\`getInitialProps\\`. This de-optimizes and prevents automatic static optimization. https://nextjs.org/docs/messages/empty-object-getInitialProps`\n )\n }\n }\n\n return props\n}\n\nexport const SP = typeof performance !== 'undefined'\nexport const ST =\n SP &&\n (['mark', 'measure', 'getEntriesByName'] as const).every(\n (method) => typeof performance[method] === 'function'\n )\n\nexport class DecodeError extends Error {}\nexport class NormalizeError extends Error {}\nexport class PageNotFoundError extends Error {\n code: string\n\n constructor(page: string) {\n super()\n this.code = 'ENOENT'\n this.name = 'PageNotFoundError'\n this.message = `Cannot find module for page: ${page}`\n }\n}\n\nexport class MissingStaticPage extends Error {\n constructor(page: string, message: string) {\n super()\n this.message = `Failed to load static file for page: ${page} ${message}`\n }\n}\n\nexport class MiddlewareNotFoundError extends Error {\n code: string\n constructor() {\n super()\n this.code = 'ENOENT'\n this.message = `Cannot find the middleware module`\n }\n}\n\nexport interface CacheFs {\n existsSync: typeof fs.existsSync\n readFile: typeof fs.promises.readFile\n readFileSync: typeof fs.readFileSync\n writeFile(f: string, d: any): Promise<void>\n mkdir(dir: string): Promise<void | string>\n stat(f: string): Promise<{ mtime: Date }>\n}\n\nexport function stringifyError(error: Error) {\n return JSON.stringify({ message: error.message, stack: error.stack })\n}\n","import type { ParsedUrlQuery } from 'querystring'\n\nexport function searchParamsToUrlQuery(\n searchParams: URLSearchParams\n): ParsedUrlQuery {\n const query: ParsedUrlQuery = {}\n for (const [key, value] of searchParams.entries()) {\n const existing = query[key]\n if (typeof existing === 'undefined') {\n query[key] = value\n } else if (Array.isArray(existing)) {\n existing.push(value)\n } else {\n query[key] = [existing, value]\n }\n }\n return query\n}\n\nfunction stringifyUrlQueryParam(param: unknown): string {\n if (typeof param === 'string') {\n return param\n }\n\n if (\n (typeof param === 'number' && !isNaN(param)) ||\n typeof param === 'boolean'\n ) {\n return String(param)\n } else {\n return ''\n }\n}\n\nexport function urlQueryToSearchParams(query: ParsedUrlQuery): URLSearchParams {\n const searchParams = new URLSearchParams()\n for (const [key, value] of Object.entries(query)) {\n if (Array.isArray(value)) {\n for (const item of value) {\n searchParams.append(key, stringifyUrlQueryParam(item))\n }\n } else {\n searchParams.set(key, stringifyUrlQueryParam(value))\n }\n }\n return searchParams\n}\n\nexport function assign(\n target: URLSearchParams,\n ...searchParamsList: URLSearchParams[]\n): URLSearchParams {\n for (const searchParams of searchParamsList) {\n for (const key of searchParams.keys()) {\n target.delete(key)\n }\n\n for (const [key, value] of searchParams.entries()) {\n target.append(key, value)\n }\n }\n\n return target\n}\n","import type { ParsedUrlQuery } from 'querystring'\nimport { getLocationOrigin } from '../../utils'\nimport { searchParamsToUrlQuery } from './querystring'\n\nexport interface ParsedRelativeUrl {\n auth: string | null\n hash: string\n host: string | null\n hostname: string | null\n href: string\n pathname: string\n port: string | null\n protocol: string | null\n query: ParsedUrlQuery\n search: string\n slashes: null\n}\n\n/**\n * Parses path-relative urls (e.g. `/hello/world?foo=bar`). If url isn't path-relative\n * (e.g. `./hello`) then at least base must be.\n * Absolute urls are rejected with one exception, in the browser, absolute urls that are on\n * the current origin will be parsed as relative\n */\nexport function parseRelativeUrl(\n url: string,\n base?: string,\n parseQuery?: true\n): ParsedRelativeUrl\nexport function parseRelativeUrl(\n url: string,\n base: string | undefined,\n parseQuery: false\n): Omit<ParsedRelativeUrl, 'query'>\nexport function parseRelativeUrl(\n url: string,\n base?: string,\n parseQuery = true\n): ParsedRelativeUrl | Omit<ParsedRelativeUrl, 'query'> {\n const globalBase = new URL(\n typeof window === 'undefined' ? 'http://n' : getLocationOrigin()\n )\n\n const resolvedBase = base\n ? new URL(base, globalBase)\n : url.startsWith('.')\n ? new URL(\n typeof window === 'undefined' ? 'http://n' : window.location.href\n )\n : globalBase\n\n const { pathname, searchParams, search, hash, href, origin } = url.startsWith(\n '/'\n )\n ? // 'http://localhost:3000///' would be received as '///' in Node.js' IncomingMessage\n // See https://nodejs.org/api/http.html#messageurl\n // Not using `origin` to support other protocols\n new URL(`${resolvedBase.protocol}//${resolvedBase.host}${url}`)\n : new URL(url, resolvedBase)\n\n if (origin !== globalBase.origin) {\n throw new Error(`invariant: invalid relative URL, router received ${url}`)\n }\n\n return {\n auth: null,\n host: null,\n hostname: null,\n pathname,\n port: null,\n protocol: null,\n query: parseQuery ? searchParamsToUrlQuery(searchParams) : undefined,\n search,\n hash,\n href: href.slice(origin.length),\n // We don't know for relative URLs at this point since we set a custom, internal\n // base that isn't surfaced to users.\n slashes: null,\n }\n}\n","const INSTANT_VALIDATION_ERROR_DIGEST = 'INSTANT_VALIDATION_ERROR'\n\n/** Check if an error is an exhaustive samples validation error (by digest). */\nexport function isInstantValidationError(\n err: unknown\n): err is InstantValidationError {\n return !!(\n err &&\n typeof err === 'object' &&\n err instanceof Error &&\n (err as any).digest === INSTANT_VALIDATION_ERROR_DIGEST\n )\n}\n\nexport class InstantValidationError extends Error {\n digest = INSTANT_VALIDATION_ERROR_DIGEST\n}\n","// This regex will have fast negatives meaning valid identifiers may not pass\n// this test. However this is only used during static generation to provide hints\n// about why a page bailed out of some or all prerendering and we can use bracket notation\n// for example while `ಠ_ಠ` is a valid identifier it's ok to print `searchParams['ಠ_ಠ']`\n// even if this would have been fine too `searchParams.ಠ_ಠ`\nconst isDefinitelyAValidIdentifier = /^[A-Za-z_$][A-Za-z0-9_$]*$/\n\nexport function describeStringPropertyAccess(target: string, prop: string) {\n if (isDefinitelyAValidIdentifier.test(prop)) {\n return `\\`${target}.${prop}\\``\n }\n return `\\`${target}[${JSON.stringify(prop)}]\\``\n}\n\nexport function describeHasCheckingStringProperty(\n target: string,\n prop: string\n) {\n const stringifiedProp = JSON.stringify(prop)\n return `\\`Reflect.has(${target}, ${stringifiedProp})\\`, \\`${stringifiedProp} in ${target}\\`, or similar`\n}\n\nexport const wellKnownProperties = new Set([\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toString',\n 'valueOf',\n 'toLocaleString',\n\n // Promise prototype\n 'then',\n 'catch',\n 'finally',\n\n // React Promise extension\n 'status',\n // 'value',\n // 'error',\n\n // React introspection\n 'displayName',\n '_debugInfo',\n\n // Common tested properties\n 'toJSON',\n '$$typeof',\n '__esModule',\n\n // Tested by flight when checking for iterables\n '@@iterator',\n])\n","import type { InstantSample } from '../../../build/segment-config/app/app-segment-config'\nimport type { ReadonlyRequestCookies } from '../../web/spec-extension/adapters/request-cookies'\nimport type { ReadonlyHeaders } from '../../web/spec-extension/adapters/headers'\nimport type { DraftModeProvider } from '../../async-storage/draft-mode-provider'\nimport type { Params } from '../../request/params'\n\nimport { RequestCookies } from '../../web/spec-extension/cookies'\nimport { RequestCookiesAdapter } from '../../web/spec-extension/adapters/request-cookies'\nimport { HeadersAdapter } from '../../web/spec-extension/adapters/headers'\nimport type { SearchParams } from '../../request/search-params'\nimport { getSegmentParam } from '../../../shared/lib/router/utils/get-segment-param'\nimport { parseRelativeUrl } from '../../../shared/lib/router/utils/parse-relative-url'\nimport { InvariantError } from '../../../shared/lib/invariant-error'\nimport { InstantValidationError } from './instant-validation-error'\nimport { workUnitAsyncStorage } from '../work-unit-async-storage.external'\nimport { wellKnownProperties } from '../../../shared/lib/utils/reflect-utils'\nimport type { WorkStore } from '../work-async-storage.external'\n\nexport type InstantValidationSampleTracking = {\n // TODO(instant-validation-build): track which samples config we used and attribute errors\n missingSampleErrors: InstantValidationError[]\n}\n\nexport function createValidationSampleTracking(): InstantValidationSampleTracking {\n return {\n missingSampleErrors: [],\n }\n}\n\nfunction getExpectedSampleTracking(): InstantValidationSampleTracking {\n let validationSampleTracking: InstantValidationSampleTracking | null = null\n const workUnitStore = workUnitAsyncStorage.getStore()\n if (workUnitStore) {\n switch (workUnitStore.type) {\n case 'request':\n case 'validation-client':\n // TODO(instant-validation-build): do we need any special handling for caches?\n validationSampleTracking =\n workUnitStore.validationSampleTracking ?? null\n break\n case 'cache':\n case 'private-cache':\n case 'unstable-cache':\n case 'prerender-legacy':\n case 'prerender-ppr':\n case 'prerender-client':\n case 'prerender':\n case 'prerender-runtime':\n case 'generate-static-params':\n break\n default:\n workUnitStore satisfies never\n }\n }\n if (!validationSampleTracking) {\n throw new InvariantError(\n 'Expected to have a workUnitStore that provides validationSampleTracking'\n )\n }\n return validationSampleTracking\n}\n\nexport function trackMissingSampleError(error: InstantValidationError): void {\n const validationSampleTracking = getExpectedSampleTracking()\n validationSampleTracking.missingSampleErrors.push(error)\n}\n\nexport function trackMissingSampleErrorAndThrow(\n error: InstantValidationError\n): never {\n // TODO(instant-validation-build): this should abort the render\n trackMissingSampleError(error)\n throw error\n}\n\n/**\n * Creates ReadonlyRequestCookies from sample cookie data.\n * Accessing a cookie not declared in the sample will throw an error.\n * Cookies with `value: null` are declared (allowed to access) but return no value.\n */\nexport function createCookiesFromSample(\n sampleCookies: InstantSample['cookies'],\n route: string\n): ReadonlyRequestCookies {\n const declaredNames = new Set<string>()\n\n const cookies = new RequestCookies(new Headers())\n if (sampleCookies) {\n for (const cookie of sampleCookies) {\n declaredNames.add(cookie.name)\n if (cookie.value !== null) {\n cookies.set(cookie.name, cookie.value)\n }\n }\n }\n\n const sealed = RequestCookiesAdapter.seal(cookies)\n\n return new Proxy(sealed, {\n get(target, prop, receiver) {\n if (prop === 'has') {\n const originalMethod = Reflect.get(target, prop, receiver)\n const wrappedMethod: typeof originalMethod = function (name) {\n if (!declaredNames.has(name)) {\n trackMissingSampleErrorAndThrow(\n createMissingCookieSampleError(route, name)\n )\n }\n return originalMethod.call(target, name)\n }\n return wrappedMethod\n }\n if (prop === 'get') {\n const originalMethod = Reflect.get(target, prop, receiver)\n const wrappedMethod: typeof originalMethod = function (nameOrCookie) {\n let name: string\n if (typeof nameOrCookie === 'string') {\n name = nameOrCookie\n } else if (\n nameOrCookie &&\n typeof nameOrCookie === 'object' &&\n typeof nameOrCookie.name === 'string'\n ) {\n name = nameOrCookie.name\n } else {\n // This is an invalid input. Pass it through to the original method so it can error.\n return originalMethod.call(target, nameOrCookie)\n }\n\n if (!declaredNames.has(name)) {\n trackMissingSampleErrorAndThrow(\n createMissingCookieSampleError(route, name)\n )\n }\n return originalMethod.call(target, name)\n }\n return wrappedMethod\n }\n\n // TODO(instant-validation-build): what should getAll do?\n // Maybe we should only allow it if there's an array (possibly empty?)\n\n return Reflect.get(target, prop, receiver)\n },\n })\n}\n\nfunction createMissingCookieSampleError(\n route: string,\n name: string\n): InstantValidationError {\n return new InstantValidationError(\n `Route \"${route}\" accessed cookie \"${name}\" which is not defined in the \\`samples\\` ` +\n `of \\`unstable_instant\\`. Add it to the sample's \\`cookies\\` array, ` +\n `or \\`{ name: \"${name}\", value: null }\\` if it should be absent.`\n )\n}\n\n/**\n * Creates ReadonlyHeaders from sample header data.\n * Accessing a header not declared in the sample will throw an error.\n * Headers with `value: null` are declared (allowed to access) but return null.\n */\nexport function createHeadersFromSample(\n rawSampleHeaders: InstantSample['headers'],\n sampleCookies: InstantSample['cookies'],\n route: string\n): ReadonlyHeaders {\n // If we have cookie samples, add a `cookie` header to match.\n // Accessing it will be implicitly allowed by the proxy --\n // if the user defined some cookies, accessing the \"cookie\" header is also fine.\n const sampleHeaders = rawSampleHeaders ? [...rawSampleHeaders] : []\n if (sampleHeaders.find(([name]) => name.toLowerCase() === 'cookie')) {\n throw new InstantValidationError(\n 'Invalid sample: Defining cookies via a \"cookie\" header is not supported. Use `cookies: [{ name: ..., value: ... }]` instead.'\n )\n }\n if (sampleCookies) {\n const cookieHeaderValue = sampleCookies.toString()\n sampleHeaders.push([\n 'cookie',\n // if the `cookies` samples were empty, or they were all `null`, then we have no cookies,\n // and the header isn't present, but should remains readable, so we set it to null.\n cookieHeaderValue !== '' ? cookieHeaderValue : null,\n ])\n }\n\n const declaredNames = new Set<string>()\n const headersInit: Record<string, string> = {}\n\n for (const [name, value] of sampleHeaders) {\n declaredNames.add(name.toLowerCase())\n if (value !== null) {\n headersInit[name.toLowerCase()] = value\n }\n }\n\n const sealed = HeadersAdapter.seal(HeadersAdapter.from(headersInit))\n\n return new Proxy(sealed, {\n get(target, prop, receiver) {\n if (prop === 'get' || prop === 'has') {\n const originalMethod = Reflect.get(target, prop, receiver)\n const patchedMethod: typeof originalMethod = function (rawName) {\n const name = rawName.toLowerCase()\n if (!declaredNames.has(name)) {\n trackMissingSampleErrorAndThrow(\n new InstantValidationError(\n `Route \"${route}\" accessed header \"${name}\" which is not defined in the \\`samples\\` ` +\n `of \\`unstable_instant\\`. Add it to the sample's \\`headers\\` array, ` +\n `or \\`[\"${name}\", null]\\` if it should be absent.`\n )\n )\n }\n // typescript can't reconcile a union of functions with a union of return types,\n // so we have to cast the original return type away\n return (originalMethod as (...args: any[]) => any).call(target, name)\n }\n return patchedMethod\n }\n return Reflect.get(target, prop, receiver)\n },\n })\n}\n\n/**\n * Creates a DraftModeProvider that always returns isEnabled: false.\n */\nexport function createDraftModeForValidation(): DraftModeProvider {\n // Create a minimal DraftModeProvider-compatible object\n // that always reports draft mode as disabled.\n //\n // private properties that can't be set from outside the class.\n return {\n get isEnabled() {\n return false\n },\n enable() {\n throw new Error(\n 'Draft mode cannot be enabled during build-time instant validation.'\n )\n },\n disable() {\n throw new Error(\n 'Draft mode cannot be disabled during build-time instant validation.'\n )\n },\n } as Partial<DraftModeProvider> as DraftModeProvider\n}\n\n/**\n * Creates params wrapped with an exhaustive proxy.\n * Accessing a param not declared in the sample will throw an error.\n */\nexport function createExhaustiveParamsProxy<TParams extends Params>(\n underlyingParams: TParams,\n declaredParamNames: Set<string>,\n route: string\n): TParams {\n return new Proxy(underlyingParams, {\n get(target, prop, receiver) {\n if (\n typeof prop === 'string' &&\n !wellKnownProperties.has(prop) &&\n // Only error when accessing a param that is part of the route but wasn't provided.\n // accessing properties that aren't expected to be a valid param value is fine.\n prop in underlyingParams &&\n !declaredParamNames.has(prop)\n ) {\n trackMissingSampleErrorAndThrow(\n new InstantValidationError(\n `Route \"${route}\" accessed param \"${prop}\" which is not defined in the \\`samples\\` ` +\n `of \\`unstable_instant\\`. Add it to the sample's \\`params\\` object.`\n )\n )\n }\n return Reflect.get(target, prop, receiver)\n },\n // We don't need to override `has` or `ownKeys`.\n // the shape of the params object is determined by the routing structure\n // and independent of the samples. We only need to instrument accessing the values.\n })\n}\n\n/**\n * Creates searchParams wrapped with an exhaustive proxy.\n * Accessing a searchParam not declared in the sample will throw an error.\n * A searchParam with `value: undefined` means \"declared but absent\" (allowed to access, returns undefined).\n */\nexport function createExhaustiveSearchParamsProxy(\n searchParams: SearchParams,\n declaredSearchParamNames: Set<string>,\n route: string\n): SearchParams {\n return new Proxy(searchParams, {\n get(target, prop, receiver) {\n if (\n typeof prop === 'string' &&\n !wellKnownProperties.has(prop) &&\n !declaredSearchParamNames.has(prop)\n ) {\n trackMissingSampleErrorAndThrow(\n createMissingSearchParamSampleError(route, prop)\n )\n }\n return Reflect.get(target, prop, receiver)\n },\n has(target, prop) {\n if (\n typeof prop === 'string' &&\n !wellKnownProperties.has(prop) &&\n !declaredSearchParamNames.has(prop)\n ) {\n trackMissingSampleErrorAndThrow(\n createMissingSearchParamSampleError(route, prop)\n )\n }\n return Reflect.has(target, prop)\n },\n })\n}\n\n/**\n * Wraps a URLSearchParams (or subclass like ReadonlyURLSearchParams) with an\n * exhaustive proxy. Accessing a search param not declared in the sample via\n * get/getAll/has will throw an error.\n */\nexport function createExhaustiveURLSearchParamsProxy<T extends URLSearchParams>(\n searchParams: T,\n declaredSearchParamNames: Set<string>,\n route: string\n): T {\n return new Proxy(searchParams, {\n get(target, prop, receiver) {\n // Intercept method calls that access specific param names\n if (prop === 'get' || prop === 'getAll' || prop === 'has') {\n const originalMathod = Reflect.get(target, prop, receiver)\n return (name: string) => {\n if (typeof name === 'string' && !declaredSearchParamNames.has(name)) {\n trackMissingSampleErrorAndThrow(\n createMissingSearchParamSampleError(route, name)\n )\n }\n return (originalMathod as (...args: any[]) => any).call(target, name)\n }\n }\n const value = Reflect.get(target, prop, receiver)\n // Prevent `TypeError: Value of \"this\" must be of type URLSearchParams` for methods\n if (typeof value === 'function' && !Object.hasOwn(target, prop)) {\n return value.bind(target)\n }\n return value\n },\n })\n}\n\nfunction createMissingSearchParamSampleError(\n route: string,\n name: string\n): InstantValidationError {\n return new InstantValidationError(\n `Route \"${route}\" accessed searchParam \"${name}\" which is not defined in the \\`samples\\` ` +\n `of \\`unstable_instant\\`. Add it to the sample's \\`searchParams\\` object, ` +\n `or \\`{ \"${name}\": null }\\` if it should be absent.`\n )\n}\n\nexport function createRelativeURLFromSamples(\n route: string,\n sampleParams: InstantSample['params'],\n sampleSearchParams: InstantSample['searchParams']\n) {\n // Build searchParams query object and URL search string from sample\n const pathname = createPathnameFromRouteAndSampleParams(\n route,\n sampleParams ?? {}\n )\n\n let search = ''\n if (sampleSearchParams) {\n const qs = createURLSearchParamsFromSample(sampleSearchParams).toString()\n if (qs) {\n search = '?' + qs\n }\n }\n\n return parseRelativeUrl(pathname + search, undefined, true)\n}\n\nfunction createURLSearchParamsFromSample(\n sampleSearchParams: InstantSample['searchParams']\n) {\n const result = new URLSearchParams()\n if (sampleSearchParams) {\n for (const [key, value] of Object.entries(sampleSearchParams)) {\n if (value === null || value === undefined) continue\n if (Array.isArray(value)) {\n for (const v of value) {\n result.append(key, v)\n }\n } else {\n result.set(key, value)\n }\n }\n }\n return result\n}\n\n/**\n * Substitute sample params into `workStore.route` to create a plausible pathname.\n * TODO(instant-validation-build): this logic is somewhat hacky and likely incomplete,\n * but it should be good enough for some initial testing.\n */\nfunction createPathnameFromRouteAndSampleParams(route: string, params: Params) {\n let interpolatedSegments: string[] = []\n const rawSegments = route.split('/')\n for (const rawSegment of rawSegments) {\n const param = getSegmentParam(rawSegment)\n if (param) {\n switch (param.paramType) {\n case 'catchall':\n case 'optional-catchall': {\n let paramValue = params[param.paramName]\n if (paramValue === undefined) {\n // The value for the param was not provided. `usePathname` will detect this and throw\n // before this can surface to userspace. Use `[...NAME]` as a placeholder for the param value\n // in case it pops up somewhere unexpectedly.\n paramValue = [rawSegment]\n } else if (!Array.isArray(paramValue)) {\n // NOTE: this happens outside of render, so we don't need `trackMissingSampleErrorAndThrow`\n throw new InstantValidationError(\n `Expected sample param value for segment '${rawSegment}' to be an array of strings, got ${typeof paramValue}`\n )\n }\n interpolatedSegments.push(\n ...paramValue.map((v) => encodeURIComponent(v))\n )\n break\n }\n case 'dynamic': {\n let paramValue = params[param.paramName]\n if (paramValue === undefined) {\n // The value for the param was not provided. `usePathname` will detect this and throw\n // before this can surface to userspace. Use `[NAME]` as a placeholder for the param value\n // in case it pops up somewhere unexpectedly.\n paramValue = rawSegment\n } else if (typeof paramValue !== 'string') {\n // NOTE: this happens outside of render, so we don't need `trackMissingSampleErrorAndThrow`\n throw new InstantValidationError(\n `Expected sample param value for segment '${rawSegment}' to be a string, got ${typeof paramValue}`\n )\n }\n interpolatedSegments.push(encodeURIComponent(paramValue))\n break\n }\n case 'catchall-intercepted-(..)(..)':\n case 'catchall-intercepted-(.)':\n case 'catchall-intercepted-(..)':\n case 'catchall-intercepted-(...)':\n case 'dynamic-intercepted-(..)(..)':\n case 'dynamic-intercepted-(.)':\n case 'dynamic-intercepted-(..)':\n case 'dynamic-intercepted-(...)': {\n // TODO(instant-validation-build): i don't know how these are supposed to work, or if we can even get them here\n throw new InvariantError(\n 'Not implemented: Validation of interception routes'\n )\n }\n default: {\n param.paramType satisfies never\n }\n }\n } else {\n interpolatedSegments.push(rawSegment)\n }\n }\n return interpolatedSegments.join('/')\n}\n\nexport function assertRootParamInSamples(\n workStore: WorkStore,\n sampleParams: Params | undefined,\n paramName: string\n) {\n if (sampleParams && paramName in sampleParams) {\n // The param is defined in the samples.\n } else {\n const route = workStore.route\n trackMissingSampleErrorAndThrow(\n new InstantValidationError(\n `Route \"${route}\" accessed root param \"${paramName}\" which is not defined in the \\`samples\\` ` +\n `of \\`unstable_instant\\`. Add it to the sample's \\`params\\` object.`\n )\n )\n }\n}\n","import type { Params } from '../../request/params'\nimport type { ReadonlyURLSearchParams } from '../../../client/components/readonly-url-search-params'\nimport { workUnitAsyncStorage } from '../work-unit-async-storage.external'\nimport { workAsyncStorage } from '../work-async-storage.external'\nimport {\n createExhaustiveParamsProxy,\n createExhaustiveURLSearchParamsProxy,\n trackMissingSampleErrorAndThrow,\n} from './instant-samples'\nimport { InstantValidationError } from './instant-validation-error'\n\nexport function instrumentParamsForClientValidation<TPArams extends Params>(\n underlyingParams: TPArams\n): TPArams {\n const workStore = workAsyncStorage.getStore()\n const workUnitStore = workUnitAsyncStorage.getStore()\n if (workStore && workUnitStore) {\n switch (workUnitStore.type) {\n case 'validation-client': {\n if (workUnitStore.validationSamples) {\n const declaredKeys = new Set(\n Object.keys(workUnitStore.validationSamples.params ?? {})\n )\n return createExhaustiveParamsProxy(\n underlyingParams,\n declaredKeys,\n workStore.route\n )\n }\n break\n }\n case 'prerender-runtime':\n case 'prerender-client':\n case 'prerender-legacy':\n case 'prerender-ppr':\n case 'prerender':\n case 'cache':\n case 'request':\n case 'private-cache':\n case 'unstable-cache':\n case 'generate-static-params':\n break\n default:\n workUnitStore satisfies never\n }\n }\n return underlyingParams\n}\n\nexport function expectCompleteParamsInClientValidation(\n expression: string\n): void {\n const workStore = workAsyncStorage.getStore()\n const workUnitStore = workUnitAsyncStorage.getStore()\n if (workStore && workUnitStore) {\n switch (workUnitStore.type) {\n case 'validation-client': {\n if (workUnitStore.validationSamples) {\n const fallbackParams = workUnitStore.fallbackRouteParams\n if (fallbackParams && fallbackParams.size > 0) {\n const missingParams = Array.from(fallbackParams.keys())\n trackMissingSampleErrorAndThrow(\n new InstantValidationError(\n `Route \"${workStore.route}\" called ${expression} but param${missingParams.length > 1 ? 's' : ''} ${missingParams.map((p) => `\"${p}\"`).join(', ')} ${missingParams.length > 1 ? 'are' : 'is'} not defined in the \\`samples\\` of \\`unstable_instant\\`. ` +\n `${expression} requires all route params to be provided.`\n )\n )\n }\n }\n break\n }\n case 'prerender-runtime':\n case 'prerender-client':\n case 'prerender-legacy':\n case 'prerender-ppr':\n case 'prerender':\n case 'cache':\n case 'request':\n case 'private-cache':\n case 'unstable-cache':\n case 'generate-static-params':\n break\n default:\n workUnitStore satisfies never\n }\n }\n}\n\nexport function instrumentSearchParamsForClientValidation(\n underlyingSearchParams: ReadonlyURLSearchParams\n): ReadonlyURLSearchParams {\n const workStore = workAsyncStorage.getStore()\n const workUnitStore = workUnitAsyncStorage.getStore()\n if (workStore && workUnitStore) {\n switch (workUnitStore.type) {\n case 'validation-client': {\n if (workUnitStore.validationSamples) {\n const declaredKeys = new Set(\n Object.keys(workUnitStore.validationSamples.searchParams ?? {})\n )\n return createExhaustiveURLSearchParamsProxy(\n underlyingSearchParams,\n declaredKeys,\n workStore.route\n )\n }\n break\n }\n case 'prerender-runtime':\n case 'prerender-client':\n case 'prerender-legacy':\n case 'prerender-ppr':\n case 'prerender':\n case 'cache':\n case 'request':\n case 'private-cache':\n case 'unstable-cache':\n case 'generate-static-params':\n break\n default:\n workUnitStore satisfies never\n }\n }\n return underlyingSearchParams\n}\n","import type { Params } from '../../server/request/params'\n\nimport React, { useContext, useMemo, use } from 'react'\nimport {\n AppRouterContext,\n LayoutRouterContext,\n type AppRouterInstance,\n} from '../../shared/lib/app-router-context.shared-runtime'\nimport {\n SearchParamsContext,\n PathnameContext,\n PathParamsContext,\n NavigationPromisesContext,\n ReadonlyURLSearchParams,\n} from '../../shared/lib/hooks-client-context.shared-runtime'\nimport {\n computeSelectedLayoutSegment,\n getSelectedLayoutSegmentPath,\n} from '../../shared/lib/segment'\n\nconst useDynamicRouteParams =\n typeof window === 'undefined'\n ? (\n require('../../server/app-render/dynamic-rendering') as typeof import('../../server/app-render/dynamic-rendering')\n ).useDynamicRouteParams\n : undefined\n\nconst useDynamicSearchParams =\n typeof window === 'undefined'\n ? (\n require('../../server/app-render/dynamic-rendering') as typeof import('../../server/app-render/dynamic-rendering')\n ).useDynamicSearchParams\n : undefined\n\nconst {\n instrumentParamsForClientValidation,\n instrumentSearchParamsForClientValidation,\n expectCompleteParamsInClientValidation,\n} =\n typeof window === 'undefined' && process.env.__NEXT_CACHE_COMPONENTS\n ? (require('../../server/app-render/instant-validation/instant-samples-client') as typeof import('../../server/app-render/instant-validation/instant-samples-client'))\n : {}\n\n/**\n * A [Client Component](https://nextjs.org/docs/app/building-your-application/rendering/client-components) hook\n * that lets you *read* the current URL's search parameters.\n *\n * Learn more about [`URLSearchParams` on MDN](https://developer.mozilla.org/docs/Web/API/URLSearchParams)\n *\n * @example\n * ```ts\n * \"use client\"\n * import { useSearchParams } from 'next/navigation'\n *\n * export default function Page() {\n * const searchParams = useSearchParams()\n * searchParams.get('foo') // returns 'bar' when ?foo=bar\n * // ...\n * }\n * ```\n *\n * Read more: [Next.js Docs: `useSearchParams`](https://nextjs.org/docs/app/api-reference/functions/use-search-params)\n */\n// Client components API\nexport function useSearchParams(): ReadonlyURLSearchParams {\n useDynamicSearchParams?.('useSearchParams()')\n\n const searchParams = useContext(SearchParamsContext)\n\n // In the case where this is `null`, the compat types added in\n // `next-env.d.ts` will add a new overload that changes the return type to\n // include `null`.\n const readonlySearchParams = useMemo((): ReadonlyURLSearchParams => {\n if (!searchParams) {\n // When the router is not ready in pages, we won't have the search params\n // available.\n return null!\n }\n\n return new ReadonlyURLSearchParams(searchParams)\n }, [searchParams])\n\n // During build-time instant validation, wrap with an proxy\n // so that accessing undeclared search params throws an error.\n if (\n typeof window === 'undefined' &&\n process.env.__NEXT_CACHE_COMPONENTS &&\n readonlySearchParams\n ) {\n return instrumentSearchParamsForClientValidation!(readonlySearchParams)\n }\n\n // Instrument with Suspense DevTools (dev-only)\n if (process.env.NODE_ENV !== 'production' && 'use' in React) {\n const navigationPromises = use(NavigationPromisesContext)\n if (navigationPromises) {\n return use(navigationPromises.searchParams)\n }\n }\n\n return readonlySearchParams\n}\n\n/**\n * A [Client Component](https://nextjs.org/docs/app/building-your-application/rendering/client-components) hook\n * that lets you read the current URL's pathname.\n *\n * @example\n * ```ts\n * \"use client\"\n * import { usePathname } from 'next/navigation'\n *\n * export default function Page() {\n * const pathname = usePathname() // returns \"/dashboard\" on /dashboard?foo=bar\n * // ...\n * }\n * ```\n *\n * Read more: [Next.js Docs: `usePathname`](https://nextjs.org/docs/app/api-reference/functions/use-pathname)\n */\n// Client components API\nexport function usePathname(): string {\n useDynamicRouteParams?.('usePathname()')\n\n // In the case where this is `null`, the compat types added in `next-env.d.ts`\n // will add a new overload that changes the return type to include `null`.\n const pathname = useContext(PathnameContext) as string\n\n // During build-time instant validation, error if fallback params exist\n // because usePathname() can't return a sensible value without all params.\n if (\n typeof window === 'undefined' &&\n process.env.__NEXT_CACHE_COMPONENTS &&\n pathname\n ) {\n expectCompleteParamsInClientValidation!('usePathname()')\n return pathname\n }\n\n // Instrument with Suspense DevTools (dev-only)\n if (process.env.NODE_ENV !== 'production' && 'use' in React) {\n const navigationPromises = use(NavigationPromisesContext)\n if (navigationPromises) {\n return use(navigationPromises.pathname)\n }\n }\n\n return pathname\n}\n\n// Client components API\nexport {\n ServerInsertedHTMLContext,\n useServerInsertedHTML,\n} from '../../shared/lib/server-inserted-html.shared-runtime'\n\n/**\n *\n * This hook allows you to programmatically change routes inside [Client Component](https://nextjs.org/docs/app/building-your-application/rendering/client-components).\n *\n * @example\n * ```ts\n * \"use client\"\n * import { useRouter } from 'next/navigation'\n *\n * export default function Page() {\n * const router = useRouter()\n * // ...\n * router.push('/dashboard') // Navigate to /dashboard\n * }\n * ```\n *\n * Read more: [Next.js Docs: `useRouter`](https://nextjs.org/docs/app/api-reference/functions/use-router)\n */\n// Client components API\nexport function useRouter(): AppRouterInstance {\n const router = useContext(AppRouterContext)\n if (router === null) {\n throw new Error('invariant expected app router to be mounted')\n }\n\n return router\n}\n\n/**\n * A [Client Component](https://nextjs.org/docs/app/building-your-application/rendering/client-components) hook\n * that lets you read a route's dynamic params filled in by the current URL.\n *\n * @example\n * ```ts\n * \"use client\"\n * import { useParams } from 'next/navigation'\n *\n * export default function Page() {\n * // on /dashboard/[team] where pathname is /dashboard/nextjs\n * const { team } = useParams() // team === \"nextjs\"\n * }\n * ```\n *\n * Read more: [Next.js Docs: `useParams`](https://nextjs.org/docs/app/api-reference/functions/use-params)\n */\n// Client components API\nexport function useParams<T extends Params = Params>(): T {\n useDynamicRouteParams?.('useParams()')\n\n const params = useContext(PathParamsContext) as T\n\n // During build-time instant validation, wrap with a proxy\n // so that accessing undeclared params throws an error.\n if (\n typeof window === 'undefined' &&\n process.env.__NEXT_CACHE_COMPONENTS &&\n params\n ) {\n return instrumentParamsForClientValidation!(params)\n }\n\n // Instrument with Suspense DevTools (dev-only)\n if (process.env.NODE_ENV !== 'production' && 'use' in React) {\n const navigationPromises = use(NavigationPromisesContext)\n if (navigationPromises) {\n return use(navigationPromises.params) as T\n }\n }\n\n return params\n}\n\n/**\n * A [Client Component](https://nextjs.org/docs/app/building-your-application/rendering/client-components) hook\n * that lets you read the active route segments **below** the Layout it is called from.\n *\n * @example\n * ```ts\n * 'use client'\n *\n * import { useSelectedLayoutSegments } from 'next/navigation'\n *\n * export default function ExampleClientComponent() {\n * const segments = useSelectedLayoutSegments()\n *\n * return (\n * <ul>\n * {segments.map((segment, index) => (\n * <li key={index}>{segment}</li>\n * ))}\n * </ul>\n * )\n * }\n * ```\n *\n * Read more: [Next.js Docs: `useSelectedLayoutSegments`](https://nextjs.org/docs/app/api-reference/functions/use-selected-layout-segments)\n */\n// Client components API\nexport function useSelectedLayoutSegments(\n parallelRouteKey: string = 'children'\n): string[] {\n useDynamicRouteParams?.('useSelectedLayoutSegments()')\n\n const context = useContext(LayoutRouterContext)\n // @ts-expect-error This only happens in `pages`. Type is overwritten in navigation.d.ts\n if (!context) return null\n\n // During build-time instant validation, error if fallback params exist\n // because useSelectedLayoutSegments() can't return a sensible value without all params.\n if (\n typeof window === 'undefined' &&\n process.env.__NEXT_CACHE_COMPONENTS &&\n context\n ) {\n expectCompleteParamsInClientValidation!('useSelectedLayoutSegments()')\n }\n\n // Instrument with Suspense DevTools (dev-only)\n if (process.env.NODE_ENV !== 'production' && 'use' in React) {\n const navigationPromises = use(NavigationPromisesContext)\n if (navigationPromises) {\n const promise =\n navigationPromises.selectedLayoutSegmentsPromises?.get(parallelRouteKey)\n if (promise) {\n // We should always have a promise here, but if we don't, it's not worth erroring over.\n // We just won't be able to instrument it, but can still provide the value.\n return use(promise)\n }\n }\n }\n\n return getSelectedLayoutSegmentPath(context.parentTree, parallelRouteKey)\n}\n\n/**\n * A [Client Component](https://nextjs.org/docs/app/building-your-application/rendering/client-components) hook\n * that lets you read the active route segment **one level below** the Layout it is called from.\n *\n * @example\n * ```ts\n * 'use client'\n * import { useSelectedLayoutSegment } from 'next/navigation'\n *\n * export default function ExampleClientComponent() {\n * const segment = useSelectedLayoutSegment()\n *\n * return <p>Active segment: {segment}</p>\n * }\n * ```\n *\n * Read more: [Next.js Docs: `useSelectedLayoutSegment`](https://nextjs.org/docs/app/api-reference/functions/use-selected-layout-segment)\n */\n// Client components API\nexport function useSelectedLayoutSegment(\n parallelRouteKey: string = 'children'\n): string | null {\n useDynamicRouteParams?.('useSelectedLayoutSegment()')\n const navigationPromises = useContext(NavigationPromisesContext)\n const selectedLayoutSegments = useSelectedLayoutSegments(parallelRouteKey)\n\n // During build-time instant validation, error if fallback params exist\n // because useSelectedLayoutSegment() can't return a sensible value without all params.\n if (typeof window === 'undefined' && process.env.__NEXT_CACHE_COMPONENTS) {\n expectCompleteParamsInClientValidation!('useSelectedLayoutSegment()')\n }\n\n // Instrument with Suspense DevTools (dev-only)\n if (\n process.env.NODE_ENV !== 'production' &&\n navigationPromises &&\n 'use' in React\n ) {\n const promise =\n navigationPromises.selectedLayoutSegmentPromises?.get(parallelRouteKey)\n if (promise) {\n // We should always have a promise here, but if we don't, it's not worth erroring over.\n // We just won't be able to instrument it, but can still provide the value.\n return use(promise)\n }\n }\n\n return computeSelectedLayoutSegment(selectedLayoutSegments, parallelRouteKey)\n}\n\nexport { unstable_isUnrecognizedActionError } from './unrecognized-action-error'\n\n// Shared components APIs\nexport {\n // We need the same class that was used to instantiate the context value\n // Otherwise instanceof checks will fail in usercode\n ReadonlyURLSearchParams,\n}\nexport {\n notFound,\n forbidden,\n unauthorized,\n redirect,\n permanentRedirect,\n RedirectType,\n unstable_rethrow,\n} from './navigation.react-server'\n","module.exports = require('./dist/client/components/navigation')\n","export { createCmsClient } from \"./queries\"\nexport { createShopClient } from \"./shop\"\nexport { CmsAnalytics } from \"./analytics\"\nexport { PageTracker } from \"./page-tracker\"\nexport { getTransformUrl, getSrcSet, IMAGE_PRESETS } from \"./cdn\"\nexport type { ImageTransformOptions } from \"./cdn\"\nexport type {\n FieldType,\n FieldDefinition,\n Tenant,\n Profile,\n ContentType,\n ContentItem,\n MediaItem,\n ContentQueryOptions,\n CmsClientOptions,\n TenantMembership,\n ImageConfig,\n ContentTypeSeoConfig,\n Product,\n ProductVariant,\n ProductOption,\n OrderAddress,\n CreateOrderParams,\n CreateOrderResult,\n ProductQueryOptions,\n} from \"./types\"\n","import { createClient as createSupabaseClient } from \"@supabase/supabase-js\"\nimport type { SupabaseClient } from \"@supabase/supabase-js\"\nimport type {\n CmsClientOptions,\n ContentItem,\n ContentQueryOptions,\n ContentType,\n} from \"./types\"\n\n/**\n * Creates a CMS query client authenticated with a tenant API key.\n *\n * Usage:\n * ```ts\n * const cms = createCmsClient(supabase, { apiKey: process.env.CMS_API_KEY! })\n * const events = await cms.getContentItems('events', { status: 'published' })\n * ```\n *\n * The API key is sent as an `x-cms-api-key` header on every request.\n * Supabase RLS policies validate it against the tenant's stored key.\n */\nexport function createCmsClient(\n supabase: SupabaseClient,\n options: CmsClientOptions\n) {\n const { apiKey } = options\n\n // Create a new Supabase client with the API key header injected globally\n const client = withApiKey(supabase, apiKey) as SupabaseClient\n\n /** Resolve the tenant ID from the API key (cached per request) */\n let tenantIdCache: string | null = null\n\n async function getTenantId(): Promise<string> {\n if (tenantIdCache) return tenantIdCache\n\n const { data, error } = await client\n .from(\"tenants\")\n .select(\"id\")\n .single()\n\n if (error || !data) {\n throw new Error(\n \"Invalid CMS API key — no tenant found. Check your apiKey.\"\n )\n }\n\n tenantIdCache = data.id\n return data.id\n }\n\n /** Resolve a content type ID from its slug */\n async function getContentTypeId(contentTypeSlug: string): Promise<string> {\n const tenantId = await getTenantId()\n\n const { data, error } = await client\n .from(\"content_types\")\n .select(\"id\")\n .eq(\"tenant_id\", tenantId)\n .eq(\"slug\", contentTypeSlug)\n .single()\n\n if (error || !data) {\n throw new Error(`Content type not found: ${contentTypeSlug}`)\n }\n\n return data.id\n }\n\n return {\n /**\n * List content items for a content type.\n * Defaults to published items ordered by most recent.\n */\n async getContentItems(\n contentTypeSlug: string,\n options: ContentQueryOptions = {}\n ): Promise<ContentItem[]> {\n const contentTypeId = await getContentTypeId(contentTypeSlug)\n\n const {\n status = \"published\",\n orderBy = \"published_at\",\n orderDirection = \"desc\",\n limit = 100,\n offset = 0,\n } = options\n\n let query = client\n .from(\"content_items\")\n .select(\"*\")\n .eq(\"content_type_id\", contentTypeId)\n\n if (status) {\n query = query.eq(\"status\", status)\n }\n\n query = query\n .order(orderBy, { ascending: orderDirection === \"asc\" })\n .range(offset, offset + limit - 1)\n\n const { data, error } = await query\n\n if (error) {\n throw new Error(`Failed to fetch ${contentTypeSlug}: ${error.message}`)\n }\n\n return (data ?? []) as ContentItem[]\n },\n\n /**\n * Get a single content item by its slug.\n * Returns null if not found.\n */\n async getContentItemBySlug(\n contentTypeSlug: string,\n itemSlug: string\n ): Promise<ContentItem | null> {\n const contentTypeId = await getContentTypeId(contentTypeSlug)\n\n const { data, error } = await client\n .from(\"content_items\")\n .select(\"*\")\n .eq(\"content_type_id\", contentTypeId)\n .eq(\"slug\", itemSlug)\n .single()\n\n if (error) {\n if (error.code === \"PGRST116\") return null // not found\n throw new Error(\n `Failed to fetch ${contentTypeSlug}/${itemSlug}: ${error.message}`\n )\n }\n\n return data as ContentItem\n },\n\n /**\n * Get a content type definition (including its field schema).\n */\n async getContentType(contentTypeSlug: string): Promise<ContentType> {\n const tenantId = await getTenantId()\n\n const { data, error } = await client\n .from(\"content_types\")\n .select(\"*\")\n .eq(\"tenant_id\", tenantId)\n .eq(\"slug\", contentTypeSlug)\n .single()\n\n if (error || !data) {\n throw new Error(`Content type not found: ${contentTypeSlug}`)\n }\n\n return data as ContentType\n },\n\n /**\n * Get all slugs for a content type (for generateStaticParams).\n */\n async getAllSlugs(\n contentTypeSlug: string\n ): Promise<{ slug: string }[]> {\n const contentTypeId = await getContentTypeId(contentTypeSlug)\n\n const { data, error } = await client\n .from(\"content_items\")\n .select(\"slug\")\n .eq(\"content_type_id\", contentTypeId)\n .eq(\"status\", \"published\")\n\n if (error) {\n throw new Error(\n `Failed to fetch slugs for ${contentTypeSlug}: ${error.message}`\n )\n }\n\n return (data ?? []) as { slug: string }[]\n },\n\n /**\n * List all content types for this tenant.\n */\n async getContentTypes(): Promise<ContentType[]> {\n const tenantId = await getTenantId()\n\n const { data, error } = await client\n .from(\"content_types\")\n .select(\"*\")\n .eq(\"tenant_id\", tenantId)\n .order(\"name\")\n\n if (error) {\n throw new Error(`Failed to fetch content types: ${error.message}`)\n }\n\n return (data ?? []) as ContentType[]\n },\n\n /**\n * Get all slug redirects for a content type.\n * Use in next.config.js redirects() or middleware for 301s.\n * Returns: [{ old_slug, new_slug }, ...]\n */\n async getRedirects(\n contentTypeSlug: string\n ): Promise<{ old_slug: string; new_slug: string }[]> {\n const contentTypeId = await getContentTypeId(contentTypeSlug)\n\n const { data, error } = await client\n .from(\"slug_redirects\")\n .select(\"old_slug, new_slug\")\n .eq(\"content_type_id\", contentTypeId)\n\n if (error) {\n throw new Error(\n `Failed to fetch redirects for ${contentTypeSlug}: ${error.message}`\n )\n }\n\n return (data ?? []) as { old_slug: string; new_slug: string }[]\n },\n\n /**\n * Get all custom path redirects for this tenant.\n * Use alongside getRedirects() in next.config.ts for full redirect coverage.\n */\n async getCustomRedirects(): Promise<\n { source_path: string; destination_path: string; permanent: boolean }[]\n > {\n const tenantId = await getTenantId()\n\n const { data, error } = await client\n .from(\"custom_redirects\")\n .select(\"source_path, destination_path, permanent\")\n .eq(\"tenant_id\", tenantId)\n\n if (error) {\n throw new Error(`Failed to fetch custom redirects: ${error.message}`)\n }\n\n return (data ?? []) as {\n source_path: string\n destination_path: string\n permanent: boolean\n }[]\n },\n\n /**\n * Get form submissions for a specific form.\n * Useful for displaying testimonials, reviews, etc.\n */\n async getFormSubmissions(\n formSlug: string,\n options: { status?: string; limit?: number; offset?: number } = {}\n ): Promise<Record<string, unknown>[]> {\n const tenantId = await getTenantId()\n\n const { data: form } = await client\n .from(\"forms\")\n .select(\"id\")\n .eq(\"tenant_id\", tenantId)\n .eq(\"slug\", formSlug)\n .single()\n\n if (!form) return []\n\n const { limit = 50, offset = 0, status } = options\n\n let query = client\n .from(\"form_submissions\")\n .select(\"*\")\n .eq(\"form_id\", form.id)\n .eq(\"is_spam\", false)\n .order(\"created_at\", { ascending: false })\n .range(offset, offset + limit - 1)\n\n if (status) {\n query = query.eq(\"status\", status)\n }\n\n const { data } = await query\n return (data ?? []) as Record<string, unknown>[]\n },\n\n /**\n * Get a form configuration by slug.\n */\n async getForm(\n formSlug: string\n ): Promise<Record<string, unknown> | null> {\n const tenantId = await getTenantId()\n\n const { data } = await client\n .from(\"forms\")\n .select(\"id, name, slug, description, is_active\")\n .eq(\"tenant_id\", tenantId)\n .eq(\"slug\", formSlug)\n .single()\n\n return data as Record<string, unknown> | null\n },\n }\n}\n\n/**\n * Creates a new Supabase client that includes the `x-cms-api-key`\n * header in every request, using the same URL and key as the original.\n */\nfunction withApiKey(supabase: SupabaseClient, apiKey: string) {\n // Extract URL and key from the existing client\n const supabaseUrl = (supabase as unknown as { supabaseUrl: string }).supabaseUrl\n const supabaseKey = (supabase as unknown as { supabaseKey: string }).supabaseKey\n\n return createSupabaseClient(supabaseUrl, supabaseKey, {\n global: {\n headers: {\n \"x-cms-api-key\": apiKey,\n },\n },\n })\n}\n","import type { SupabaseClient } from \"@supabase/supabase-js\"\nimport type { Product, ProductQueryOptions, CreateOrderParams, CreateOrderResult } from \"./types\"\n\nexport function createShopClient(supabase: SupabaseClient, options: { apiKey: string; appUrl?: string }) {\n const { apiKey, appUrl } = options\n\n return {\n async getProducts(queryOptions?: ProductQueryOptions): Promise<Product[]> {\n let query = supabase\n .from(\"products\")\n .select(\"*, variants:product_variants(*), options:product_options(*)\")\n .eq(\"status\", \"published\")\n .order(queryOptions?.sort ?? \"sort_order\", { ascending: (queryOptions?.order ?? \"asc\") === \"asc\" })\n\n if (queryOptions?.category) {\n query = query.eq(\"category\", queryOptions.category)\n }\n if (queryOptions?.tags?.length) {\n query = query.overlaps(\"tags\", queryOptions.tags)\n }\n if (queryOptions?.limit) {\n query = query.limit(queryOptions.limit)\n }\n if (queryOptions?.offset) {\n query = query.range(queryOptions.offset, queryOptions.offset + (queryOptions.limit ?? 50) - 1)\n }\n\n const { data } = await query\n return (data ?? []) as Product[]\n },\n\n async getProductBySlug(slug: string): Promise<Product | null> {\n const { data } = await supabase\n .from(\"products\")\n .select(\"*, variants:product_variants(*), options:product_options(*)\")\n .eq(\"slug\", slug)\n .eq(\"status\", \"published\")\n .single()\n return (data as Product) ?? null\n },\n\n async getProductCategories(): Promise<string[]> {\n const { data } = await supabase\n .from(\"products\")\n .select(\"category\")\n .eq(\"status\", \"published\")\n .not(\"category\", \"is\", null)\n const categories = [...new Set((data ?? []).map((d: { category: string }) => d.category))]\n return categories.sort()\n },\n\n async createOrder(params: CreateOrderParams): Promise<CreateOrderResult> {\n // This must go through the API (not direct Supabase) because\n // order creation requires server-side Stripe PaymentIntent creation\n const baseUrl = appUrl ?? \"\"\n const res = await fetch(`${baseUrl}/api/orders/create`, {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify({ api_key: apiKey, ...params }),\n })\n if (!res.ok) {\n const err = await res.json().catch(() => ({ error: \"Order creation failed\" }))\n throw new Error(err.error ?? \"Order creation failed\")\n }\n return res.json()\n },\n }\n}\n","\"use client\"\n\nimport { useEffect, useRef } from \"react\"\n\ninterface CmsAnalyticsProps {\n /** The CMS tracking endpoint URL (required — your CMS app URL + /api/track) */\n trackingUrl: string\n /** Tenant API key (public, read-only — safe for client-side use) */\n apiKey: string\n /** Content item ID (from CMS) */\n contentItemId?: string\n /** Content type slug (e.g. \"blog_posts\") */\n contentTypeSlug: string\n /** Item slug (e.g. \"my-post\") */\n itemSlug: string\n /** Enable scroll depth tracking (default: true) */\n trackScroll?: boolean\n /** Enable time-on-page tracking (default: true) */\n trackTime?: boolean\n}\n\n/**\n * Drop-in analytics component for CMS content pages.\n * Tracks page views, scroll depth, and time on page.\n *\n * The apiKey is a public, read-only tenant identifier — it only grants\n * access to published content and is safe for client-side use.\n *\n * Usage:\n * ```tsx\n * <CmsAnalytics\n * trackingUrl={process.env.NEXT_PUBLIC_CMS_URL + \"/api/track\"}\n * apiKey={process.env.NEXT_PUBLIC_CMS_API_KEY!}\n * contentTypeSlug=\"blog_posts\"\n * itemSlug={params.slug}\n * />\n * ```\n */\nexport function CmsAnalytics({\n trackingUrl,\n apiKey,\n contentItemId,\n contentTypeSlug,\n itemSlug,\n trackScroll = true,\n trackTime = true,\n}: CmsAnalyticsProps) {\n const sentRef = useRef(false)\n const maxScrollRef = useRef(0)\n const startTimeRef = useRef(Date.now())\n const sessionIdRef = useRef(getSessionId())\n\n useEffect(() => {\n // Only send page view once per mount\n if (sentRef.current) return\n sentRef.current = true\n\n // Page view event\n sendEvent(trackingUrl, {\n api_key: apiKey,\n content_item_id: contentItemId,\n content_type_slug: contentTypeSlug,\n item_slug: itemSlug,\n event_type: \"page_view\",\n referrer: document.referrer || null,\n session_id: sessionIdRef.current,\n })\n\n // Scroll tracking\n let scrollHandler: (() => void) | null = null\n if (trackScroll) {\n scrollHandler = () => {\n const scrollHeight = document.documentElement.scrollHeight - window.innerHeight\n if (scrollHeight <= 0) return\n const pct = Math.round((window.scrollY / scrollHeight) * 100)\n if (pct > maxScrollRef.current) maxScrollRef.current = pct\n }\n window.addEventListener(\"scroll\", scrollHandler, { passive: true })\n }\n\n // Send engagement data on page leave\n const handleUnload = () => {\n const timeOnPage = Math.round((Date.now() - startTimeRef.current) / 1000)\n const payload = JSON.stringify({\n api_key: apiKey,\n content_item_id: contentItemId,\n content_type_slug: contentTypeSlug,\n item_slug: itemSlug,\n event_type: \"engagement\",\n session_id: sessionIdRef.current,\n metadata: {\n scroll_depth: maxScrollRef.current,\n time_on_page: timeOnPage,\n },\n })\n\n // Use sendBeacon for reliable delivery on page unload\n if (navigator.sendBeacon) {\n navigator.sendBeacon(trackingUrl, payload)\n }\n }\n\n if (trackScroll || trackTime) {\n window.addEventListener(\"beforeunload\", handleUnload)\n }\n\n return () => {\n if (scrollHandler) window.removeEventListener(\"scroll\", scrollHandler)\n if (trackScroll || trackTime) window.removeEventListener(\"beforeunload\", handleUnload)\n }\n }, [trackingUrl, apiKey, contentItemId, contentTypeSlug, itemSlug, trackScroll, trackTime])\n\n return null\n}\n\nfunction sendEvent(url: string, data: Record<string, unknown>) {\n fetch(url, {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify(data),\n keepalive: true,\n }).catch(() => {}) // fire and forget\n}\n\n/** Generate a random session ID (persists for the browser session) */\nfunction getSessionId(): string {\n if (typeof window === \"undefined\") return \"\"\n const key = \"__cms_sid\"\n let sid = sessionStorage.getItem(key)\n if (!sid) {\n sid = Math.random().toString(36).slice(2) + Date.now().toString(36)\n sessionStorage.setItem(key, sid)\n }\n return sid\n}\n","\"use client\"\n\nimport { useEffect, useRef } from \"react\"\nimport { usePathname } from \"next/navigation\"\n\ninterface PageTrackerProps {\n /** The CMS tracking endpoint URL (required — your CMS app URL + /api/track) */\n trackingUrl: string\n /** Tenant API key (public, read-only — safe for client-side use) */\n apiKey: string\n /** Enable scroll depth tracking (default: true) */\n trackScroll?: boolean\n /** Enable time-on-page tracking (default: true) */\n trackTime?: boolean\n}\n\n/**\n * Site-wide page tracker. Add once in root layout to track all pages.\n * Automatically detects CMS content pages from URL structure.\n *\n * The apiKey is a public, read-only tenant identifier — it only grants\n * access to published content and is safe for client-side use.\n *\n * Usage in src/app/layout.tsx:\n * ```tsx\n * import { PageTracker } from \"@distinctagency/cms-client\"\n *\n * <body>\n * {children}\n * <PageTracker\n * trackingUrl={process.env.NEXT_PUBLIC_CMS_URL + \"/api/track\"}\n * apiKey={process.env.NEXT_PUBLIC_CMS_API_KEY!}\n * />\n * </body>\n * ```\n */\nexport function PageTracker({\n trackingUrl,\n apiKey,\n trackScroll = true,\n trackTime = true,\n}: PageTrackerProps) {\n const pathname = usePathname()\n const prevPathRef = useRef(\"\")\n const maxScrollRef = useRef(0)\n const startTimeRef = useRef(Date.now())\n const sessionIdRef = useRef(getSessionId())\n\n useEffect(() => {\n // Skip if same path (prevents double-fire on mount)\n if (pathname === prevPathRef.current) return\n prevPathRef.current = pathname\n\n // Reset engagement tracking for new page\n maxScrollRef.current = 0\n startTimeRef.current = Date.now()\n\n // Try to extract content type and item slug from URL\n // Supports patterns like /events/future-finance, /blog/my-post, etc.\n const segments = pathname.split(\"/\").filter(Boolean)\n const contentTypeSlug = segments[0] ?? null\n const itemSlug = segments.length >= 2 ? segments[segments.length - 1] : null\n\n // Fire page view\n sendEvent(trackingUrl, {\n api_key: apiKey,\n event_type: \"page_view\",\n content_type_slug: contentTypeSlug,\n item_slug: itemSlug,\n referrer: document.referrer || null,\n session_id: sessionIdRef.current,\n metadata: { path: pathname },\n })\n }, [pathname, trackingUrl, apiKey])\n\n // Scroll tracking\n useEffect(() => {\n if (!trackScroll) return\n\n const handleScroll = () => {\n const scrollHeight = document.documentElement.scrollHeight - window.innerHeight\n if (scrollHeight <= 0) return\n const pct = Math.round((window.scrollY / scrollHeight) * 100)\n if (pct > maxScrollRef.current) maxScrollRef.current = pct\n }\n\n window.addEventListener(\"scroll\", handleScroll, { passive: true })\n return () => window.removeEventListener(\"scroll\", handleScroll)\n }, [trackScroll])\n\n // Send engagement data on page leave\n useEffect(() => {\n if (!trackScroll && !trackTime) return\n\n const handleUnload = () => {\n const timeOnPage = Math.round((Date.now() - startTimeRef.current) / 1000)\n const segments = prevPathRef.current.split(\"/\").filter(Boolean)\n\n const payload = JSON.stringify({\n api_key: apiKey,\n event_type: \"engagement\",\n content_type_slug: segments[0] ?? null,\n item_slug: segments.length >= 2 ? segments[segments.length - 1] : null,\n session_id: sessionIdRef.current,\n metadata: {\n scroll_depth: maxScrollRef.current,\n time_on_page: timeOnPage,\n path: prevPathRef.current,\n },\n })\n\n if (navigator.sendBeacon) {\n navigator.sendBeacon(trackingUrl, payload)\n }\n }\n\n window.addEventListener(\"beforeunload\", handleUnload)\n return () => window.removeEventListener(\"beforeunload\", handleUnload)\n }, [trackingUrl, apiKey, trackScroll, trackTime])\n\n return null\n}\n\nfunction sendEvent(url: string, data: Record<string, unknown>) {\n fetch(url, {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify(data),\n keepalive: true,\n }).catch(() => {})\n}\n\nfunction getSessionId(): string {\n if (typeof window === \"undefined\") return \"\"\n const key = \"__cms_sid\"\n let sid = sessionStorage.getItem(key)\n if (!sid) {\n sid = Math.random().toString(36).slice(2) + Date.now().toString(36)\n sessionStorage.setItem(key, sid)\n }\n return sid\n}\n","/**\n * CDN image transform helpers using Supabase Storage's built-in image transformation.\n *\n * Converts /object/public/ URLs to /render/image/public/ with transform params.\n * Works both server-side and client-side (no Node.js-only APIs).\n */\n\nexport interface ImageTransformOptions {\n width?: number\n height?: number\n quality?: number\n resize?: \"contain\" | \"cover\" | \"fill\"\n format?: \"origin\" // Supabase doesn't support format param yet, but we plan for it\n}\n\n/**\n * Transform a Supabase Storage URL to use Supabase's image transformation.\n * Converts /object/public/ URLs to /render/image/public/ with transform params.\n */\nexport function getTransformUrl(\n originalUrl: string,\n options: ImageTransformOptions = {}\n): string {\n // Only transform Supabase storage URLs\n if (!originalUrl.includes(\"/storage/v1/object/public/\")) {\n return originalUrl\n }\n\n // Convert from /object/public/ to /render/image/public/\n const transformUrl = originalUrl.replace(\n \"/storage/v1/object/public/\",\n \"/storage/v1/render/image/public/\"\n )\n\n const params = new URLSearchParams()\n if (options.width) params.set(\"width\", String(options.width))\n if (options.height) params.set(\"height\", String(options.height))\n if (options.quality) params.set(\"quality\", String(options.quality))\n if (options.resize) params.set(\"resize\", options.resize)\n\n const qs = params.toString()\n return qs ? `${transformUrl}?${qs}` : transformUrl\n}\n\n/**\n * Generate a srcSet string for responsive images.\n */\nexport function getSrcSet(\n originalUrl: string,\n widths: number[] = [320, 640, 960, 1280, 1920],\n quality = 80\n): string {\n return widths\n .map(\n (w) =>\n `${getTransformUrl(originalUrl, { width: w, quality, resize: \"contain\" })} ${w}w`\n )\n .join(\", \")\n}\n\n/**\n * Generate common image sizes for different use cases.\n */\nexport const IMAGE_PRESETS = {\n thumbnail: { width: 150, height: 150, resize: \"cover\" as const, quality: 70 },\n card: { width: 400, height: 300, resize: \"cover\" as const, quality: 80 },\n hero: { width: 1200, height: 630, resize: \"cover\" as const, quality: 85 },\n og: { width: 1200, height: 630, resize: \"cover\" as const, quality: 90 },\n avatar: { width: 80, height: 80, resize: \"cover\" as const, quality: 75 },\n full: { width: 1920, resize: \"contain\" as const, quality: 85 },\n} as const\n"],"mappings":"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","names":["exports","exports","module","exports","module","exports","nodeInterop","exports","exports","AppRouterContext","GlobalLayoutRouterContext","LayoutRouterContext","MissingSlotContext","TemplateContext","React","createContext","process","env","NODE_ENV","displayName","Set","exports","module","ReadonlyURLSearchParams","ReadonlyURLSearchParamsError","Error","constructor","URLSearchParams","append","delete","set","sort","exports","NavigationPromisesContext","PathParamsContext","PathnameContext","ReadonlyURLSearchParams","SearchParamsContext","createDevToolsInstrumentedPromise","createContext","displayName","value","promise","Promise","resolve","status","process","env","NODE_ENV","DEFAULT_SEGMENT_KEY","NOT_FOUND_SEGMENT_KEY","PAGE_SEGMENT_KEY","addSearchParamsIfPageSegment","computeSelectedLayoutSegment","getSegmentValue","getSelectedLayoutSegmentPath","isGroupSegment","isParallelRouteSegment","segment","Array","isArray","endsWith","startsWith","searchParams","isPageSegment","includes","stringifiedQuery","JSON","stringify","segments","parallelRouteKey","length","rawSegment","tree","first","segmentPath","node","parallelRoutes","children","Object","values","segmentValue","push","exports","ServerInsertedHTMLContext","useServerInsertedHTML","React","createContext","callback","addInsertedServerHTMLCallback","useContext","UnrecognizedActionError","unstable_isUnrecognizedActionError","Error","constructor","args","name","error","RedirectStatusCode","REDIRECT_ERROR_CODE","isRedirectError","error","digest","split","errorCode","type","destination","slice","join","status","at","statusCode","Number","isNaN","RedirectStatusCode","bindSnapshot","createAsyncLocalStorage","createSnapshot","sharedAsyncLocalStorageNotAvailableError","Error","FakeAsyncLocalStorage","disable","getStore","undefined","run","exit","enterWith","bind","fn","maybeGlobalAsyncLocalStorage","globalThis","AsyncLocalStorage","snapshot","args","actionAsyncStorageInstance","createAsyncLocalStorage","actionAsyncStorage","actionAsyncStorageInstance","getRedirectError","getRedirectStatusCodeFromError","getRedirectTypeFromError","getURLFromRedirectError","permanentRedirect","redirect","actionAsyncStorage","window","require","undefined","url","type","statusCode","RedirectStatusCode","TemporaryRedirect","error","Error","REDIRECT_ERROR_CODE","digest","getStore","isAction","PermanentRedirect","isRedirectError","split","slice","join","Number","at","HTTPAccessErrorStatus","HTTP_ERROR_FALLBACK_ERROR_CODE","getAccessFallbackErrorTypeByStatus","getAccessFallbackHTTPStatus","isHTTPAccessFallbackError","NOT_FOUND","FORBIDDEN","UNAUTHORIZED","ALLOWED_CODES","Set","Object","values","error","digest","prefix","httpStatus","split","has","Number","status","notFound","DIGEST","HTTP_ERROR_FALLBACK_ERROR_CODE","error","Error","digest","forbidden","DIGEST","HTTP_ERROR_FALLBACK_ERROR_CODE","process","env","__NEXT_EXPERIMENTAL_AUTH_INTERRUPTS","Error","error","digest","unauthorized","DIGEST","HTTP_ERROR_FALLBACK_ERROR_CODE","process","env","__NEXT_EXPERIMENTAL_AUTH_INTERRUPTS","Error","error","digest","InvariantError","Error","constructor","message","options","endsWith","name","createPromiseWithResolvers","resolve","reject","promise","Promise","res","rej","RenderStage","StagedRenderingController","constructor","abortSignal","abandonController","shouldTrackSyncIO","currentStage","syncInterruptReason","staticStageEndTime","Infinity","runtimeStageEndTime","staticStageListeners","earlyRuntimeStageListeners","runtimeStageListeners","dynamicStageListeners","staticStagePromise","createPromiseWithResolvers","earlyRuntimeStagePromise","runtimeStagePromise","dynamicStagePromise","addEventListener","reason","promise","catch","ignoreReject","reject","once","signal","abandonRender","onStage","stage","callback","push","InvariantError","shouldTrackSyncInterrupt","syncInterruptCurrentStageWithReason","abort","advanceStage","getSyncInterruptReason","getStaticStageEndTime","getRuntimeStageEndTime","resolveStaticStage","resolveEarlyRuntimeStage","resolveRuntimeStage","performance","now","timeOrigin","resolveDynamicStage","staticListeners","i","length","resolve","earlyRuntimeListeners","runtimeListeners","dynamicListeners","getStagePromise","waitForStage","delayUntilStage","displayName","resolvedValue","ioTriggerPromise","makeDevtoolsIOPromiseFromIOTrigger","ioTrigger","Promise","then","bind","undefined","delayUntilRuntimeStage","getRuntimeStage","isHangingPromiseRejectionError","makeDevtoolsIOAwarePromise","makeHangingPromise","err","digest","HANGING_PROMISE_REJECTION","HangingPromiseRejectionError","Error","constructor","route","expression","abortListenersBySignal","WeakMap","signal","aborted","Promise","reject","hangingPromise","_","boundRejection","bind","currentListeners","get","push","listeners","set","addEventListener","i","length","once","catch","ignoreReject","underlying","requestStore","stage","stagedRendering","delayUntilStage","undefined","resolve","setTimeout","currentStage","RenderStage","EarlyStatic","EarlyRuntime","Runtime","prerenderStore","result","waitForStage","then","isPostpone","REACT_POSTPONE_TYPE","Symbol","for","error","$$typeof","exports","BailoutToCSRError","isBailoutToCSRError","BAILOUT_TO_CSR","Error","constructor","reason","digest","err","isNextRouterError","error","isRedirectError","isHTTPAccessFallbackError","DynamicServerError","isDynamicServerError","DYNAMIC_ERROR_CODE","Error","constructor","description","digest","err","StaticGenBailoutError","isStaticGenBailoutError","NEXT_STATIC_GEN_BAILOUT","Error","code","error","workUnitAsyncStorageInstance","createAsyncLocalStorage","ACTION_HEADER","FLIGHT_HEADERS","NEXT_ACTION_NOT_FOUND_HEADER","NEXT_ACTION_REVALIDATED_HEADER","NEXT_DID_POSTPONE_HEADER","NEXT_HMR_REFRESH_HASH_COOKIE","NEXT_HMR_REFRESH_HEADER","NEXT_HTML_REQUEST_ID_HEADER","NEXT_INSTANT_PREFETCH_HEADER","NEXT_INSTANT_TEST_COOKIE","NEXT_IS_PRERENDER_HEADER","NEXT_REQUEST_ID_HEADER","NEXT_REWRITTEN_PATH_HEADER","NEXT_REWRITTEN_QUERY_HEADER","NEXT_ROUTER_PREFETCH_HEADER","NEXT_ROUTER_SEGMENT_PREFETCH_HEADER","NEXT_ROUTER_STALE_TIME_HEADER","NEXT_ROUTER_STATE_TREE_HEADER","NEXT_RSC_UNION_QUERY","NEXT_URL","RSC_CONTENT_TYPE_HEADER","RSC_HEADER","getCacheSignal","getDraftModeProviderForCacheScope","getHmrRefreshHash","getPrerenderResumeDataCache","getRenderResumeDataCache","getServerComponentsHmrCache","getStagedRenderingController","isHmrRefresh","isInEarlyRenderStage","throwForMissingRequestStore","throwInvariantForMissingStore","workUnitAsyncStorage","workUnitAsyncStorageInstance","requestStore","stagedRendering","currentStage","RenderStage","EarlyStatic","EarlyRuntime","callingExpression","Error","InvariantError","workUnitStore","type","prerenderResumeDataCache","renderResumeDataCache","process","env","__NEXT_DEV_SERVER","hmrRefreshHash","cookies","get","NEXT_HMR_REFRESH_HASH_COOKIE","value","undefined","serverComponentsHmrCache","workStore","isDraftMode","draftMode","cacheSignal","workAsyncStorageInstance","createAsyncLocalStorage","workAsyncStorage","workAsyncStorageInstance","METADATA_BOUNDARY_NAME","OUTLET_BOUNDARY_NAME","ROOT_LAYOUT_BOUNDARY_NAME","VIEWPORT_BOUNDARY_NAME","atLeastOneTask","scheduleImmediate","scheduleOnNextTick","waitAtLeastOneReactRenderTask","cb","Promise","resolve","then","process","env","NEXT_RUNTIME","setTimeout","nextTick","setImmediate","r","INSTANT_VALIDATION_BOUNDARY_NAME","exports","DynamicHoleKind","Postpone","PreludeState","abortAndThrowOnSynchronousRequestDataAccess","abortOnSynchronousPlatformIOAccess","accessedDynamicData","annotateDynamicAccess","consumeDynamicAccess","createDynamicTrackingState","createDynamicValidationState","createHangingInputAbortSignal","createInstantValidationState","createRenderInBrowserAbortSignal","formatDynamicAPIAccesses","getFirstDynamicReason","getNavigationDisallowedDynamicReasons","getStaticShellDisallowedDynamicReasons","isDynamicPostpone","isPrerenderInterruptedError","logDisallowedDynamicError","markCurrentScopeAsDynamic","postponeWithTracking","throwIfDisallowedDynamic","throwToInterruptStaticGeneration","trackAllowedDynamicAccess","trackDynamicDataInDynamicRender","trackDynamicHoleInNavigation","trackDynamicHoleInRuntimeShell","trackDynamicHoleInStaticShell","trackThrownErrorInNavigation","useDynamicRouteParams","useDynamicSearchParams","hasPostpone","React","unstable_postpone","isDebugDynamicAccesses","dynamicAccesses","syncDynamicErrorWithStack","hasSuspenseAboveBody","hasDynamicMetadata","dynamicMetadata","hasDynamicViewport","hasAllowedDynamic","dynamicErrors","trackingState","expression","store","workUnitStore","type","forceDynamic","forceStatic","dynamicShouldError","StaticGenBailoutError","route","dynamicTracking","revalidate","err","DynamicServerError","dynamicUsageDescription","dynamicUsageStack","stack","process","env","NODE_ENV","usedDynamic","prerenderStore","abortOnSynchronousDynamicDataAccess","reason","error","createPrerenderInterruptedError","controller","abort","push","Error","undefined","errorWithStack","prerenderSignal","signal","aborted","workUnitAsyncStorage","getStore","assertPostpone","createPostponeReason","message","isDynamicPostponeReason","includes","NEXT_PRERENDER_INTERRUPTED","digest","length","serverDynamic","clientDynamic","filter","access","map","split","slice","line","join","AbortController","BailoutToCSRError","cacheSignal","inputReady","then","stagedRendering","waitForStage","getRuntimeStage","scheduleOnNextTick","workStore","workAsyncStorage","fallbackParams","fallbackRouteParams","size","use","makeHangingPromise","renderSignal","InvariantError","throwForMissingRequestStore","hasSuspenseRegex","bodyAndImplicitTags","hasSuspenseBeforeRootLayoutWithoutBodyOrImplicitBodyRegex","RegExp","ROOT_LAYOUT_BOUNDARY_NAME","hasMetadataRegex","METADATA_BOUNDARY_NAME","hasViewportRegex","VIEWPORT_BOUNDARY_NAME","hasOutletRegex","OUTLET_BOUNDARY_NAME","hasInstantValidationBoundaryRegex","INSTANT_VALIDATION_BOUNDARY_NAME","componentStack","dynamicValidation","test","addErrorContext","createInstantStack","hasAllowedClientDynamicAboveBoundary","validationPreventingErrors","thrownErrorsOutsideBoundary","kind","boundaryState","usageDescription","boundaryLocation","exec","expectedIds","renderedIds","suspenseLocation","index","syncError","cause","thrownValue","ownerStack","captureOwnerStack","name","console","__NEXT_DEV_SERVER","prelude","i","configAllowsBlocking","validationSampleTracking","missingSampleErrors","unstable_rethrow","error","isNextRouterError","isBailoutToCSRError","isDynamicServerError","isDynamicPostpone","isPostpone","isHangingPromiseRejectionError","isPrerenderInterruptedError","Error","cause","unstable_rethrow","error","isNextRouterError","isBailoutToCSRError","Error","cause","exports","module","unstable_rethrow","window","require","ReadonlyURLSearchParams","RedirectType","forbidden","notFound","permanentRedirect","redirect","unauthorized","unstable_isUnrecognizedActionError","unstable_rethrow","Error","push","replace","exports","module","__defProp","__getOwnPropDesc","__getOwnPropNames","__hasOwnProp","__export","__copyProps","__toCommonJS","RequestCookies","ResponseCookies","stringifyCookie","ReflectAdapter","get","target","prop","receiver","value","Reflect","bind","set","has","deleteProperty","ActionDidNotRevalidate","ActionDidRevalidateDynamicOnly","ActionDidRevalidateStaticAndDynamic","MutableRequestCookiesAdapter","ReadonlyRequestCookiesError","RequestCookiesAdapter","appendMutableCookies","areCookiesMutableInCurrentPhase","createCookiesWithMutableAccessCheck","getModifiedCookieValues","responseCookiesToRequestCookies","Error","constructor","callable","seal","cookies","Proxy","get","target","prop","receiver","ReflectAdapter","SYMBOL_MODIFY_COOKIE_VALUES","Symbol","for","modified","Array","isArray","length","headers","mutableCookies","modifiedCookieValues","resCookies","ResponseCookies","returnedCookies","getAll","cookie","set","wrap","onUpdateCookies","responseCookies","Headers","modifiedValues","modifiedCookies","Set","updateResponseCookies","workStore","workAsyncStorage","getStore","pathWasRevalidated","ActionDidRevalidateStaticAndDynamic","allCookies","filter","c","has","name","serializedCookies","tempCookies","push","toString","wrappedCookies","args","add","delete","requestStore","ensureCookiesAreStillMutable","phase","_callingExpression","requestCookies","RequestCookies","HeadersAdapter","ReadonlyHeadersError","Error","constructor","callable","Headers","headers","Proxy","get","target","prop","receiver","ReflectAdapter","lowercased","toLowerCase","original","Object","keys","find","o","set","value","has","deleteProperty","seal","merge","Array","isArray","join","from","append","name","existing","push","delete","forEach","callbackfn","thisArg","entries","call","key","values","Symbol","iterator","exports","ensureLeadingSlash","path","startsWith","compareAppPaths","normalizeAppPath","normalizeRscURL","route","ensureLeadingSlash","split","reduce","pathname","segment","index","segments","isGroupSegment","length","a","b","aHasSlot","includes","bHasSlot","localeCompare","url","replace","INTERCEPTION_ROUTE_MARKERS","extractInterceptionRouteInformation","isInterceptionRouteAppPath","path","split","find","segment","m","startsWith","undefined","interceptingRoute","marker","interceptedRoute","Error","normalizeAppPath","slice","concat","join","splitInterceptingRoute","length","getParamProperties","getSegmentParam","isCatchAll","segment","interceptionMarker","INTERCEPTION_ROUTE_MARKERS","find","marker","startsWith","slice","length","endsWith","paramType","paramName","type","repeat","optional","DecodeError","MiddlewareNotFoundError","MissingStaticPage","NormalizeError","PageNotFoundError","SP","ST","WEB_VITALS","execOnce","getDisplayName","getLocationOrigin","getURL","isAbsoluteUrl","isResSent","loadGetInitialProps","normalizeRepeatedSlashes","stringifyError","fn","used","result","args","ABSOLUTE_URL_REGEX","url","test","protocol","hostname","port","window","location","href","origin","substring","length","Component","displayName","name","res","finished","headersSent","urlParts","split","urlNoQuery","replace","slice","join","App","ctx","process","env","NODE_ENV","prototype","getInitialProps","message","Error","pageProps","props","Object","keys","console","warn","performance","every","method","constructor","page","code","error","JSON","stringify","stack","assign","searchParamsToUrlQuery","urlQueryToSearchParams","searchParams","query","key","value","entries","existing","Array","isArray","push","stringifyUrlQueryParam","param","isNaN","String","URLSearchParams","Object","item","append","set","target","searchParamsList","keys","delete","parseRelativeUrl","url","base","parseQuery","globalBase","URL","window","getLocationOrigin","resolvedBase","startsWith","location","href","pathname","searchParams","search","hash","origin","protocol","host","Error","auth","hostname","port","query","searchParamsToUrlQuery","undefined","slice","length","slashes","InstantValidationError","isInstantValidationError","INSTANT_VALIDATION_ERROR_DIGEST","err","Error","digest","exports","describeHasCheckingStringProperty","describeStringPropertyAccess","wellKnownProperties","isDefinitelyAValidIdentifier","target","prop","test","JSON","stringify","stringifiedProp","Set","assertRootParamInSamples","createCookiesFromSample","createDraftModeForValidation","createExhaustiveParamsProxy","createExhaustiveSearchParamsProxy","createExhaustiveURLSearchParamsProxy","createHeadersFromSample","createRelativeURLFromSamples","createValidationSampleTracking","trackMissingSampleError","trackMissingSampleErrorAndThrow","missingSampleErrors","getExpectedSampleTracking","validationSampleTracking","workUnitStore","workUnitAsyncStorage","getStore","type","InvariantError","error","push","sampleCookies","route","declaredNames","Set","cookies","RequestCookies","Headers","cookie","add","name","value","set","sealed","RequestCookiesAdapter","seal","Proxy","get","target","prop","receiver","originalMethod","Reflect","wrappedMethod","has","createMissingCookieSampleError","call","nameOrCookie","InstantValidationError","rawSampleHeaders","sampleHeaders","find","toLowerCase","cookieHeaderValue","toString","headersInit","HeadersAdapter","from","patchedMethod","rawName","isEnabled","enable","Error","disable","underlyingParams","declaredParamNames","wellKnownProperties","searchParams","declaredSearchParamNames","createMissingSearchParamSampleError","originalMathod","Object","hasOwn","bind","sampleParams","sampleSearchParams","pathname","createPathnameFromRouteAndSampleParams","search","qs","createURLSearchParamsFromSample","parseRelativeUrl","undefined","result","URLSearchParams","key","entries","Array","isArray","v","append","params","interpolatedSegments","rawSegments","split","rawSegment","param","getSegmentParam","paramType","paramValue","paramName","map","encodeURIComponent","join","workStore","expectCompleteParamsInClientValidation","instrumentParamsForClientValidation","instrumentSearchParamsForClientValidation","underlyingParams","workStore","workAsyncStorage","getStore","workUnitStore","workUnitAsyncStorage","type","validationSamples","declaredKeys","Set","Object","keys","params","createExhaustiveParamsProxy","route","expression","fallbackParams","fallbackRouteParams","size","missingParams","Array","from","trackMissingSampleErrorAndThrow","InstantValidationError","length","map","p","join","underlyingSearchParams","searchParams","createExhaustiveURLSearchParamsProxy","ReadonlyURLSearchParams","RedirectType","ServerInsertedHTMLContext","forbidden","notFound","permanentRedirect","redirect","unauthorized","unstable_isUnrecognizedActionError","unstable_rethrow","useParams","usePathname","useRouter","useSearchParams","useSelectedLayoutSegment","useSelectedLayoutSegments","useServerInsertedHTML","useDynamicRouteParams","window","require","undefined","useDynamicSearchParams","instrumentParamsForClientValidation","instrumentSearchParamsForClientValidation","expectCompleteParamsInClientValidation","process","env","__NEXT_CACHE_COMPONENTS","searchParams","useContext","SearchParamsContext","readonlySearchParams","useMemo","NODE_ENV","React","navigationPromises","use","NavigationPromisesContext","pathname","PathnameContext","router","AppRouterContext","Error","params","PathParamsContext","parallelRouteKey","context","LayoutRouterContext","promise","selectedLayoutSegmentsPromises","get","getSelectedLayoutSegmentPath","parentTree","selectedLayoutSegments","selectedLayoutSegmentPromises","computeSelectedLayoutSegment","require_navigation","exports","module","options","createSupabaseClient","import_react","getSessionId","sendEvent"]}
|
|
1
|
+
{"version":3,"sources":["../src/index.ts","../src/queries.ts","../src/shop.ts","../src/analytics.tsx","../src/page-tracker.tsx","../src/cdn.ts"],"sourcesContent":["export { createCmsClient } from \"./queries\"\nexport { createShopClient } from \"./shop\"\nexport { CmsAnalytics } from \"./analytics\"\nexport { PageTracker } from \"./page-tracker\"\nexport { getTransformUrl, getSrcSet, IMAGE_PRESETS } from \"./cdn\"\nexport type { ImageTransformOptions } from \"./cdn\"\nexport type {\n FieldType,\n FieldDefinition,\n Tenant,\n Profile,\n ContentType,\n ContentItem,\n MediaItem,\n ContentQueryOptions,\n CmsClientOptions,\n TenantMembership,\n ImageConfig,\n ContentTypeSeoConfig,\n Product,\n ProductVariant,\n ProductOption,\n OrderAddress,\n CreateOrderParams,\n CreateOrderResult,\n ProductQueryOptions,\n} from \"./types\"\n","import { createClient as createSupabaseClient } from \"@supabase/supabase-js\"\nimport type { SupabaseClient } from \"@supabase/supabase-js\"\nimport type {\n CmsClientOptions,\n ContentItem,\n ContentQueryOptions,\n ContentType,\n} from \"./types\"\n\n/**\n * Creates a CMS query client authenticated with a tenant API key.\n *\n * Usage:\n * ```ts\n * const cms = createCmsClient(supabase, { apiKey: process.env.CMS_API_KEY! })\n * const events = await cms.getContentItems('events', { status: 'published' })\n * ```\n *\n * The API key is sent as an `x-cms-api-key` header on every request.\n * Supabase RLS policies validate it against the tenant's stored key.\n */\nexport function createCmsClient(\n supabase: SupabaseClient,\n options: CmsClientOptions\n) {\n const { apiKey } = options\n\n // Create a new Supabase client with the API key header injected globally\n const client = withApiKey(supabase, apiKey) as SupabaseClient\n\n /** Resolve the tenant ID from the API key (cached per request) */\n let tenantIdCache: string | null = null\n\n async function getTenantId(): Promise<string> {\n if (tenantIdCache) return tenantIdCache\n\n const { data, error } = await client\n .from(\"tenants\")\n .select(\"id\")\n .single()\n\n if (error || !data) {\n throw new Error(\n \"Invalid CMS API key — no tenant found. Check your apiKey.\"\n )\n }\n\n tenantIdCache = data.id\n return data.id\n }\n\n /** Resolve a content type ID from its slug */\n async function getContentTypeId(contentTypeSlug: string): Promise<string> {\n const tenantId = await getTenantId()\n\n const { data, error } = await client\n .from(\"content_types\")\n .select(\"id\")\n .eq(\"tenant_id\", tenantId)\n .eq(\"slug\", contentTypeSlug)\n .single()\n\n if (error || !data) {\n throw new Error(`Content type not found: ${contentTypeSlug}`)\n }\n\n return data.id\n }\n\n return {\n /**\n * List content items for a content type.\n * Defaults to published items ordered by most recent.\n */\n async getContentItems(\n contentTypeSlug: string,\n options: ContentQueryOptions = {}\n ): Promise<ContentItem[]> {\n const contentTypeId = await getContentTypeId(contentTypeSlug)\n\n const {\n status = \"published\",\n orderBy = \"published_at\",\n orderDirection = \"desc\",\n limit = 100,\n offset = 0,\n } = options\n\n let query = client\n .from(\"content_items\")\n .select(\"*\")\n .eq(\"content_type_id\", contentTypeId)\n\n if (status) {\n query = query.eq(\"status\", status)\n }\n\n query = query\n .order(orderBy, { ascending: orderDirection === \"asc\" })\n .range(offset, offset + limit - 1)\n\n const { data, error } = await query\n\n if (error) {\n throw new Error(`Failed to fetch ${contentTypeSlug}: ${error.message}`)\n }\n\n return (data ?? []) as ContentItem[]\n },\n\n /**\n * Get a single content item by its slug.\n * Returns null if not found.\n */\n async getContentItemBySlug(\n contentTypeSlug: string,\n itemSlug: string\n ): Promise<ContentItem | null> {\n const contentTypeId = await getContentTypeId(contentTypeSlug)\n\n const { data, error } = await client\n .from(\"content_items\")\n .select(\"*\")\n .eq(\"content_type_id\", contentTypeId)\n .eq(\"slug\", itemSlug)\n .single()\n\n if (error) {\n if (error.code === \"PGRST116\") return null // not found\n throw new Error(\n `Failed to fetch ${contentTypeSlug}/${itemSlug}: ${error.message}`\n )\n }\n\n return data as ContentItem\n },\n\n /**\n * Get a content type definition (including its field schema).\n */\n async getContentType(contentTypeSlug: string): Promise<ContentType> {\n const tenantId = await getTenantId()\n\n const { data, error } = await client\n .from(\"content_types\")\n .select(\"*\")\n .eq(\"tenant_id\", tenantId)\n .eq(\"slug\", contentTypeSlug)\n .single()\n\n if (error || !data) {\n throw new Error(`Content type not found: ${contentTypeSlug}`)\n }\n\n return data as ContentType\n },\n\n /**\n * Get all slugs for a content type (for generateStaticParams).\n */\n async getAllSlugs(\n contentTypeSlug: string\n ): Promise<{ slug: string }[]> {\n const contentTypeId = await getContentTypeId(contentTypeSlug)\n\n const { data, error } = await client\n .from(\"content_items\")\n .select(\"slug\")\n .eq(\"content_type_id\", contentTypeId)\n .eq(\"status\", \"published\")\n\n if (error) {\n throw new Error(\n `Failed to fetch slugs for ${contentTypeSlug}: ${error.message}`\n )\n }\n\n return (data ?? []) as { slug: string }[]\n },\n\n /**\n * List all content types for this tenant.\n */\n async getContentTypes(): Promise<ContentType[]> {\n const tenantId = await getTenantId()\n\n const { data, error } = await client\n .from(\"content_types\")\n .select(\"*\")\n .eq(\"tenant_id\", tenantId)\n .order(\"name\")\n\n if (error) {\n throw new Error(`Failed to fetch content types: ${error.message}`)\n }\n\n return (data ?? []) as ContentType[]\n },\n\n /**\n * Get all slug redirects for a content type.\n * Use in next.config.js redirects() or middleware for 301s.\n * Returns: [{ old_slug, new_slug }, ...]\n */\n async getRedirects(\n contentTypeSlug: string\n ): Promise<{ old_slug: string; new_slug: string }[]> {\n const contentTypeId = await getContentTypeId(contentTypeSlug)\n\n const { data, error } = await client\n .from(\"slug_redirects\")\n .select(\"old_slug, new_slug\")\n .eq(\"content_type_id\", contentTypeId)\n\n if (error) {\n throw new Error(\n `Failed to fetch redirects for ${contentTypeSlug}: ${error.message}`\n )\n }\n\n return (data ?? []) as { old_slug: string; new_slug: string }[]\n },\n\n /**\n * Get all custom path redirects for this tenant.\n * Use alongside getRedirects() in next.config.ts for full redirect coverage.\n */\n async getCustomRedirects(): Promise<\n { source_path: string; destination_path: string; permanent: boolean }[]\n > {\n const tenantId = await getTenantId()\n\n const { data, error } = await client\n .from(\"custom_redirects\")\n .select(\"source_path, destination_path, permanent\")\n .eq(\"tenant_id\", tenantId)\n\n if (error) {\n throw new Error(`Failed to fetch custom redirects: ${error.message}`)\n }\n\n return (data ?? []) as {\n source_path: string\n destination_path: string\n permanent: boolean\n }[]\n },\n\n /**\n * Get form submissions for a specific form.\n * Useful for displaying testimonials, reviews, etc.\n */\n async getFormSubmissions(\n formSlug: string,\n options: { status?: string; limit?: number; offset?: number } = {}\n ): Promise<Record<string, unknown>[]> {\n const tenantId = await getTenantId()\n\n const { data: form } = await client\n .from(\"forms\")\n .select(\"id\")\n .eq(\"tenant_id\", tenantId)\n .eq(\"slug\", formSlug)\n .single()\n\n if (!form) return []\n\n const { limit = 50, offset = 0, status } = options\n\n let query = client\n .from(\"form_submissions\")\n .select(\"*\")\n .eq(\"form_id\", form.id)\n .eq(\"is_spam\", false)\n .order(\"created_at\", { ascending: false })\n .range(offset, offset + limit - 1)\n\n if (status) {\n query = query.eq(\"status\", status)\n }\n\n const { data } = await query\n return (data ?? []) as Record<string, unknown>[]\n },\n\n /**\n * Get a form configuration by slug.\n */\n async getForm(\n formSlug: string\n ): Promise<Record<string, unknown> | null> {\n const tenantId = await getTenantId()\n\n const { data } = await client\n .from(\"forms\")\n .select(\"id, name, slug, description, is_active\")\n .eq(\"tenant_id\", tenantId)\n .eq(\"slug\", formSlug)\n .single()\n\n return data as Record<string, unknown> | null\n },\n }\n}\n\n/**\n * Creates a new Supabase client that includes the `x-cms-api-key`\n * header in every request, using the same URL and key as the original.\n */\nfunction withApiKey(supabase: SupabaseClient, apiKey: string) {\n // Extract URL and key from the existing client\n const supabaseUrl = (supabase as unknown as { supabaseUrl: string }).supabaseUrl\n const supabaseKey = (supabase as unknown as { supabaseKey: string }).supabaseKey\n\n return createSupabaseClient(supabaseUrl, supabaseKey, {\n global: {\n headers: {\n \"x-cms-api-key\": apiKey,\n },\n },\n })\n}\n","import type { SupabaseClient } from \"@supabase/supabase-js\"\nimport type { Product, ProductQueryOptions, CreateOrderParams, CreateOrderResult } from \"./types\"\n\nexport function createShopClient(supabase: SupabaseClient, options: { apiKey: string; appUrl?: string }) {\n const { apiKey, appUrl } = options\n\n return {\n async getProducts(queryOptions?: ProductQueryOptions): Promise<Product[]> {\n let query = supabase\n .from(\"products\")\n .select(\"*, variants:product_variants(*), options:product_options(*)\")\n .eq(\"status\", \"published\")\n .order(queryOptions?.sort ?? \"sort_order\", { ascending: (queryOptions?.order ?? \"asc\") === \"asc\" })\n\n if (queryOptions?.category) {\n query = query.eq(\"category\", queryOptions.category)\n }\n if (queryOptions?.tags?.length) {\n query = query.overlaps(\"tags\", queryOptions.tags)\n }\n if (queryOptions?.limit) {\n query = query.limit(queryOptions.limit)\n }\n if (queryOptions?.offset) {\n query = query.range(queryOptions.offset, queryOptions.offset + (queryOptions.limit ?? 50) - 1)\n }\n\n const { data } = await query\n return (data ?? []) as Product[]\n },\n\n async getProductBySlug(slug: string): Promise<Product | null> {\n const { data } = await supabase\n .from(\"products\")\n .select(\"*, variants:product_variants(*), options:product_options(*)\")\n .eq(\"slug\", slug)\n .eq(\"status\", \"published\")\n .single()\n return (data as Product) ?? null\n },\n\n async getProductCategories(): Promise<string[]> {\n const { data } = await supabase\n .from(\"products\")\n .select(\"category\")\n .eq(\"status\", \"published\")\n .not(\"category\", \"is\", null)\n const categories = [...new Set((data ?? []).map((d: { category: string }) => d.category))]\n return categories.sort()\n },\n\n async createOrder(params: CreateOrderParams): Promise<CreateOrderResult> {\n // This must go through the API (not direct Supabase) because\n // order creation requires server-side Stripe PaymentIntent creation\n const baseUrl = appUrl ?? \"\"\n const res = await fetch(`${baseUrl}/api/orders/create`, {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify({ api_key: apiKey, ...params }),\n })\n if (!res.ok) {\n const err = await res.json().catch(() => ({ error: \"Order creation failed\" }))\n throw new Error(err.error ?? \"Order creation failed\")\n }\n return res.json()\n },\n }\n}\n","\"use client\"\n\nimport { useEffect, useRef } from \"react\"\n\ninterface CmsAnalyticsProps {\n /** The CMS tracking endpoint URL (required — your CMS app URL + /api/track) */\n trackingUrl: string\n /** Tenant API key (public, read-only — safe for client-side use) */\n apiKey: string\n /** Content item ID (from CMS) */\n contentItemId?: string\n /** Content type slug (e.g. \"blog_posts\") */\n contentTypeSlug: string\n /** Item slug (e.g. \"my-post\") */\n itemSlug: string\n /** Enable scroll depth tracking (default: true) */\n trackScroll?: boolean\n /** Enable time-on-page tracking (default: true) */\n trackTime?: boolean\n}\n\n/**\n * Drop-in analytics component for CMS content pages.\n * Tracks page views, scroll depth, and time on page.\n *\n * The apiKey is a public, read-only tenant identifier — it only grants\n * access to published content and is safe for client-side use.\n *\n * Usage:\n * ```tsx\n * <CmsAnalytics\n * trackingUrl={process.env.NEXT_PUBLIC_CMS_URL + \"/api/track\"}\n * apiKey={process.env.NEXT_PUBLIC_CMS_API_KEY!}\n * contentTypeSlug=\"blog_posts\"\n * itemSlug={params.slug}\n * />\n * ```\n */\nexport function CmsAnalytics({\n trackingUrl,\n apiKey,\n contentItemId,\n contentTypeSlug,\n itemSlug,\n trackScroll = true,\n trackTime = true,\n}: CmsAnalyticsProps) {\n const sentRef = useRef(false)\n const maxScrollRef = useRef(0)\n const startTimeRef = useRef(Date.now())\n const sessionIdRef = useRef(getSessionId())\n\n useEffect(() => {\n // Only send page view once per mount\n if (sentRef.current) return\n sentRef.current = true\n\n // Page view event\n sendEvent(trackingUrl, {\n api_key: apiKey,\n content_item_id: contentItemId,\n content_type_slug: contentTypeSlug,\n item_slug: itemSlug,\n event_type: \"page_view\",\n referrer: document.referrer || null,\n session_id: sessionIdRef.current,\n })\n\n // Scroll tracking\n let scrollHandler: (() => void) | null = null\n if (trackScroll) {\n scrollHandler = () => {\n const scrollHeight = document.documentElement.scrollHeight - window.innerHeight\n if (scrollHeight <= 0) return\n const pct = Math.round((window.scrollY / scrollHeight) * 100)\n if (pct > maxScrollRef.current) maxScrollRef.current = pct\n }\n window.addEventListener(\"scroll\", scrollHandler, { passive: true })\n }\n\n // Send engagement data on page leave\n const handleUnload = () => {\n const timeOnPage = Math.round((Date.now() - startTimeRef.current) / 1000)\n const payload = JSON.stringify({\n api_key: apiKey,\n content_item_id: contentItemId,\n content_type_slug: contentTypeSlug,\n item_slug: itemSlug,\n event_type: \"engagement\",\n session_id: sessionIdRef.current,\n metadata: {\n scroll_depth: maxScrollRef.current,\n time_on_page: timeOnPage,\n },\n })\n\n // Use sendBeacon for reliable delivery on page unload\n if (navigator.sendBeacon) {\n navigator.sendBeacon(trackingUrl, payload)\n }\n }\n\n if (trackScroll || trackTime) {\n window.addEventListener(\"beforeunload\", handleUnload)\n }\n\n return () => {\n if (scrollHandler) window.removeEventListener(\"scroll\", scrollHandler)\n if (trackScroll || trackTime) window.removeEventListener(\"beforeunload\", handleUnload)\n }\n }, [trackingUrl, apiKey, contentItemId, contentTypeSlug, itemSlug, trackScroll, trackTime])\n\n return null\n}\n\nfunction sendEvent(url: string, data: Record<string, unknown>) {\n fetch(url, {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify(data),\n keepalive: true,\n }).catch(() => {}) // fire and forget\n}\n\n/** Generate a random session ID (persists for the browser session) */\nfunction getSessionId(): string {\n if (typeof window === \"undefined\") return \"\"\n const key = \"__cms_sid\"\n let sid = sessionStorage.getItem(key)\n if (!sid) {\n sid = Math.random().toString(36).slice(2) + Date.now().toString(36)\n sessionStorage.setItem(key, sid)\n }\n return sid\n}\n","\"use client\"\n\nimport { useEffect, useRef } from \"react\"\nimport { usePathname } from \"next/navigation\"\n\ninterface PageTrackerProps {\n /** The CMS tracking endpoint URL (required — your CMS app URL + /api/track) */\n trackingUrl: string\n /** Tenant API key (public, read-only — safe for client-side use) */\n apiKey: string\n /** Enable scroll depth tracking (default: true) */\n trackScroll?: boolean\n /** Enable time-on-page tracking (default: true) */\n trackTime?: boolean\n}\n\n/**\n * Site-wide page tracker. Add once in root layout to track all pages.\n * Automatically detects CMS content pages from URL structure.\n *\n * The apiKey is a public, read-only tenant identifier — it only grants\n * access to published content and is safe for client-side use.\n *\n * Usage in src/app/layout.tsx:\n * ```tsx\n * import { PageTracker } from \"@distinctagency/cms-client\"\n *\n * <body>\n * {children}\n * <PageTracker\n * trackingUrl={process.env.NEXT_PUBLIC_CMS_URL + \"/api/track\"}\n * apiKey={process.env.NEXT_PUBLIC_CMS_API_KEY!}\n * />\n * </body>\n * ```\n */\nexport function PageTracker({\n trackingUrl,\n apiKey,\n trackScroll = true,\n trackTime = true,\n}: PageTrackerProps) {\n const pathname = usePathname()\n const prevPathRef = useRef(\"\")\n const maxScrollRef = useRef(0)\n const startTimeRef = useRef(Date.now())\n const sessionIdRef = useRef(getSessionId())\n\n useEffect(() => {\n // Skip if same path (prevents double-fire on mount)\n if (pathname === prevPathRef.current) return\n prevPathRef.current = pathname\n\n // Reset engagement tracking for new page\n maxScrollRef.current = 0\n startTimeRef.current = Date.now()\n\n // Try to extract content type and item slug from URL\n // Supports patterns like /events/future-finance, /blog/my-post, etc.\n const segments = pathname.split(\"/\").filter(Boolean)\n const contentTypeSlug = segments[0] ?? null\n const itemSlug = segments.length >= 2 ? segments[segments.length - 1] : null\n\n // Fire page view\n sendEvent(trackingUrl, {\n api_key: apiKey,\n event_type: \"page_view\",\n content_type_slug: contentTypeSlug,\n item_slug: itemSlug,\n referrer: document.referrer || null,\n session_id: sessionIdRef.current,\n metadata: { path: pathname },\n })\n }, [pathname, trackingUrl, apiKey])\n\n // Scroll tracking\n useEffect(() => {\n if (!trackScroll) return\n\n const handleScroll = () => {\n const scrollHeight = document.documentElement.scrollHeight - window.innerHeight\n if (scrollHeight <= 0) return\n const pct = Math.round((window.scrollY / scrollHeight) * 100)\n if (pct > maxScrollRef.current) maxScrollRef.current = pct\n }\n\n window.addEventListener(\"scroll\", handleScroll, { passive: true })\n return () => window.removeEventListener(\"scroll\", handleScroll)\n }, [trackScroll])\n\n // Send engagement data on page leave\n useEffect(() => {\n if (!trackScroll && !trackTime) return\n\n const handleUnload = () => {\n const timeOnPage = Math.round((Date.now() - startTimeRef.current) / 1000)\n const segments = prevPathRef.current.split(\"/\").filter(Boolean)\n\n const payload = JSON.stringify({\n api_key: apiKey,\n event_type: \"engagement\",\n content_type_slug: segments[0] ?? null,\n item_slug: segments.length >= 2 ? segments[segments.length - 1] : null,\n session_id: sessionIdRef.current,\n metadata: {\n scroll_depth: maxScrollRef.current,\n time_on_page: timeOnPage,\n path: prevPathRef.current,\n },\n })\n\n if (navigator.sendBeacon) {\n navigator.sendBeacon(trackingUrl, payload)\n }\n }\n\n window.addEventListener(\"beforeunload\", handleUnload)\n return () => window.removeEventListener(\"beforeunload\", handleUnload)\n }, [trackingUrl, apiKey, trackScroll, trackTime])\n\n return null\n}\n\nfunction sendEvent(url: string, data: Record<string, unknown>) {\n fetch(url, {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify(data),\n keepalive: true,\n }).catch(() => {})\n}\n\nfunction getSessionId(): string {\n if (typeof window === \"undefined\") return \"\"\n const key = \"__cms_sid\"\n let sid = sessionStorage.getItem(key)\n if (!sid) {\n sid = Math.random().toString(36).slice(2) + Date.now().toString(36)\n sessionStorage.setItem(key, sid)\n }\n return sid\n}\n","/**\n * CDN image transform helpers using Supabase Storage's built-in image transformation.\n *\n * Converts /object/public/ URLs to /render/image/public/ with transform params.\n * Works both server-side and client-side (no Node.js-only APIs).\n */\n\nexport interface ImageTransformOptions {\n width?: number\n height?: number\n quality?: number\n resize?: \"contain\" | \"cover\" | \"fill\"\n format?: \"origin\" // Supabase doesn't support format param yet, but we plan for it\n}\n\n/**\n * Transform a Supabase Storage URL to use Supabase's image transformation.\n * Converts /object/public/ URLs to /render/image/public/ with transform params.\n */\nexport function getTransformUrl(\n originalUrl: string,\n options: ImageTransformOptions = {}\n): string {\n // Only transform Supabase storage URLs\n if (!originalUrl.includes(\"/storage/v1/object/public/\")) {\n return originalUrl\n }\n\n // Convert from /object/public/ to /render/image/public/\n const transformUrl = originalUrl.replace(\n \"/storage/v1/object/public/\",\n \"/storage/v1/render/image/public/\"\n )\n\n const params = new URLSearchParams()\n if (options.width) params.set(\"width\", String(options.width))\n if (options.height) params.set(\"height\", String(options.height))\n if (options.quality) params.set(\"quality\", String(options.quality))\n if (options.resize) params.set(\"resize\", options.resize)\n\n const qs = params.toString()\n return qs ? `${transformUrl}?${qs}` : transformUrl\n}\n\n/**\n * Generate a srcSet string for responsive images.\n */\nexport function getSrcSet(\n originalUrl: string,\n widths: number[] = [320, 640, 960, 1280, 1920],\n quality = 80\n): string {\n return widths\n .map(\n (w) =>\n `${getTransformUrl(originalUrl, { width: w, quality, resize: \"contain\" })} ${w}w`\n )\n .join(\", \")\n}\n\n/**\n * Generate common image sizes for different use cases.\n */\nexport const IMAGE_PRESETS = {\n thumbnail: { width: 150, height: 150, resize: \"cover\" as const, quality: 70 },\n card: { width: 400, height: 300, resize: \"cover\" as const, quality: 80 },\n hero: { width: 1200, height: 630, resize: \"cover\" as const, quality: 85 },\n og: { width: 1200, height: 630, resize: \"cover\" as const, quality: 90 },\n avatar: { width: 80, height: 80, resize: \"cover\" as const, quality: 75 },\n full: { width: 1920, resize: \"contain\" as const, quality: 85 },\n} as const\n"],"mappings":"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","names":["options","createSupabaseClient","import_react","getSessionId","sendEvent"]}
|