@preprio/prepr-nextjs
Version:
Next.js package for Prepr CMS preview functionality with advanced debugging and visual editing capabilities
1,143 lines (1,138 loc) • 67.2 kB
JavaScript
import { require_cookies, require_reflect, require_work_async_storage_external, require_work_unit_async_storage_external, require_dynamic_rendering, require_static_generation_bailout, require_dynamic_rendering_utils, require_scheduler, require_utils, require_hooks_server_context, package_default } from '../chunk-32XGP2RS.mjs';
export { createPreprMiddleware } from '../chunk-32XGP2RS.mjs';
import { __commonJS, __require, __toESM, __async } from '../chunk-26CXDAG7.mjs';
// node_modules/.pnpm/next@15.3.1_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/dist/server/web/spec-extension/adapters/request-cookies.js
var require_request_cookies = __commonJS({
"node_modules/.pnpm/next@15.3.1_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/dist/server/web/spec-extension/adapters/request-cookies.js"(exports) {
Object.defineProperty(exports, "__esModule", {
value: true
});
function _export(target, all) {
for (var name in all) Object.defineProperty(target, name, {
enumerable: true,
get: all[name]
});
}
_export(exports, {
MutableRequestCookiesAdapter: function() {
return MutableRequestCookiesAdapter;
},
ReadonlyRequestCookiesError: function() {
return ReadonlyRequestCookiesError;
},
RequestCookiesAdapter: function() {
return RequestCookiesAdapter;
},
appendMutableCookies: function() {
return appendMutableCookies;
},
areCookiesMutableInCurrentPhase: function() {
return areCookiesMutableInCurrentPhase;
},
getModifiedCookieValues: function() {
return getModifiedCookieValues;
},
responseCookiesToRequestCookies: function() {
return responseCookiesToRequestCookies;
},
wrapWithMutableAccessCheck: function() {
return wrapWithMutableAccessCheck;
}
});
var _cookies = require_cookies();
var _reflect = require_reflect();
var _workasyncstorageexternal = require_work_async_storage_external();
var _workunitasyncstorageexternal = require_work_unit_async_storage_external();
var ReadonlyRequestCookiesError = class _ReadonlyRequestCookiesError extends Error {
constructor() {
super("Cookies can only be modified in a Server Action or Route Handler. Read more: https://nextjs.org/docs/app/api-reference/functions/cookies#options");
}
static callable() {
throw new _ReadonlyRequestCookiesError();
}
};
var RequestCookiesAdapter = class {
static seal(cookies) {
return new Proxy(cookies, {
get(target, prop, receiver) {
switch (prop) {
case "clear":
case "delete":
case "set":
return ReadonlyRequestCookiesError.callable;
default:
return _reflect.ReflectAdapter.get(target, prop, receiver);
}
}
});
}
};
var SYMBOL_MODIFY_COOKIE_VALUES = Symbol.for("next.mutated.cookies");
function getModifiedCookieValues(cookies) {
const modified = cookies[SYMBOL_MODIFY_COOKIE_VALUES];
if (!modified || !Array.isArray(modified) || modified.length === 0) {
return [];
}
return modified;
}
function appendMutableCookies(headers2, mutableCookies) {
const modifiedCookieValues = getModifiedCookieValues(mutableCookies);
if (modifiedCookieValues.length === 0) {
return false;
}
const resCookies = new _cookies.ResponseCookies(headers2);
const returnedCookies = resCookies.getAll();
for (const cookie of modifiedCookieValues) {
resCookies.set(cookie);
}
for (const cookie of returnedCookies) {
resCookies.set(cookie);
}
return true;
}
var MutableRequestCookiesAdapter = class {
static wrap(cookies, onUpdateCookies) {
const responseCookies = new _cookies.ResponseCookies(new Headers());
for (const cookie of cookies.getAll()) {
responseCookies.set(cookie);
}
let modifiedValues = [];
const modifiedCookies = /* @__PURE__ */ new Set();
const updateResponseCookies = () => {
const workStore = _workasyncstorageexternal.workAsyncStorage.getStore();
if (workStore) {
workStore.pathWasRevalidated = true;
}
const allCookies = responseCookies.getAll();
modifiedValues = allCookies.filter((c) => modifiedCookies.has(c.name));
if (onUpdateCookies) {
const serializedCookies = [];
for (const cookie of modifiedValues) {
const tempCookies = new _cookies.ResponseCookies(new Headers());
tempCookies.set(cookie);
serializedCookies.push(tempCookies.toString());
}
onUpdateCookies(serializedCookies);
}
};
const wrappedCookies = new Proxy(responseCookies, {
get(target, prop, receiver) {
switch (prop) {
// A special symbol to get the modified cookie values
case SYMBOL_MODIFY_COOKIE_VALUES:
return modifiedValues;
// TODO: Throw error if trying to set a cookie after the response
// headers have been set.
case "delete":
return function(...args) {
modifiedCookies.add(typeof args[0] === "string" ? args[0] : args[0].name);
try {
target.delete(...args);
return wrappedCookies;
} finally {
updateResponseCookies();
}
};
case "set":
return function(...args) {
modifiedCookies.add(typeof args[0] === "string" ? args[0] : args[0].name);
try {
target.set(...args);
return wrappedCookies;
} finally {
updateResponseCookies();
}
};
default:
return _reflect.ReflectAdapter.get(target, prop, receiver);
}
}
});
return wrappedCookies;
}
};
function wrapWithMutableAccessCheck(responseCookies) {
const wrappedCookies = new Proxy(responseCookies, {
get(target, prop, receiver) {
switch (prop) {
case "delete":
return function(...args) {
ensureCookiesAreStillMutable("cookies().delete");
target.delete(...args);
return wrappedCookies;
};
case "set":
return function(...args) {
ensureCookiesAreStillMutable("cookies().set");
target.set(...args);
return wrappedCookies;
};
default:
return _reflect.ReflectAdapter.get(target, prop, receiver);
}
}
});
return wrappedCookies;
}
function areCookiesMutableInCurrentPhase(requestStore) {
return requestStore.phase === "action";
}
function ensureCookiesAreStillMutable(callingExpression) {
const requestStore = (0, _workunitasyncstorageexternal.getExpectedRequestStore)(callingExpression);
if (!areCookiesMutableInCurrentPhase(requestStore)) {
throw new ReadonlyRequestCookiesError();
}
}
function responseCookiesToRequestCookies(responseCookies) {
const requestCookies = new _cookies.RequestCookies(new Headers());
for (const cookie of responseCookies.getAll()) {
requestCookies.set(cookie);
}
return requestCookies;
}
}
});
// node_modules/.pnpm/next@15.3.1_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/dist/server/create-deduped-by-callsite-server-error-logger.js
var require_create_deduped_by_callsite_server_error_logger = __commonJS({
"node_modules/.pnpm/next@15.3.1_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/dist/server/create-deduped-by-callsite-server-error-logger.js"(exports) {
Object.defineProperty(exports, "__esModule", {
value: true
});
Object.defineProperty(exports, "createDedupedByCallsiteServerErrorLoggerDev", {
enumerable: true,
get: function() {
return createDedupedByCallsiteServerErrorLoggerDev;
}
});
var _react = /* @__PURE__ */ _interop_require_wildcard(__require("react"));
function _getRequireWildcardCache(nodeInterop) {
if (typeof WeakMap !== "function") return null;
var cacheBabelInterop = /* @__PURE__ */ new WeakMap();
var cacheNodeInterop = /* @__PURE__ */ new WeakMap();
return (_getRequireWildcardCache = function(nodeInterop2) {
return nodeInterop2 ? cacheNodeInterop : cacheBabelInterop;
})(nodeInterop);
}
function _interop_require_wildcard(obj, nodeInterop) {
if (obj && obj.__esModule) {
return obj;
}
if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
return {
default: obj
};
}
var cache2 = _getRequireWildcardCache(nodeInterop);
if (cache2 && cache2.has(obj)) {
return cache2.get(obj);
}
var newObj = {
__proto__: null
};
var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
for (var key in obj) {
if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
if (desc && (desc.get || desc.set)) {
Object.defineProperty(newObj, key, desc);
} else {
newObj[key] = obj[key];
}
}
}
newObj.default = obj;
if (cache2) {
cache2.set(obj, newObj);
}
return newObj;
}
var errorRef = {
current: null
};
var cache = typeof _react.cache === "function" ? _react.cache : (fn) => fn;
var logErrorOrWarn = process.env.__NEXT_DYNAMIC_IO ? console.error : console.warn;
var flushCurrentErrorIfNew = cache(
// eslint-disable-next-line @typescript-eslint/no-unused-vars -- cache key
(key) => {
try {
logErrorOrWarn(errorRef.current);
} finally {
errorRef.current = null;
}
}
);
function createDedupedByCallsiteServerErrorLoggerDev(getMessage) {
return function logDedupedError(...args) {
const message = getMessage(...args);
if (process.env.NODE_ENV !== "production") {
var _stack;
const callStackFrames = (_stack = new Error().stack) == null ? void 0 : _stack.split("\n");
if (callStackFrames === void 0 || callStackFrames.length < 4) {
logErrorOrWarn(message);
} else {
const key = callStackFrames[4];
errorRef.current = message;
flushCurrentErrorIfNew(key);
}
} else {
logErrorOrWarn(message);
}
};
}
}
});
// node_modules/.pnpm/next@15.3.1_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/dist/server/request/cookies.js
var require_cookies2 = __commonJS({
"node_modules/.pnpm/next@15.3.1_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/dist/server/request/cookies.js"(exports) {
Object.defineProperty(exports, "__esModule", {
value: true
});
Object.defineProperty(exports, "cookies", {
enumerable: true,
get: function() {
return cookies;
}
});
var _requestcookies = require_request_cookies();
var _cookies = require_cookies();
var _workasyncstorageexternal = require_work_async_storage_external();
var _workunitasyncstorageexternal = require_work_unit_async_storage_external();
var _dynamicrendering = require_dynamic_rendering();
var _staticgenerationbailout = require_static_generation_bailout();
var _dynamicrenderingutils = require_dynamic_rendering_utils();
var _creatededupedbycallsiteservererrorlogger = require_create_deduped_by_callsite_server_error_logger();
var _scheduler = require_scheduler();
var _utils = require_utils();
function cookies() {
const callingExpression = "cookies";
const workStore = _workasyncstorageexternal.workAsyncStorage.getStore();
const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore();
if (workStore) {
if (workUnitStore && workUnitStore.phase === "after" && !(0, _utils.isRequestAPICallableInsideAfter)()) {
throw Object.defineProperty(new Error(
// TODO(after): clarify that this only applies to pages?
`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`
), "__NEXT_ERROR_CODE", {
value: "E88",
enumerable: false,
configurable: true
});
}
if (workStore.forceStatic) {
const underlyingCookies2 = createEmptyCookies();
return makeUntrackedExoticCookies(underlyingCookies2);
}
if (workUnitStore) {
if (workUnitStore.type === "cache") {
throw Object.defineProperty(new Error(`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`), "__NEXT_ERROR_CODE", {
value: "E398",
enumerable: false,
configurable: true
});
} else if (workUnitStore.type === "unstable-cache") {
throw Object.defineProperty(new Error(`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`), "__NEXT_ERROR_CODE", {
value: "E157",
enumerable: false,
configurable: true
});
}
}
if (workStore.dynamicShouldError) {
throw Object.defineProperty(new _staticgenerationbailout.StaticGenBailoutError(`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`), "__NEXT_ERROR_CODE", {
value: "E549",
enumerable: false,
configurable: true
});
}
if (workUnitStore) {
if (workUnitStore.type === "prerender") {
return makeDynamicallyTrackedExoticCookies(workStore.route, workUnitStore);
} else if (workUnitStore.type === "prerender-ppr") {
(0, _dynamicrendering.postponeWithTracking)(workStore.route, callingExpression, workUnitStore.dynamicTracking);
} else if (workUnitStore.type === "prerender-legacy") {
(0, _dynamicrendering.throwToInterruptStaticGeneration)(callingExpression, workStore, workUnitStore);
}
}
(0, _dynamicrendering.trackDynamicDataInDynamicRender)(workStore, workUnitStore);
}
const requestStore = (0, _workunitasyncstorageexternal.getExpectedRequestStore)(callingExpression);
let underlyingCookies;
if ((0, _requestcookies.areCookiesMutableInCurrentPhase)(requestStore)) {
underlyingCookies = requestStore.userspaceMutableCookies;
} else {
underlyingCookies = requestStore.cookies;
}
if (process.env.NODE_ENV === "development" && !(workStore == null ? void 0 : workStore.isPrefetchRequest)) {
return makeUntrackedExoticCookiesWithDevWarnings(underlyingCookies, workStore == null ? void 0 : workStore.route);
} else {
return makeUntrackedExoticCookies(underlyingCookies);
}
}
function createEmptyCookies() {
return _requestcookies.RequestCookiesAdapter.seal(new _cookies.RequestCookies(new Headers({})));
}
var CachedCookies = /* @__PURE__ */ new WeakMap();
function makeDynamicallyTrackedExoticCookies(route, prerenderStore) {
const cachedPromise = CachedCookies.get(prerenderStore);
if (cachedPromise) {
return cachedPromise;
}
const promise = (0, _dynamicrenderingutils.makeHangingPromise)(prerenderStore.renderSignal, "`cookies()`");
CachedCookies.set(prerenderStore, promise);
Object.defineProperties(promise, {
[Symbol.iterator]: {
value: function() {
const expression = "`cookies()[Symbol.iterator]()`";
const error = createCookiesAccessError(route, expression);
(0, _dynamicrendering.abortAndThrowOnSynchronousRequestDataAccess)(route, expression, error, prerenderStore);
}
},
size: {
get() {
const expression = "`cookies().size`";
const error = createCookiesAccessError(route, expression);
(0, _dynamicrendering.abortAndThrowOnSynchronousRequestDataAccess)(route, expression, error, prerenderStore);
}
},
get: {
value: function get() {
let expression;
if (arguments.length === 0) {
expression = "`cookies().get()`";
} else {
expression = `\`cookies().get(${describeNameArg(arguments[0])})\``;
}
const error = createCookiesAccessError(route, expression);
(0, _dynamicrendering.abortAndThrowOnSynchronousRequestDataAccess)(route, expression, error, prerenderStore);
}
},
getAll: {
value: function getAll() {
let expression;
if (arguments.length === 0) {
expression = "`cookies().getAll()`";
} else {
expression = `\`cookies().getAll(${describeNameArg(arguments[0])})\``;
}
const error = createCookiesAccessError(route, expression);
(0, _dynamicrendering.abortAndThrowOnSynchronousRequestDataAccess)(route, expression, error, prerenderStore);
}
},
has: {
value: function has() {
let expression;
if (arguments.length === 0) {
expression = "`cookies().has()`";
} else {
expression = `\`cookies().has(${describeNameArg(arguments[0])})\``;
}
const error = createCookiesAccessError(route, expression);
(0, _dynamicrendering.abortAndThrowOnSynchronousRequestDataAccess)(route, expression, error, prerenderStore);
}
},
set: {
value: function set() {
let expression;
if (arguments.length === 0) {
expression = "`cookies().set()`";
} else {
const arg = arguments[0];
if (arg) {
expression = `\`cookies().set(${describeNameArg(arg)}, ...)\``;
} else {
expression = "`cookies().set(...)`";
}
}
const error = createCookiesAccessError(route, expression);
(0, _dynamicrendering.abortAndThrowOnSynchronousRequestDataAccess)(route, expression, error, prerenderStore);
}
},
delete: {
value: function() {
let expression;
if (arguments.length === 0) {
expression = "`cookies().delete()`";
} else if (arguments.length === 1) {
expression = `\`cookies().delete(${describeNameArg(arguments[0])})\``;
} else {
expression = `\`cookies().delete(${describeNameArg(arguments[0])}, ...)\``;
}
const error = createCookiesAccessError(route, expression);
(0, _dynamicrendering.abortAndThrowOnSynchronousRequestDataAccess)(route, expression, error, prerenderStore);
}
},
clear: {
value: function clear() {
const expression = "`cookies().clear()`";
const error = createCookiesAccessError(route, expression);
(0, _dynamicrendering.abortAndThrowOnSynchronousRequestDataAccess)(route, expression, error, prerenderStore);
}
},
toString: {
value: function toString() {
const expression = "`cookies().toString()`";
const error = createCookiesAccessError(route, expression);
(0, _dynamicrendering.abortAndThrowOnSynchronousRequestDataAccess)(route, expression, error, prerenderStore);
}
}
});
return promise;
}
function makeUntrackedExoticCookies(underlyingCookies) {
const cachedCookies = CachedCookies.get(underlyingCookies);
if (cachedCookies) {
return cachedCookies;
}
const promise = Promise.resolve(underlyingCookies);
CachedCookies.set(underlyingCookies, promise);
Object.defineProperties(promise, {
[Symbol.iterator]: {
value: underlyingCookies[Symbol.iterator] ? underlyingCookies[Symbol.iterator].bind(underlyingCookies) : (
// We should remove this and unify our cookies types. We could just let this continue to throw lazily
// but that's already a hard thing to debug so we may as well implement it consistently. The biggest problem with
// implementing this in this way is the underlying cookie type is a ResponseCookie and not a RequestCookie and so it
// has extra properties not available on RequestCookie instances.
polyfilledResponseCookiesIterator.bind(underlyingCookies)
)
},
size: {
get() {
return underlyingCookies.size;
}
},
get: {
value: underlyingCookies.get.bind(underlyingCookies)
},
getAll: {
value: underlyingCookies.getAll.bind(underlyingCookies)
},
has: {
value: underlyingCookies.has.bind(underlyingCookies)
},
set: {
value: underlyingCookies.set.bind(underlyingCookies)
},
delete: {
value: underlyingCookies.delete.bind(underlyingCookies)
},
clear: {
value: (
// @ts-expect-error clear is defined in RequestCookies implementation but not in the type
typeof underlyingCookies.clear === "function" ? underlyingCookies.clear.bind(underlyingCookies) : (
// We should remove this and unify our cookies types. We could just let this continue to throw lazily
// but that's already a hard thing to debug so we may as well implement it consistently. The biggest problem with
// implementing this in this way is the underlying cookie type is a ResponseCookie and not a RequestCookie and so it
// has extra properties not available on RequestCookie instances.
polyfilledResponseCookiesClear.bind(underlyingCookies, promise)
)
)
},
toString: {
value: underlyingCookies.toString.bind(underlyingCookies)
}
});
return promise;
}
function makeUntrackedExoticCookiesWithDevWarnings(underlyingCookies, route) {
const cachedCookies = CachedCookies.get(underlyingCookies);
if (cachedCookies) {
return cachedCookies;
}
const promise = new Promise((resolve) => (0, _scheduler.scheduleImmediate)(() => resolve(underlyingCookies)));
CachedCookies.set(underlyingCookies, promise);
Object.defineProperties(promise, {
[Symbol.iterator]: {
value: function() {
const expression = "`...cookies()` or similar iteration";
syncIODev(route, expression);
return underlyingCookies[Symbol.iterator] ? underlyingCookies[Symbol.iterator].apply(underlyingCookies, arguments) : (
// We should remove this and unify our cookies types. We could just let this continue to throw lazily
// but that's already a hard thing to debug so we may as well implement it consistently. The biggest problem with
// implementing this in this way is the underlying cookie type is a ResponseCookie and not a RequestCookie and so it
// has extra properties not available on RequestCookie instances.
polyfilledResponseCookiesIterator.call(underlyingCookies)
);
},
writable: false
},
size: {
get() {
const expression = "`cookies().size`";
syncIODev(route, expression);
return underlyingCookies.size;
}
},
get: {
value: function get() {
let expression;
if (arguments.length === 0) {
expression = "`cookies().get()`";
} else {
expression = `\`cookies().get(${describeNameArg(arguments[0])})\``;
}
syncIODev(route, expression);
return underlyingCookies.get.apply(underlyingCookies, arguments);
},
writable: false
},
getAll: {
value: function getAll() {
let expression;
if (arguments.length === 0) {
expression = "`cookies().getAll()`";
} else {
expression = `\`cookies().getAll(${describeNameArg(arguments[0])})\``;
}
syncIODev(route, expression);
return underlyingCookies.getAll.apply(underlyingCookies, arguments);
},
writable: false
},
has: {
value: function get() {
let expression;
if (arguments.length === 0) {
expression = "`cookies().has()`";
} else {
expression = `\`cookies().has(${describeNameArg(arguments[0])})\``;
}
syncIODev(route, expression);
return underlyingCookies.has.apply(underlyingCookies, arguments);
},
writable: false
},
set: {
value: function set() {
let expression;
if (arguments.length === 0) {
expression = "`cookies().set()`";
} else {
const arg = arguments[0];
if (arg) {
expression = `\`cookies().set(${describeNameArg(arg)}, ...)\``;
} else {
expression = "`cookies().set(...)`";
}
}
syncIODev(route, expression);
return underlyingCookies.set.apply(underlyingCookies, arguments);
},
writable: false
},
delete: {
value: function() {
let expression;
if (arguments.length === 0) {
expression = "`cookies().delete()`";
} else if (arguments.length === 1) {
expression = `\`cookies().delete(${describeNameArg(arguments[0])})\``;
} else {
expression = `\`cookies().delete(${describeNameArg(arguments[0])}, ...)\``;
}
syncIODev(route, expression);
return underlyingCookies.delete.apply(underlyingCookies, arguments);
},
writable: false
},
clear: {
value: function clear() {
const expression = "`cookies().clear()`";
syncIODev(route, expression);
return typeof underlyingCookies.clear === "function" ? underlyingCookies.clear.apply(underlyingCookies, arguments) : (
// We should remove this and unify our cookies types. We could just let this continue to throw lazily
// but that's already a hard thing to debug so we may as well implement it consistently. The biggest problem with
// implementing this in this way is the underlying cookie type is a ResponseCookie and not a RequestCookie and so it
// has extra properties not available on RequestCookie instances.
polyfilledResponseCookiesClear.call(underlyingCookies, promise)
);
},
writable: false
},
toString: {
value: function toString() {
const expression = "`cookies().toString()` or implicit casting";
syncIODev(route, expression);
return underlyingCookies.toString.apply(underlyingCookies, arguments);
},
writable: false
}
});
return promise;
}
function describeNameArg(arg) {
return typeof arg === "object" && arg !== null && typeof arg.name === "string" ? `'${arg.name}'` : typeof arg === "string" ? `'${arg}'` : "...";
}
function syncIODev(route, expression) {
const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore();
if (workUnitStore && workUnitStore.type === "request" && workUnitStore.prerenderPhase === true) {
const requestStore = workUnitStore;
(0, _dynamicrendering.trackSynchronousRequestDataAccessInDev)(requestStore);
}
warnForSyncAccess(route, expression);
}
var warnForSyncAccess = (0, _creatededupedbycallsiteservererrorlogger.createDedupedByCallsiteServerErrorLoggerDev)(createCookiesAccessError);
function createCookiesAccessError(route, expression) {
const prefix = route ? `Route "${route}" ` : "This route ";
return Object.defineProperty(new Error(`${prefix}used ${expression}. \`cookies()\` should be awaited before using its value. Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis`), "__NEXT_ERROR_CODE", {
value: "E223",
enumerable: false,
configurable: true
});
}
function polyfilledResponseCookiesIterator() {
return this.getAll().map((c) => [
c.name,
c
]).values();
}
function polyfilledResponseCookiesClear(returnable) {
for (const cookie of this.getAll()) {
this.delete(cookie.name);
}
return returnable;
}
}
});
// node_modules/.pnpm/next@15.3.1_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/dist/server/web/spec-extension/adapters/headers.js
var require_headers = __commonJS({
"node_modules/.pnpm/next@15.3.1_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/dist/server/web/spec-extension/adapters/headers.js"(exports) {
Object.defineProperty(exports, "__esModule", {
value: true
});
function _export(target, all) {
for (var name in all) Object.defineProperty(target, name, {
enumerable: true,
get: all[name]
});
}
_export(exports, {
HeadersAdapter: function() {
return HeadersAdapter;
},
ReadonlyHeadersError: function() {
return ReadonlyHeadersError;
}
});
var _reflect = require_reflect();
var ReadonlyHeadersError = class _ReadonlyHeadersError extends Error {
constructor() {
super("Headers cannot be modified. Read more: https://nextjs.org/docs/app/api-reference/functions/headers");
}
static callable() {
throw new _ReadonlyHeadersError();
}
};
var HeadersAdapter = class _HeadersAdapter extends Headers {
constructor(headers2) {
super();
this.headers = new Proxy(headers2, {
get(target, prop, receiver) {
if (typeof prop === "symbol") {
return _reflect.ReflectAdapter.get(target, prop, receiver);
}
const lowercased = prop.toLowerCase();
const original = Object.keys(headers2).find((o) => o.toLowerCase() === lowercased);
if (typeof original === "undefined") return;
return _reflect.ReflectAdapter.get(target, original, receiver);
},
set(target, prop, value, receiver) {
if (typeof prop === "symbol") {
return _reflect.ReflectAdapter.set(target, prop, value, receiver);
}
const lowercased = prop.toLowerCase();
const original = Object.keys(headers2).find((o) => o.toLowerCase() === lowercased);
return _reflect.ReflectAdapter.set(target, original != null ? original : prop, value, receiver);
},
has(target, prop) {
if (typeof prop === "symbol") return _reflect.ReflectAdapter.has(target, prop);
const lowercased = prop.toLowerCase();
const original = Object.keys(headers2).find((o) => o.toLowerCase() === lowercased);
if (typeof original === "undefined") return false;
return _reflect.ReflectAdapter.has(target, original);
},
deleteProperty(target, prop) {
if (typeof prop === "symbol") return _reflect.ReflectAdapter.deleteProperty(target, prop);
const lowercased = prop.toLowerCase();
const original = Object.keys(headers2).find((o) => o.toLowerCase() === lowercased);
if (typeof original === "undefined") return true;
return _reflect.ReflectAdapter.deleteProperty(target, original);
}
});
}
/**
* Seals a Headers instance to prevent modification by throwing an error when
* any mutating method is called.
*/
static seal(headers2) {
return new Proxy(headers2, {
get(target, prop, receiver) {
switch (prop) {
case "append":
case "delete":
case "set":
return ReadonlyHeadersError.callable;
default:
return _reflect.ReflectAdapter.get(target, prop, receiver);
}
}
});
}
/**
* Merges a header value into a string. This stores multiple values as an
* array, so we need to merge them into a string.
*
* @param value a header value
* @returns a merged header value (a string)
*/
merge(value) {
if (Array.isArray(value)) return value.join(", ");
return value;
}
/**
* Creates a Headers instance from a plain object or a Headers instance.
*
* @param headers a plain object or a Headers instance
* @returns a headers instance
*/
static from(headers2) {
if (headers2 instanceof Headers) return headers2;
return new _HeadersAdapter(headers2);
}
append(name, value) {
const existing = this.headers[name];
if (typeof existing === "string") {
this.headers[name] = [
existing,
value
];
} else if (Array.isArray(existing)) {
existing.push(value);
} else {
this.headers[name] = value;
}
}
delete(name) {
delete this.headers[name];
}
get(name) {
const value = this.headers[name];
if (typeof value !== "undefined") return this.merge(value);
return null;
}
has(name) {
return typeof this.headers[name] !== "undefined";
}
set(name, value) {
this.headers[name] = value;
}
forEach(callbackfn, thisArg) {
for (const [name, value] of this.entries()) {
callbackfn.call(thisArg, value, name, this);
}
}
*entries() {
for (const key of Object.keys(this.headers)) {
const name = key.toLowerCase();
const value = this.get(name);
yield [
name,
value
];
}
}
*keys() {
for (const key of Object.keys(this.headers)) {
const name = key.toLowerCase();
yield name;
}
}
*values() {
for (const key of Object.keys(this.headers)) {
const value = this.get(key);
yield value;
}
}
[Symbol.iterator]() {
return this.entries();
}
};
}
});
// node_modules/.pnpm/next@15.3.1_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/dist/server/request/headers.js
var require_headers2 = __commonJS({
"node_modules/.pnpm/next@15.3.1_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/dist/server/request/headers.js"(exports) {
Object.defineProperty(exports, "__esModule", {
value: true
});
Object.defineProperty(exports, "headers", {
enumerable: true,
get: function() {
return headers2;
}
});
var _headers = require_headers();
var _workasyncstorageexternal = require_work_async_storage_external();
var _workunitasyncstorageexternal = require_work_unit_async_storage_external();
var _dynamicrendering = require_dynamic_rendering();
var _staticgenerationbailout = require_static_generation_bailout();
var _dynamicrenderingutils = require_dynamic_rendering_utils();
var _creatededupedbycallsiteservererrorlogger = require_create_deduped_by_callsite_server_error_logger();
var _scheduler = require_scheduler();
var _utils = require_utils();
function headers2() {
const workStore = _workasyncstorageexternal.workAsyncStorage.getStore();
const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore();
if (workStore) {
if (workUnitStore && workUnitStore.phase === "after" && !(0, _utils.isRequestAPICallableInsideAfter)()) {
throw Object.defineProperty(new Error(`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`), "__NEXT_ERROR_CODE", {
value: "E367",
enumerable: false,
configurable: true
});
}
if (workStore.forceStatic) {
const underlyingHeaders = _headers.HeadersAdapter.seal(new Headers({}));
return makeUntrackedExoticHeaders(underlyingHeaders);
}
if (workUnitStore) {
if (workUnitStore.type === "cache") {
throw Object.defineProperty(new Error(`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`), "__NEXT_ERROR_CODE", {
value: "E304",
enumerable: false,
configurable: true
});
} else if (workUnitStore.type === "unstable-cache") {
throw Object.defineProperty(new Error(`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`), "__NEXT_ERROR_CODE", {
value: "E127",
enumerable: false,
configurable: true
});
}
}
if (workStore.dynamicShouldError) {
throw Object.defineProperty(new _staticgenerationbailout.StaticGenBailoutError(`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`), "__NEXT_ERROR_CODE", {
value: "E525",
enumerable: false,
configurable: true
});
}
if (workUnitStore) {
if (workUnitStore.type === "prerender") {
return makeDynamicallyTrackedExoticHeaders(workStore.route, workUnitStore);
} else if (workUnitStore.type === "prerender-ppr") {
(0, _dynamicrendering.postponeWithTracking)(workStore.route, "headers", workUnitStore.dynamicTracking);
} else if (workUnitStore.type === "prerender-legacy") {
(0, _dynamicrendering.throwToInterruptStaticGeneration)("headers", workStore, workUnitStore);
}
}
(0, _dynamicrendering.trackDynamicDataInDynamicRender)(workStore, workUnitStore);
}
const requestStore = (0, _workunitasyncstorageexternal.getExpectedRequestStore)("headers");
if (process.env.NODE_ENV === "development" && !(workStore == null ? void 0 : workStore.isPrefetchRequest)) {
return makeUntrackedExoticHeadersWithDevWarnings(requestStore.headers, workStore == null ? void 0 : workStore.route);
} else {
return makeUntrackedExoticHeaders(requestStore.headers);
}
}
var CachedHeaders = /* @__PURE__ */ new WeakMap();
function makeDynamicallyTrackedExoticHeaders(route, prerenderStore) {
const cachedHeaders = CachedHeaders.get(prerenderStore);
if (cachedHeaders) {
return cachedHeaders;
}
const promise = (0, _dynamicrenderingutils.makeHangingPromise)(prerenderStore.renderSignal, "`headers()`");
CachedHeaders.set(prerenderStore, promise);
Object.defineProperties(promise, {
append: {
value: function append() {
const expression = `\`headers().append(${describeNameArg(arguments[0])}, ...)\``;
const error = createHeadersAccessError(route, expression);
(0, _dynamicrendering.abortAndThrowOnSynchronousRequestDataAccess)(route, expression, error, prerenderStore);
}
},
delete: {
value: function _delete() {
const expression = `\`headers().delete(${describeNameArg(arguments[0])})\``;
const error = createHeadersAccessError(route, expression);
(0, _dynamicrendering.abortAndThrowOnSynchronousRequestDataAccess)(route, expression, error, prerenderStore);
}
},
get: {
value: function get() {
const expression = `\`headers().get(${describeNameArg(arguments[0])})\``;
const error = createHeadersAccessError(route, expression);
(0, _dynamicrendering.abortAndThrowOnSynchronousRequestDataAccess)(route, expression, error, prerenderStore);
}
},
has: {
value: function has() {
const expression = `\`headers().has(${describeNameArg(arguments[0])})\``;
const error = createHeadersAccessError(route, expression);
(0, _dynamicrendering.abortAndThrowOnSynchronousRequestDataAccess)(route, expression, error, prerenderStore);
}
},
set: {
value: function set() {
const expression = `\`headers().set(${describeNameArg(arguments[0])}, ...)\``;
const error = createHeadersAccessError(route, expression);
(0, _dynamicrendering.abortAndThrowOnSynchronousRequestDataAccess)(route, expression, error, prerenderStore);
}
},
getSetCookie: {
value: function getSetCookie() {
const expression = "`headers().getSetCookie()`";
const error = createHeadersAccessError(route, expression);
(0, _dynamicrendering.abortAndThrowOnSynchronousRequestDataAccess)(route, expression, error, prerenderStore);
}
},
forEach: {
value: function forEach() {
const expression = "`headers().forEach(...)`";
const error = createHeadersAccessError(route, expression);
(0, _dynamicrendering.abortAndThrowOnSynchronousRequestDataAccess)(route, expression, error, prerenderStore);
}
},
keys: {
value: function keys() {
const expression = "`headers().keys()`";
const error = createHeadersAccessError(route, expression);
(0, _dynamicrendering.abortAndThrowOnSynchronousRequestDataAccess)(route, expression, error, prerenderStore);
}
},
values: {
value: function values() {
const expression = "`headers().values()`";
const error = createHeadersAccessError(route, expression);
(0, _dynamicrendering.abortAndThrowOnSynchronousRequestDataAccess)(route, expression, error, prerenderStore);
}
},
entries: {
value: function entries() {
const expression = "`headers().entries()`";
const error = createHeadersAccessError(route, expression);
(0, _dynamicrendering.abortAndThrowOnSynchronousRequestDataAccess)(route, expression, error, prerenderStore);
}
},
[Symbol.iterator]: {
value: function() {
const expression = "`headers()[Symbol.iterator]()`";
const error = createHeadersAccessError(route, expression);
(0, _dynamicrendering.abortAndThrowOnSynchronousRequestDataAccess)(route, expression, error, prerenderStore);
}
}
});
return promise;
}
function makeUntrackedExoticHeaders(underlyingHeaders) {
const cachedHeaders = CachedHeaders.get(underlyingHeaders);
if (cachedHeaders) {
return cachedHeaders;
}
const promise = Promise.resolve(underlyingHeaders);
CachedHeaders.set(underlyingHeaders, promise);
Object.defineProperties(promise, {
append: {
value: underlyingHeaders.append.bind(underlyingHeaders)
},
delete: {
value: underlyingHeaders.delete.bind(underlyingHeaders)
},
get: {
value: underlyingHeaders.get.bind(underlyingHeaders)
},
has: {
value: underlyingHeaders.has.bind(underlyingHeaders)
},
set: {
value: underlyingHeaders.set.bind(underlyingHeaders)
},
getSetCookie: {
value: underlyingHeaders.getSetCookie.bind(underlyingHeaders)
},
forEach: {
value: underlyingHeaders.forEach.bind(underlyingHeaders)
},
keys: {
value: underlyingHeaders.keys.bind(underlyingHeaders)
},
values: {
value: underlyingHeaders.values.bind(underlyingHeaders)
},
entries: {
value: underlyingHeaders.entries.bind(underlyingHeaders)
},
[Symbol.iterator]: {
value: underlyingHeaders[Symbol.iterator].bind(underlyingHeaders)
}
});
return promise;
}
function makeUntrackedExoticHeadersWithDevWarnings(underlyingHeaders, route) {
const cachedHeaders = CachedHeaders.get(underlyingHeaders);
if (cachedHeaders) {
return cachedHeaders;
}
const promise = new Promise((resolve) => (0, _scheduler.scheduleImmediate)(() => resolve(underlyingHeaders)));
CachedHeaders.set(underlyingHeaders, promise);
Object.defineProperties(promise, {
append: {
value: function append() {
const expression = `\`headers().append(${describeNameArg(arguments[0])}, ...)\``;
syncIODev(route, expression);
return underlyingHeaders.append.apply(underlyingHeaders, arguments);
}
},
delete: {
value: function _delete() {
const expression = `\`headers().delete(${describeNameArg(arguments[0])})\``;
syncIODev(route, expression);
return underlyingHeaders.delete.apply(underlyingHeaders, arguments);
}
},
get: {
value: function get() {
const expression = `\`headers().get(${describeNameArg(arguments[0])})\``;
syncIODev(route, expression);
return underlyingHeaders.get.apply(underlyingHeaders, arguments);
}
},
has: {
value: function has() {
const expression = `\`headers().has(${describeNameArg(arguments[0])})\``;
syncIODev(route, expression);
return underlyingHeaders.has.apply(underlyingHeaders, arguments);
}
},
set: {
value: function set() {
const expression = `\`headers().set(${describeNameArg(arguments[0])}, ...)\``;
syncIODev(route, expression);
return underlyingHeaders.set.apply(underlyingHeaders, arguments);
}
},
getSetCookie: {
value: function getSetCookie() {
const expression = "`headers().getSetCookie()`";
syncIODev(route, expression);
return underlyingHeaders.getSetCookie.apply(underlyingHeaders, arguments);
}
},
forEach: {
value: function forEach() {
const expression = "`headers().forEach(...)`";
syncIODev(route, expression);
return underlyingHeaders.forEach.apply(underlyingHeaders, arguments);
}
},
keys: {
value: function keys() {
const expression = "`headers().keys()`";
syncIODev(route, expression);
return underlyingHeaders.keys.apply(underlyingHeaders, arguments);
}
},
values: {
value: function values() {
const expression = "`headers().values()`";
syncIODev(route, expression);
r