@preprio/prepr-nextjs 2.0.2 → 2.0.3

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.
Files changed (53) hide show
  1. package/dist/chunk-26CXDAG7.mjs +72 -0
  2. package/dist/chunk-26CXDAG7.mjs.map +1 -0
  3. package/dist/chunk-2BRZNIOK.js +2 -0
  4. package/dist/chunk-2BRZNIOK.js.map +1 -0
  5. package/dist/chunk-32XGP2RS.mjs +4218 -0
  6. package/dist/chunk-32XGP2RS.mjs.map +1 -0
  7. package/dist/chunk-6FNC3XMI.js +45 -0
  8. package/dist/chunk-C6L3X6KZ.js +201 -0
  9. package/dist/chunk-C6L3X6KZ.js.map +1 -0
  10. package/dist/chunk-DI26GYQY.js +201 -0
  11. package/dist/chunk-IL3U74YL.js +2 -0
  12. package/dist/chunk-IL3U74YL.js.map +1 -0
  13. package/dist/chunk-J3Y65EMB.js +2 -0
  14. package/dist/chunk-J3Y65EMB.js.map +1 -0
  15. package/dist/chunk-JPRRZPBL.js +43 -0
  16. package/dist/chunk-JPRRZPBL.js.map +1 -0
  17. package/dist/chunk-MKSF2TOK.js +2 -0
  18. package/dist/chunk-MKSF2TOK.js.map +1 -0
  19. package/dist/chunk-MZGTV4KW.js +2 -0
  20. package/dist/chunk-MZGTV4KW.js.map +1 -0
  21. package/dist/chunk-NWRQFDMF.js +2 -0
  22. package/dist/chunk-NWRQFDMF.js.map +1 -0
  23. package/dist/chunk-QZTUT4DH.js +2 -0
  24. package/dist/chunk-QZTUT4DH.js.map +1 -0
  25. package/dist/middleware/index.cjs +1 -1
  26. package/dist/middleware/index.cjs.map +1 -1
  27. package/dist/middleware/index.js +1 -1
  28. package/dist/middleware/index.mjs +4 -0
  29. package/dist/middleware/index.mjs.map +1 -0
  30. package/dist/pages/react/index.cjs +8 -0
  31. package/dist/pages/react/index.cjs.map +1 -0
  32. package/dist/pages/react/index.d.cts +99 -0
  33. package/dist/pages/react/index.d.ts +99 -0
  34. package/dist/pages/react/index.js +8 -0
  35. package/dist/pages/react/index.js.map +1 -0
  36. package/dist/pages/server/index.cjs +7 -0
  37. package/dist/pages/server/index.cjs.map +1 -0
  38. package/dist/pages/server/index.d.cts +83 -0
  39. package/dist/pages/server/index.d.ts +83 -0
  40. package/dist/pages/server/index.js +7 -0
  41. package/dist/pages/server/index.js.map +1 -0
  42. package/dist/react/index.mjs +10179 -0
  43. package/dist/react/index.mjs.map +1 -0
  44. package/dist/server/index.cjs +2 -2
  45. package/dist/server/index.cjs.map +1 -1
  46. package/dist/server/index.js +1 -1
  47. package/dist/server/index.mjs +1569 -0
  48. package/dist/server/index.mjs.map +1 -0
  49. package/dist/types/index.mjs +3 -0
  50. package/dist/types/index.mjs.map +1 -0
  51. package/dist/utils/index.mjs +3307 -0
  52. package/dist/utils/index.mjs.map +1 -0
  53. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../node_modules/.pnpm/next@15.3.1_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/src/server/web/spec-extension/adapters/request-cookies.ts","../../node_modules/.pnpm/next@15.3.1_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/src/server/create-deduped-by-callsite-server-error-logger.ts","../../node_modules/.pnpm/next@15.3.1_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/src/server/request/cookies.ts","../../node_modules/.pnpm/next@15.3.1_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/src/server/web/spec-extension/adapters/headers.ts","../../node_modules/.pnpm/next@15.3.1_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/src/server/request/headers.ts","../../node_modules/.pnpm/next@15.3.1_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/src/server/request/draft-mode.ts","../../node_modules/.pnpm/next@15.3.1_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/headers.js","../../src/server/index.ts"],"names":["MutableRequestCookiesAdapter","ReadonlyRequestCookiesError","RequestCookiesAdapter","appendMutableCookies","areCookiesMutableInCurrentPhase","getModifiedCookieValues","responseCookiesToRequestCookies","wrapWithMutableAccessCheck","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","allCookies","filter","c","has","name","serializedCookies","tempCookies","push","toString","wrappedCookies","args","add","delete","ensureCookiesAreStillMutable","requestStore","phase","callingExpression","getExpectedRequestStore","requestCookies","RequestCookies","createDedupedByCallsiteServerErrorLoggerDev","errorRef","current","cache","React","fn","logErrorOrWarn","process","env","__NEXT_DYNAMIC_IO","console","error","warn","flushCurrentErrorIfNew","key","getMessage","logDedupedError","message","NODE_ENV","callStackFrames","stack","split","undefined","workUnitStore","workUnitAsyncStorage","isRequestAPICallableInsideAfter","route","forceStatic","underlyingCookies","createEmptyCookies","makeUntrackedExoticCookies","type","dynamicShouldError","StaticGenBailoutError","makeDynamicallyTrackedExoticCookies","postponeWithTracking","dynamicTracking","throwToInterruptStaticGeneration","trackDynamicDataInDynamicRender","userspaceMutableCookies","isPrefetchRequest","makeUntrackedExoticCookiesWithDevWarnings","CachedCookies","WeakMap","prerenderStore","cachedPromise","promise","makeHangingPromise","renderSignal","Object","defineProperties","iterator","value","expression","createCookiesAccessError","abortAndThrowOnSynchronousRequestDataAccess","size","arguments","describeNameArg","arg","clear","cachedCookies","Promise","resolve","bind","polyfilledResponseCookiesIterator","polyfilledResponseCookiesClear","scheduleImmediate","syncIODev","apply","call","writable","prerenderPhase","trackSynchronousRequestDataAccessInDev","warnForSyncAccess","prefix","map","values","returnable","HeadersAdapter","ReadonlyHeadersError","lowercased","toLowerCase","original","keys","find","o","deleteProperty","merge","join","from","append","existing","forEach","callbackfn","thisArg","entries","underlyingHeaders","makeUntrackedExoticHeaders","makeDynamicallyTrackedExoticHeaders","makeUntrackedExoticHeadersWithDevWarnings","CachedHeaders","cachedHeaders","createHeadersAccessError","_delete","getSetCookie","draftMode","throwForMissingRequestStore","createOrGetCachedExoticDraftMode","draftModeProvider","getDraftModeProviderForCacheScope","createExoticDraftModeWithDevWarnings","createExoticDraftMode","_exhaustiveCheck","cachedDraftMode","CachedDraftModes","underlyingProvider","instance","DraftMode","defineProperty","isEnabled","newValue","enumerable","configurable","enable","disable","provider","_provider","trackDynamicDraftMode","createDraftModeAccessError","store","revalidate","err","DynamicServerError","dynamicUsageDescription","dynamicUsageStack","usedDynamic","require_headers"],"mappings":"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","file":"index.mjs","sourcesContent":["import { RequestCookies } from '../cookies'\n\nimport { ResponseCookies } from '../cookies'\nimport { ReflectAdapter } from './reflect'\nimport { workAsyncStorage } from '../../../app-render/work-async-storage.external'\nimport {\n getExpectedRequestStore,\n type RequestStore,\n} from '../../../app-render/work-unit-async-storage.external'\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 = true\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 wrapWithMutableAccessCheck(\n responseCookies: ResponseCookies\n): ResponseCookies {\n const wrappedCookies = new Proxy(responseCookies, {\n get(target, prop, receiver) {\n switch (prop) {\n case 'delete':\n return function (...args: [string] | [ResponseCookie]) {\n ensureCookiesAreStillMutable('cookies().delete')\n target.delete(...args)\n return wrappedCookies\n }\n case 'set':\n return function (...args: SetCookieArgs) {\n ensureCookiesAreStillMutable('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(callingExpression: string) {\n const requestStore = getExpectedRequestStore(callingExpression)\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 * as React from 'react'\n\nconst errorRef: { current: null | Error } = { current: null }\n\n// React.cache is currently only available in canary/experimental React channels.\nconst cache =\n typeof React.cache === 'function'\n ? React.cache\n : (fn: (key: unknown) => void) => fn\n\n// When Dynamic IO is enabled, we record these as errors so that they\n// are captured by the dev overlay as it's more critical to fix these\n// when enabled.\nconst logErrorOrWarn = process.env.__NEXT_DYNAMIC_IO\n ? console.error\n : console.warn\n\n// We don't want to dedupe across requests.\n// The developer might've just attempted to fix the warning so we should warn again if it still happens.\nconst flushCurrentErrorIfNew = cache(\n // eslint-disable-next-line @typescript-eslint/no-unused-vars -- cache key\n (key: unknown) => {\n try {\n logErrorOrWarn(errorRef.current)\n } finally {\n errorRef.current = null\n }\n }\n)\n\n/**\n * Creates a function that logs an error message that is deduped by the userland\n * callsite.\n * This requires no indirection between the call of this function and the userland\n * callsite i.e. there's only a single library frame above this.\n * Do not use on the Client where sourcemaps and ignore listing might be enabled.\n * Only use that for warnings need a fix independent of the callstack.\n *\n * @param getMessage\n * @returns\n */\nexport function createDedupedByCallsiteServerErrorLoggerDev<Args extends any[]>(\n getMessage: (...args: Args) => Error\n) {\n return function logDedupedError(...args: Args) {\n const message = getMessage(...args)\n\n if (process.env.NODE_ENV !== 'production') {\n const callStackFrames = new Error().stack?.split('\\n')\n if (callStackFrames === undefined || callStackFrames.length < 4) {\n logErrorOrWarn(message)\n } else {\n // Error:\n // logDedupedError\n // asyncApiBeingAccessedSynchronously\n // <userland callsite>\n // TODO: This breaks if sourcemaps with ignore lists are enabled.\n const key = callStackFrames[4]\n errorRef.current = message\n flushCurrentErrorIfNew(key)\n }\n } else {\n logErrorOrWarn(message)\n }\n }\n}\n","import {\n type ReadonlyRequestCookies,\n type ResponseCookies,\n areCookiesMutableInCurrentPhase,\n RequestCookiesAdapter,\n} from '../web/spec-extension/adapters/request-cookies'\nimport { RequestCookies } from '../web/spec-extension/cookies'\nimport { workAsyncStorage } from '../app-render/work-async-storage.external'\nimport {\n workUnitAsyncStorage,\n type PrerenderStoreModern,\n} from '../app-render/work-unit-async-storage.external'\nimport {\n postponeWithTracking,\n abortAndThrowOnSynchronousRequestDataAccess,\n throwToInterruptStaticGeneration,\n trackDynamicDataInDynamicRender,\n trackSynchronousRequestDataAccessInDev,\n} from '../app-render/dynamic-rendering'\nimport { getExpectedRequestStore } from '../app-render/work-unit-async-storage.external'\nimport { StaticGenBailoutError } from '../../client/components/static-generation-bailout'\nimport { makeHangingPromise } from '../dynamic-rendering-utils'\nimport { createDedupedByCallsiteServerErrorLoggerDev } from '../create-deduped-by-callsite-server-error-logger'\nimport { scheduleImmediate } from '../../lib/scheduler'\nimport { isRequestAPICallableInsideAfter } from './utils'\n\n/**\n * In this version of Next.js `cookies()` returns a Promise however you can still reference the properties of the underlying cookies object\n * synchronously to facilitate migration. The `UnsafeUnwrappedCookies` type is added to your code by a codemod that attempts to automatically\n * updates callsites to reflect the new Promise return type. There are some cases where `cookies()` cannot be automatically converted, namely\n * when it is used inside a synchronous function and we can't be sure the function can be made async automatically. In these cases we add an\n * explicit type case to `UnsafeUnwrappedCookies` to enable typescript to allow for the synchronous usage only where it is actually necessary.\n *\n * You should should update these callsites to either be async functions where the `cookies()` value can be awaited or you should call `cookies()`\n * from outside and await the return value before passing it into this function.\n *\n * You can find instances that require manual migration by searching for `UnsafeUnwrappedCookies` in your codebase or by search for a comment that\n * starts with `@next-codemod-error`.\n *\n * In a future version of Next.js `cookies()` will only return a Promise and you will not be able to access the underlying cookies object directly\n * without awaiting the return value first. When this change happens the type `UnsafeUnwrappedCookies` will be updated to reflect that is it no longer\n * usable.\n *\n * This type is marked deprecated to help identify it as target for refactoring away.\n *\n * @deprecated\n */\nexport type UnsafeUnwrappedCookies = ReadonlyRequestCookies\n\nexport function cookies(): Promise<ReadonlyRequestCookies> {\n const callingExpression = 'cookies'\n const workStore = workAsyncStorage.getStore()\n const workUnitStore = workUnitAsyncStorage.getStore()\n\n if (workStore) {\n if (\n workUnitStore &&\n workUnitStore.phase === 'after' &&\n !isRequestAPICallableInsideAfter()\n ) {\n throw new Error(\n // TODO(after): clarify that this only applies to pages?\n `Route ${workStore.route} used \"cookies\" inside \"after(...)\". This is not supported. If you need this data inside an \"after\" callback, use \"cookies\" outside of the callback. See more info here: https://nextjs.org/docs/canary/app/api-reference/functions/after`\n )\n }\n\n if (workStore.forceStatic) {\n // When using forceStatic we override all other logic and always just return an empty\n // cookies object without tracking\n const underlyingCookies = createEmptyCookies()\n return makeUntrackedExoticCookies(underlyingCookies)\n }\n\n if (workUnitStore) {\n if (workUnitStore.type === 'cache') {\n throw new Error(\n `Route ${workStore.route} used \"cookies\" inside \"use cache\". Accessing Dynamic data sources inside a cache scope is not supported. If you need this data inside a cached function use \"cookies\" outside of the cached function and pass the required dynamic data in as an argument. See more info here: https://nextjs.org/docs/messages/next-request-in-use-cache`\n )\n } else if (workUnitStore.type === 'unstable-cache') {\n throw new Error(\n `Route ${workStore.route} used \"cookies\" inside a function cached with \"unstable_cache(...)\". Accessing Dynamic data sources inside a cache scope is not supported. If you need this data inside a cached function use \"cookies\" outside of the cached function and pass the required dynamic data in as an argument. See more info here: https://nextjs.org/docs/app/api-reference/functions/unstable_cache`\n )\n }\n }\n if (workStore.dynamicShouldError) {\n throw new StaticGenBailoutError(\n `Route ${workStore.route} with \\`dynamic = \"error\"\\` couldn't be rendered statically because it used \\`cookies\\`. 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 if (workUnitStore.type === 'prerender') {\n // dynamicIO Prerender\n // We don't track dynamic access here because access will be tracked when you access\n // one of the properties of the cookies object.\n return makeDynamicallyTrackedExoticCookies(\n workStore.route,\n workUnitStore\n )\n } else if (workUnitStore.type === 'prerender-ppr') {\n // PPR Prerender (no dynamicIO)\n // We are prerendering with PPR. We need track dynamic access here eagerly\n // to keep continuity with how cookies has worked in PPR without dynamicIO.\n postponeWithTracking(\n workStore.route,\n callingExpression,\n workUnitStore.dynamicTracking\n )\n } else if (workUnitStore.type === 'prerender-legacy') {\n // Legacy Prerender\n // We track dynamic access here so we don't need to wrap the cookies in\n // individual property access tracking.\n throwToInterruptStaticGeneration(\n callingExpression,\n workStore,\n workUnitStore\n )\n }\n }\n // We fall through to the dynamic context below but we still track dynamic access\n // because in dev we can still error for things like using cookies inside a cache context\n trackDynamicDataInDynamicRender(workStore, workUnitStore)\n }\n\n // cookies is being called in a dynamic context\n\n const requestStore = getExpectedRequestStore(callingExpression)\n\n let underlyingCookies: ReadonlyRequestCookies\n\n if (areCookiesMutableInCurrentPhase(requestStore)) {\n // We can't conditionally return different types here based on the context.\n // To avoid confusion, we always return the readonly type here.\n underlyingCookies =\n requestStore.userspaceMutableCookies as unknown as ReadonlyRequestCookies\n } else {\n underlyingCookies = requestStore.cookies\n }\n\n if (process.env.NODE_ENV === 'development' && !workStore?.isPrefetchRequest) {\n return makeUntrackedExoticCookiesWithDevWarnings(\n underlyingCookies,\n workStore?.route\n )\n } else {\n return makeUntrackedExoticCookies(underlyingCookies)\n }\n}\n\nfunction createEmptyCookies(): ReadonlyRequestCookies {\n return RequestCookiesAdapter.seal(new RequestCookies(new Headers({})))\n}\n\ninterface CacheLifetime {}\nconst CachedCookies = new WeakMap<\n CacheLifetime,\n Promise<ReadonlyRequestCookies>\n>()\n\nfunction makeDynamicallyTrackedExoticCookies(\n route: string,\n prerenderStore: PrerenderStoreModern\n): Promise<ReadonlyRequestCookies> {\n const cachedPromise = CachedCookies.get(prerenderStore)\n if (cachedPromise) {\n return cachedPromise\n }\n\n const promise = makeHangingPromise<ReadonlyRequestCookies>(\n prerenderStore.renderSignal,\n '`cookies()`'\n )\n CachedCookies.set(prerenderStore, promise)\n\n Object.defineProperties(promise, {\n [Symbol.iterator]: {\n value: function () {\n const expression = '`cookies()[Symbol.iterator]()`'\n const error = createCookiesAccessError(route, expression)\n abortAndThrowOnSynchronousRequestDataAccess(\n route,\n expression,\n error,\n prerenderStore\n )\n },\n },\n size: {\n get() {\n const expression = '`cookies().size`'\n const error = createCookiesAccessError(route, expression)\n abortAndThrowOnSynchronousRequestDataAccess(\n route,\n expression,\n error,\n prerenderStore\n )\n },\n },\n get: {\n value: function get() {\n let expression: string\n if (arguments.length === 0) {\n expression = '`cookies().get()`'\n } else {\n expression = `\\`cookies().get(${describeNameArg(arguments[0])})\\``\n }\n const error = createCookiesAccessError(route, expression)\n abortAndThrowOnSynchronousRequestDataAccess(\n route,\n expression,\n error,\n prerenderStore\n )\n },\n },\n getAll: {\n value: function getAll() {\n let expression: string\n if (arguments.length === 0) {\n expression = '`cookies().getAll()`'\n } else {\n expression = `\\`cookies().getAll(${describeNameArg(arguments[0])})\\``\n }\n const error = createCookiesAccessError(route, expression)\n abortAndThrowOnSynchronousRequestDataAccess(\n route,\n expression,\n error,\n prerenderStore\n )\n },\n },\n has: {\n value: function has() {\n let expression: string\n if (arguments.length === 0) {\n expression = '`cookies().has()`'\n } else {\n expression = `\\`cookies().has(${describeNameArg(arguments[0])})\\``\n }\n const error = createCookiesAccessError(route, expression)\n abortAndThrowOnSynchronousRequestDataAccess(\n route,\n expression,\n error,\n prerenderStore\n )\n },\n },\n set: {\n value: function set() {\n let expression: string\n if (arguments.length === 0) {\n expression = '`cookies().set()`'\n } else {\n const arg = arguments[0]\n if (arg) {\n expression = `\\`cookies().set(${describeNameArg(arg)}, ...)\\``\n } else {\n expression = '`cookies().set(...)`'\n }\n }\n const error = createCookiesAccessError(route, expression)\n abortAndThrowOnSynchronousRequestDataAccess(\n route,\n expression,\n error,\n prerenderStore\n )\n },\n },\n delete: {\n value: function () {\n let expression: string\n if (arguments.length === 0) {\n expression = '`cookies().delete()`'\n } else if (arguments.length === 1) {\n expression = `\\`cookies().delete(${describeNameArg(arguments[0])})\\``\n } else {\n expression = `\\`cookies().delete(${describeNameArg(arguments[0])}, ...)\\``\n }\n const error = createCookiesAccessError(route, expression)\n abortAndThrowOnSynchronousRequestDataAccess(\n route,\n expression,\n error,\n prerenderStore\n )\n },\n },\n clear: {\n value: function clear() {\n const expression = '`cookies().clear()`'\n const error = createCookiesAccessError(route, expression)\n abortAndThrowOnSynchronousRequestDataAccess(\n route,\n expression,\n error,\n prerenderStore\n )\n },\n },\n toString: {\n value: function toString() {\n const expression = '`cookies().toString()`'\n const error = createCookiesAccessError(route, expression)\n abortAndThrowOnSynchronousRequestDataAccess(\n route,\n expression,\n error,\n prerenderStore\n )\n },\n },\n } satisfies CookieExtensions)\n\n return promise\n}\n\nfunction makeUntrackedExoticCookies(\n underlyingCookies: ReadonlyRequestCookies\n): Promise<ReadonlyRequestCookies> {\n const cachedCookies = CachedCookies.get(underlyingCookies)\n if (cachedCookies) {\n return cachedCookies\n }\n\n const promise = Promise.resolve(underlyingCookies)\n CachedCookies.set(underlyingCookies, promise)\n\n Object.defineProperties(promise, {\n [Symbol.iterator]: {\n value: underlyingCookies[Symbol.iterator]\n ? underlyingCookies[Symbol.iterator].bind(underlyingCookies)\n : // TODO this is a polyfill for when the underlying type is ResponseCookies\n // We should remove this and unify our cookies types. We could just let this continue to throw lazily\n // but that's already a hard thing to debug so we may as well implement it consistently. The biggest problem with\n // implementing this in this way is the underlying cookie type is a ResponseCookie and not a RequestCookie and so it\n // has extra properties not available on RequestCookie instances.\n polyfilledResponseCookiesIterator.bind(underlyingCookies),\n },\n size: {\n get(): number {\n return underlyingCookies.size\n },\n },\n get: {\n value: underlyingCookies.get.bind(underlyingCookies),\n },\n getAll: {\n value: underlyingCookies.getAll.bind(underlyingCookies),\n },\n has: {\n value: underlyingCookies.has.bind(underlyingCookies),\n },\n set: {\n value: underlyingCookies.set.bind(underlyingCookies),\n },\n delete: {\n value: underlyingCookies.delete.bind(underlyingCookies),\n },\n clear: {\n value:\n // @ts-expect-error clear is defined in RequestCookies implementation but not in the type\n typeof underlyingCookies.clear === 'function'\n ? // @ts-expect-error clear is defined in RequestCookies implementation but not in the type\n underlyingCookies.clear.bind(underlyingCookies)\n : // TODO this is a polyfill for when the underlying type is ResponseCookies\n // We should remove this and unify our cookies types. We could just let this continue to throw lazily\n // but that's already a hard thing to debug so we may as well implement it consistently. The biggest problem with\n // implementing this in this way is the underlying cookie type is a ResponseCookie and not a RequestCookie and so it\n // has extra properties not available on RequestCookie instances.\n polyfilledResponseCookiesClear.bind(underlyingCookies, promise),\n },\n toString: {\n value: underlyingCookies.toString.bind(underlyingCookies),\n },\n } satisfies CookieExtensions)\n\n return promise\n}\n\nfunction makeUntrackedExoticCookiesWithDevWarnings(\n underlyingCookies: ReadonlyRequestCookies,\n route?: string\n): Promise<ReadonlyRequestCookies> {\n const cachedCookies = CachedCookies.get(underlyingCookies)\n if (cachedCookies) {\n return cachedCookies\n }\n\n const promise = new Promise<ReadonlyRequestCookies>((resolve) =>\n scheduleImmediate(() => resolve(underlyingCookies))\n )\n CachedCookies.set(underlyingCookies, promise)\n\n Object.defineProperties(promise, {\n [Symbol.iterator]: {\n value: function () {\n const expression = '`...cookies()` or similar iteration'\n syncIODev(route, expression)\n return underlyingCookies[Symbol.iterator]\n ? underlyingCookies[Symbol.iterator].apply(\n underlyingCookies,\n arguments as any\n )\n : // TODO this is a polyfill for when the underlying type is ResponseCookies\n // We should remove this and unify our cookies types. We could just let this continue to throw lazily\n // but that's already a hard thing to debug so we may as well implement it consistently. The biggest problem with\n // implementing this in this way is the underlying cookie type is a ResponseCookie and not a RequestCookie and so it\n // has extra properties not available on RequestCookie instances.\n polyfilledResponseCookiesIterator.call(underlyingCookies)\n },\n writable: false,\n },\n size: {\n get(): number {\n const expression = '`cookies().size`'\n syncIODev(route, expression)\n return underlyingCookies.size\n },\n },\n get: {\n value: function get() {\n let expression: string\n if (arguments.length === 0) {\n expression = '`cookies().get()`'\n } else {\n expression = `\\`cookies().get(${describeNameArg(arguments[0])})\\``\n }\n syncIODev(route, expression)\n return underlyingCookies.get.apply(underlyingCookies, arguments as any)\n },\n writable: false,\n },\n getAll: {\n value: function getAll() {\n let expression: string\n if (arguments.length === 0) {\n expression = '`cookies().getAll()`'\n } else {\n expression = `\\`cookies().getAll(${describeNameArg(arguments[0])})\\``\n }\n syncIODev(route, expression)\n return underlyingCookies.getAll.apply(\n underlyingCookies,\n arguments as any\n )\n },\n writable: false,\n },\n has: {\n value: function get() {\n let expression: string\n if (arguments.length === 0) {\n expression = '`cookies().has()`'\n } else {\n expression = `\\`cookies().has(${describeNameArg(arguments[0])})\\``\n }\n syncIODev(route, expression)\n return underlyingCookies.has.apply(underlyingCookies, arguments as any)\n },\n writable: false,\n },\n set: {\n value: function set() {\n let expression: string\n if (arguments.length === 0) {\n expression = '`cookies().set()`'\n } else {\n const arg = arguments[0]\n if (arg) {\n expression = `\\`cookies().set(${describeNameArg(arg)}, ...)\\``\n } else {\n expression = '`cookies().set(...)`'\n }\n }\n syncIODev(route, expression)\n return underlyingCookies.set.apply(underlyingCookies, arguments as any)\n },\n writable: false,\n },\n delete: {\n value: function () {\n let expression: string\n if (arguments.length === 0) {\n expression = '`cookies().delete()`'\n } else if (arguments.length === 1) {\n expression = `\\`cookies().delete(${describeNameArg(arguments[0])})\\``\n } else {\n expression = `\\`cookies().delete(${describeNameArg(arguments[0])}, ...)\\``\n }\n syncIODev(route, expression)\n return underlyingCookies.delete.apply(\n underlyingCookies,\n arguments as any\n )\n },\n writable: false,\n },\n clear: {\n value: function clear() {\n const expression = '`cookies().clear()`'\n syncIODev(route, expression)\n // @ts-ignore clear is defined in RequestCookies implementation but not in the type\n return typeof underlyingCookies.clear === 'function'\n ? // @ts-ignore clear is defined in RequestCookies implementation but not in the type\n underlyingCookies.clear.apply(underlyingCookies, arguments)\n : // TODO this is a polyfill for when the underlying type is ResponseCookies\n // We should remove this and unify our cookies types. We could just let this continue to throw lazily\n // but that's already a hard thing to debug so we may as well implement it consistently. The biggest problem with\n // implementing this in this way is the underlying cookie type is a ResponseCookie and not a RequestCookie and so it\n // has extra properties not available on RequestCookie instances.\n polyfilledResponseCookiesClear.call(underlyingCookies, promise)\n },\n writable: false,\n },\n toString: {\n value: function toString() {\n const expression = '`cookies().toString()` or implicit casting'\n syncIODev(route, expression)\n return underlyingCookies.toString.apply(\n underlyingCookies,\n arguments as any\n )\n },\n writable: false,\n },\n } satisfies CookieExtensions)\n\n return promise\n}\n\nfunction describeNameArg(arg: unknown) {\n return typeof arg === 'object' &&\n arg !== null &&\n typeof (arg as any).name === 'string'\n ? `'${(arg as any).name}'`\n : typeof arg === 'string'\n ? `'${arg}'`\n : '...'\n}\n\nfunction syncIODev(route: string | undefined, expression: string) {\n const workUnitStore = workUnitAsyncStorage.getStore()\n if (\n workUnitStore &&\n workUnitStore.type === 'request' &&\n workUnitStore.prerenderPhase === true\n ) {\n // When we're rendering dynamically in dev we need to advance out of the\n // Prerender environment when we read Request data synchronously\n const requestStore = workUnitStore\n trackSynchronousRequestDataAccessInDev(requestStore)\n }\n // In all cases we warn normally\n warnForSyncAccess(route, expression)\n}\n\nconst warnForSyncAccess = createDedupedByCallsiteServerErrorLoggerDev(\n createCookiesAccessError\n)\n\nfunction createCookiesAccessError(\n route: string | undefined,\n expression: string\n) {\n const prefix = route ? `Route \"${route}\" ` : 'This route '\n return new Error(\n `${prefix}used ${expression}. ` +\n `\\`cookies()\\` should be awaited before using its value. ` +\n `Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis`\n )\n}\n\nfunction polyfilledResponseCookiesIterator(\n this: ResponseCookies\n): ReturnType<ReadonlyRequestCookies[typeof Symbol.iterator]> {\n return this.getAll()\n .map((c) => [c.name, c] as [string, any])\n .values()\n}\n\nfunction polyfilledResponseCookiesClear(\n this: ResponseCookies,\n returnable: Promise<ReadonlyRequestCookies>\n): typeof returnable {\n for (const cookie of this.getAll()) {\n this.delete(cookie.name)\n }\n return returnable\n}\n\ntype CookieExtensions = {\n [K in keyof ReadonlyRequestCookies | 'clear']: unknown\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","import {\n HeadersAdapter,\n type ReadonlyHeaders,\n} from '../web/spec-extension/adapters/headers'\nimport { workAsyncStorage } from '../app-render/work-async-storage.external'\nimport { getExpectedRequestStore } from '../app-render/work-unit-async-storage.external'\nimport {\n workUnitAsyncStorage,\n type PrerenderStoreModern,\n} from '../app-render/work-unit-async-storage.external'\nimport {\n postponeWithTracking,\n abortAndThrowOnSynchronousRequestDataAccess,\n throwToInterruptStaticGeneration,\n trackDynamicDataInDynamicRender,\n trackSynchronousRequestDataAccessInDev,\n} from '../app-render/dynamic-rendering'\nimport { StaticGenBailoutError } from '../../client/components/static-generation-bailout'\nimport { makeHangingPromise } from '../dynamic-rendering-utils'\nimport { createDedupedByCallsiteServerErrorLoggerDev } from '../create-deduped-by-callsite-server-error-logger'\nimport { scheduleImmediate } from '../../lib/scheduler'\nimport { isRequestAPICallableInsideAfter } from './utils'\n\n/**\n * In this version of Next.js `headers()` returns a Promise however you can still reference the properties of the underlying Headers instance\n * synchronously to facilitate migration. The `UnsafeUnwrappedHeaders` type is added to your code by a codemod that attempts to automatically\n * updates callsites to reflect the new Promise return type. There are some cases where `headers()` cannot be automatically converted, namely\n * when it is used inside a synchronous function and we can't be sure the function can be made async automatically. In these cases we add an\n * explicit type case to `UnsafeUnwrappedHeaders` to enable typescript to allow for the synchronous usage only where it is actually necessary.\n *\n * You should should update these callsites to either be async functions where the `headers()` value can be awaited or you should call `headers()`\n * from outside and await the return value before passing it into this function.\n *\n * You can find instances that require manual migration by searching for `UnsafeUnwrappedHeaders` in your codebase or by search for a comment that\n * starts with `@next-codemod-error`.\n *\n * In a future version of Next.js `headers()` will only return a Promise and you will not be able to access the underlying Headers instance\n * without awaiting the return value first. When this change happens the type `UnsafeUnwrappedHeaders` will be updated to reflect that is it no longer\n * usable.\n *\n * This type is marked deprecated to help identify it as target for refactoring away.\n *\n * @deprecated\n */\nexport type UnsafeUnwrappedHeaders = ReadonlyHeaders\n\n/**\n * This function allows you to read the HTTP incoming request headers in\n * [Server Components](https://nextjs.org/docs/app/building-your-application/rendering/server-components),\n * [Server Actions](https://nextjs.org/docs/app/building-your-application/data-fetching/server-actions-and-mutations),\n * [Route Handlers](https://nextjs.org/docs/app/building-your-application/routing/route-handlers) and\n * [Middleware](https://nextjs.org/docs/app/building-your-application/routing/middleware).\n *\n * Read more: [Next.js Docs: `headers`](https://nextjs.org/docs/app/api-reference/functions/headers)\n */\nexport function headers(): Promise<ReadonlyHeaders> {\n const workStore = workAsyncStorage.getStore()\n const workUnitStore = workUnitAsyncStorage.getStore()\n\n if (workStore) {\n if (\n workUnitStore &&\n workUnitStore.phase === 'after' &&\n !isRequestAPICallableInsideAfter()\n ) {\n throw new Error(\n `Route ${workStore.route} used \"headers\" inside \"after(...)\". This is not supported. If you need this data inside an \"after\" callback, use \"headers\" outside of the callback. See more info here: https://nextjs.org/docs/canary/app/api-reference/functions/after`\n )\n }\n\n if (workStore.forceStatic) {\n // When using forceStatic we override all other logic and always just return an empty\n // headers object without tracking\n const underlyingHeaders = HeadersAdapter.seal(new Headers({}))\n return makeUntrackedExoticHeaders(underlyingHeaders)\n }\n\n if (workUnitStore) {\n if (workUnitStore.type === 'cache') {\n throw new Error(\n `Route ${workStore.route} used \"headers\" inside \"use cache\". Accessing Dynamic data sources inside a cache scope is not supported. If you need this data inside a cached function use \"headers\" outside of the cached function and pass the required dynamic data in as an argument. See more info here: https://nextjs.org/docs/messages/next-request-in-use-cache`\n )\n } else if (workUnitStore.type === 'unstable-cache') {\n throw new Error(\n `Route ${workStore.route} used \"headers\" inside a function cached with \"unstable_cache(...)\". Accessing Dynamic data sources inside a cache scope is not supported. If you need this data inside a cached function use \"headers\" outside of the cached function and pass the required dynamic data in as an argument. See more info here: https://nextjs.org/docs/app/api-reference/functions/unstable_cache`\n )\n }\n }\n if (workStore.dynamicShouldError) {\n throw new StaticGenBailoutError(\n `Route ${workStore.route} with \\`dynamic = \"error\"\\` couldn't be rendered statically because it used \\`headers\\`. 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 if (workUnitStore.type === 'prerender') {\n // dynamicIO Prerender\n // We don't track dynamic access here because access will be tracked when you access\n // one of the properties of the headers object.\n return makeDynamicallyTrackedExoticHeaders(\n workStore.route,\n workUnitStore\n )\n } else if (workUnitStore.type === 'prerender-ppr') {\n // PPR Prerender (no dynamicIO)\n // We are prerendering with PPR. We need track dynamic access here eagerly\n // to keep continuity with how headers has worked in PPR without dynamicIO.\n // TODO consider switching the semantic to throw on property access instead\n postponeWithTracking(\n workStore.route,\n 'headers',\n workUnitStore.dynamicTracking\n )\n } else if (workUnitStore.type === 'prerender-legacy') {\n // Legacy Prerender\n // We are in a legacy static generation mode while prerendering\n // We track dynamic access here so we don't need to wrap the headers in\n // individual property access tracking.\n throwToInterruptStaticGeneration('headers', workStore, workUnitStore)\n }\n }\n // We fall through to the dynamic context below but we still track dynamic access\n // because in dev we can still error for things like using headers inside a cache context\n trackDynamicDataInDynamicRender(workStore, workUnitStore)\n }\n\n const requestStore = getExpectedRequestStore('headers')\n if (process.env.NODE_ENV === 'development' && !workStore?.isPrefetchRequest) {\n return makeUntrackedExoticHeadersWithDevWarnings(\n requestStore.headers,\n workStore?.route\n )\n } else {\n return makeUntrackedExoticHeaders(requestStore.headers)\n }\n}\n\ninterface CacheLifetime {}\nconst CachedHeaders = new WeakMap<CacheLifetime, Promise<ReadonlyHeaders>>()\n\nfunction makeDynamicallyTrackedExoticHeaders(\n route: string,\n prerenderStore: PrerenderStoreModern\n): Promise<ReadonlyHeaders> {\n const cachedHeaders = CachedHeaders.get(prerenderStore)\n if (cachedHeaders) {\n return cachedHeaders\n }\n\n const promise = makeHangingPromise<ReadonlyHeaders>(\n prerenderStore.renderSignal,\n '`headers()`'\n )\n CachedHeaders.set(prerenderStore, promise)\n\n Object.defineProperties(promise, {\n append: {\n value: function append() {\n const expression = `\\`headers().append(${describeNameArg(arguments[0])}, ...)\\``\n const error = createHeadersAccessError(route, expression)\n abortAndThrowOnSynchronousRequestDataAccess(\n route,\n expression,\n error,\n prerenderStore\n )\n },\n },\n delete: {\n value: function _delete() {\n const expression = `\\`headers().delete(${describeNameArg(arguments[0])})\\``\n const error = createHeadersAccessError(route, expression)\n abortAndThrowOnSynchronousRequestDataAccess(\n route,\n expression,\n error,\n prerenderStore\n )\n },\n },\n get: {\n value: function get() {\n const expression = `\\`headers().get(${describeNameArg(arguments[0])})\\``\n const error = createHeadersAccessError(route, expression)\n abortAndThrowOnSynchronousRequestDataAccess(\n route,\n expression,\n error,\n prerenderStore\n )\n },\n },\n has: {\n value: function has() {\n const expression = `\\`headers().has(${describeNameArg(arguments[0])})\\``\n const error = createHeadersAccessError(route, expression)\n abortAndThrowOnSynchronousRequestDataAccess(\n route,\n expression,\n error,\n prerenderStore\n )\n },\n },\n set: {\n value: function set() {\n const expression = `\\`headers().set(${describeNameArg(arguments[0])}, ...)\\``\n const error = createHeadersAccessError(route, expression)\n abortAndThrowOnSynchronousRequestDataAccess(\n route,\n expression,\n error,\n prerenderStore\n )\n },\n },\n getSetCookie: {\n value: function getSetCookie() {\n const expression = '`headers().getSetCookie()`'\n const error = createHeadersAccessError(route, expression)\n abortAndThrowOnSynchronousRequestDataAccess(\n route,\n expression,\n error,\n prerenderStore\n )\n },\n },\n forEach: {\n value: function forEach() {\n const expression = '`headers().forEach(...)`'\n const error = createHeadersAccessError(route, expression)\n abortAndThrowOnSynchronousRequestDataAccess(\n route,\n expression,\n error,\n prerenderStore\n )\n },\n },\n keys: {\n value: function keys() {\n const expression = '`headers().keys()`'\n const error = createHeadersAccessError(route, expression)\n abortAndThrowOnSynchronousRequestDataAccess(\n route,\n expression,\n error,\n prerenderStore\n )\n },\n },\n values: {\n value: function values() {\n const expression = '`headers().values()`'\n const error = createHeadersAccessError(route, expression)\n abortAndThrowOnSynchronousRequestDataAccess(\n route,\n expression,\n error,\n prerenderStore\n )\n },\n },\n entries: {\n value: function entries() {\n const expression = '`headers().entries()`'\n const error = createHeadersAccessError(route, expression)\n abortAndThrowOnSynchronousRequestDataAccess(\n route,\n expression,\n error,\n prerenderStore\n )\n },\n },\n [Symbol.iterator]: {\n value: function () {\n const expression = '`headers()[Symbol.iterator]()`'\n const error = createHeadersAccessError(route, expression)\n abortAndThrowOnSynchronousRequestDataAccess(\n route,\n expression,\n error,\n prerenderStore\n )\n },\n },\n } satisfies HeadersExtensions)\n\n return promise\n}\n\nfunction makeUntrackedExoticHeaders(\n underlyingHeaders: ReadonlyHeaders\n): Promise<ReadonlyHeaders> {\n const cachedHeaders = CachedHeaders.get(underlyingHeaders)\n if (cachedHeaders) {\n return cachedHeaders\n }\n\n const promise = Promise.resolve(underlyingHeaders)\n CachedHeaders.set(underlyingHeaders, promise)\n\n Object.defineProperties(promise, {\n append: {\n value: underlyingHeaders.append.bind(underlyingHeaders),\n },\n delete: {\n value: underlyingHeaders.delete.bind(underlyingHeaders),\n },\n get: {\n value: underlyingHeaders.get.bind(underlyingHeaders),\n },\n has: {\n value: underlyingHeaders.has.bind(underlyingHeaders),\n },\n set: {\n value: underlyingHeaders.set.bind(underlyingHeaders),\n },\n getSetCookie: {\n value: underlyingHeaders.getSetCookie.bind(underlyingHeaders),\n },\n forEach: {\n value: underlyingHeaders.forEach.bind(underlyingHeaders),\n },\n keys: {\n value: underlyingHeaders.keys.bind(underlyingHeaders),\n },\n values: {\n value: underlyingHeaders.values.bind(underlyingHeaders),\n },\n entries: {\n value: underlyingHeaders.entries.bind(underlyingHeaders),\n },\n [Symbol.iterator]: {\n value: underlyingHeaders[Symbol.iterator].bind(underlyingHeaders),\n },\n } satisfies HeadersExtensions)\n\n return promise\n}\n\nfunction makeUntrackedExoticHeadersWithDevWarnings(\n underlyingHeaders: ReadonlyHeaders,\n route?: string\n): Promise<ReadonlyHeaders> {\n const cachedHeaders = CachedHeaders.get(underlyingHeaders)\n if (cachedHeaders) {\n return cachedHeaders\n }\n\n const promise = new Promise<ReadonlyHeaders>((resolve) =>\n scheduleImmediate(() => resolve(underlyingHeaders))\n )\n\n CachedHeaders.set(underlyingHeaders, promise)\n\n Object.defineProperties(promise, {\n append: {\n value: function append() {\n const expression = `\\`headers().append(${describeNameArg(arguments[0])}, ...)\\``\n syncIODev(route, expression)\n return underlyingHeaders.append.apply(\n underlyingHeaders,\n arguments as any\n )\n },\n },\n delete: {\n value: function _delete() {\n const expression = `\\`headers().delete(${describeNameArg(arguments[0])})\\``\n syncIODev(route, expression)\n return underlyingHeaders.delete.apply(\n underlyingHeaders,\n arguments as any\n )\n },\n },\n get: {\n value: function get() {\n const expression = `\\`headers().get(${describeNameArg(arguments[0])})\\``\n syncIODev(route, expression)\n return underlyingHeaders.get.apply(underlyingHeaders, arguments as any)\n },\n },\n has: {\n value: function has() {\n const expression = `\\`headers().has(${describeNameArg(arguments[0])})\\``\n syncIODev(route, expression)\n return underlyingHeaders.has.apply(underlyingHeaders, arguments as any)\n },\n },\n set: {\n value: function set() {\n const expression = `\\`headers().set(${describeNameArg(arguments[0])}, ...)\\``\n syncIODev(route, expression)\n return underlyingHeaders.set.apply(underlyingHeaders, arguments as any)\n },\n },\n getSetCookie: {\n value: function getSetCookie() {\n const expression = '`headers().getSetCookie()`'\n syncIODev(route, expression)\n return underlyingHeaders.getSetCookie.apply(\n underlyingHeaders,\n arguments as any\n )\n },\n },\n forEach: {\n value: function forEach() {\n const expression = '`headers().forEach(...)`'\n syncIODev(route, expression)\n return underlyingHeaders.forEach.apply(\n underlyingHeaders,\n arguments as any\n )\n },\n },\n keys: {\n value: function keys() {\n const expression = '`headers().keys()`'\n syncIODev(route, expression)\n return underlyingHeaders.keys.apply(underlyingHeaders, arguments as any)\n },\n },\n values: {\n value: function values() {\n const expression = '`headers().values()`'\n syncIODev(route, expression)\n return underlyingHeaders.values.apply(\n underlyingHeaders,\n arguments as any\n )\n },\n },\n entries: {\n value: function entries() {\n const expression = '`headers().entries()`'\n syncIODev(route, expression)\n return underlyingHeaders.entries.apply(\n underlyingHeaders,\n arguments as any\n )\n },\n },\n [Symbol.iterator]: {\n value: function () {\n const expression = '`...headers()` or similar iteration'\n syncIODev(route, expression)\n return underlyingHeaders[Symbol.iterator].apply(\n underlyingHeaders,\n arguments as any\n )\n },\n },\n } satisfies HeadersExtensions)\n\n return promise\n}\n\nfunction describeNameArg(arg: unknown) {\n return typeof arg === 'string' ? `'${arg}'` : '...'\n}\n\nfunction syncIODev(route: string | undefined, expression: string) {\n const workUnitStore = workUnitAsyncStorage.getStore()\n if (\n workUnitStore &&\n workUnitStore.type === 'request' &&\n workUnitStore.prerenderPhase === true\n ) {\n // When we're rendering dynamically in dev we need to advance out of the\n // Prerender environment when we read Request data synchronously\n const requestStore = workUnitStore\n trackSynchronousRequestDataAccessInDev(requestStore)\n }\n // In all cases we warn normally\n warnForSyncAccess(route, expression)\n}\n\nconst warnForSyncAccess = createDedupedByCallsiteServerErrorLoggerDev(\n createHeadersAccessError\n)\n\nfunction createHeadersAccessError(\n route: string | undefined,\n expression: string\n) {\n const prefix = route ? `Route \"${route}\" ` : 'This route '\n return new Error(\n `${prefix}used ${expression}. ` +\n `\\`headers()\\` should be awaited before using its value. ` +\n `Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis`\n )\n}\n\ntype HeadersExtensions = {\n [K in keyof ReadonlyHeaders]: unknown\n}\n","import {\n getDraftModeProviderForCacheScope,\n throwForMissingRequestStore,\n} from '../app-render/work-unit-async-storage.external'\n\nimport type { DraftModeProvider } from '../async-storage/draft-mode-provider'\n\nimport {\n workAsyncStorage,\n type WorkStore,\n} from '../app-render/work-async-storage.external'\nimport { workUnitAsyncStorage } from '../app-render/work-unit-async-storage.external'\nimport {\n abortAndThrowOnSynchronousRequestDataAccess,\n postponeWithTracking,\n trackSynchronousRequestDataAccessInDev,\n} from '../app-render/dynamic-rendering'\nimport { createDedupedByCallsiteServerErrorLoggerDev } from '../create-deduped-by-callsite-server-error-logger'\nimport { StaticGenBailoutError } from '../../client/components/static-generation-bailout'\nimport { DynamicServerError } from '../../client/components/hooks-server-context'\n\n/**\n * In this version of Next.js `draftMode()` returns a Promise however you can still reference the properties of the underlying draftMode object\n * synchronously to facilitate migration. The `UnsafeUnwrappedDraftMode` type is added to your code by a codemod that attempts to automatically\n * updates callsites to reflect the new Promise return type. There are some cases where `draftMode()` cannot be automatically converted, namely\n * when it is used inside a synchronous function and we can't be sure the function can be made async automatically. In these cases we add an\n * explicit type case to `UnsafeUnwrappedDraftMode` to enable typescript to allow for the synchronous usage only where it is actually necessary.\n *\n * You should should update these callsites to either be async functions where the `draftMode()` value can be awaited or you should call `draftMode()`\n * from outside and await the return value before passing it into this function.\n *\n * You can find instances that require manual migration by searching for `UnsafeUnwrappedDraftMode` in your codebase or by search for a comment that\n * starts with `@next-codemod-error`.\n *\n * In a future version of Next.js `draftMode()` will only return a Promise and you will not be able to access the underlying draftMode object directly\n * without awaiting the return value first. When this change happens the type `UnsafeUnwrappedDraftMode` will be updated to reflect that is it no longer\n * usable.\n *\n * This type is marked deprecated to help identify it as target for refactoring away.\n *\n * @deprecated\n */\nexport type UnsafeUnwrappedDraftMode = DraftMode\n\nexport function draftMode(): Promise<DraftMode> {\n const callingExpression = 'draftMode'\n const workStore = workAsyncStorage.getStore()\n const workUnitStore = workUnitAsyncStorage.getStore()\n\n if (!workStore || !workUnitStore) {\n throwForMissingRequestStore(callingExpression)\n }\n\n switch (workUnitStore.type) {\n case 'request':\n return createOrGetCachedExoticDraftMode(\n workUnitStore.draftMode,\n workStore\n )\n\n case 'cache':\n case 'unstable-cache':\n // Inside of `\"use cache\"` or `unstable_cache`, draft mode is available if\n // the outmost work unit store is a request store, and if draft mode is\n // enabled.\n const draftModeProvider = getDraftModeProviderForCacheScope(\n workStore,\n workUnitStore\n )\n\n if (draftModeProvider) {\n return createOrGetCachedExoticDraftMode(draftModeProvider, workStore)\n }\n\n // Otherwise, we fall through to providing an empty draft mode.\n // eslint-disable-next-line no-fallthrough\n case 'prerender':\n case 'prerender-ppr':\n case 'prerender-legacy':\n // Return empty draft mode\n if (\n process.env.NODE_ENV === 'development' &&\n !workStore?.isPrefetchRequest\n ) {\n const route = workStore?.route\n return createExoticDraftModeWithDevWarnings(null, route)\n } else {\n return createExoticDraftMode(null)\n }\n\n default:\n const _exhaustiveCheck: never = workUnitStore\n return _exhaustiveCheck\n }\n}\n\nfunction createOrGetCachedExoticDraftMode(\n draftModeProvider: DraftModeProvider,\n workStore: WorkStore | undefined\n): Promise<DraftMode> {\n const cachedDraftMode = CachedDraftModes.get(draftMode)\n\n if (cachedDraftMode) {\n return cachedDraftMode\n }\n\n let promise: Promise<DraftMode>\n\n if (process.env.NODE_ENV === 'development' && !workStore?.isPrefetchRequest) {\n const route = workStore?.route\n promise = createExoticDraftModeWithDevWarnings(draftModeProvider, route)\n } else {\n promise = createExoticDraftMode(draftModeProvider)\n }\n\n CachedDraftModes.set(draftModeProvider, promise)\n\n return promise\n}\n\ninterface CacheLifetime {}\nconst CachedDraftModes = new WeakMap<CacheLifetime, Promise<DraftMode>>()\n\nfunction createExoticDraftMode(\n underlyingProvider: null | DraftModeProvider\n): Promise<DraftMode> {\n const instance = new DraftMode(underlyingProvider)\n const promise = Promise.resolve(instance)\n\n Object.defineProperty(promise, 'isEnabled', {\n get() {\n return instance.isEnabled\n },\n set(newValue) {\n Object.defineProperty(promise, 'isEnabled', {\n value: newValue,\n writable: true,\n enumerable: true,\n })\n },\n enumerable: true,\n configurable: true,\n })\n ;(promise as any).enable = instance.enable.bind(instance)\n ;(promise as any).disable = instance.disable.bind(instance)\n\n return promise\n}\n\nfunction createExoticDraftModeWithDevWarnings(\n underlyingProvider: null | DraftModeProvider,\n route: undefined | string\n): Promise<DraftMode> {\n const instance = new DraftMode(underlyingProvider)\n const promise = Promise.resolve(instance)\n\n Object.defineProperty(promise, 'isEnabled', {\n get() {\n const expression = '`draftMode().isEnabled`'\n syncIODev(route, expression)\n return instance.isEnabled\n },\n set(newValue) {\n Object.defineProperty(promise, 'isEnabled', {\n value: newValue,\n writable: true,\n enumerable: true,\n })\n },\n enumerable: true,\n configurable: true,\n })\n\n Object.defineProperty(promise, 'enable', {\n value: function get() {\n const expression = '`draftMode().enable()`'\n syncIODev(route, expression)\n return instance.enable.apply(instance, arguments as any)\n },\n })\n\n Object.defineProperty(promise, 'disable', {\n value: function get() {\n const expression = '`draftMode().disable()`'\n syncIODev(route, expression)\n return instance.disable.apply(instance, arguments as any)\n },\n })\n\n return promise\n}\n\nclass DraftMode {\n /**\n * @internal - this declaration is stripped via `tsc --stripInternal`\n */\n private readonly _provider: null | DraftModeProvider\n\n constructor(provider: null | DraftModeProvider) {\n this._provider = provider\n }\n get isEnabled() {\n if (this._provider !== null) {\n return this._provider.isEnabled\n }\n return false\n }\n public enable() {\n // We have a store we want to track dynamic data access to ensure we\n // don't statically generate routes that manipulate draft mode.\n trackDynamicDraftMode('draftMode().enable()')\n if (this._provider !== null) {\n this._provider.enable()\n }\n }\n public disable() {\n trackDynamicDraftMode('draftMode().disable()')\n if (this._provider !== null) {\n this._provider.disable()\n }\n }\n}\n\nfunction syncIODev(route: string | undefined, expression: string) {\n const workUnitStore = workUnitAsyncStorage.getStore()\n if (\n workUnitStore &&\n workUnitStore.type === 'request' &&\n workUnitStore.prerenderPhase === true\n ) {\n // When we're rendering dynamically in dev we need to advance out of the\n // Prerender environment when we read Request data synchronously\n const requestStore = workUnitStore\n trackSynchronousRequestDataAccessInDev(requestStore)\n }\n // In all cases we warn normally\n warnForSyncAccess(route, expression)\n}\n\nconst warnForSyncAccess = createDedupedByCallsiteServerErrorLoggerDev(\n createDraftModeAccessError\n)\n\nfunction createDraftModeAccessError(\n route: string | undefined,\n expression: string\n) {\n const prefix = route ? `Route \"${route}\" ` : 'This route '\n return new Error(\n `${prefix}used ${expression}. ` +\n `\\`draftMode()\\` should be awaited before using its value. ` +\n `Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis`\n )\n}\n\nfunction trackDynamicDraftMode(expression: string) {\n const store = workAsyncStorage.getStore()\n const workUnitStore = workUnitAsyncStorage.getStore()\n if (store) {\n // We have a store we want to track dynamic data access to ensure we\n // don't statically generate routes that manipulate draft mode.\n if (workUnitStore) {\n if (workUnitStore.type === 'cache') {\n throw new Error(\n `Route ${store.route} used \"${expression}\" inside \"use cache\". The enabled status of draftMode can be read in caches but you must not enable or disable draftMode inside a cache. See more info here: https://nextjs.org/docs/messages/next-request-in-use-cache`\n )\n } else if (workUnitStore.type === 'unstable-cache') {\n throw new Error(\n `Route ${store.route} used \"${expression}\" inside a function cached with \"unstable_cache(...)\". The enabled status of draftMode can be read in caches but you must not enable or disable draftMode inside a cache. See more info here: https://nextjs.org/docs/app/api-reference/functions/unstable_cache`\n )\n } else if (workUnitStore.phase === 'after') {\n throw new Error(\n `Route ${store.route} used \"${expression}\" inside \\`after\\`. The enabled status of draftMode can be read inside \\`after\\` but you cannot enable or disable draftMode. See more info here: https://nextjs.org/docs/app/api-reference/functions/after`\n )\n }\n }\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 if (workUnitStore.type === 'prerender') {\n // dynamicIO Prerender\n const error = new Error(\n `Route ${store.route} used ${expression} without first calling \\`await connection()\\`. See more info here: https://nextjs.org/docs/messages/next-prerender-sync-headers`\n )\n abortAndThrowOnSynchronousRequestDataAccess(\n store.route,\n expression,\n error,\n workUnitStore\n )\n } else if (workUnitStore.type === 'prerender-ppr') {\n // PPR Prerender\n postponeWithTracking(\n store.route,\n expression,\n workUnitStore.dynamicTracking\n )\n } else if (workUnitStore.type === 'prerender-legacy') {\n // legacy Prerender\n workUnitStore.revalidate = 0\n\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 } else if (\n process.env.NODE_ENV === 'development' &&\n workUnitStore &&\n workUnitStore.type === 'request'\n ) {\n workUnitStore.usedDynamic = true\n }\n }\n }\n}\n","module.exports.cookies = require('./dist/server/request/cookies').cookies\nmodule.exports.headers = require('./dist/server/request/headers').headers\nmodule.exports.draftMode = require('./dist/server/request/draft-mode').draftMode\n","import { headers } from 'next/headers';\nimport {\n PreprToolbarProps,\n PreprSegment,\n PreprHeaderName,\n PreprErrorCode,\n} from '../types';\nimport pjson from '../../package.json';\nimport createPreprMiddleware from '../middleware';\n\n/**\n * Custom error class for Prepr-related errors\n */\nexport class PreprError extends Error {\n constructor(\n message: string,\n public readonly code: PreprErrorCode,\n public readonly context?: string,\n public readonly originalError?: Error\n ) {\n super(message);\n this.name = 'PreprError';\n }\n}\n\n/**\n * Internal helper to get a specific Prepr header value\n * @param name - The header name to retrieve\n * @returns The header value or null if not found\n */\nasync function getPreprHeader(name: PreprHeaderName): Promise<string | null> {\n const headersList = await headers();\n return headersList.get(name);\n}\n\n/**\n * Returns the Prepr Customer ID from the headers\n * @returns Prepr Customer ID\n */\nexport async function getPreprUUID(): Promise<string | null> {\n return getPreprHeader('prepr-customer-id');\n}\n\n/**\n * Returns the active segment from the headers\n * @returns Active segment\n */\nexport async function getActiveSegment(): Promise<string | null> {\n return getPreprHeader('Prepr-Segments');\n}\n\n/**\n * Returns the active variant from the headers\n * @returns Active variant\n */\nexport async function getActiveVariant(): Promise<string | null> {\n return getPreprHeader('Prepr-ABtesting');\n}\n\n/**\n * Helper function to retrieve all Prepr headers\n * @returns Object with Prepr headers\n */\nexport async function getPreprHeaders(): Promise<Record<string, string>> {\n const preprHeaders: Record<string, string> = {};\n const headersList = await headers();\n\n headersList.forEach((value, key) => {\n if (key.startsWith('prepr') || key.startsWith('Prepr')) {\n preprHeaders[key] = value;\n }\n });\n\n return preprHeaders;\n}\n\n/**\n * Validates a Prepr GraphQL token\n * @param token - The token to validate\n * @returns Validation result with error details if invalid\n */\nexport function validatePreprToken(token: string): {\n valid: boolean;\n error?: string;\n} {\n if (!token) {\n return { valid: false, error: 'Token is required' };\n }\n if (!token.startsWith('https://')) {\n return { valid: false, error: 'Token must be a valid HTTPS URL' };\n }\n return { valid: true };\n}\n\n/**\n * Checks if the current environment is in preview mode\n * @returns True if in preview mode\n */\nexport function isPreviewMode(): boolean {\n return process.env.PREPR_ENV === 'preview';\n}\n\n/**\n * Extracts the access token from a Prepr GraphQL URL\n * @param graphqlUrl - The full Prepr GraphQL URL\n * @returns The access token or null if invalid\n * @example\n * ```typescript\n * const token = extractAccessToken('https://graphql.prepr.io/abc123')\n * // Returns: 'abc123'\n * ```\n */\nexport function extractAccessToken(graphqlUrl: string): string | null {\n if (!graphqlUrl) return null;\n\n try {\n const url = new URL(graphqlUrl);\n if (url.hostname !== 'graphql.prepr.io') return null;\n\n const pathParts = url.pathname.split('/');\n const token = pathParts[pathParts.length - 1];\n\n return token && token.length > 0 ? token : null;\n } catch {\n return null;\n }\n}\n\n/**\n * Fetches the segments from the Prepr API\n * @param token Prepr GraphQL URL with scope 'segments'\n * @returns Array of PreprSegment\n * @throws PreprError if the request fails\n */\nexport async function getPreprEnvironmentSegments(\n token: string\n): Promise<PreprSegment[]> {\n const validation = validatePreprToken(token);\n if (!validation.valid) {\n throw new PreprError(\n validation.error!,\n 'INVALID_TOKEN',\n 'getPreprEnvironmentSegments'\n );\n }\n\n try {\n const response = await fetch(token, {\n headers: {\n 'User-Agent': `Prepr-Preview-Bar/${getPackageVersion()}`,\n 'Content-Type': 'application/json',\n },\n method: 'POST',\n body: JSON.stringify({\n query: `{\n _Segments {\n _id\n name\n }\n }`,\n }),\n });\n\n if (!response.ok) {\n throw new PreprError(\n `HTTP ${response.status}: ${response.statusText}`,\n 'HTTP_ERROR',\n 'getPreprEnvironmentSegments'\n );\n }\n\n const json = await response.json();\n\n if (!json || !json.data || !json.data._Segments) {\n throw new PreprError(\n 'Invalid response format from Prepr API',\n 'INVALID_RESPONSE',\n 'getPreprEnvironmentSegments'\n );\n }\n\n return json.data._Segments as PreprSegment[];\n } catch (error) {\n if (error instanceof PreprError) {\n throw error;\n }\n throw new PreprError(\n 'Failed to fetch segments from Prepr API',\n 'FETCH_ERROR',\n 'getPreprEnvironmentSegments',\n error instanceof Error ? error : new Error(String(error))\n );\n }\n}\n\n/**\n * Fetches all the necessary previewbar props\n * @param token Prepr GraphQL URL with scope 'segments'\n * @returns Object with activeSegment, activeVariant and data\n */\nexport async function getToolbarProps(\n token: string\n): Promise<PreprToolbarProps> {\n let data: PreprSegment[] = [];\n let activeSegment: string | null = null;\n let activeVariant: string | null = null;\n\n // Prevent unnecessary function calling in production\n if (isPreviewMode()) {\n try {\n data = await getPreprEnvironmentSegments(token);\n activeSegment = await getActiveSegment();\n activeVariant = await getActiveVariant();\n } catch (error) {\n // In preview mode, we should still return props even if API fails\n console.error('Failed to fetch toolbar props:', error);\n // Return empty data to prevent toolbar from crashing\n data = [];\n }\n }\n\n return {\n activeSegment,\n activeVariant,\n data,\n };\n}\n\nfunction getPackageVersion() {\n return pjson.version;\n}\n\nexport { createPreprMiddleware };\n"]}
@@ -0,0 +1,3 @@
1
+
2
+ //# sourceMappingURL=index.mjs.map
3
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"index.mjs"}