7123 lines
329 KiB
JavaScript
7123 lines
329 KiB
JavaScript
(globalThis["TURBOPACK"] || (globalThis["TURBOPACK"] = [])).push([typeof document === "object" ? document.currentScript : undefined,
|
|
"[project]/node_modules/next/dist/compiled/react/cjs/react-jsx-dev-runtime.development.js [app-client] (ecmascript)", ((__turbopack_context__, module, exports) => {
|
|
"use strict";
|
|
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$build$2f$polyfills$2f$process$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__ = /*#__PURE__*/ __turbopack_context__.i("[project]/node_modules/next/dist/build/polyfills/process.js [app-client] (ecmascript)");
|
|
/**
|
|
* @license React
|
|
* react-jsx-dev-runtime.development.js
|
|
*
|
|
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
*
|
|
* This source code is licensed under the MIT license found in the
|
|
* LICENSE file in the root directory of this source tree.
|
|
*/ "use strict";
|
|
"production" !== ("TURBOPACK compile-time value", "development") && function() {
|
|
function getComponentNameFromType(type) {
|
|
if (null == type) return null;
|
|
if ("function" === typeof type) return type.$$typeof === REACT_CLIENT_REFERENCE ? null : type.displayName || type.name || null;
|
|
if ("string" === typeof type) return type;
|
|
switch(type){
|
|
case REACT_FRAGMENT_TYPE:
|
|
return "Fragment";
|
|
case REACT_PROFILER_TYPE:
|
|
return "Profiler";
|
|
case REACT_STRICT_MODE_TYPE:
|
|
return "StrictMode";
|
|
case REACT_SUSPENSE_TYPE:
|
|
return "Suspense";
|
|
case REACT_SUSPENSE_LIST_TYPE:
|
|
return "SuspenseList";
|
|
case REACT_ACTIVITY_TYPE:
|
|
return "Activity";
|
|
case REACT_VIEW_TRANSITION_TYPE:
|
|
return "ViewTransition";
|
|
}
|
|
if ("object" === typeof type) switch("number" === typeof type.tag && console.error("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."), type.$$typeof){
|
|
case REACT_PORTAL_TYPE:
|
|
return "Portal";
|
|
case REACT_CONTEXT_TYPE:
|
|
return type.displayName || "Context";
|
|
case REACT_CONSUMER_TYPE:
|
|
return (type._context.displayName || "Context") + ".Consumer";
|
|
case REACT_FORWARD_REF_TYPE:
|
|
var innerType = type.render;
|
|
type = type.displayName;
|
|
type || (type = innerType.displayName || innerType.name || "", type = "" !== type ? "ForwardRef(" + type + ")" : "ForwardRef");
|
|
return type;
|
|
case REACT_MEMO_TYPE:
|
|
return innerType = type.displayName || null, null !== innerType ? innerType : getComponentNameFromType(type.type) || "Memo";
|
|
case REACT_LAZY_TYPE:
|
|
innerType = type._payload;
|
|
type = type._init;
|
|
try {
|
|
return getComponentNameFromType(type(innerType));
|
|
} catch (x) {}
|
|
}
|
|
return null;
|
|
}
|
|
function testStringCoercion(value) {
|
|
return "" + value;
|
|
}
|
|
function checkKeyStringCoercion(value) {
|
|
try {
|
|
testStringCoercion(value);
|
|
var JSCompiler_inline_result = !1;
|
|
} catch (e) {
|
|
JSCompiler_inline_result = !0;
|
|
}
|
|
if (JSCompiler_inline_result) {
|
|
JSCompiler_inline_result = console;
|
|
var JSCompiler_temp_const = JSCompiler_inline_result.error;
|
|
var JSCompiler_inline_result$jscomp$0 = "function" === typeof Symbol && Symbol.toStringTag && value[Symbol.toStringTag] || value.constructor.name || "Object";
|
|
JSCompiler_temp_const.call(JSCompiler_inline_result, "The provided key is an unsupported type %s. This value must be coerced to a string before using it here.", JSCompiler_inline_result$jscomp$0);
|
|
return testStringCoercion(value);
|
|
}
|
|
}
|
|
function getTaskName(type) {
|
|
if (type === REACT_FRAGMENT_TYPE) return "<>";
|
|
if ("object" === typeof type && null !== type && type.$$typeof === REACT_LAZY_TYPE) return "<...>";
|
|
try {
|
|
var name = getComponentNameFromType(type);
|
|
return name ? "<" + name + ">" : "<...>";
|
|
} catch (x) {
|
|
return "<...>";
|
|
}
|
|
}
|
|
function getOwner() {
|
|
var dispatcher = ReactSharedInternals.A;
|
|
return null === dispatcher ? null : dispatcher.getOwner();
|
|
}
|
|
function UnknownOwner() {
|
|
return Error("react-stack-top-frame");
|
|
}
|
|
function hasValidKey(config) {
|
|
if (hasOwnProperty.call(config, "key")) {
|
|
var getter = Object.getOwnPropertyDescriptor(config, "key").get;
|
|
if (getter && getter.isReactWarning) return !1;
|
|
}
|
|
return void 0 !== config.key;
|
|
}
|
|
function defineKeyPropWarningGetter(props, displayName) {
|
|
function warnAboutAccessingKey() {
|
|
specialPropKeyWarningShown || (specialPropKeyWarningShown = !0, console.error("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)", displayName));
|
|
}
|
|
warnAboutAccessingKey.isReactWarning = !0;
|
|
Object.defineProperty(props, "key", {
|
|
get: warnAboutAccessingKey,
|
|
configurable: !0
|
|
});
|
|
}
|
|
function elementRefGetterWithDeprecationWarning() {
|
|
var componentName = getComponentNameFromType(this.type);
|
|
didWarnAboutElementRef[componentName] || (didWarnAboutElementRef[componentName] = !0, console.error("Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release."));
|
|
componentName = this.props.ref;
|
|
return void 0 !== componentName ? componentName : null;
|
|
}
|
|
function ReactElement(type, key, props, owner, debugStack, debugTask) {
|
|
var refProp = props.ref;
|
|
type = {
|
|
$$typeof: REACT_ELEMENT_TYPE,
|
|
type: type,
|
|
key: key,
|
|
props: props,
|
|
_owner: owner
|
|
};
|
|
null !== (void 0 !== refProp ? refProp : null) ? Object.defineProperty(type, "ref", {
|
|
enumerable: !1,
|
|
get: elementRefGetterWithDeprecationWarning
|
|
}) : Object.defineProperty(type, "ref", {
|
|
enumerable: !1,
|
|
value: null
|
|
});
|
|
type._store = {};
|
|
Object.defineProperty(type._store, "validated", {
|
|
configurable: !1,
|
|
enumerable: !1,
|
|
writable: !0,
|
|
value: 0
|
|
});
|
|
Object.defineProperty(type, "_debugInfo", {
|
|
configurable: !1,
|
|
enumerable: !1,
|
|
writable: !0,
|
|
value: null
|
|
});
|
|
Object.defineProperty(type, "_debugStack", {
|
|
configurable: !1,
|
|
enumerable: !1,
|
|
writable: !0,
|
|
value: debugStack
|
|
});
|
|
Object.defineProperty(type, "_debugTask", {
|
|
configurable: !1,
|
|
enumerable: !1,
|
|
writable: !0,
|
|
value: debugTask
|
|
});
|
|
Object.freeze && (Object.freeze(type.props), Object.freeze(type));
|
|
return type;
|
|
}
|
|
function jsxDEVImpl(type, config, maybeKey, isStaticChildren, debugStack, debugTask) {
|
|
var children = config.children;
|
|
if (void 0 !== children) if (isStaticChildren) if (isArrayImpl(children)) {
|
|
for(isStaticChildren = 0; isStaticChildren < children.length; isStaticChildren++)validateChildKeys(children[isStaticChildren]);
|
|
Object.freeze && Object.freeze(children);
|
|
} else console.error("React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.");
|
|
else validateChildKeys(children);
|
|
if (hasOwnProperty.call(config, "key")) {
|
|
children = getComponentNameFromType(type);
|
|
var keys = Object.keys(config).filter(function(k) {
|
|
return "key" !== k;
|
|
});
|
|
isStaticChildren = 0 < keys.length ? "{key: someKey, " + keys.join(": ..., ") + ": ...}" : "{key: someKey}";
|
|
didWarnAboutKeySpread[children + isStaticChildren] || (keys = 0 < keys.length ? "{" + keys.join(": ..., ") + ": ...}" : "{}", console.error('A props object containing a "key" prop is being spread into JSX:\n let props = %s;\n <%s {...props} />\nReact keys must be passed directly to JSX without using spread:\n let props = %s;\n <%s key={someKey} {...props} />', isStaticChildren, children, keys, children), didWarnAboutKeySpread[children + isStaticChildren] = !0);
|
|
}
|
|
children = null;
|
|
void 0 !== maybeKey && (checkKeyStringCoercion(maybeKey), children = "" + maybeKey);
|
|
hasValidKey(config) && (checkKeyStringCoercion(config.key), children = "" + config.key);
|
|
if ("key" in config) {
|
|
maybeKey = {};
|
|
for(var propName in config)"key" !== propName && (maybeKey[propName] = config[propName]);
|
|
} else maybeKey = config;
|
|
children && defineKeyPropWarningGetter(maybeKey, "function" === typeof type ? type.displayName || type.name || "Unknown" : type);
|
|
return ReactElement(type, children, maybeKey, getOwner(), debugStack, debugTask);
|
|
}
|
|
function validateChildKeys(node) {
|
|
isValidElement(node) ? node._store && (node._store.validated = 1) : "object" === typeof node && null !== node && node.$$typeof === REACT_LAZY_TYPE && ("fulfilled" === node._payload.status ? isValidElement(node._payload.value) && node._payload.value._store && (node._payload.value._store.validated = 1) : node._store && (node._store.validated = 1));
|
|
}
|
|
function isValidElement(object) {
|
|
return "object" === typeof object && null !== object && object.$$typeof === REACT_ELEMENT_TYPE;
|
|
}
|
|
var React = __turbopack_context__.r("[project]/node_modules/next/dist/compiled/react/index.js [app-client] (ecmascript)"), REACT_ELEMENT_TYPE = Symbol.for("react.transitional.element"), REACT_PORTAL_TYPE = Symbol.for("react.portal"), REACT_FRAGMENT_TYPE = Symbol.for("react.fragment"), REACT_STRICT_MODE_TYPE = Symbol.for("react.strict_mode"), REACT_PROFILER_TYPE = Symbol.for("react.profiler"), REACT_CONSUMER_TYPE = Symbol.for("react.consumer"), REACT_CONTEXT_TYPE = Symbol.for("react.context"), REACT_FORWARD_REF_TYPE = Symbol.for("react.forward_ref"), REACT_SUSPENSE_TYPE = Symbol.for("react.suspense"), REACT_SUSPENSE_LIST_TYPE = Symbol.for("react.suspense_list"), REACT_MEMO_TYPE = Symbol.for("react.memo"), REACT_LAZY_TYPE = Symbol.for("react.lazy"), REACT_ACTIVITY_TYPE = Symbol.for("react.activity"), REACT_VIEW_TRANSITION_TYPE = Symbol.for("react.view_transition"), REACT_CLIENT_REFERENCE = Symbol.for("react.client.reference"), ReactSharedInternals = React.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE, hasOwnProperty = Object.prototype.hasOwnProperty, isArrayImpl = Array.isArray, createTask = console.createTask ? console.createTask : function() {
|
|
return null;
|
|
};
|
|
React = {
|
|
react_stack_bottom_frame: function(callStackForError) {
|
|
return callStackForError();
|
|
}
|
|
};
|
|
var specialPropKeyWarningShown;
|
|
var didWarnAboutElementRef = {};
|
|
var unknownOwnerDebugStack = React.react_stack_bottom_frame.bind(React, UnknownOwner)();
|
|
var unknownOwnerDebugTask = createTask(getTaskName(UnknownOwner));
|
|
var didWarnAboutKeySpread = {};
|
|
exports.Fragment = REACT_FRAGMENT_TYPE;
|
|
exports.jsxDEV = function(type, config, maybeKey, isStaticChildren) {
|
|
var trackActualOwner = 1e4 > ReactSharedInternals.recentlyCreatedOwnerStacks++;
|
|
if (trackActualOwner) {
|
|
var previousStackTraceLimit = Error.stackTraceLimit;
|
|
Error.stackTraceLimit = 10;
|
|
var debugStackDEV = Error("react-stack-top-frame");
|
|
Error.stackTraceLimit = previousStackTraceLimit;
|
|
} else debugStackDEV = unknownOwnerDebugStack;
|
|
return jsxDEVImpl(type, config, maybeKey, isStaticChildren, debugStackDEV, trackActualOwner ? createTask(getTaskName(type)) : unknownOwnerDebugTask);
|
|
};
|
|
}();
|
|
}),
|
|
"[project]/node_modules/next/dist/compiled/react/jsx-dev-runtime.js [app-client] (ecmascript)", ((__turbopack_context__, module, exports) => {
|
|
"use strict";
|
|
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$build$2f$polyfills$2f$process$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__ = /*#__PURE__*/ __turbopack_context__.i("[project]/node_modules/next/dist/build/polyfills/process.js [app-client] (ecmascript)");
|
|
'use strict';
|
|
if ("TURBOPACK compile-time falsy", 0) //TURBOPACK unreachable
|
|
;
|
|
else {
|
|
module.exports = __turbopack_context__.r("[project]/node_modules/next/dist/compiled/react/cjs/react-jsx-dev-runtime.development.js [app-client] (ecmascript)");
|
|
}
|
|
}),
|
|
"[project]/node_modules/@babel/runtime/helpers/interopRequireDefault.js [app-client] (ecmascript)", ((__turbopack_context__, module, exports) => {
|
|
|
|
function _interopRequireDefault(e) {
|
|
return e && e.__esModule ? e : {
|
|
"default": e
|
|
};
|
|
}
|
|
module.exports = _interopRequireDefault, module.exports.__esModule = true, module.exports["default"] = module.exports;
|
|
}),
|
|
"[project]/node_modules/@babel/runtime/helpers/typeof.js [app-client] (ecmascript)", ((__turbopack_context__, module, exports) => {
|
|
|
|
function _typeof(o) {
|
|
"@babel/helpers - typeof";
|
|
return module.exports = _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(o) {
|
|
return typeof o;
|
|
} : function(o) {
|
|
return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o;
|
|
}, module.exports.__esModule = true, module.exports["default"] = module.exports, _typeof(o);
|
|
}
|
|
module.exports = _typeof, module.exports.__esModule = true, module.exports["default"] = module.exports;
|
|
}),
|
|
"[project]/node_modules/@babel/runtime/helpers/OverloadYield.js [app-client] (ecmascript)", ((__turbopack_context__, module, exports) => {
|
|
|
|
function _OverloadYield(e, d) {
|
|
this.v = e, this.k = d;
|
|
}
|
|
module.exports = _OverloadYield, module.exports.__esModule = true, module.exports["default"] = module.exports;
|
|
}),
|
|
"[project]/node_modules/@babel/runtime/helpers/regeneratorDefine.js [app-client] (ecmascript)", ((__turbopack_context__, module, exports) => {
|
|
|
|
function _regeneratorDefine(e, r, n, t) {
|
|
var i = Object.defineProperty;
|
|
try {
|
|
i({}, "", {});
|
|
} catch (e) {
|
|
i = 0;
|
|
}
|
|
module.exports = _regeneratorDefine = function regeneratorDefine(e, r, n, t) {
|
|
function o(r, n) {
|
|
_regeneratorDefine(e, r, function(e) {
|
|
return this._invoke(r, n, e);
|
|
});
|
|
}
|
|
r ? i ? i(e, r, {
|
|
value: n,
|
|
enumerable: !t,
|
|
configurable: !t,
|
|
writable: !t
|
|
}) : e[r] = n : (o("next", 0), o("throw", 1), o("return", 2));
|
|
}, module.exports.__esModule = true, module.exports["default"] = module.exports, _regeneratorDefine(e, r, n, t);
|
|
}
|
|
module.exports = _regeneratorDefine, module.exports.__esModule = true, module.exports["default"] = module.exports;
|
|
}),
|
|
"[project]/node_modules/@babel/runtime/helpers/regenerator.js [app-client] (ecmascript)", ((__turbopack_context__, module, exports) => {
|
|
|
|
var regeneratorDefine = __turbopack_context__.r("[project]/node_modules/@babel/runtime/helpers/regeneratorDefine.js [app-client] (ecmascript)");
|
|
function _regenerator() {
|
|
/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ var e, t, r = "function" == typeof Symbol ? Symbol : {}, n = r.iterator || "@@iterator", o = r.toStringTag || "@@toStringTag";
|
|
function i(r, n, o, i) {
|
|
var c = n && n.prototype instanceof Generator ? n : Generator, u = Object.create(c.prototype);
|
|
return regeneratorDefine(u, "_invoke", function(r, n, o) {
|
|
var i, c, u, f = 0, p = o || [], y = !1, G = {
|
|
p: 0,
|
|
n: 0,
|
|
v: e,
|
|
a: d,
|
|
f: d.bind(e, 4),
|
|
d: function d(t, r) {
|
|
return i = t, c = 0, u = e, G.n = r, a;
|
|
}
|
|
};
|
|
function d(r, n) {
|
|
for(c = r, u = n, t = 0; !y && f && !o && t < p.length; t++){
|
|
var o, i = p[t], d = G.p, l = i[2];
|
|
r > 3 ? (o = l === n) && (u = i[(c = i[4]) ? 5 : (c = 3, 3)], i[4] = i[5] = e) : i[0] <= d && ((o = r < 2 && d < i[1]) ? (c = 0, G.v = n, G.n = i[1]) : d < l && (o = r < 3 || i[0] > n || n > l) && (i[4] = r, i[5] = n, G.n = l, c = 0));
|
|
}
|
|
if (o || r > 1) return a;
|
|
throw y = !0, n;
|
|
}
|
|
return function(o, p, l) {
|
|
if (f > 1) throw TypeError("Generator is already running");
|
|
for(y && 1 === p && d(p, l), c = p, u = l; (t = c < 2 ? e : u) || !y;){
|
|
i || (c ? c < 3 ? (c > 1 && (G.n = -1), d(c, u)) : G.n = u : G.v = u);
|
|
try {
|
|
if (f = 2, i) {
|
|
if (c || (o = "next"), t = i[o]) {
|
|
if (!(t = t.call(i, u))) throw TypeError("iterator result is not an object");
|
|
if (!t.done) return t;
|
|
u = t.value, c < 2 && (c = 0);
|
|
} else 1 === c && (t = i["return"]) && t.call(i), c < 2 && (u = TypeError("The iterator does not provide a '" + o + "' method"), c = 1);
|
|
i = e;
|
|
} else if ((t = (y = G.n < 0) ? u : r.call(n, G)) !== a) break;
|
|
} catch (t) {
|
|
i = e, c = 1, u = t;
|
|
} finally{
|
|
f = 1;
|
|
}
|
|
}
|
|
return {
|
|
value: t,
|
|
done: y
|
|
};
|
|
};
|
|
}(r, o, i), !0), u;
|
|
}
|
|
var a = {};
|
|
function Generator() {}
|
|
function GeneratorFunction() {}
|
|
function GeneratorFunctionPrototype() {}
|
|
t = Object.getPrototypeOf;
|
|
var c = [][n] ? t(t([][n]())) : (regeneratorDefine(t = {}, n, function() {
|
|
return this;
|
|
}), t), u = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(c);
|
|
function f(e) {
|
|
return Object.setPrototypeOf ? Object.setPrototypeOf(e, GeneratorFunctionPrototype) : (e.__proto__ = GeneratorFunctionPrototype, regeneratorDefine(e, o, "GeneratorFunction")), e.prototype = Object.create(u), e;
|
|
}
|
|
return GeneratorFunction.prototype = GeneratorFunctionPrototype, regeneratorDefine(u, "constructor", GeneratorFunctionPrototype), regeneratorDefine(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = "GeneratorFunction", regeneratorDefine(GeneratorFunctionPrototype, o, "GeneratorFunction"), regeneratorDefine(u), regeneratorDefine(u, o, "Generator"), regeneratorDefine(u, n, function() {
|
|
return this;
|
|
}), regeneratorDefine(u, "toString", function() {
|
|
return "[object Generator]";
|
|
}), (module.exports = _regenerator = function _regenerator() {
|
|
return {
|
|
w: i,
|
|
m: f
|
|
};
|
|
}, module.exports.__esModule = true, module.exports["default"] = module.exports)();
|
|
}
|
|
module.exports = _regenerator, module.exports.__esModule = true, module.exports["default"] = module.exports;
|
|
}),
|
|
"[project]/node_modules/@babel/runtime/helpers/regeneratorAsyncIterator.js [app-client] (ecmascript)", ((__turbopack_context__, module, exports) => {
|
|
|
|
var OverloadYield = __turbopack_context__.r("[project]/node_modules/@babel/runtime/helpers/OverloadYield.js [app-client] (ecmascript)");
|
|
var regeneratorDefine = __turbopack_context__.r("[project]/node_modules/@babel/runtime/helpers/regeneratorDefine.js [app-client] (ecmascript)");
|
|
function AsyncIterator(t, e) {
|
|
function n(r, o, i, f) {
|
|
try {
|
|
var c = t[r](o), u = c.value;
|
|
return u instanceof OverloadYield ? e.resolve(u.v).then(function(t) {
|
|
n("next", t, i, f);
|
|
}, function(t) {
|
|
n("throw", t, i, f);
|
|
}) : e.resolve(u).then(function(t) {
|
|
c.value = t, i(c);
|
|
}, function(t) {
|
|
return n("throw", t, i, f);
|
|
});
|
|
} catch (t) {
|
|
f(t);
|
|
}
|
|
}
|
|
var r;
|
|
this.next || (regeneratorDefine(AsyncIterator.prototype), regeneratorDefine(AsyncIterator.prototype, "function" == typeof Symbol && Symbol.asyncIterator || "@asyncIterator", function() {
|
|
return this;
|
|
})), regeneratorDefine(this, "_invoke", function(t, o, i) {
|
|
function f() {
|
|
return new e(function(e, r) {
|
|
n(t, i, e, r);
|
|
});
|
|
}
|
|
return r = r ? r.then(f, f) : f();
|
|
}, !0);
|
|
}
|
|
module.exports = AsyncIterator, module.exports.__esModule = true, module.exports["default"] = module.exports;
|
|
}),
|
|
"[project]/node_modules/@babel/runtime/helpers/regeneratorAsyncGen.js [app-client] (ecmascript)", ((__turbopack_context__, module, exports) => {
|
|
|
|
var regenerator = __turbopack_context__.r("[project]/node_modules/@babel/runtime/helpers/regenerator.js [app-client] (ecmascript)");
|
|
var regeneratorAsyncIterator = __turbopack_context__.r("[project]/node_modules/@babel/runtime/helpers/regeneratorAsyncIterator.js [app-client] (ecmascript)");
|
|
function _regeneratorAsyncGen(r, e, t, o, n) {
|
|
return new regeneratorAsyncIterator(regenerator().w(r, e, t, o), n || Promise);
|
|
}
|
|
module.exports = _regeneratorAsyncGen, module.exports.__esModule = true, module.exports["default"] = module.exports;
|
|
}),
|
|
"[project]/node_modules/@babel/runtime/helpers/regeneratorAsync.js [app-client] (ecmascript)", ((__turbopack_context__, module, exports) => {
|
|
|
|
var regeneratorAsyncGen = __turbopack_context__.r("[project]/node_modules/@babel/runtime/helpers/regeneratorAsyncGen.js [app-client] (ecmascript)");
|
|
function _regeneratorAsync(n, e, r, t, o) {
|
|
var a = regeneratorAsyncGen(n, e, r, t, o);
|
|
return a.next().then(function(n) {
|
|
return n.done ? n.value : a.next();
|
|
});
|
|
}
|
|
module.exports = _regeneratorAsync, module.exports.__esModule = true, module.exports["default"] = module.exports;
|
|
}),
|
|
"[project]/node_modules/@babel/runtime/helpers/regeneratorKeys.js [app-client] (ecmascript)", ((__turbopack_context__, module, exports) => {
|
|
|
|
function _regeneratorKeys(e) {
|
|
var n = Object(e), r = [];
|
|
for(var t in n)r.unshift(t);
|
|
return function e() {
|
|
for(; r.length;)if ((t = r.pop()) in n) return e.value = t, e.done = !1, e;
|
|
return e.done = !0, e;
|
|
};
|
|
}
|
|
module.exports = _regeneratorKeys, module.exports.__esModule = true, module.exports["default"] = module.exports;
|
|
}),
|
|
"[project]/node_modules/@babel/runtime/helpers/regeneratorValues.js [app-client] (ecmascript)", ((__turbopack_context__, module, exports) => {
|
|
|
|
var _typeof = __turbopack_context__.r("[project]/node_modules/@babel/runtime/helpers/typeof.js [app-client] (ecmascript)")["default"];
|
|
function _regeneratorValues(e) {
|
|
if (null != e) {
|
|
var t = e["function" == typeof Symbol && Symbol.iterator || "@@iterator"], r = 0;
|
|
if (t) return t.call(e);
|
|
if ("function" == typeof e.next) return e;
|
|
if (!isNaN(e.length)) return {
|
|
next: function next() {
|
|
return e && r >= e.length && (e = void 0), {
|
|
value: e && e[r++],
|
|
done: !e
|
|
};
|
|
}
|
|
};
|
|
}
|
|
throw new TypeError(_typeof(e) + " is not iterable");
|
|
}
|
|
module.exports = _regeneratorValues, module.exports.__esModule = true, module.exports["default"] = module.exports;
|
|
}),
|
|
"[project]/node_modules/@babel/runtime/helpers/regeneratorRuntime.js [app-client] (ecmascript)", ((__turbopack_context__, module, exports) => {
|
|
|
|
var OverloadYield = __turbopack_context__.r("[project]/node_modules/@babel/runtime/helpers/OverloadYield.js [app-client] (ecmascript)");
|
|
var regenerator = __turbopack_context__.r("[project]/node_modules/@babel/runtime/helpers/regenerator.js [app-client] (ecmascript)");
|
|
var regeneratorAsync = __turbopack_context__.r("[project]/node_modules/@babel/runtime/helpers/regeneratorAsync.js [app-client] (ecmascript)");
|
|
var regeneratorAsyncGen = __turbopack_context__.r("[project]/node_modules/@babel/runtime/helpers/regeneratorAsyncGen.js [app-client] (ecmascript)");
|
|
var regeneratorAsyncIterator = __turbopack_context__.r("[project]/node_modules/@babel/runtime/helpers/regeneratorAsyncIterator.js [app-client] (ecmascript)");
|
|
var regeneratorKeys = __turbopack_context__.r("[project]/node_modules/@babel/runtime/helpers/regeneratorKeys.js [app-client] (ecmascript)");
|
|
var regeneratorValues = __turbopack_context__.r("[project]/node_modules/@babel/runtime/helpers/regeneratorValues.js [app-client] (ecmascript)");
|
|
function _regeneratorRuntime() {
|
|
"use strict";
|
|
var r = regenerator(), e = r.m(_regeneratorRuntime), t = (Object.getPrototypeOf ? Object.getPrototypeOf(e) : e.__proto__).constructor;
|
|
function n(r) {
|
|
var e = "function" == typeof r && r.constructor;
|
|
return !!e && (e === t || "GeneratorFunction" === (e.displayName || e.name));
|
|
}
|
|
var o = {
|
|
"throw": 1,
|
|
"return": 2,
|
|
"break": 3,
|
|
"continue": 3
|
|
};
|
|
function a(r) {
|
|
var e, t;
|
|
return function(n) {
|
|
e || (e = {
|
|
stop: function stop() {
|
|
return t(n.a, 2);
|
|
},
|
|
"catch": function _catch() {
|
|
return n.v;
|
|
},
|
|
abrupt: function abrupt(r, e) {
|
|
return t(n.a, o[r], e);
|
|
},
|
|
delegateYield: function delegateYield(r, o, a) {
|
|
return e.resultName = o, t(n.d, regeneratorValues(r), a);
|
|
},
|
|
finish: function finish(r) {
|
|
return t(n.f, r);
|
|
}
|
|
}, t = function t(r, _t, o) {
|
|
n.p = e.prev, n.n = e.next;
|
|
try {
|
|
return r(_t, o);
|
|
} finally{
|
|
e.next = n.n;
|
|
}
|
|
}), e.resultName && (e[e.resultName] = n.v, e.resultName = void 0), e.sent = n.v, e.next = n.n;
|
|
try {
|
|
return r.call(this, e);
|
|
} finally{
|
|
n.p = e.prev, n.n = e.next;
|
|
}
|
|
};
|
|
}
|
|
return (module.exports = _regeneratorRuntime = function _regeneratorRuntime() {
|
|
return {
|
|
wrap: function wrap(e, t, n, o) {
|
|
return r.w(a(e), t, n, o && o.reverse());
|
|
},
|
|
isGeneratorFunction: n,
|
|
mark: r.m,
|
|
awrap: function awrap(r, e) {
|
|
return new OverloadYield(r, e);
|
|
},
|
|
AsyncIterator: regeneratorAsyncIterator,
|
|
async: function async(r, e, t, o, u) {
|
|
return (n(e) ? regeneratorAsyncGen : regeneratorAsync)(a(r), e, t, o, u);
|
|
},
|
|
keys: regeneratorKeys,
|
|
values: regeneratorValues
|
|
};
|
|
}, module.exports.__esModule = true, module.exports["default"] = module.exports)();
|
|
}
|
|
module.exports = _regeneratorRuntime, module.exports.__esModule = true, module.exports["default"] = module.exports;
|
|
}),
|
|
"[project]/node_modules/@babel/runtime/regenerator/index.js [app-client] (ecmascript)", ((__turbopack_context__, module, exports) => {
|
|
|
|
// TODO(Babel 8): Remove this file.
|
|
var runtime = __turbopack_context__.r("[project]/node_modules/@babel/runtime/helpers/regeneratorRuntime.js [app-client] (ecmascript)")();
|
|
module.exports = runtime;
|
|
// Copied from https://github.com/facebook/regenerator/blob/main/packages/runtime/runtime.js#L736=
|
|
try {
|
|
regeneratorRuntime = runtime;
|
|
} catch (accidentalStrictMode) {
|
|
if (typeof globalThis === "object") {
|
|
globalThis.regeneratorRuntime = runtime;
|
|
} else {
|
|
Function("r", "regeneratorRuntime = r")(runtime);
|
|
}
|
|
}
|
|
}),
|
|
"[project]/node_modules/@babel/runtime/helpers/toPrimitive.js [app-client] (ecmascript)", ((__turbopack_context__, module, exports) => {
|
|
|
|
var _typeof = __turbopack_context__.r("[project]/node_modules/@babel/runtime/helpers/typeof.js [app-client] (ecmascript)")["default"];
|
|
function toPrimitive(t, r) {
|
|
if ("object" != _typeof(t) || !t) return t;
|
|
var e = t[Symbol.toPrimitive];
|
|
if (void 0 !== e) {
|
|
var i = e.call(t, r || "default");
|
|
if ("object" != _typeof(i)) return i;
|
|
throw new TypeError("@@toPrimitive must return a primitive value.");
|
|
}
|
|
return ("string" === r ? String : Number)(t);
|
|
}
|
|
module.exports = toPrimitive, module.exports.__esModule = true, module.exports["default"] = module.exports;
|
|
}),
|
|
"[project]/node_modules/@babel/runtime/helpers/toPropertyKey.js [app-client] (ecmascript)", ((__turbopack_context__, module, exports) => {
|
|
|
|
var _typeof = __turbopack_context__.r("[project]/node_modules/@babel/runtime/helpers/typeof.js [app-client] (ecmascript)")["default"];
|
|
var toPrimitive = __turbopack_context__.r("[project]/node_modules/@babel/runtime/helpers/toPrimitive.js [app-client] (ecmascript)");
|
|
function toPropertyKey(t) {
|
|
var i = toPrimitive(t, "string");
|
|
return "symbol" == _typeof(i) ? i : i + "";
|
|
}
|
|
module.exports = toPropertyKey, module.exports.__esModule = true, module.exports["default"] = module.exports;
|
|
}),
|
|
"[project]/node_modules/@babel/runtime/helpers/defineProperty.js [app-client] (ecmascript)", ((__turbopack_context__, module, exports) => {
|
|
|
|
var toPropertyKey = __turbopack_context__.r("[project]/node_modules/@babel/runtime/helpers/toPropertyKey.js [app-client] (ecmascript)");
|
|
function _defineProperty(e, r, t) {
|
|
return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {
|
|
value: t,
|
|
enumerable: !0,
|
|
configurable: !0,
|
|
writable: !0
|
|
}) : e[r] = t, e;
|
|
}
|
|
module.exports = _defineProperty, module.exports.__esModule = true, module.exports["default"] = module.exports;
|
|
}),
|
|
"[project]/node_modules/@babel/runtime/helpers/asyncToGenerator.js [app-client] (ecmascript)", ((__turbopack_context__, module, exports) => {
|
|
|
|
function asyncGeneratorStep(n, t, e, r, o, a, c) {
|
|
try {
|
|
var i = n[a](c), u = i.value;
|
|
} catch (n) {
|
|
return void e(n);
|
|
}
|
|
i.done ? t(u) : Promise.resolve(u).then(r, o);
|
|
}
|
|
function _asyncToGenerator(n) {
|
|
return function() {
|
|
var t = this, e = arguments;
|
|
return new Promise(function(r, o) {
|
|
var a = n.apply(t, e);
|
|
function _next(n) {
|
|
asyncGeneratorStep(a, r, o, _next, _throw, "next", n);
|
|
}
|
|
function _throw(n) {
|
|
asyncGeneratorStep(a, r, o, _next, _throw, "throw", n);
|
|
}
|
|
_next(void 0);
|
|
});
|
|
};
|
|
}
|
|
module.exports = _asyncToGenerator, module.exports.__esModule = true, module.exports["default"] = module.exports;
|
|
}),
|
|
"[project]/node_modules/@babel/runtime/helpers/arrayWithHoles.js [app-client] (ecmascript)", ((__turbopack_context__, module, exports) => {
|
|
|
|
function _arrayWithHoles(r) {
|
|
if (Array.isArray(r)) return r;
|
|
}
|
|
module.exports = _arrayWithHoles, module.exports.__esModule = true, module.exports["default"] = module.exports;
|
|
}),
|
|
"[project]/node_modules/@babel/runtime/helpers/iterableToArrayLimit.js [app-client] (ecmascript)", ((__turbopack_context__, module, exports) => {
|
|
|
|
function _iterableToArrayLimit(r, l) {
|
|
var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"];
|
|
if (null != t) {
|
|
var e, n, i, u, a = [], f = !0, o = !1;
|
|
try {
|
|
if (i = (t = t.call(r)).next, 0 === l) {
|
|
if (Object(t) !== t) return;
|
|
f = !1;
|
|
} else for(; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);
|
|
} catch (r) {
|
|
o = !0, n = r;
|
|
} finally{
|
|
try {
|
|
if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return;
|
|
} finally{
|
|
if (o) throw n;
|
|
}
|
|
}
|
|
return a;
|
|
}
|
|
}
|
|
module.exports = _iterableToArrayLimit, module.exports.__esModule = true, module.exports["default"] = module.exports;
|
|
}),
|
|
"[project]/node_modules/@babel/runtime/helpers/arrayLikeToArray.js [app-client] (ecmascript)", ((__turbopack_context__, module, exports) => {
|
|
|
|
function _arrayLikeToArray(r, a) {
|
|
(null == a || a > r.length) && (a = r.length);
|
|
for(var e = 0, n = Array(a); e < a; e++)n[e] = r[e];
|
|
return n;
|
|
}
|
|
module.exports = _arrayLikeToArray, module.exports.__esModule = true, module.exports["default"] = module.exports;
|
|
}),
|
|
"[project]/node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js [app-client] (ecmascript)", ((__turbopack_context__, module, exports) => {
|
|
|
|
var arrayLikeToArray = __turbopack_context__.r("[project]/node_modules/@babel/runtime/helpers/arrayLikeToArray.js [app-client] (ecmascript)");
|
|
function _unsupportedIterableToArray(r, a) {
|
|
if (r) {
|
|
if ("string" == typeof r) return arrayLikeToArray(r, a);
|
|
var t = ({}).toString.call(r).slice(8, -1);
|
|
return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? arrayLikeToArray(r, a) : void 0;
|
|
}
|
|
}
|
|
module.exports = _unsupportedIterableToArray, module.exports.__esModule = true, module.exports["default"] = module.exports;
|
|
}),
|
|
"[project]/node_modules/@babel/runtime/helpers/nonIterableRest.js [app-client] (ecmascript)", ((__turbopack_context__, module, exports) => {
|
|
|
|
function _nonIterableRest() {
|
|
throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
|
}
|
|
module.exports = _nonIterableRest, module.exports.__esModule = true, module.exports["default"] = module.exports;
|
|
}),
|
|
"[project]/node_modules/@babel/runtime/helpers/slicedToArray.js [app-client] (ecmascript)", ((__turbopack_context__, module, exports) => {
|
|
|
|
var arrayWithHoles = __turbopack_context__.r("[project]/node_modules/@babel/runtime/helpers/arrayWithHoles.js [app-client] (ecmascript)");
|
|
var iterableToArrayLimit = __turbopack_context__.r("[project]/node_modules/@babel/runtime/helpers/iterableToArrayLimit.js [app-client] (ecmascript)");
|
|
var unsupportedIterableToArray = __turbopack_context__.r("[project]/node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js [app-client] (ecmascript)");
|
|
var nonIterableRest = __turbopack_context__.r("[project]/node_modules/@babel/runtime/helpers/nonIterableRest.js [app-client] (ecmascript)");
|
|
function _slicedToArray(r, e) {
|
|
return arrayWithHoles(r) || iterableToArrayLimit(r, e) || unsupportedIterableToArray(r, e) || nonIterableRest();
|
|
}
|
|
module.exports = _slicedToArray, module.exports.__esModule = true, module.exports["default"] = module.exports;
|
|
}),
|
|
"[project]/node_modules/@babel/runtime/helpers/classCallCheck.js [app-client] (ecmascript)", ((__turbopack_context__, module, exports) => {
|
|
|
|
function _classCallCheck(a, n) {
|
|
if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function");
|
|
}
|
|
module.exports = _classCallCheck, module.exports.__esModule = true, module.exports["default"] = module.exports;
|
|
}),
|
|
"[project]/node_modules/@babel/runtime/helpers/createClass.js [app-client] (ecmascript)", ((__turbopack_context__, module, exports) => {
|
|
|
|
var toPropertyKey = __turbopack_context__.r("[project]/node_modules/@babel/runtime/helpers/toPropertyKey.js [app-client] (ecmascript)");
|
|
function _defineProperties(e, r) {
|
|
for(var t = 0; t < r.length; t++){
|
|
var o = r[t];
|
|
o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, toPropertyKey(o.key), o);
|
|
}
|
|
}
|
|
function _createClass(e, r, t) {
|
|
return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", {
|
|
writable: !1
|
|
}), e;
|
|
}
|
|
module.exports = _createClass, module.exports.__esModule = true, module.exports["default"] = module.exports;
|
|
}),
|
|
"[project]/node_modules/@babel/runtime/helpers/assertThisInitialized.js [app-client] (ecmascript)", ((__turbopack_context__, module, exports) => {
|
|
|
|
function _assertThisInitialized(e) {
|
|
if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
|
|
return e;
|
|
}
|
|
module.exports = _assertThisInitialized, module.exports.__esModule = true, module.exports["default"] = module.exports;
|
|
}),
|
|
"[project]/node_modules/@babel/runtime/helpers/possibleConstructorReturn.js [app-client] (ecmascript)", ((__turbopack_context__, module, exports) => {
|
|
|
|
var _typeof = __turbopack_context__.r("[project]/node_modules/@babel/runtime/helpers/typeof.js [app-client] (ecmascript)")["default"];
|
|
var assertThisInitialized = __turbopack_context__.r("[project]/node_modules/@babel/runtime/helpers/assertThisInitialized.js [app-client] (ecmascript)");
|
|
function _possibleConstructorReturn(t, e) {
|
|
if (e && ("object" == _typeof(e) || "function" == typeof e)) return e;
|
|
if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined");
|
|
return assertThisInitialized(t);
|
|
}
|
|
module.exports = _possibleConstructorReturn, module.exports.__esModule = true, module.exports["default"] = module.exports;
|
|
}),
|
|
"[project]/node_modules/@babel/runtime/helpers/getPrototypeOf.js [app-client] (ecmascript)", ((__turbopack_context__, module, exports) => {
|
|
|
|
function _getPrototypeOf(t) {
|
|
return module.exports = _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function(t) {
|
|
return t.__proto__ || Object.getPrototypeOf(t);
|
|
}, module.exports.__esModule = true, module.exports["default"] = module.exports, _getPrototypeOf(t);
|
|
}
|
|
module.exports = _getPrototypeOf, module.exports.__esModule = true, module.exports["default"] = module.exports;
|
|
}),
|
|
"[project]/node_modules/@babel/runtime/helpers/setPrototypeOf.js [app-client] (ecmascript)", ((__turbopack_context__, module, exports) => {
|
|
|
|
function _setPrototypeOf(t, e) {
|
|
return module.exports = _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function(t, e) {
|
|
return t.__proto__ = e, t;
|
|
}, module.exports.__esModule = true, module.exports["default"] = module.exports, _setPrototypeOf(t, e);
|
|
}
|
|
module.exports = _setPrototypeOf, module.exports.__esModule = true, module.exports["default"] = module.exports;
|
|
}),
|
|
"[project]/node_modules/@babel/runtime/helpers/inherits.js [app-client] (ecmascript)", ((__turbopack_context__, module, exports) => {
|
|
|
|
var setPrototypeOf = __turbopack_context__.r("[project]/node_modules/@babel/runtime/helpers/setPrototypeOf.js [app-client] (ecmascript)");
|
|
function _inherits(t, e) {
|
|
if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function");
|
|
t.prototype = Object.create(e && e.prototype, {
|
|
constructor: {
|
|
value: t,
|
|
writable: !0,
|
|
configurable: !0
|
|
}
|
|
}), Object.defineProperty(t, "prototype", {
|
|
writable: !1
|
|
}), e && setPrototypeOf(t, e);
|
|
}
|
|
module.exports = _inherits, module.exports.__esModule = true, module.exports["default"] = module.exports;
|
|
}),
|
|
"[project]/node_modules/@babel/runtime/helpers/isNativeFunction.js [app-client] (ecmascript)", ((__turbopack_context__, module, exports) => {
|
|
|
|
function _isNativeFunction(t) {
|
|
try {
|
|
return -1 !== Function.toString.call(t).indexOf("[native code]");
|
|
} catch (n) {
|
|
return "function" == typeof t;
|
|
}
|
|
}
|
|
module.exports = _isNativeFunction, module.exports.__esModule = true, module.exports["default"] = module.exports;
|
|
}),
|
|
"[project]/node_modules/@babel/runtime/helpers/isNativeReflectConstruct.js [app-client] (ecmascript)", ((__turbopack_context__, module, exports) => {
|
|
|
|
function _isNativeReflectConstruct() {
|
|
try {
|
|
var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {}));
|
|
} catch (t) {}
|
|
return (module.exports = _isNativeReflectConstruct = function _isNativeReflectConstruct() {
|
|
return !!t;
|
|
}, module.exports.__esModule = true, module.exports["default"] = module.exports)();
|
|
}
|
|
module.exports = _isNativeReflectConstruct, module.exports.__esModule = true, module.exports["default"] = module.exports;
|
|
}),
|
|
"[project]/node_modules/@babel/runtime/helpers/construct.js [app-client] (ecmascript)", ((__turbopack_context__, module, exports) => {
|
|
|
|
var isNativeReflectConstruct = __turbopack_context__.r("[project]/node_modules/@babel/runtime/helpers/isNativeReflectConstruct.js [app-client] (ecmascript)");
|
|
var setPrototypeOf = __turbopack_context__.r("[project]/node_modules/@babel/runtime/helpers/setPrototypeOf.js [app-client] (ecmascript)");
|
|
function _construct(t, e, r) {
|
|
if (isNativeReflectConstruct()) return Reflect.construct.apply(null, arguments);
|
|
var o = [
|
|
null
|
|
];
|
|
o.push.apply(o, e);
|
|
var p = new (t.bind.apply(t, o))();
|
|
return r && setPrototypeOf(p, r.prototype), p;
|
|
}
|
|
module.exports = _construct, module.exports.__esModule = true, module.exports["default"] = module.exports;
|
|
}),
|
|
"[project]/node_modules/@babel/runtime/helpers/wrapNativeSuper.js [app-client] (ecmascript)", ((__turbopack_context__, module, exports) => {
|
|
|
|
var getPrototypeOf = __turbopack_context__.r("[project]/node_modules/@babel/runtime/helpers/getPrototypeOf.js [app-client] (ecmascript)");
|
|
var setPrototypeOf = __turbopack_context__.r("[project]/node_modules/@babel/runtime/helpers/setPrototypeOf.js [app-client] (ecmascript)");
|
|
var isNativeFunction = __turbopack_context__.r("[project]/node_modules/@babel/runtime/helpers/isNativeFunction.js [app-client] (ecmascript)");
|
|
var construct = __turbopack_context__.r("[project]/node_modules/@babel/runtime/helpers/construct.js [app-client] (ecmascript)");
|
|
function _wrapNativeSuper(t) {
|
|
var r = "function" == typeof Map ? new Map() : void 0;
|
|
return module.exports = _wrapNativeSuper = function _wrapNativeSuper(t) {
|
|
if (null === t || !isNativeFunction(t)) return t;
|
|
if ("function" != typeof t) throw new TypeError("Super expression must either be null or a function");
|
|
if (void 0 !== r) {
|
|
if (r.has(t)) return r.get(t);
|
|
r.set(t, Wrapper);
|
|
}
|
|
function Wrapper() {
|
|
return construct(t, arguments, getPrototypeOf(this).constructor);
|
|
}
|
|
return Wrapper.prototype = Object.create(t.prototype, {
|
|
constructor: {
|
|
value: Wrapper,
|
|
enumerable: !1,
|
|
writable: !0,
|
|
configurable: !0
|
|
}
|
|
}), setPrototypeOf(Wrapper, t);
|
|
}, module.exports.__esModule = true, module.exports["default"] = module.exports, _wrapNativeSuper(t);
|
|
}
|
|
module.exports = _wrapNativeSuper, module.exports.__esModule = true, module.exports["default"] = module.exports;
|
|
}),
|
|
"[project]/node_modules/next-auth/core/errors.js [app-client] (ecmascript)", ((__turbopack_context__, module, exports) => {
|
|
"use strict";
|
|
|
|
var _interopRequireDefault = __turbopack_context__.r("[project]/node_modules/@babel/runtime/helpers/interopRequireDefault.js [app-client] (ecmascript)");
|
|
Object.defineProperty(exports, "__esModule", {
|
|
value: true
|
|
});
|
|
exports.UnsupportedStrategy = exports.UnknownError = exports.OAuthCallbackError = exports.MissingSecret = exports.MissingAuthorize = exports.MissingAdapterMethods = exports.MissingAdapter = exports.MissingAPIRoute = exports.InvalidCallbackUrl = exports.AccountNotLinkedError = void 0;
|
|
exports.adapterErrorHandler = adapterErrorHandler;
|
|
exports.capitalize = capitalize;
|
|
exports.eventsErrorHandler = eventsErrorHandler;
|
|
exports.upperSnake = upperSnake;
|
|
var _regenerator = _interopRequireDefault(__turbopack_context__.r("[project]/node_modules/@babel/runtime/regenerator/index.js [app-client] (ecmascript)"));
|
|
var _asyncToGenerator2 = _interopRequireDefault(__turbopack_context__.r("[project]/node_modules/@babel/runtime/helpers/asyncToGenerator.js [app-client] (ecmascript)"));
|
|
var _defineProperty2 = _interopRequireDefault(__turbopack_context__.r("[project]/node_modules/@babel/runtime/helpers/defineProperty.js [app-client] (ecmascript)"));
|
|
var _classCallCheck2 = _interopRequireDefault(__turbopack_context__.r("[project]/node_modules/@babel/runtime/helpers/classCallCheck.js [app-client] (ecmascript)"));
|
|
var _createClass2 = _interopRequireDefault(__turbopack_context__.r("[project]/node_modules/@babel/runtime/helpers/createClass.js [app-client] (ecmascript)"));
|
|
var _possibleConstructorReturn2 = _interopRequireDefault(__turbopack_context__.r("[project]/node_modules/@babel/runtime/helpers/possibleConstructorReturn.js [app-client] (ecmascript)"));
|
|
var _getPrototypeOf2 = _interopRequireDefault(__turbopack_context__.r("[project]/node_modules/@babel/runtime/helpers/getPrototypeOf.js [app-client] (ecmascript)"));
|
|
var _inherits2 = _interopRequireDefault(__turbopack_context__.r("[project]/node_modules/@babel/runtime/helpers/inherits.js [app-client] (ecmascript)"));
|
|
var _wrapNativeSuper2 = _interopRequireDefault(__turbopack_context__.r("[project]/node_modules/@babel/runtime/helpers/wrapNativeSuper.js [app-client] (ecmascript)"));
|
|
function _callSuper(t, o, e) {
|
|
return o = (0, _getPrototypeOf2.default)(o), (0, _possibleConstructorReturn2.default)(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2.default)(t).constructor) : o.apply(t, e));
|
|
}
|
|
function _isNativeReflectConstruct() {
|
|
try {
|
|
var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {}));
|
|
} catch (t) {}
|
|
return (_isNativeReflectConstruct = function _isNativeReflectConstruct() {
|
|
return !!t;
|
|
})();
|
|
}
|
|
var UnknownError = exports.UnknownError = function(_Error) {
|
|
function UnknownError(error) {
|
|
var _message;
|
|
var _this;
|
|
(0, _classCallCheck2.default)(this, UnknownError);
|
|
_this = _callSuper(this, UnknownError, [
|
|
(_message = error === null || error === void 0 ? void 0 : error.message) !== null && _message !== void 0 ? _message : error
|
|
]);
|
|
_this.name = "UnknownError";
|
|
_this.code = error.code;
|
|
if (error instanceof Error) {
|
|
_this.stack = error.stack;
|
|
}
|
|
return _this;
|
|
}
|
|
(0, _inherits2.default)(UnknownError, _Error);
|
|
return (0, _createClass2.default)(UnknownError, [
|
|
{
|
|
key: "toJSON",
|
|
value: function toJSON() {
|
|
return {
|
|
name: this.name,
|
|
message: this.message,
|
|
stack: this.stack
|
|
};
|
|
}
|
|
}
|
|
]);
|
|
}((0, _wrapNativeSuper2.default)(Error));
|
|
var OAuthCallbackError = exports.OAuthCallbackError = function(_UnknownError) {
|
|
function OAuthCallbackError() {
|
|
var _this2;
|
|
(0, _classCallCheck2.default)(this, OAuthCallbackError);
|
|
for(var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){
|
|
args[_key] = arguments[_key];
|
|
}
|
|
_this2 = _callSuper(this, OAuthCallbackError, [].concat(args));
|
|
(0, _defineProperty2.default)(_this2, "name", "OAuthCallbackError");
|
|
return _this2;
|
|
}
|
|
(0, _inherits2.default)(OAuthCallbackError, _UnknownError);
|
|
return (0, _createClass2.default)(OAuthCallbackError);
|
|
}(UnknownError);
|
|
var AccountNotLinkedError = exports.AccountNotLinkedError = function(_UnknownError2) {
|
|
function AccountNotLinkedError() {
|
|
var _this3;
|
|
(0, _classCallCheck2.default)(this, AccountNotLinkedError);
|
|
for(var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++){
|
|
args[_key2] = arguments[_key2];
|
|
}
|
|
_this3 = _callSuper(this, AccountNotLinkedError, [].concat(args));
|
|
(0, _defineProperty2.default)(_this3, "name", "AccountNotLinkedError");
|
|
return _this3;
|
|
}
|
|
(0, _inherits2.default)(AccountNotLinkedError, _UnknownError2);
|
|
return (0, _createClass2.default)(AccountNotLinkedError);
|
|
}(UnknownError);
|
|
var MissingAPIRoute = exports.MissingAPIRoute = function(_UnknownError3) {
|
|
function MissingAPIRoute() {
|
|
var _this4;
|
|
(0, _classCallCheck2.default)(this, MissingAPIRoute);
|
|
for(var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++){
|
|
args[_key3] = arguments[_key3];
|
|
}
|
|
_this4 = _callSuper(this, MissingAPIRoute, [].concat(args));
|
|
(0, _defineProperty2.default)(_this4, "name", "MissingAPIRouteError");
|
|
(0, _defineProperty2.default)(_this4, "code", "MISSING_NEXTAUTH_API_ROUTE_ERROR");
|
|
return _this4;
|
|
}
|
|
(0, _inherits2.default)(MissingAPIRoute, _UnknownError3);
|
|
return (0, _createClass2.default)(MissingAPIRoute);
|
|
}(UnknownError);
|
|
var MissingSecret = exports.MissingSecret = function(_UnknownError4) {
|
|
function MissingSecret() {
|
|
var _this5;
|
|
(0, _classCallCheck2.default)(this, MissingSecret);
|
|
for(var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++){
|
|
args[_key4] = arguments[_key4];
|
|
}
|
|
_this5 = _callSuper(this, MissingSecret, [].concat(args));
|
|
(0, _defineProperty2.default)(_this5, "name", "MissingSecretError");
|
|
(0, _defineProperty2.default)(_this5, "code", "NO_SECRET");
|
|
return _this5;
|
|
}
|
|
(0, _inherits2.default)(MissingSecret, _UnknownError4);
|
|
return (0, _createClass2.default)(MissingSecret);
|
|
}(UnknownError);
|
|
var MissingAuthorize = exports.MissingAuthorize = function(_UnknownError5) {
|
|
function MissingAuthorize() {
|
|
var _this6;
|
|
(0, _classCallCheck2.default)(this, MissingAuthorize);
|
|
for(var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++){
|
|
args[_key5] = arguments[_key5];
|
|
}
|
|
_this6 = _callSuper(this, MissingAuthorize, [].concat(args));
|
|
(0, _defineProperty2.default)(_this6, "name", "MissingAuthorizeError");
|
|
(0, _defineProperty2.default)(_this6, "code", "CALLBACK_CREDENTIALS_HANDLER_ERROR");
|
|
return _this6;
|
|
}
|
|
(0, _inherits2.default)(MissingAuthorize, _UnknownError5);
|
|
return (0, _createClass2.default)(MissingAuthorize);
|
|
}(UnknownError);
|
|
var MissingAdapter = exports.MissingAdapter = function(_UnknownError6) {
|
|
function MissingAdapter() {
|
|
var _this7;
|
|
(0, _classCallCheck2.default)(this, MissingAdapter);
|
|
for(var _len6 = arguments.length, args = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++){
|
|
args[_key6] = arguments[_key6];
|
|
}
|
|
_this7 = _callSuper(this, MissingAdapter, [].concat(args));
|
|
(0, _defineProperty2.default)(_this7, "name", "MissingAdapterError");
|
|
(0, _defineProperty2.default)(_this7, "code", "EMAIL_REQUIRES_ADAPTER_ERROR");
|
|
return _this7;
|
|
}
|
|
(0, _inherits2.default)(MissingAdapter, _UnknownError6);
|
|
return (0, _createClass2.default)(MissingAdapter);
|
|
}(UnknownError);
|
|
var MissingAdapterMethods = exports.MissingAdapterMethods = function(_UnknownError7) {
|
|
function MissingAdapterMethods() {
|
|
var _this8;
|
|
(0, _classCallCheck2.default)(this, MissingAdapterMethods);
|
|
for(var _len7 = arguments.length, args = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++){
|
|
args[_key7] = arguments[_key7];
|
|
}
|
|
_this8 = _callSuper(this, MissingAdapterMethods, [].concat(args));
|
|
(0, _defineProperty2.default)(_this8, "name", "MissingAdapterMethodsError");
|
|
(0, _defineProperty2.default)(_this8, "code", "MISSING_ADAPTER_METHODS_ERROR");
|
|
return _this8;
|
|
}
|
|
(0, _inherits2.default)(MissingAdapterMethods, _UnknownError7);
|
|
return (0, _createClass2.default)(MissingAdapterMethods);
|
|
}(UnknownError);
|
|
var UnsupportedStrategy = exports.UnsupportedStrategy = function(_UnknownError8) {
|
|
function UnsupportedStrategy() {
|
|
var _this9;
|
|
(0, _classCallCheck2.default)(this, UnsupportedStrategy);
|
|
for(var _len8 = arguments.length, args = new Array(_len8), _key8 = 0; _key8 < _len8; _key8++){
|
|
args[_key8] = arguments[_key8];
|
|
}
|
|
_this9 = _callSuper(this, UnsupportedStrategy, [].concat(args));
|
|
(0, _defineProperty2.default)(_this9, "name", "UnsupportedStrategyError");
|
|
(0, _defineProperty2.default)(_this9, "code", "CALLBACK_CREDENTIALS_JWT_ERROR");
|
|
return _this9;
|
|
}
|
|
(0, _inherits2.default)(UnsupportedStrategy, _UnknownError8);
|
|
return (0, _createClass2.default)(UnsupportedStrategy);
|
|
}(UnknownError);
|
|
var InvalidCallbackUrl = exports.InvalidCallbackUrl = function(_UnknownError9) {
|
|
function InvalidCallbackUrl() {
|
|
var _this10;
|
|
(0, _classCallCheck2.default)(this, InvalidCallbackUrl);
|
|
for(var _len9 = arguments.length, args = new Array(_len9), _key9 = 0; _key9 < _len9; _key9++){
|
|
args[_key9] = arguments[_key9];
|
|
}
|
|
_this10 = _callSuper(this, InvalidCallbackUrl, [].concat(args));
|
|
(0, _defineProperty2.default)(_this10, "name", "InvalidCallbackUrl");
|
|
(0, _defineProperty2.default)(_this10, "code", "INVALID_CALLBACK_URL_ERROR");
|
|
return _this10;
|
|
}
|
|
(0, _inherits2.default)(InvalidCallbackUrl, _UnknownError9);
|
|
return (0, _createClass2.default)(InvalidCallbackUrl);
|
|
}(UnknownError);
|
|
function upperSnake(s) {
|
|
return s.replace(/([A-Z])/g, "_$1").toUpperCase();
|
|
}
|
|
function capitalize(s) {
|
|
return "".concat(s[0].toUpperCase()).concat(s.slice(1));
|
|
}
|
|
function eventsErrorHandler(methods, logger) {
|
|
return Object.keys(methods).reduce(function(acc, name) {
|
|
acc[name] = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee() {
|
|
var method, _args = arguments;
|
|
return _regenerator.default.wrap(function _callee$(_context) {
|
|
while(1)switch(_context.prev = _context.next){
|
|
case 0:
|
|
_context.prev = 0;
|
|
method = methods[name];
|
|
_context.next = 4;
|
|
return method.apply(void 0, _args);
|
|
case 4:
|
|
return _context.abrupt("return", _context.sent);
|
|
case 7:
|
|
_context.prev = 7;
|
|
_context.t0 = _context["catch"](0);
|
|
logger.error("".concat(upperSnake(name), "_EVENT_ERROR"), _context.t0);
|
|
case 10:
|
|
case "end":
|
|
return _context.stop();
|
|
}
|
|
}, _callee, null, [
|
|
[
|
|
0,
|
|
7
|
|
]
|
|
]);
|
|
}));
|
|
return acc;
|
|
}, {});
|
|
}
|
|
function adapterErrorHandler(adapter, logger) {
|
|
if (!adapter) return;
|
|
return Object.keys(adapter).reduce(function(acc, name) {
|
|
acc[name] = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee2() {
|
|
var _len10, args, _key10, method, e, _args2 = arguments;
|
|
return _regenerator.default.wrap(function _callee2$(_context2) {
|
|
while(1)switch(_context2.prev = _context2.next){
|
|
case 0:
|
|
_context2.prev = 0;
|
|
for(_len10 = _args2.length, args = new Array(_len10), _key10 = 0; _key10 < _len10; _key10++){
|
|
args[_key10] = _args2[_key10];
|
|
}
|
|
logger.debug("adapter_".concat(name), {
|
|
args: args
|
|
});
|
|
method = adapter[name];
|
|
_context2.next = 6;
|
|
return method.apply(void 0, args);
|
|
case 6:
|
|
return _context2.abrupt("return", _context2.sent);
|
|
case 9:
|
|
_context2.prev = 9;
|
|
_context2.t0 = _context2["catch"](0);
|
|
logger.error("adapter_error_".concat(name), _context2.t0);
|
|
e = new UnknownError(_context2.t0);
|
|
e.name = "".concat(capitalize(name), "Error");
|
|
throw e;
|
|
case 15:
|
|
case "end":
|
|
return _context2.stop();
|
|
}
|
|
}, _callee2, null, [
|
|
[
|
|
0,
|
|
9
|
|
]
|
|
]);
|
|
}));
|
|
return acc;
|
|
}, {});
|
|
}
|
|
}),
|
|
"[project]/node_modules/next-auth/utils/logger.js [app-client] (ecmascript)", ((__turbopack_context__, module, exports) => {
|
|
"use strict";
|
|
|
|
var _interopRequireDefault = __turbopack_context__.r("[project]/node_modules/@babel/runtime/helpers/interopRequireDefault.js [app-client] (ecmascript)");
|
|
Object.defineProperty(exports, "__esModule", {
|
|
value: true
|
|
});
|
|
exports.default = void 0;
|
|
exports.proxyLogger = proxyLogger;
|
|
exports.setLogger = setLogger;
|
|
var _regenerator = _interopRequireDefault(__turbopack_context__.r("[project]/node_modules/@babel/runtime/regenerator/index.js [app-client] (ecmascript)"));
|
|
var _defineProperty2 = _interopRequireDefault(__turbopack_context__.r("[project]/node_modules/@babel/runtime/helpers/defineProperty.js [app-client] (ecmascript)"));
|
|
var _asyncToGenerator2 = _interopRequireDefault(__turbopack_context__.r("[project]/node_modules/@babel/runtime/helpers/asyncToGenerator.js [app-client] (ecmascript)"));
|
|
var _errors = __turbopack_context__.r("[project]/node_modules/next-auth/core/errors.js [app-client] (ecmascript)");
|
|
function ownKeys(e, r) {
|
|
var t = Object.keys(e);
|
|
if (Object.getOwnPropertySymbols) {
|
|
var o = Object.getOwnPropertySymbols(e);
|
|
r && (o = o.filter(function(r) {
|
|
return Object.getOwnPropertyDescriptor(e, r).enumerable;
|
|
})), t.push.apply(t, o);
|
|
}
|
|
return t;
|
|
}
|
|
function _objectSpread(e) {
|
|
for(var r = 1; r < arguments.length; r++){
|
|
var t = null != arguments[r] ? arguments[r] : {};
|
|
r % 2 ? ownKeys(Object(t), !0).forEach(function(r) {
|
|
(0, _defineProperty2.default)(e, r, t[r]);
|
|
}) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function(r) {
|
|
Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));
|
|
});
|
|
}
|
|
return e;
|
|
}
|
|
function formatError(o) {
|
|
if (o instanceof Error && !(o instanceof _errors.UnknownError)) {
|
|
return {
|
|
message: o.message,
|
|
stack: o.stack,
|
|
name: o.name
|
|
};
|
|
}
|
|
if (hasErrorProperty(o)) {
|
|
var _o$message;
|
|
o.error = formatError(o.error);
|
|
o.message = (_o$message = o.message) !== null && _o$message !== void 0 ? _o$message : o.error.message;
|
|
}
|
|
return o;
|
|
}
|
|
function hasErrorProperty(x) {
|
|
return !!(x !== null && x !== void 0 && x.error);
|
|
}
|
|
var _logger = {
|
|
error: function error(code, metadata) {
|
|
metadata = formatError(metadata);
|
|
console.error("[next-auth][error][".concat(code, "]"), "\nhttps://next-auth.js.org/errors#".concat(code.toLowerCase()), metadata.message, metadata);
|
|
},
|
|
warn: function warn(code) {
|
|
console.warn("[next-auth][warn][".concat(code, "]"), "\nhttps://next-auth.js.org/warnings#".concat(code.toLowerCase()));
|
|
},
|
|
debug: function debug(code, metadata) {
|
|
console.log("[next-auth][debug][".concat(code, "]"), metadata);
|
|
}
|
|
};
|
|
function setLogger() {
|
|
var newLogger = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
var debug = arguments.length > 1 ? arguments[1] : undefined;
|
|
if (!debug) _logger.debug = function() {};
|
|
if (newLogger.error) _logger.error = newLogger.error;
|
|
if (newLogger.warn) _logger.warn = newLogger.warn;
|
|
if (newLogger.debug) _logger.debug = newLogger.debug;
|
|
}
|
|
var _default = exports.default = _logger;
|
|
function proxyLogger() {
|
|
var logger = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _logger;
|
|
var basePath = arguments.length > 1 ? arguments[1] : undefined;
|
|
try {
|
|
if (typeof window === "undefined") {
|
|
return logger;
|
|
}
|
|
var clientLogger = {};
|
|
var _loop = function _loop(level) {
|
|
clientLogger[level] = function() {
|
|
var _ref = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(code, metadata) {
|
|
var url, body;
|
|
return _regenerator.default.wrap(function _callee$(_context) {
|
|
while(1)switch(_context.prev = _context.next){
|
|
case 0:
|
|
_logger[level](code, metadata);
|
|
if (level === "error") {
|
|
metadata = formatError(metadata);
|
|
}
|
|
;
|
|
metadata.client = true;
|
|
url = "".concat(basePath, "/_log");
|
|
body = new URLSearchParams(_objectSpread({
|
|
level: level,
|
|
code: code
|
|
}, metadata));
|
|
if (!navigator.sendBeacon) {
|
|
_context.next = 8;
|
|
break;
|
|
}
|
|
return _context.abrupt("return", navigator.sendBeacon(url, body));
|
|
case 8:
|
|
_context.next = 10;
|
|
return fetch(url, {
|
|
method: "POST",
|
|
body: body,
|
|
keepalive: true
|
|
});
|
|
case 10:
|
|
return _context.abrupt("return", _context.sent);
|
|
case 11:
|
|
case "end":
|
|
return _context.stop();
|
|
}
|
|
}, _callee);
|
|
}));
|
|
return function(_x, _x2) {
|
|
return _ref.apply(this, arguments);
|
|
};
|
|
}();
|
|
};
|
|
for(var level in logger){
|
|
_loop(level);
|
|
}
|
|
return clientLogger;
|
|
} catch (_unused) {
|
|
return _logger;
|
|
}
|
|
}
|
|
}),
|
|
"[project]/node_modules/next-auth/utils/parse-url.js [app-client] (ecmascript)", ((__turbopack_context__, module, exports) => {
|
|
"use strict";
|
|
|
|
Object.defineProperty(exports, "__esModule", {
|
|
value: true
|
|
});
|
|
exports.default = parseUrl;
|
|
function parseUrl(url) {
|
|
var _url2;
|
|
const defaultUrl = new URL("http://localhost:3000/api/auth");
|
|
if (url && !url.startsWith("http")) {
|
|
url = `https://${url}`;
|
|
}
|
|
const _url = new URL((_url2 = url) !== null && _url2 !== void 0 ? _url2 : defaultUrl);
|
|
const path = (_url.pathname === "/" ? defaultUrl.pathname : _url.pathname).replace(/\/$/, "");
|
|
const base = `${_url.origin}${path}`;
|
|
return {
|
|
origin: _url.origin,
|
|
host: _url.host,
|
|
path,
|
|
base,
|
|
toString: ()=>base
|
|
};
|
|
}
|
|
}),
|
|
"[project]/node_modules/next-auth/client/_utils.js [app-client] (ecmascript)", ((__turbopack_context__, module, exports) => {
|
|
"use strict";
|
|
|
|
var _interopRequireDefault = __turbopack_context__.r("[project]/node_modules/@babel/runtime/helpers/interopRequireDefault.js [app-client] (ecmascript)");
|
|
Object.defineProperty(exports, "__esModule", {
|
|
value: true
|
|
});
|
|
exports.BroadcastChannel = BroadcastChannel;
|
|
exports.apiBaseUrl = apiBaseUrl;
|
|
exports.fetchData = fetchData;
|
|
exports.now = now;
|
|
var _regenerator = _interopRequireDefault(__turbopack_context__.r("[project]/node_modules/@babel/runtime/regenerator/index.js [app-client] (ecmascript)"));
|
|
var _defineProperty2 = _interopRequireDefault(__turbopack_context__.r("[project]/node_modules/@babel/runtime/helpers/defineProperty.js [app-client] (ecmascript)"));
|
|
var _asyncToGenerator2 = _interopRequireDefault(__turbopack_context__.r("[project]/node_modules/@babel/runtime/helpers/asyncToGenerator.js [app-client] (ecmascript)"));
|
|
function ownKeys(e, r) {
|
|
var t = Object.keys(e);
|
|
if (Object.getOwnPropertySymbols) {
|
|
var o = Object.getOwnPropertySymbols(e);
|
|
r && (o = o.filter(function(r) {
|
|
return Object.getOwnPropertyDescriptor(e, r).enumerable;
|
|
})), t.push.apply(t, o);
|
|
}
|
|
return t;
|
|
}
|
|
function _objectSpread(e) {
|
|
for(var r = 1; r < arguments.length; r++){
|
|
var t = null != arguments[r] ? arguments[r] : {};
|
|
r % 2 ? ownKeys(Object(t), !0).forEach(function(r) {
|
|
(0, _defineProperty2.default)(e, r, t[r]);
|
|
}) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function(r) {
|
|
Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));
|
|
});
|
|
}
|
|
return e;
|
|
}
|
|
function fetchData(_x, _x2, _x3) {
|
|
return _fetchData.apply(this, arguments);
|
|
}
|
|
function _fetchData() {
|
|
_fetchData = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(path, __NEXTAUTH, logger) {
|
|
var _ref, ctx, _ref$req, req, url, _req$headers, options, res, data, _args = arguments;
|
|
return _regenerator.default.wrap(function _callee$(_context) {
|
|
while(1)switch(_context.prev = _context.next){
|
|
case 0:
|
|
_ref = _args.length > 3 && _args[3] !== undefined ? _args[3] : {}, ctx = _ref.ctx, _ref$req = _ref.req, req = _ref$req === void 0 ? ctx === null || ctx === void 0 ? void 0 : ctx.req : _ref$req;
|
|
url = "".concat(apiBaseUrl(__NEXTAUTH), "/").concat(path);
|
|
_context.prev = 2;
|
|
options = {
|
|
headers: _objectSpread({
|
|
"Content-Type": "application/json"
|
|
}, req !== null && req !== void 0 && (_req$headers = req.headers) !== null && _req$headers !== void 0 && _req$headers.cookie ? {
|
|
cookie: req.headers.cookie
|
|
} : {})
|
|
};
|
|
if (req !== null && req !== void 0 && req.body) {
|
|
options.body = JSON.stringify(req.body);
|
|
options.method = "POST";
|
|
}
|
|
_context.next = 7;
|
|
return fetch(url, options);
|
|
case 7:
|
|
res = _context.sent;
|
|
_context.next = 10;
|
|
return res.json();
|
|
case 10:
|
|
data = _context.sent;
|
|
if (res.ok) {
|
|
_context.next = 13;
|
|
break;
|
|
}
|
|
throw data;
|
|
case 13:
|
|
return _context.abrupt("return", Object.keys(data).length > 0 ? data : null);
|
|
case 16:
|
|
_context.prev = 16;
|
|
_context.t0 = _context["catch"](2);
|
|
logger.error("CLIENT_FETCH_ERROR", {
|
|
error: _context.t0,
|
|
url: url
|
|
});
|
|
return _context.abrupt("return", null);
|
|
case 20:
|
|
case "end":
|
|
return _context.stop();
|
|
}
|
|
}, _callee, null, [
|
|
[
|
|
2,
|
|
16
|
|
]
|
|
]);
|
|
}));
|
|
return _fetchData.apply(this, arguments);
|
|
}
|
|
function apiBaseUrl(__NEXTAUTH) {
|
|
if (typeof window === "undefined") {
|
|
return "".concat(__NEXTAUTH.baseUrlServer).concat(__NEXTAUTH.basePathServer);
|
|
}
|
|
return __NEXTAUTH.basePath;
|
|
}
|
|
function now() {
|
|
return Math.floor(Date.now() / 1000);
|
|
}
|
|
function BroadcastChannel() {
|
|
var name = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : "nextauth.message";
|
|
return {
|
|
receive: function receive(onReceive) {
|
|
var handler = function handler(event) {
|
|
var _event$newValue;
|
|
if (event.key !== name) return;
|
|
var message = JSON.parse((_event$newValue = event.newValue) !== null && _event$newValue !== void 0 ? _event$newValue : "{}");
|
|
if ((message === null || message === void 0 ? void 0 : message.event) !== "session" || !(message !== null && message !== void 0 && message.data)) return;
|
|
onReceive(message);
|
|
};
|
|
window.addEventListener("storage", handler);
|
|
return function() {
|
|
return window.removeEventListener("storage", handler);
|
|
};
|
|
},
|
|
post: function post(message) {
|
|
if (typeof window === "undefined") return;
|
|
try {
|
|
localStorage.setItem(name, JSON.stringify(_objectSpread(_objectSpread({}, message), {}, {
|
|
timestamp: now()
|
|
})));
|
|
} catch (_unused) {}
|
|
}
|
|
};
|
|
}
|
|
}),
|
|
"[project]/node_modules/next-auth/react/types.js [app-client] (ecmascript)", ((__turbopack_context__, module, exports) => {
|
|
"use strict";
|
|
|
|
Object.defineProperty(exports, "__esModule", {
|
|
value: true
|
|
});
|
|
}),
|
|
"[project]/node_modules/next-auth/react/index.js [app-client] (ecmascript)", ((__turbopack_context__, module, exports) => {
|
|
"use strict";
|
|
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$build$2f$polyfills$2f$process$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__ = /*#__PURE__*/ __turbopack_context__.i("[project]/node_modules/next/dist/build/polyfills/process.js [app-client] (ecmascript)");
|
|
"use strict";
|
|
var _interopRequireDefault = __turbopack_context__.r("[project]/node_modules/@babel/runtime/helpers/interopRequireDefault.js [app-client] (ecmascript)");
|
|
var _typeof = __turbopack_context__.r("[project]/node_modules/@babel/runtime/helpers/typeof.js [app-client] (ecmascript)");
|
|
Object.defineProperty(exports, "__esModule", {
|
|
value: true
|
|
});
|
|
var _exportNames = {
|
|
SessionContext: true,
|
|
useSession: true,
|
|
getSession: true,
|
|
getCsrfToken: true,
|
|
getProviders: true,
|
|
signIn: true,
|
|
signOut: true,
|
|
SessionProvider: true
|
|
};
|
|
exports.SessionContext = void 0;
|
|
exports.SessionProvider = SessionProvider;
|
|
exports.getCsrfToken = getCsrfToken;
|
|
exports.getProviders = getProviders;
|
|
exports.getSession = getSession;
|
|
exports.signIn = signIn;
|
|
exports.signOut = signOut;
|
|
exports.useSession = useSession;
|
|
var _regenerator = _interopRequireDefault(__turbopack_context__.r("[project]/node_modules/@babel/runtime/regenerator/index.js [app-client] (ecmascript)"));
|
|
var _defineProperty2 = _interopRequireDefault(__turbopack_context__.r("[project]/node_modules/@babel/runtime/helpers/defineProperty.js [app-client] (ecmascript)"));
|
|
var _asyncToGenerator2 = _interopRequireDefault(__turbopack_context__.r("[project]/node_modules/@babel/runtime/helpers/asyncToGenerator.js [app-client] (ecmascript)"));
|
|
var _slicedToArray2 = _interopRequireDefault(__turbopack_context__.r("[project]/node_modules/@babel/runtime/helpers/slicedToArray.js [app-client] (ecmascript)"));
|
|
var React = _interopRequireWildcard(__turbopack_context__.r("[project]/node_modules/next/dist/compiled/react/index.js [app-client] (ecmascript)"));
|
|
var _logger2 = _interopRequireWildcard(__turbopack_context__.r("[project]/node_modules/next-auth/utils/logger.js [app-client] (ecmascript)"));
|
|
var _parseUrl = _interopRequireDefault(__turbopack_context__.r("[project]/node_modules/next-auth/utils/parse-url.js [app-client] (ecmascript)"));
|
|
var _utils = __turbopack_context__.r("[project]/node_modules/next-auth/client/_utils.js [app-client] (ecmascript)");
|
|
var _jsxRuntime = __turbopack_context__.r("[project]/node_modules/next/dist/compiled/react/jsx-runtime.js [app-client] (ecmascript)");
|
|
var _types = __turbopack_context__.r("[project]/node_modules/next-auth/react/types.js [app-client] (ecmascript)");
|
|
Object.keys(_types).forEach(function(key) {
|
|
if (key === "default" || key === "__esModule") return;
|
|
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
if (key in exports && exports[key] === _types[key]) return;
|
|
Object.defineProperty(exports, key, {
|
|
enumerable: true,
|
|
get: function get() {
|
|
return _types[key];
|
|
}
|
|
});
|
|
});
|
|
var _process$env$NEXTAUTH, _ref, _process$env$NEXTAUTH2, _process$env$NEXTAUTH3, _React$createContext;
|
|
function _getRequireWildcardCache(e) {
|
|
if ("function" != typeof WeakMap) return null;
|
|
var r = new WeakMap(), t = new WeakMap();
|
|
return (_getRequireWildcardCache = function _getRequireWildcardCache(e) {
|
|
return e ? t : r;
|
|
})(e);
|
|
}
|
|
function _interopRequireWildcard(e, r) {
|
|
if (!r && e && e.__esModule) return e;
|
|
if (null === e || "object" != _typeof(e) && "function" != typeof e) return {
|
|
default: e
|
|
};
|
|
var t = _getRequireWildcardCache(r);
|
|
if (t && t.has(e)) return t.get(e);
|
|
var n = {
|
|
__proto__: null
|
|
}, a = Object.defineProperty && Object.getOwnPropertyDescriptor;
|
|
for(var u in e)if ("default" !== u && ({}).hasOwnProperty.call(e, u)) {
|
|
var i = a ? Object.getOwnPropertyDescriptor(e, u) : null;
|
|
i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u];
|
|
}
|
|
return n.default = e, t && t.set(e, n), n;
|
|
}
|
|
function ownKeys(e, r) {
|
|
var t = Object.keys(e);
|
|
if (Object.getOwnPropertySymbols) {
|
|
var o = Object.getOwnPropertySymbols(e);
|
|
r && (o = o.filter(function(r) {
|
|
return Object.getOwnPropertyDescriptor(e, r).enumerable;
|
|
})), t.push.apply(t, o);
|
|
}
|
|
return t;
|
|
}
|
|
function _objectSpread(e) {
|
|
for(var r = 1; r < arguments.length; r++){
|
|
var t = null != arguments[r] ? arguments[r] : {};
|
|
r % 2 ? ownKeys(Object(t), !0).forEach(function(r) {
|
|
(0, _defineProperty2.default)(e, r, t[r]);
|
|
}) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function(r) {
|
|
Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));
|
|
});
|
|
}
|
|
return e;
|
|
}
|
|
var __NEXTAUTH = {
|
|
baseUrl: (0, _parseUrl.default)((_process$env$NEXTAUTH = __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$build$2f$polyfills$2f$process$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["default"].env.NEXTAUTH_URL) !== null && _process$env$NEXTAUTH !== void 0 ? _process$env$NEXTAUTH : __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$build$2f$polyfills$2f$process$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["default"].env.VERCEL_URL).origin,
|
|
basePath: (0, _parseUrl.default)(__TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$build$2f$polyfills$2f$process$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["default"].env.NEXTAUTH_URL).path,
|
|
baseUrlServer: (0, _parseUrl.default)((_ref = (_process$env$NEXTAUTH2 = __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$build$2f$polyfills$2f$process$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["default"].env.NEXTAUTH_URL_INTERNAL) !== null && _process$env$NEXTAUTH2 !== void 0 ? _process$env$NEXTAUTH2 : __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$build$2f$polyfills$2f$process$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["default"].env.NEXTAUTH_URL) !== null && _ref !== void 0 ? _ref : __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$build$2f$polyfills$2f$process$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["default"].env.VERCEL_URL).origin,
|
|
basePathServer: (0, _parseUrl.default)((_process$env$NEXTAUTH3 = __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$build$2f$polyfills$2f$process$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["default"].env.NEXTAUTH_URL_INTERNAL) !== null && _process$env$NEXTAUTH3 !== void 0 ? _process$env$NEXTAUTH3 : __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$build$2f$polyfills$2f$process$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["default"].env.NEXTAUTH_URL).path,
|
|
_lastSync: 0,
|
|
_session: undefined,
|
|
_getSession: function _getSession() {}
|
|
};
|
|
var broadcast = (0, _utils.BroadcastChannel)();
|
|
var logger = (0, _logger2.proxyLogger)(_logger2.default, __NEXTAUTH.basePath);
|
|
function useOnline() {
|
|
var _React$useState = React.useState(typeof navigator !== "undefined" ? navigator.onLine : false), _React$useState2 = (0, _slicedToArray2.default)(_React$useState, 2), isOnline = _React$useState2[0], setIsOnline = _React$useState2[1];
|
|
var setOnline = function setOnline() {
|
|
return setIsOnline(true);
|
|
};
|
|
var setOffline = function setOffline() {
|
|
return setIsOnline(false);
|
|
};
|
|
React.useEffect({
|
|
"useOnline.useEffect": function() {
|
|
window.addEventListener("online", setOnline);
|
|
window.addEventListener("offline", setOffline);
|
|
return ({
|
|
"useOnline.useEffect": function() {
|
|
window.removeEventListener("online", setOnline);
|
|
window.removeEventListener("offline", setOffline);
|
|
}
|
|
})["useOnline.useEffect"];
|
|
}
|
|
}["useOnline.useEffect"], []);
|
|
return isOnline;
|
|
}
|
|
var SessionContext = exports.SessionContext = (_React$createContext = React.createContext) === null || _React$createContext === void 0 ? void 0 : _React$createContext.call(React, undefined);
|
|
function useSession(options) {
|
|
if (!SessionContext) {
|
|
throw new Error("React Context is unavailable in Server Components");
|
|
}
|
|
var value = React.useContext(SessionContext);
|
|
if (!value && ("TURBOPACK compile-time value", "development") !== "production") {
|
|
throw new Error("[next-auth]: `useSession` must be wrapped in a <SessionProvider />");
|
|
}
|
|
var _ref2 = options !== null && options !== void 0 ? options : {}, required = _ref2.required, onUnauthenticated = _ref2.onUnauthenticated;
|
|
var requiredAndNotLoading = required && value.status === "unauthenticated";
|
|
React.useEffect({
|
|
"useSession.useEffect": function() {
|
|
if (requiredAndNotLoading) {
|
|
var url = "/api/auth/signin?".concat(new URLSearchParams({
|
|
error: "SessionRequired",
|
|
callbackUrl: window.location.href
|
|
}));
|
|
if (onUnauthenticated) onUnauthenticated();
|
|
else window.location.href = url;
|
|
}
|
|
}
|
|
}["useSession.useEffect"], [
|
|
requiredAndNotLoading,
|
|
onUnauthenticated
|
|
]);
|
|
if (requiredAndNotLoading) {
|
|
return {
|
|
data: value.data,
|
|
update: value.update,
|
|
status: "loading"
|
|
};
|
|
}
|
|
return value;
|
|
}
|
|
function getSession(_x) {
|
|
return _getSession2.apply(this, arguments);
|
|
}
|
|
function _getSession2() {
|
|
_getSession2 = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee3(params) {
|
|
var _params$broadcast;
|
|
var session;
|
|
return _regenerator.default.wrap(function _callee3$(_context3) {
|
|
while(1)switch(_context3.prev = _context3.next){
|
|
case 0:
|
|
_context3.next = 2;
|
|
return (0, _utils.fetchData)("session", __NEXTAUTH, logger, params);
|
|
case 2:
|
|
session = _context3.sent;
|
|
if ((_params$broadcast = params === null || params === void 0 ? void 0 : params.broadcast) !== null && _params$broadcast !== void 0 ? _params$broadcast : true) {
|
|
broadcast.post({
|
|
event: "session",
|
|
data: {
|
|
trigger: "getSession"
|
|
}
|
|
});
|
|
}
|
|
return _context3.abrupt("return", session);
|
|
case 5:
|
|
case "end":
|
|
return _context3.stop();
|
|
}
|
|
}, _callee3);
|
|
}));
|
|
return _getSession2.apply(this, arguments);
|
|
}
|
|
function getCsrfToken(_x2) {
|
|
return _getCsrfToken.apply(this, arguments);
|
|
}
|
|
function _getCsrfToken() {
|
|
_getCsrfToken = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee4(params) {
|
|
var response;
|
|
return _regenerator.default.wrap(function _callee4$(_context4) {
|
|
while(1)switch(_context4.prev = _context4.next){
|
|
case 0:
|
|
_context4.next = 2;
|
|
return (0, _utils.fetchData)("csrf", __NEXTAUTH, logger, params);
|
|
case 2:
|
|
response = _context4.sent;
|
|
return _context4.abrupt("return", response === null || response === void 0 ? void 0 : response.csrfToken);
|
|
case 4:
|
|
case "end":
|
|
return _context4.stop();
|
|
}
|
|
}, _callee4);
|
|
}));
|
|
return _getCsrfToken.apply(this, arguments);
|
|
}
|
|
function getProviders() {
|
|
return _getProviders.apply(this, arguments);
|
|
}
|
|
function _getProviders() {
|
|
_getProviders = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee5() {
|
|
return _regenerator.default.wrap(function _callee5$(_context5) {
|
|
while(1)switch(_context5.prev = _context5.next){
|
|
case 0:
|
|
_context5.next = 2;
|
|
return (0, _utils.fetchData)("providers", __NEXTAUTH, logger);
|
|
case 2:
|
|
return _context5.abrupt("return", _context5.sent);
|
|
case 3:
|
|
case "end":
|
|
return _context5.stop();
|
|
}
|
|
}, _callee5);
|
|
}));
|
|
return _getProviders.apply(this, arguments);
|
|
}
|
|
function signIn(_x3, _x4, _x5) {
|
|
return _signIn.apply(this, arguments);
|
|
}
|
|
function _signIn() {
|
|
_signIn = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee6(provider, options, authorizationParams) {
|
|
var _ref5, _ref5$callbackUrl, callbackUrl, _ref5$redirect, redirect, baseUrl, providers, isCredentials, isEmail, isSupportingReturn, signInUrl, _signInUrl, res, data, _data$url, url, error;
|
|
return _regenerator.default.wrap(function _callee6$(_context6) {
|
|
while(1)switch(_context6.prev = _context6.next){
|
|
case 0:
|
|
_ref5 = options !== null && options !== void 0 ? options : {}, _ref5$callbackUrl = _ref5.callbackUrl, callbackUrl = _ref5$callbackUrl === void 0 ? window.location.href : _ref5$callbackUrl, _ref5$redirect = _ref5.redirect, redirect = _ref5$redirect === void 0 ? true : _ref5$redirect;
|
|
baseUrl = (0, _utils.apiBaseUrl)(__NEXTAUTH);
|
|
_context6.next = 4;
|
|
return getProviders();
|
|
case 4:
|
|
providers = _context6.sent;
|
|
if (providers) {
|
|
_context6.next = 8;
|
|
break;
|
|
}
|
|
window.location.href = "".concat(baseUrl, "/error");
|
|
return _context6.abrupt("return");
|
|
case 8:
|
|
if (!(!provider || !(provider in providers))) {
|
|
_context6.next = 11;
|
|
break;
|
|
}
|
|
window.location.href = "".concat(baseUrl, "/signin?").concat(new URLSearchParams({
|
|
callbackUrl: callbackUrl
|
|
}));
|
|
return _context6.abrupt("return");
|
|
case 11:
|
|
isCredentials = providers[provider].type === "credentials";
|
|
isEmail = providers[provider].type === "email";
|
|
isSupportingReturn = isCredentials || isEmail;
|
|
signInUrl = "".concat(baseUrl, "/").concat(isCredentials ? "callback" : "signin", "/").concat(provider);
|
|
_signInUrl = "".concat(signInUrl).concat(authorizationParams ? "?".concat(new URLSearchParams(authorizationParams)) : "");
|
|
_context6.t0 = fetch;
|
|
_context6.t1 = _signInUrl;
|
|
_context6.t2 = {
|
|
"Content-Type": "application/x-www-form-urlencoded"
|
|
};
|
|
_context6.t3 = URLSearchParams;
|
|
_context6.t4 = _objectSpread;
|
|
_context6.t5 = _objectSpread({}, options);
|
|
_context6.t6 = {};
|
|
_context6.next = 25;
|
|
return getCsrfToken();
|
|
case 25:
|
|
_context6.t7 = _context6.sent;
|
|
_context6.t8 = callbackUrl;
|
|
_context6.t9 = {
|
|
csrfToken: _context6.t7,
|
|
callbackUrl: _context6.t8,
|
|
json: true
|
|
};
|
|
_context6.t10 = (0, _context6.t4)(_context6.t5, _context6.t6, _context6.t9);
|
|
_context6.t11 = new _context6.t3(_context6.t10);
|
|
_context6.t12 = {
|
|
method: "post",
|
|
headers: _context6.t2,
|
|
body: _context6.t11
|
|
};
|
|
_context6.next = 33;
|
|
return (0, _context6.t0)(_context6.t1, _context6.t12);
|
|
case 33:
|
|
res = _context6.sent;
|
|
_context6.next = 36;
|
|
return res.json();
|
|
case 36:
|
|
data = _context6.sent;
|
|
if (!(redirect || !isSupportingReturn)) {
|
|
_context6.next = 42;
|
|
break;
|
|
}
|
|
url = (_data$url = data.url) !== null && _data$url !== void 0 ? _data$url : callbackUrl;
|
|
window.location.href = url;
|
|
if (url.includes("#")) window.location.reload();
|
|
return _context6.abrupt("return");
|
|
case 42:
|
|
error = new URL(data.url).searchParams.get("error");
|
|
if (!res.ok) {
|
|
_context6.next = 46;
|
|
break;
|
|
}
|
|
_context6.next = 46;
|
|
return __NEXTAUTH._getSession({
|
|
event: "storage"
|
|
});
|
|
case 46:
|
|
return _context6.abrupt("return", {
|
|
error: error,
|
|
status: res.status,
|
|
ok: res.ok,
|
|
url: error ? null : data.url
|
|
});
|
|
case 47:
|
|
case "end":
|
|
return _context6.stop();
|
|
}
|
|
}, _callee6);
|
|
}));
|
|
return _signIn.apply(this, arguments);
|
|
}
|
|
function signOut(_x6) {
|
|
return _signOut.apply(this, arguments);
|
|
}
|
|
function _signOut() {
|
|
_signOut = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee7(options) {
|
|
var _options$redirect;
|
|
var _ref6, _ref6$callbackUrl, callbackUrl, baseUrl, fetchOptions, res, data, _data$url2, url;
|
|
return _regenerator.default.wrap(function _callee7$(_context7) {
|
|
while(1)switch(_context7.prev = _context7.next){
|
|
case 0:
|
|
_ref6 = options !== null && options !== void 0 ? options : {}, _ref6$callbackUrl = _ref6.callbackUrl, callbackUrl = _ref6$callbackUrl === void 0 ? window.location.href : _ref6$callbackUrl;
|
|
baseUrl = (0, _utils.apiBaseUrl)(__NEXTAUTH);
|
|
_context7.t0 = {
|
|
"Content-Type": "application/x-www-form-urlencoded"
|
|
};
|
|
_context7.t1 = URLSearchParams;
|
|
_context7.next = 6;
|
|
return getCsrfToken();
|
|
case 6:
|
|
_context7.t2 = _context7.sent;
|
|
_context7.t3 = callbackUrl;
|
|
_context7.t4 = {
|
|
csrfToken: _context7.t2,
|
|
callbackUrl: _context7.t3,
|
|
json: true
|
|
};
|
|
_context7.t5 = new _context7.t1(_context7.t4);
|
|
fetchOptions = {
|
|
method: "post",
|
|
headers: _context7.t0,
|
|
body: _context7.t5
|
|
};
|
|
_context7.next = 13;
|
|
return fetch("".concat(baseUrl, "/signout"), fetchOptions);
|
|
case 13:
|
|
res = _context7.sent;
|
|
_context7.next = 16;
|
|
return res.json();
|
|
case 16:
|
|
data = _context7.sent;
|
|
broadcast.post({
|
|
event: "session",
|
|
data: {
|
|
trigger: "signout"
|
|
}
|
|
});
|
|
if (!((_options$redirect = options === null || options === void 0 ? void 0 : options.redirect) !== null && _options$redirect !== void 0 ? _options$redirect : true)) {
|
|
_context7.next = 23;
|
|
break;
|
|
}
|
|
url = (_data$url2 = data.url) !== null && _data$url2 !== void 0 ? _data$url2 : callbackUrl;
|
|
window.location.href = url;
|
|
if (url.includes("#")) window.location.reload();
|
|
return _context7.abrupt("return");
|
|
case 23:
|
|
_context7.next = 25;
|
|
return __NEXTAUTH._getSession({
|
|
event: "storage"
|
|
});
|
|
case 25:
|
|
return _context7.abrupt("return", data);
|
|
case 26:
|
|
case "end":
|
|
return _context7.stop();
|
|
}
|
|
}, _callee7);
|
|
}));
|
|
return _signOut.apply(this, arguments);
|
|
}
|
|
function SessionProvider(props) {
|
|
if (!SessionContext) {
|
|
throw new Error("React Context is unavailable in Server Components");
|
|
}
|
|
var children = props.children, basePath = props.basePath, refetchInterval = props.refetchInterval, refetchWhenOffline = props.refetchWhenOffline;
|
|
if (basePath) __NEXTAUTH.basePath = basePath;
|
|
var hasInitialSession = props.session !== undefined;
|
|
__NEXTAUTH._lastSync = hasInitialSession ? (0, _utils.now)() : 0;
|
|
var _React$useState3 = React.useState({
|
|
"SessionProvider.useState[_React$useState3]": function() {
|
|
if (hasInitialSession) __NEXTAUTH._session = props.session;
|
|
return props.session;
|
|
}
|
|
}["SessionProvider.useState[_React$useState3]"]), _React$useState4 = (0, _slicedToArray2.default)(_React$useState3, 2), session = _React$useState4[0], setSession = _React$useState4[1];
|
|
var _React$useState5 = React.useState(!hasInitialSession), _React$useState6 = (0, _slicedToArray2.default)(_React$useState5, 2), loading = _React$useState6[0], setLoading = _React$useState6[1];
|
|
React.useEffect({
|
|
"SessionProvider.useEffect": function() {
|
|
__NEXTAUTH._getSession = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee() {
|
|
var _ref4, event, storageEvent, _args = arguments;
|
|
return _regenerator.default.wrap(function _callee$(_context) {
|
|
while(1)switch(_context.prev = _context.next){
|
|
case 0:
|
|
_ref4 = _args.length > 0 && _args[0] !== undefined ? _args[0] : {}, event = _ref4.event;
|
|
_context.prev = 1;
|
|
storageEvent = event === "storage";
|
|
if (!(storageEvent || __NEXTAUTH._session === undefined)) {
|
|
_context.next = 10;
|
|
break;
|
|
}
|
|
__NEXTAUTH._lastSync = (0, _utils.now)();
|
|
_context.next = 7;
|
|
return getSession({
|
|
broadcast: !storageEvent
|
|
});
|
|
case 7:
|
|
__NEXTAUTH._session = _context.sent;
|
|
setSession(__NEXTAUTH._session);
|
|
return _context.abrupt("return");
|
|
case 10:
|
|
if (!(!event || __NEXTAUTH._session === null || (0, _utils.now)() < __NEXTAUTH._lastSync)) {
|
|
_context.next = 12;
|
|
break;
|
|
}
|
|
return _context.abrupt("return");
|
|
case 12:
|
|
__NEXTAUTH._lastSync = (0, _utils.now)();
|
|
_context.next = 15;
|
|
return getSession();
|
|
case 15:
|
|
__NEXTAUTH._session = _context.sent;
|
|
setSession(__NEXTAUTH._session);
|
|
_context.next = 22;
|
|
break;
|
|
case 19:
|
|
_context.prev = 19;
|
|
_context.t0 = _context["catch"](1);
|
|
logger.error("CLIENT_SESSION_ERROR", _context.t0);
|
|
case 22:
|
|
_context.prev = 22;
|
|
setLoading(false);
|
|
return _context.finish(22);
|
|
case 25:
|
|
case "end":
|
|
return _context.stop();
|
|
}
|
|
}, _callee, null, [
|
|
[
|
|
1,
|
|
19,
|
|
22,
|
|
25
|
|
]
|
|
]);
|
|
}));
|
|
__NEXTAUTH._getSession();
|
|
return ({
|
|
"SessionProvider.useEffect": function() {
|
|
__NEXTAUTH._lastSync = 0;
|
|
__NEXTAUTH._session = undefined;
|
|
__NEXTAUTH._getSession = ({
|
|
"SessionProvider.useEffect": function() {}
|
|
})["SessionProvider.useEffect"];
|
|
}
|
|
})["SessionProvider.useEffect"];
|
|
}
|
|
}["SessionProvider.useEffect"], []);
|
|
React.useEffect({
|
|
"SessionProvider.useEffect": function() {
|
|
var unsubscribe = broadcast.receive({
|
|
"SessionProvider.useEffect.unsubscribe": function() {
|
|
return __NEXTAUTH._getSession({
|
|
event: "storage"
|
|
});
|
|
}
|
|
}["SessionProvider.useEffect.unsubscribe"]);
|
|
return ({
|
|
"SessionProvider.useEffect": function() {
|
|
return unsubscribe();
|
|
}
|
|
})["SessionProvider.useEffect"];
|
|
}
|
|
}["SessionProvider.useEffect"], []);
|
|
React.useEffect({
|
|
"SessionProvider.useEffect": function() {
|
|
var _props$refetchOnWindo = props.refetchOnWindowFocus, refetchOnWindowFocus = _props$refetchOnWindo === void 0 ? true : _props$refetchOnWindo;
|
|
var visibilityHandler = function visibilityHandler() {
|
|
if (refetchOnWindowFocus && document.visibilityState === "visible") __NEXTAUTH._getSession({
|
|
event: "visibilitychange"
|
|
});
|
|
};
|
|
document.addEventListener("visibilitychange", visibilityHandler, false);
|
|
return ({
|
|
"SessionProvider.useEffect": function() {
|
|
return document.removeEventListener("visibilitychange", visibilityHandler, false);
|
|
}
|
|
})["SessionProvider.useEffect"];
|
|
}
|
|
}["SessionProvider.useEffect"], [
|
|
props.refetchOnWindowFocus
|
|
]);
|
|
var isOnline = useOnline();
|
|
var shouldRefetch = refetchWhenOffline !== false || isOnline;
|
|
React.useEffect({
|
|
"SessionProvider.useEffect": function() {
|
|
if (refetchInterval && shouldRefetch) {
|
|
var refetchIntervalTimer = setInterval({
|
|
"SessionProvider.useEffect.refetchIntervalTimer": function() {
|
|
if (__NEXTAUTH._session) {
|
|
__NEXTAUTH._getSession({
|
|
event: "poll"
|
|
});
|
|
}
|
|
}
|
|
}["SessionProvider.useEffect.refetchIntervalTimer"], refetchInterval * 1000);
|
|
return ({
|
|
"SessionProvider.useEffect": function() {
|
|
return clearInterval(refetchIntervalTimer);
|
|
}
|
|
})["SessionProvider.useEffect"];
|
|
}
|
|
}
|
|
}["SessionProvider.useEffect"], [
|
|
refetchInterval,
|
|
shouldRefetch
|
|
]);
|
|
var value = React.useMemo({
|
|
"SessionProvider.useMemo[value]": function() {
|
|
return {
|
|
data: session,
|
|
status: loading ? "loading" : session ? "authenticated" : "unauthenticated",
|
|
update: function update(data) {
|
|
return (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee2() {
|
|
var newSession;
|
|
return _regenerator.default.wrap(function _callee2$(_context2) {
|
|
while(1)switch(_context2.prev = _context2.next){
|
|
case 0:
|
|
if (!(loading || !session)) {
|
|
_context2.next = 2;
|
|
break;
|
|
}
|
|
return _context2.abrupt("return");
|
|
case 2:
|
|
setLoading(true);
|
|
_context2.t0 = _utils.fetchData;
|
|
_context2.t1 = __NEXTAUTH;
|
|
_context2.t2 = logger;
|
|
_context2.next = 8;
|
|
return getCsrfToken();
|
|
case 8:
|
|
_context2.t3 = _context2.sent;
|
|
_context2.t4 = data;
|
|
_context2.t5 = {
|
|
csrfToken: _context2.t3,
|
|
data: _context2.t4
|
|
};
|
|
_context2.t6 = {
|
|
body: _context2.t5
|
|
};
|
|
_context2.t7 = {
|
|
req: _context2.t6
|
|
};
|
|
_context2.next = 15;
|
|
return (0, _context2.t0)("session", _context2.t1, _context2.t2, _context2.t7);
|
|
case 15:
|
|
newSession = _context2.sent;
|
|
setLoading(false);
|
|
if (newSession) {
|
|
setSession(newSession);
|
|
broadcast.post({
|
|
event: "session",
|
|
data: {
|
|
trigger: "getSession"
|
|
}
|
|
});
|
|
}
|
|
return _context2.abrupt("return", newSession);
|
|
case 19:
|
|
case "end":
|
|
return _context2.stop();
|
|
}
|
|
}, _callee2);
|
|
}))();
|
|
}
|
|
};
|
|
}
|
|
}["SessionProvider.useMemo[value]"], [
|
|
session,
|
|
loading
|
|
]);
|
|
return (0, _jsxRuntime.jsx)(SessionContext.Provider, {
|
|
value: value,
|
|
children: children
|
|
});
|
|
}
|
|
}),
|
|
"[project]/node_modules/next/navigation.js [app-client] (ecmascript)", ((__turbopack_context__, module, exports) => {
|
|
|
|
module.exports = __turbopack_context__.r("[project]/node_modules/next/dist/client/components/navigation.js [app-client] (ecmascript)");
|
|
}),
|
|
"[project]/node_modules/lucide-react/dist/esm/shared/src/utils/mergeClasses.mjs [app-client] (ecmascript)", ((__turbopack_context__) => {
|
|
"use strict";
|
|
|
|
__turbopack_context__.s([
|
|
"mergeClasses",
|
|
()=>mergeClasses
|
|
]);
|
|
/**
|
|
* @license lucide-react v1.14.0 - ISC
|
|
*
|
|
* This source code is licensed under the ISC license.
|
|
* See the LICENSE file in the root directory of this source tree.
|
|
*/ const mergeClasses = (...classes)=>classes.filter((className, index, array)=>{
|
|
return Boolean(className) && className.trim() !== "" && array.indexOf(className) === index;
|
|
}).join(" ").trim();
|
|
;
|
|
}),
|
|
"[project]/node_modules/lucide-react/dist/esm/shared/src/utils/toKebabCase.mjs [app-client] (ecmascript)", ((__turbopack_context__) => {
|
|
"use strict";
|
|
|
|
__turbopack_context__.s([
|
|
"toKebabCase",
|
|
()=>toKebabCase
|
|
]);
|
|
/**
|
|
* @license lucide-react v1.14.0 - ISC
|
|
*
|
|
* This source code is licensed under the ISC license.
|
|
* See the LICENSE file in the root directory of this source tree.
|
|
*/ const toKebabCase = (string)=>string.replace(/([a-z0-9])([A-Z])/g, "$1-$2").toLowerCase();
|
|
;
|
|
}),
|
|
"[project]/node_modules/lucide-react/dist/esm/shared/src/utils/toCamelCase.mjs [app-client] (ecmascript)", ((__turbopack_context__) => {
|
|
"use strict";
|
|
|
|
__turbopack_context__.s([
|
|
"toCamelCase",
|
|
()=>toCamelCase
|
|
]);
|
|
/**
|
|
* @license lucide-react v1.14.0 - ISC
|
|
*
|
|
* This source code is licensed under the ISC license.
|
|
* See the LICENSE file in the root directory of this source tree.
|
|
*/ const toCamelCase = (string)=>string.replace(/^([A-Z])|[\s-_]+(\w)/g, (match, p1, p2)=>p2 ? p2.toUpperCase() : p1.toLowerCase());
|
|
;
|
|
}),
|
|
"[project]/node_modules/lucide-react/dist/esm/shared/src/utils/toPascalCase.mjs [app-client] (ecmascript)", ((__turbopack_context__) => {
|
|
"use strict";
|
|
|
|
__turbopack_context__.s([
|
|
"toPascalCase",
|
|
()=>toPascalCase
|
|
]);
|
|
/**
|
|
* @license lucide-react v1.14.0 - ISC
|
|
*
|
|
* This source code is licensed under the ISC license.
|
|
* See the LICENSE file in the root directory of this source tree.
|
|
*/ var __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$shared$2f$src$2f$utils$2f$toCamelCase$2e$mjs__$5b$app$2d$client$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/node_modules/lucide-react/dist/esm/shared/src/utils/toCamelCase.mjs [app-client] (ecmascript)");
|
|
;
|
|
const toPascalCase = (string)=>{
|
|
const camelCase = (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$shared$2f$src$2f$utils$2f$toCamelCase$2e$mjs__$5b$app$2d$client$5d$__$28$ecmascript$29$__["toCamelCase"])(string);
|
|
return camelCase.charAt(0).toUpperCase() + camelCase.slice(1);
|
|
};
|
|
;
|
|
}),
|
|
"[project]/node_modules/lucide-react/dist/esm/defaultAttributes.mjs [app-client] (ecmascript)", ((__turbopack_context__) => {
|
|
"use strict";
|
|
|
|
__turbopack_context__.s([
|
|
"default",
|
|
()=>defaultAttributes
|
|
]);
|
|
/**
|
|
* @license lucide-react v1.14.0 - ISC
|
|
*
|
|
* This source code is licensed under the ISC license.
|
|
* See the LICENSE file in the root directory of this source tree.
|
|
*/ var defaultAttributes = {
|
|
xmlns: "http://www.w3.org/2000/svg",
|
|
width: 24,
|
|
height: 24,
|
|
viewBox: "0 0 24 24",
|
|
fill: "none",
|
|
stroke: "currentColor",
|
|
strokeWidth: 2,
|
|
strokeLinecap: "round",
|
|
strokeLinejoin: "round"
|
|
};
|
|
;
|
|
}),
|
|
"[project]/node_modules/lucide-react/dist/esm/shared/src/utils/hasA11yProp.mjs [app-client] (ecmascript)", ((__turbopack_context__) => {
|
|
"use strict";
|
|
|
|
__turbopack_context__.s([
|
|
"hasA11yProp",
|
|
()=>hasA11yProp
|
|
]);
|
|
/**
|
|
* @license lucide-react v1.14.0 - ISC
|
|
*
|
|
* This source code is licensed under the ISC license.
|
|
* See the LICENSE file in the root directory of this source tree.
|
|
*/ const hasA11yProp = (props)=>{
|
|
for(const prop in props){
|
|
if (prop.startsWith("aria-") || prop === "role" || prop === "title") {
|
|
return true;
|
|
}
|
|
}
|
|
return false;
|
|
};
|
|
;
|
|
}),
|
|
"[project]/node_modules/lucide-react/dist/esm/context.mjs [app-client] (ecmascript)", ((__turbopack_context__) => {
|
|
"use strict";
|
|
|
|
__turbopack_context__.s([
|
|
"LucideProvider",
|
|
()=>LucideProvider,
|
|
"useLucideContext",
|
|
()=>useLucideContext
|
|
]);
|
|
/**
|
|
* @license lucide-react v1.14.0 - ISC
|
|
*
|
|
* This source code is licensed under the ISC license.
|
|
* See the LICENSE file in the root directory of this source tree.
|
|
*/ var __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$index$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/node_modules/next/dist/compiled/react/index.js [app-client] (ecmascript)");
|
|
"use strict";
|
|
"use client";
|
|
;
|
|
const LucideContext = (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$index$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["createContext"])({});
|
|
function LucideProvider({ children, size, color, strokeWidth, absoluteStrokeWidth, className }) {
|
|
const value = (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$index$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["useMemo"])({
|
|
"LucideProvider.useMemo[value]": ()=>({
|
|
size,
|
|
color,
|
|
strokeWidth,
|
|
absoluteStrokeWidth,
|
|
className
|
|
})
|
|
}["LucideProvider.useMemo[value]"], [
|
|
size,
|
|
color,
|
|
strokeWidth,
|
|
absoluteStrokeWidth,
|
|
className
|
|
]);
|
|
return (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$index$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["createElement"])(LucideContext.Provider, {
|
|
value
|
|
}, children);
|
|
}
|
|
const useLucideContext = ()=>(0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$index$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["useContext"])(LucideContext);
|
|
;
|
|
}),
|
|
"[project]/node_modules/lucide-react/dist/esm/Icon.mjs [app-client] (ecmascript)", ((__turbopack_context__) => {
|
|
"use strict";
|
|
|
|
__turbopack_context__.s([
|
|
"default",
|
|
()=>Icon
|
|
]);
|
|
/**
|
|
* @license lucide-react v1.14.0 - ISC
|
|
*
|
|
* This source code is licensed under the ISC license.
|
|
* See the LICENSE file in the root directory of this source tree.
|
|
*/ var __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$index$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/node_modules/next/dist/compiled/react/index.js [app-client] (ecmascript)");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$defaultAttributes$2e$mjs__$5b$app$2d$client$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/node_modules/lucide-react/dist/esm/defaultAttributes.mjs [app-client] (ecmascript)");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$shared$2f$src$2f$utils$2f$hasA11yProp$2e$mjs__$5b$app$2d$client$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/node_modules/lucide-react/dist/esm/shared/src/utils/hasA11yProp.mjs [app-client] (ecmascript)");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$shared$2f$src$2f$utils$2f$mergeClasses$2e$mjs__$5b$app$2d$client$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/node_modules/lucide-react/dist/esm/shared/src/utils/mergeClasses.mjs [app-client] (ecmascript)");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$context$2e$mjs__$5b$app$2d$client$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/node_modules/lucide-react/dist/esm/context.mjs [app-client] (ecmascript)");
|
|
"use strict";
|
|
"use client";
|
|
;
|
|
;
|
|
;
|
|
;
|
|
;
|
|
const Icon = (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$index$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["forwardRef"])(({ color, size, strokeWidth, absoluteStrokeWidth, className = "", children, iconNode, ...rest }, ref)=>{
|
|
const { size: contextSize = 24, strokeWidth: contextStrokeWidth = 2, absoluteStrokeWidth: contextAbsoluteStrokeWidth = false, color: contextColor = "currentColor", className: contextClass = "" } = (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$context$2e$mjs__$5b$app$2d$client$5d$__$28$ecmascript$29$__["useLucideContext"])() ?? {};
|
|
const calculatedStrokeWidth = absoluteStrokeWidth ?? contextAbsoluteStrokeWidth ? Number(strokeWidth ?? contextStrokeWidth) * 24 / Number(size ?? contextSize) : strokeWidth ?? contextStrokeWidth;
|
|
return (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$index$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["createElement"])("svg", {
|
|
ref,
|
|
...__TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$defaultAttributes$2e$mjs__$5b$app$2d$client$5d$__$28$ecmascript$29$__["default"],
|
|
width: size ?? contextSize ?? __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$defaultAttributes$2e$mjs__$5b$app$2d$client$5d$__$28$ecmascript$29$__["default"].width,
|
|
height: size ?? contextSize ?? __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$defaultAttributes$2e$mjs__$5b$app$2d$client$5d$__$28$ecmascript$29$__["default"].height,
|
|
stroke: color ?? contextColor,
|
|
strokeWidth: calculatedStrokeWidth,
|
|
className: (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$shared$2f$src$2f$utils$2f$mergeClasses$2e$mjs__$5b$app$2d$client$5d$__$28$ecmascript$29$__["mergeClasses"])("lucide", contextClass, className),
|
|
...!children && !(0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$shared$2f$src$2f$utils$2f$hasA11yProp$2e$mjs__$5b$app$2d$client$5d$__$28$ecmascript$29$__["hasA11yProp"])(rest) && {
|
|
"aria-hidden": "true"
|
|
},
|
|
...rest
|
|
}, [
|
|
...iconNode.map(([tag, attrs])=>(0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$index$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["createElement"])(tag, attrs)),
|
|
...Array.isArray(children) ? children : [
|
|
children
|
|
]
|
|
]);
|
|
});
|
|
;
|
|
}),
|
|
"[project]/node_modules/lucide-react/dist/esm/createLucideIcon.mjs [app-client] (ecmascript)", ((__turbopack_context__) => {
|
|
"use strict";
|
|
|
|
__turbopack_context__.s([
|
|
"default",
|
|
()=>createLucideIcon
|
|
]);
|
|
/**
|
|
* @license lucide-react v1.14.0 - ISC
|
|
*
|
|
* This source code is licensed under the ISC license.
|
|
* See the LICENSE file in the root directory of this source tree.
|
|
*/ var __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$index$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/node_modules/next/dist/compiled/react/index.js [app-client] (ecmascript)");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$shared$2f$src$2f$utils$2f$mergeClasses$2e$mjs__$5b$app$2d$client$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/node_modules/lucide-react/dist/esm/shared/src/utils/mergeClasses.mjs [app-client] (ecmascript)");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$shared$2f$src$2f$utils$2f$toKebabCase$2e$mjs__$5b$app$2d$client$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/node_modules/lucide-react/dist/esm/shared/src/utils/toKebabCase.mjs [app-client] (ecmascript)");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$shared$2f$src$2f$utils$2f$toPascalCase$2e$mjs__$5b$app$2d$client$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/node_modules/lucide-react/dist/esm/shared/src/utils/toPascalCase.mjs [app-client] (ecmascript)");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$Icon$2e$mjs__$5b$app$2d$client$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/node_modules/lucide-react/dist/esm/Icon.mjs [app-client] (ecmascript)");
|
|
;
|
|
;
|
|
;
|
|
;
|
|
;
|
|
const createLucideIcon = (iconName, iconNode)=>{
|
|
const Component = (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$index$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["forwardRef"])(({ className, ...props }, ref)=>(0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$index$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["createElement"])(__TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$Icon$2e$mjs__$5b$app$2d$client$5d$__$28$ecmascript$29$__["default"], {
|
|
ref,
|
|
iconNode,
|
|
className: (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$shared$2f$src$2f$utils$2f$mergeClasses$2e$mjs__$5b$app$2d$client$5d$__$28$ecmascript$29$__["mergeClasses"])(`lucide-${(0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$shared$2f$src$2f$utils$2f$toKebabCase$2e$mjs__$5b$app$2d$client$5d$__$28$ecmascript$29$__["toKebabCase"])((0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$shared$2f$src$2f$utils$2f$toPascalCase$2e$mjs__$5b$app$2d$client$5d$__$28$ecmascript$29$__["toPascalCase"])(iconName))}`, `lucide-${iconName}`, className),
|
|
...props
|
|
}));
|
|
Component.displayName = (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$shared$2f$src$2f$utils$2f$toPascalCase$2e$mjs__$5b$app$2d$client$5d$__$28$ecmascript$29$__["toPascalCase"])(iconName);
|
|
return Component;
|
|
};
|
|
;
|
|
}),
|
|
"[project]/node_modules/lucide-react/dist/esm/icons/layout-dashboard.mjs [app-client] (ecmascript)", ((__turbopack_context__) => {
|
|
"use strict";
|
|
|
|
__turbopack_context__.s([
|
|
"__iconNode",
|
|
()=>__iconNode,
|
|
"default",
|
|
()=>LayoutDashboard
|
|
]);
|
|
/**
|
|
* @license lucide-react v1.14.0 - ISC
|
|
*
|
|
* This source code is licensed under the ISC license.
|
|
* See the LICENSE file in the root directory of this source tree.
|
|
*/ var __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$createLucideIcon$2e$mjs__$5b$app$2d$client$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/node_modules/lucide-react/dist/esm/createLucideIcon.mjs [app-client] (ecmascript)");
|
|
;
|
|
const __iconNode = [
|
|
[
|
|
"rect",
|
|
{
|
|
width: "7",
|
|
height: "9",
|
|
x: "3",
|
|
y: "3",
|
|
rx: "1",
|
|
key: "10lvy0"
|
|
}
|
|
],
|
|
[
|
|
"rect",
|
|
{
|
|
width: "7",
|
|
height: "5",
|
|
x: "14",
|
|
y: "3",
|
|
rx: "1",
|
|
key: "16une8"
|
|
}
|
|
],
|
|
[
|
|
"rect",
|
|
{
|
|
width: "7",
|
|
height: "9",
|
|
x: "14",
|
|
y: "12",
|
|
rx: "1",
|
|
key: "1hutg5"
|
|
}
|
|
],
|
|
[
|
|
"rect",
|
|
{
|
|
width: "7",
|
|
height: "5",
|
|
x: "3",
|
|
y: "16",
|
|
rx: "1",
|
|
key: "ldoo1y"
|
|
}
|
|
]
|
|
];
|
|
const LayoutDashboard = (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$createLucideIcon$2e$mjs__$5b$app$2d$client$5d$__$28$ecmascript$29$__["default"])("layout-dashboard", __iconNode);
|
|
;
|
|
}),
|
|
"[project]/node_modules/lucide-react/dist/esm/icons/layout-dashboard.mjs [app-client] (ecmascript) <export default as LayoutDashboard>", ((__turbopack_context__) => {
|
|
"use strict";
|
|
|
|
__turbopack_context__.s([
|
|
"LayoutDashboard",
|
|
()=>__TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$layout$2d$dashboard$2e$mjs__$5b$app$2d$client$5d$__$28$ecmascript$29$__["default"]
|
|
]);
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$layout$2d$dashboard$2e$mjs__$5b$app$2d$client$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/node_modules/lucide-react/dist/esm/icons/layout-dashboard.mjs [app-client] (ecmascript)");
|
|
}),
|
|
"[project]/node_modules/lucide-react/dist/esm/icons/users.mjs [app-client] (ecmascript)", ((__turbopack_context__) => {
|
|
"use strict";
|
|
|
|
__turbopack_context__.s([
|
|
"__iconNode",
|
|
()=>__iconNode,
|
|
"default",
|
|
()=>Users
|
|
]);
|
|
/**
|
|
* @license lucide-react v1.14.0 - ISC
|
|
*
|
|
* This source code is licensed under the ISC license.
|
|
* See the LICENSE file in the root directory of this source tree.
|
|
*/ var __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$createLucideIcon$2e$mjs__$5b$app$2d$client$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/node_modules/lucide-react/dist/esm/createLucideIcon.mjs [app-client] (ecmascript)");
|
|
;
|
|
const __iconNode = [
|
|
[
|
|
"path",
|
|
{
|
|
d: "M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",
|
|
key: "1yyitq"
|
|
}
|
|
],
|
|
[
|
|
"path",
|
|
{
|
|
d: "M16 3.128a4 4 0 0 1 0 7.744",
|
|
key: "16gr8j"
|
|
}
|
|
],
|
|
[
|
|
"path",
|
|
{
|
|
d: "M22 21v-2a4 4 0 0 0-3-3.87",
|
|
key: "kshegd"
|
|
}
|
|
],
|
|
[
|
|
"circle",
|
|
{
|
|
cx: "9",
|
|
cy: "7",
|
|
r: "4",
|
|
key: "nufk8"
|
|
}
|
|
]
|
|
];
|
|
const Users = (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$createLucideIcon$2e$mjs__$5b$app$2d$client$5d$__$28$ecmascript$29$__["default"])("users", __iconNode);
|
|
;
|
|
}),
|
|
"[project]/node_modules/lucide-react/dist/esm/icons/users.mjs [app-client] (ecmascript) <export default as Users>", ((__turbopack_context__) => {
|
|
"use strict";
|
|
|
|
__turbopack_context__.s([
|
|
"Users",
|
|
()=>__TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$users$2e$mjs__$5b$app$2d$client$5d$__$28$ecmascript$29$__["default"]
|
|
]);
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$users$2e$mjs__$5b$app$2d$client$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/node_modules/lucide-react/dist/esm/icons/users.mjs [app-client] (ecmascript)");
|
|
}),
|
|
"[project]/node_modules/lucide-react/dist/esm/icons/ticket.mjs [app-client] (ecmascript)", ((__turbopack_context__) => {
|
|
"use strict";
|
|
|
|
__turbopack_context__.s([
|
|
"__iconNode",
|
|
()=>__iconNode,
|
|
"default",
|
|
()=>Ticket
|
|
]);
|
|
/**
|
|
* @license lucide-react v1.14.0 - ISC
|
|
*
|
|
* This source code is licensed under the ISC license.
|
|
* See the LICENSE file in the root directory of this source tree.
|
|
*/ var __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$createLucideIcon$2e$mjs__$5b$app$2d$client$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/node_modules/lucide-react/dist/esm/createLucideIcon.mjs [app-client] (ecmascript)");
|
|
;
|
|
const __iconNode = [
|
|
[
|
|
"path",
|
|
{
|
|
d: "M2 9a3 3 0 0 1 0 6v2a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-2a3 3 0 0 1 0-6V7a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2Z",
|
|
key: "qn84l0"
|
|
}
|
|
],
|
|
[
|
|
"path",
|
|
{
|
|
d: "M13 5v2",
|
|
key: "dyzc3o"
|
|
}
|
|
],
|
|
[
|
|
"path",
|
|
{
|
|
d: "M13 17v2",
|
|
key: "1ont0d"
|
|
}
|
|
],
|
|
[
|
|
"path",
|
|
{
|
|
d: "M13 11v2",
|
|
key: "1wjjxi"
|
|
}
|
|
]
|
|
];
|
|
const Ticket = (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$createLucideIcon$2e$mjs__$5b$app$2d$client$5d$__$28$ecmascript$29$__["default"])("ticket", __iconNode);
|
|
;
|
|
}),
|
|
"[project]/node_modules/lucide-react/dist/esm/icons/ticket.mjs [app-client] (ecmascript) <export default as Ticket>", ((__turbopack_context__) => {
|
|
"use strict";
|
|
|
|
__turbopack_context__.s([
|
|
"Ticket",
|
|
()=>__TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$ticket$2e$mjs__$5b$app$2d$client$5d$__$28$ecmascript$29$__["default"]
|
|
]);
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$ticket$2e$mjs__$5b$app$2d$client$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/node_modules/lucide-react/dist/esm/icons/ticket.mjs [app-client] (ecmascript)");
|
|
}),
|
|
"[project]/node_modules/lucide-react/dist/esm/icons/log-out.mjs [app-client] (ecmascript)", ((__turbopack_context__) => {
|
|
"use strict";
|
|
|
|
__turbopack_context__.s([
|
|
"__iconNode",
|
|
()=>__iconNode,
|
|
"default",
|
|
()=>LogOut
|
|
]);
|
|
/**
|
|
* @license lucide-react v1.14.0 - ISC
|
|
*
|
|
* This source code is licensed under the ISC license.
|
|
* See the LICENSE file in the root directory of this source tree.
|
|
*/ var __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$createLucideIcon$2e$mjs__$5b$app$2d$client$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/node_modules/lucide-react/dist/esm/createLucideIcon.mjs [app-client] (ecmascript)");
|
|
;
|
|
const __iconNode = [
|
|
[
|
|
"path",
|
|
{
|
|
d: "m16 17 5-5-5-5",
|
|
key: "1bji2h"
|
|
}
|
|
],
|
|
[
|
|
"path",
|
|
{
|
|
d: "M21 12H9",
|
|
key: "dn1m92"
|
|
}
|
|
],
|
|
[
|
|
"path",
|
|
{
|
|
d: "M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4",
|
|
key: "1uf3rs"
|
|
}
|
|
]
|
|
];
|
|
const LogOut = (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$createLucideIcon$2e$mjs__$5b$app$2d$client$5d$__$28$ecmascript$29$__["default"])("log-out", __iconNode);
|
|
;
|
|
}),
|
|
"[project]/node_modules/lucide-react/dist/esm/icons/log-out.mjs [app-client] (ecmascript) <export default as LogOut>", ((__turbopack_context__) => {
|
|
"use strict";
|
|
|
|
__turbopack_context__.s([
|
|
"LogOut",
|
|
()=>__TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$log$2d$out$2e$mjs__$5b$app$2d$client$5d$__$28$ecmascript$29$__["default"]
|
|
]);
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$log$2d$out$2e$mjs__$5b$app$2d$client$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/node_modules/lucide-react/dist/esm/icons/log-out.mjs [app-client] (ecmascript)");
|
|
}),
|
|
"[project]/node_modules/lucide-react/dist/esm/icons/shield.mjs [app-client] (ecmascript)", ((__turbopack_context__) => {
|
|
"use strict";
|
|
|
|
__turbopack_context__.s([
|
|
"__iconNode",
|
|
()=>__iconNode,
|
|
"default",
|
|
()=>Shield
|
|
]);
|
|
/**
|
|
* @license lucide-react v1.14.0 - ISC
|
|
*
|
|
* This source code is licensed under the ISC license.
|
|
* See the LICENSE file in the root directory of this source tree.
|
|
*/ var __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$createLucideIcon$2e$mjs__$5b$app$2d$client$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/node_modules/lucide-react/dist/esm/createLucideIcon.mjs [app-client] (ecmascript)");
|
|
;
|
|
const __iconNode = [
|
|
[
|
|
"path",
|
|
{
|
|
d: "M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",
|
|
key: "oel41y"
|
|
}
|
|
]
|
|
];
|
|
const Shield = (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$createLucideIcon$2e$mjs__$5b$app$2d$client$5d$__$28$ecmascript$29$__["default"])("shield", __iconNode);
|
|
;
|
|
}),
|
|
"[project]/node_modules/lucide-react/dist/esm/icons/shield.mjs [app-client] (ecmascript) <export default as Shield>", ((__turbopack_context__) => {
|
|
"use strict";
|
|
|
|
__turbopack_context__.s([
|
|
"Shield",
|
|
()=>__TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$shield$2e$mjs__$5b$app$2d$client$5d$__$28$ecmascript$29$__["default"]
|
|
]);
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$shield$2e$mjs__$5b$app$2d$client$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/node_modules/lucide-react/dist/esm/icons/shield.mjs [app-client] (ecmascript)");
|
|
}),
|
|
"[project]/node_modules/lucide-react/dist/esm/icons/shield-check.mjs [app-client] (ecmascript)", ((__turbopack_context__) => {
|
|
"use strict";
|
|
|
|
__turbopack_context__.s([
|
|
"__iconNode",
|
|
()=>__iconNode,
|
|
"default",
|
|
()=>ShieldCheck
|
|
]);
|
|
/**
|
|
* @license lucide-react v1.14.0 - ISC
|
|
*
|
|
* This source code is licensed under the ISC license.
|
|
* See the LICENSE file in the root directory of this source tree.
|
|
*/ var __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$createLucideIcon$2e$mjs__$5b$app$2d$client$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/node_modules/lucide-react/dist/esm/createLucideIcon.mjs [app-client] (ecmascript)");
|
|
;
|
|
const __iconNode = [
|
|
[
|
|
"path",
|
|
{
|
|
d: "M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",
|
|
key: "oel41y"
|
|
}
|
|
],
|
|
[
|
|
"path",
|
|
{
|
|
d: "m9 12 2 2 4-4",
|
|
key: "dzmm74"
|
|
}
|
|
]
|
|
];
|
|
const ShieldCheck = (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$createLucideIcon$2e$mjs__$5b$app$2d$client$5d$__$28$ecmascript$29$__["default"])("shield-check", __iconNode);
|
|
;
|
|
}),
|
|
"[project]/node_modules/lucide-react/dist/esm/icons/shield-check.mjs [app-client] (ecmascript) <export default as ShieldCheck>", ((__turbopack_context__) => {
|
|
"use strict";
|
|
|
|
__turbopack_context__.s([
|
|
"ShieldCheck",
|
|
()=>__TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$shield$2d$check$2e$mjs__$5b$app$2d$client$5d$__$28$ecmascript$29$__["default"]
|
|
]);
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$shield$2d$check$2e$mjs__$5b$app$2d$client$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/node_modules/lucide-react/dist/esm/icons/shield-check.mjs [app-client] (ecmascript)");
|
|
}),
|
|
"[project]/node_modules/next/dist/shared/lib/router/utils/disable-smooth-scroll.js [app-client] (ecmascript)", ((__turbopack_context__, module, exports) => {
|
|
"use strict";
|
|
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$build$2f$polyfills$2f$process$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__ = /*#__PURE__*/ __turbopack_context__.i("[project]/node_modules/next/dist/build/polyfills/process.js [app-client] (ecmascript)");
|
|
"use strict";
|
|
Object.defineProperty(exports, "__esModule", {
|
|
value: true
|
|
});
|
|
Object.defineProperty(exports, "disableSmoothScrollDuringRouteTransition", {
|
|
enumerable: true,
|
|
get: function() {
|
|
return disableSmoothScrollDuringRouteTransition;
|
|
}
|
|
});
|
|
const _warnonce = __turbopack_context__.r("[project]/node_modules/next/dist/shared/lib/utils/warn-once.js [app-client] (ecmascript)");
|
|
function disableSmoothScrollDuringRouteTransition(fn, options = {}) {
|
|
// if only the hash is changed, we don't need to disable smooth scrolling
|
|
// we only care to prevent smooth scrolling when navigating to a new page to avoid jarring UX
|
|
if (options.onlyHashChange) {
|
|
fn();
|
|
return;
|
|
}
|
|
const htmlElement = document.documentElement;
|
|
const hasDataAttribute = htmlElement.dataset.scrollBehavior === 'smooth';
|
|
if (!hasDataAttribute) {
|
|
// Warn if smooth scrolling is detected but no data attribute is present
|
|
if (("TURBOPACK compile-time value", "development") === 'development' && getComputedStyle(htmlElement).scrollBehavior === 'smooth') {
|
|
(0, _warnonce.warnOnce)('Detected `scroll-behavior: smooth` on the `<html>` element. To disable smooth scrolling during route transitions, ' + 'add `data-scroll-behavior="smooth"` to your <html> element. ' + 'Learn more: https://nextjs.org/docs/messages/missing-data-scroll-behavior');
|
|
}
|
|
// No smooth scrolling configured, run directly without style manipulation
|
|
fn();
|
|
return;
|
|
}
|
|
// Proceed with temporarily disabling smooth scrolling
|
|
const existing = htmlElement.style.scrollBehavior;
|
|
htmlElement.style.scrollBehavior = 'auto';
|
|
if (!options.dontForceLayout) {
|
|
// In Chrome-based browsers we need to force reflow before calling `scrollTo`.
|
|
// Otherwise it will not pickup the change in scrollBehavior
|
|
// More info here: https://github.com/vercel/next.js/issues/40719#issuecomment-1336248042
|
|
htmlElement.getClientRects();
|
|
}
|
|
fn();
|
|
htmlElement.style.scrollBehavior = existing;
|
|
}
|
|
}),
|
|
"[project]/node_modules/next/dist/client/components/bfcache-state-manager.js [app-client] (ecmascript)", ((__turbopack_context__, module, exports) => {
|
|
"use strict";
|
|
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$build$2f$polyfills$2f$process$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__ = /*#__PURE__*/ __turbopack_context__.i("[project]/node_modules/next/dist/build/polyfills/process.js [app-client] (ecmascript)");
|
|
"use strict";
|
|
Object.defineProperty(exports, "__esModule", {
|
|
value: true
|
|
});
|
|
Object.defineProperty(exports, "useRouterBFCache", {
|
|
enumerable: true,
|
|
get: function() {
|
|
return useRouterBFCache;
|
|
}
|
|
});
|
|
const _react = __turbopack_context__.r("[project]/node_modules/next/dist/compiled/react/index.js [app-client] (ecmascript)");
|
|
// When the flag is disabled, only track the currently active tree
|
|
const MAX_BF_CACHE_ENTRIES = ("TURBOPACK compile-time falsy", 0) ? "TURBOPACK unreachable" : 1;
|
|
function useRouterBFCache(activeTree, activeCacheNode, activeStateKey) {
|
|
// The currently active entry. The entries form a linked list, sorted in
|
|
// order of most recently active. This allows us to reuse parts of the list
|
|
// without cloning, unless there's a reordering or removal.
|
|
// TODO: Once we start tracking back/forward history at each route level,
|
|
// we should use the history order instead. In other words, when traversing
|
|
// to an existing entry as a result of a popstate event, we should maintain
|
|
// the existing order instead of moving it to the front of the list. I think
|
|
// an initial implementation of this could be to pass an incrementing id
|
|
// to history.pushState/replaceState, then use that here for ordering.
|
|
const [prevActiveEntry, setPrevActiveEntry] = (0, _react.useState)(()=>{
|
|
const initialEntry = {
|
|
tree: activeTree,
|
|
cacheNode: activeCacheNode,
|
|
stateKey: activeStateKey,
|
|
next: null
|
|
};
|
|
return initialEntry;
|
|
});
|
|
if (prevActiveEntry.tree === activeTree) {
|
|
// Fast path. The active tree hasn't changed, so we can reuse the
|
|
// existing state.
|
|
return prevActiveEntry;
|
|
}
|
|
// The route tree changed. Note that this doesn't mean that the tree changed
|
|
// *at this level* — the change may be due to a child route. Either way, we
|
|
// need to either add or update the router tree in the bfcache.
|
|
//
|
|
// The rest of the code looks more complicated than it actually is because we
|
|
// can't mutate the state in place; we have to copy-on-write.
|
|
// Create a new entry for the active cache key. This is the head of the new
|
|
// linked list.
|
|
const newActiveEntry = {
|
|
tree: activeTree,
|
|
cacheNode: activeCacheNode,
|
|
stateKey: activeStateKey,
|
|
next: null
|
|
};
|
|
// We need to append the old list onto the new list. If the head of the new
|
|
// list was already present in the cache, then we'll need to clone everything
|
|
// that came before it. Then we can reuse the rest.
|
|
let n = 1;
|
|
let oldEntry = prevActiveEntry;
|
|
let clonedEntry = newActiveEntry;
|
|
while(oldEntry !== null && n < MAX_BF_CACHE_ENTRIES){
|
|
if (oldEntry.stateKey === activeStateKey) {
|
|
// Fast path. This entry in the old list that corresponds to the key that
|
|
// is now active. We've already placed a clone of this entry at the front
|
|
// of the new list. We can reuse the rest of the old list without cloning.
|
|
// NOTE: We don't need to worry about eviction in this case because we
|
|
// haven't increased the size of the cache, and we assume the max size
|
|
// is constant across renders. If we were to change it to a dynamic limit,
|
|
// then the implementation would need to account for that.
|
|
clonedEntry.next = oldEntry.next;
|
|
break;
|
|
} else {
|
|
// Clone the entry and append it to the list.
|
|
n++;
|
|
const entry = {
|
|
tree: oldEntry.tree,
|
|
cacheNode: oldEntry.cacheNode,
|
|
stateKey: oldEntry.stateKey,
|
|
next: null
|
|
};
|
|
clonedEntry.next = entry;
|
|
clonedEntry = entry;
|
|
}
|
|
oldEntry = oldEntry.next;
|
|
}
|
|
setPrevActiveEntry(newActiveEntry);
|
|
return newActiveEntry;
|
|
}
|
|
if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {
|
|
Object.defineProperty(exports.default, '__esModule', {
|
|
value: true
|
|
});
|
|
Object.assign(exports.default, exports);
|
|
module.exports = exports.default;
|
|
}
|
|
}),
|
|
"[project]/node_modules/next/dist/client/components/layout-router.js [app-client] (ecmascript)", ((__turbopack_context__, module, exports) => {
|
|
"use strict";
|
|
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$build$2f$polyfills$2f$process$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__ = /*#__PURE__*/ __turbopack_context__.i("[project]/node_modules/next/dist/build/polyfills/process.js [app-client] (ecmascript)");
|
|
'use client';
|
|
"use strict";
|
|
Object.defineProperty(exports, "__esModule", {
|
|
value: true
|
|
});
|
|
0 && (module.exports = {
|
|
LoadingBoundaryProvider: null,
|
|
default: null
|
|
});
|
|
function _export(target, all) {
|
|
for(var name in all)Object.defineProperty(target, name, {
|
|
enumerable: true,
|
|
get: all[name]
|
|
});
|
|
}
|
|
_export(exports, {
|
|
LoadingBoundaryProvider: function() {
|
|
return LoadingBoundaryProvider;
|
|
},
|
|
/**
|
|
* OuterLayoutRouter handles the current segment as well as <Offscreen> rendering of other segments.
|
|
* It can be rendered next to each other with a different `parallelRouterKey`, allowing for Parallel routes.
|
|
*/ default: function() {
|
|
return OuterLayoutRouter;
|
|
}
|
|
});
|
|
const _interop_require_default = __turbopack_context__.r("[project]/node_modules/@swc/helpers/cjs/_interop_require_default.cjs [app-client] (ecmascript)");
|
|
const _interop_require_wildcard = __turbopack_context__.r("[project]/node_modules/@swc/helpers/cjs/_interop_require_wildcard.cjs [app-client] (ecmascript)");
|
|
const _jsxruntime = __turbopack_context__.r("[project]/node_modules/next/dist/compiled/react/jsx-runtime.js [app-client] (ecmascript)");
|
|
const _react = /*#__PURE__*/ _interop_require_wildcard._(__turbopack_context__.r("[project]/node_modules/next/dist/compiled/react/index.js [app-client] (ecmascript)"));
|
|
const _reactdom = /*#__PURE__*/ _interop_require_default._(__turbopack_context__.r("[project]/node_modules/next/dist/compiled/react-dom/index.js [app-client] (ecmascript)"));
|
|
const _approutercontextsharedruntime = __turbopack_context__.r("[project]/node_modules/next/dist/shared/lib/app-router-context.shared-runtime.js [app-client] (ecmascript)");
|
|
const _unresolvedthenable = __turbopack_context__.r("[project]/node_modules/next/dist/client/components/unresolved-thenable.js [app-client] (ecmascript)");
|
|
const _errorboundary = __turbopack_context__.r("[project]/node_modules/next/dist/client/components/error-boundary.js [app-client] (ecmascript)");
|
|
const _disablesmoothscroll = __turbopack_context__.r("[project]/node_modules/next/dist/shared/lib/router/utils/disable-smooth-scroll.js [app-client] (ecmascript)");
|
|
const _redirectboundary = __turbopack_context__.r("[project]/node_modules/next/dist/client/components/redirect-boundary.js [app-client] (ecmascript)");
|
|
const _errorboundary1 = __turbopack_context__.r("[project]/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js [app-client] (ecmascript)");
|
|
const _createroutercachekey = __turbopack_context__.r("[project]/node_modules/next/dist/client/components/router-reducer/create-router-cache-key.js [app-client] (ecmascript)");
|
|
const _bfcachestatemanager = __turbopack_context__.r("[project]/node_modules/next/dist/client/components/bfcache-state-manager.js [app-client] (ecmascript)");
|
|
const _apppaths = __turbopack_context__.r("[project]/node_modules/next/dist/shared/lib/router/utils/app-paths.js [app-client] (ecmascript)");
|
|
const _hooksclientcontextsharedruntime = __turbopack_context__.r("[project]/node_modules/next/dist/shared/lib/hooks-client-context.shared-runtime.js [app-client] (ecmascript)");
|
|
const _routeparams = __turbopack_context__.r("[project]/node_modules/next/dist/client/route-params.js [app-client] (ecmascript)");
|
|
const _pprnavigations = __turbopack_context__.r("[project]/node_modules/next/dist/client/components/router-reducer/ppr-navigations.js [app-client] (ecmascript)");
|
|
const enableNewScrollHandler = ("TURBOPACK compile-time value", false);
|
|
const __DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE = _reactdom.default.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;
|
|
// TODO-APP: Replace with new React API for finding dom nodes without a `ref` when available
|
|
/**
|
|
* Wraps ReactDOM.findDOMNode with additional logic to hide React Strict Mode warning
|
|
*/ function findDOMNode(instance) {
|
|
// Tree-shake for server bundle
|
|
if (typeof window === 'undefined') return null;
|
|
// __DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE.findDOMNode is null during module init.
|
|
// We need to lazily reference it.
|
|
const internal_reactDOMfindDOMNode = __DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE.findDOMNode;
|
|
return internal_reactDOMfindDOMNode(instance);
|
|
}
|
|
const rectProperties = [
|
|
'bottom',
|
|
'height',
|
|
'left',
|
|
'right',
|
|
'top',
|
|
'width',
|
|
'x',
|
|
'y'
|
|
];
|
|
/**
|
|
* Check if a HTMLElement is hidden or fixed/sticky position
|
|
*/ function shouldSkipElement(element) {
|
|
// we ignore fixed or sticky positioned elements since they'll likely pass the "in-viewport" check
|
|
// and will result in a situation we bail on scroll because of something like a fixed nav,
|
|
// even though the actual page content is offscreen
|
|
if ([
|
|
'sticky',
|
|
'fixed'
|
|
].includes(getComputedStyle(element).position)) {
|
|
return true;
|
|
}
|
|
// Uses `getBoundingClientRect` to check if the element is hidden instead of `offsetParent`
|
|
// because `offsetParent` doesn't consider document/body
|
|
const rect = element.getBoundingClientRect();
|
|
return rectProperties.every((item)=>rect[item] === 0);
|
|
}
|
|
/**
|
|
* Check if the top corner of the HTMLElement is in the viewport.
|
|
*/ function topOfElementInViewport(instance, viewportHeight) {
|
|
const rects = instance.getClientRects();
|
|
if (rects.length === 0) {
|
|
// Just to be explicit.
|
|
return false;
|
|
}
|
|
let elementTop = Number.POSITIVE_INFINITY;
|
|
for(let i = 0; i < rects.length; i++){
|
|
const rect = rects[i];
|
|
if (rect.top < elementTop) {
|
|
elementTop = rect.top;
|
|
}
|
|
}
|
|
return elementTop >= 0 && elementTop <= viewportHeight;
|
|
}
|
|
/**
|
|
* Find the DOM node for a hash fragment.
|
|
* If `top` the page has to scroll to the top of the page. This mirrors the browser's behavior.
|
|
* If the hash fragment is an id, the page has to scroll to the element with that id.
|
|
* If the hash fragment is a name, the page has to scroll to the first element with that name.
|
|
*/ function getHashFragmentDomNode(hashFragment) {
|
|
// If the hash fragment is `top` the page has to scroll to the top of the page.
|
|
if (hashFragment === 'top') {
|
|
return document.body;
|
|
}
|
|
// If the hash fragment is an id, the page has to scroll to the element with that id.
|
|
return document.getElementById(hashFragment) ?? // If the hash fragment is a name, the page has to scroll to the first element with that name.
|
|
document.getElementsByName(hashFragment)[0];
|
|
}
|
|
class InnerScrollAndFocusHandlerOld extends _react.default.Component {
|
|
componentDidMount() {
|
|
this.handlePotentialScroll();
|
|
}
|
|
componentDidUpdate() {
|
|
this.handlePotentialScroll();
|
|
}
|
|
render() {
|
|
return this.props.children;
|
|
}
|
|
constructor(...args){
|
|
super(...args), this.handlePotentialScroll = ()=>{
|
|
// Handle scroll and focus, it's only applied once.
|
|
const { focusAndScrollRef, cacheNode } = this.props;
|
|
const scrollRef = focusAndScrollRef.forceScroll ? focusAndScrollRef.scrollRef : cacheNode.scrollRef;
|
|
if (scrollRef === null || !scrollRef.current) return;
|
|
let domNode = null;
|
|
const hashFragment = focusAndScrollRef.hashFragment;
|
|
if (hashFragment) {
|
|
domNode = getHashFragmentDomNode(hashFragment);
|
|
}
|
|
// `findDOMNode` is tricky because it returns just the first child if the component is a fragment.
|
|
// This already caused a bug where the first child was a <link/> in head.
|
|
if (!domNode) {
|
|
domNode = findDOMNode(this);
|
|
}
|
|
// If there is no DOM node this layout-router level is skipped. It'll be handled higher-up in the tree.
|
|
if (!(domNode instanceof Element)) {
|
|
return;
|
|
}
|
|
// Verify if the element is a HTMLElement and if we want to consider it for scroll behavior.
|
|
// If the element is skipped, try to select the next sibling and try again.
|
|
while(!(domNode instanceof HTMLElement) || shouldSkipElement(domNode)){
|
|
if ("TURBOPACK compile-time truthy", 1) {
|
|
if (domNode.parentElement?.localName === 'head') {
|
|
// We enter this state when metadata was rendered as part of the page or via Next.js.
|
|
// This is always a bug in Next.js and caused by React hoisting metadata.
|
|
// Fixed with `experimental.appNewScrollHandler`
|
|
}
|
|
}
|
|
// No siblings found that match the criteria are found, so handle scroll higher up in the tree instead.
|
|
if (domNode.nextElementSibling === null) {
|
|
return;
|
|
}
|
|
domNode = domNode.nextElementSibling;
|
|
}
|
|
// Mark as scrolled so no other segment scrolls for this navigation.
|
|
scrollRef.current = false;
|
|
(0, _disablesmoothscroll.disableSmoothScrollDuringRouteTransition)(()=>{
|
|
// In case of hash scroll, we only need to scroll the element into view
|
|
if (hashFragment) {
|
|
domNode.scrollIntoView();
|
|
return;
|
|
}
|
|
// Store the current viewport height because reading `clientHeight` causes a reflow,
|
|
// and it won't change during this function.
|
|
const htmlElement = document.documentElement;
|
|
const viewportHeight = htmlElement.clientHeight;
|
|
// If the element's top edge is already in the viewport, exit early.
|
|
if (topOfElementInViewport(domNode, viewportHeight)) {
|
|
return;
|
|
}
|
|
// Otherwise, try scrolling go the top of the document to be backward compatible with pages
|
|
// scrollIntoView() called on `<html/>` element scrolls horizontally on chrome and firefox (that shouldn't happen)
|
|
// We could use it to scroll horizontally following RTL but that also seems to be broken - it will always scroll left
|
|
// scrollLeft = 0 also seems to ignore RTL and manually checking for RTL is too much hassle so we will scroll just vertically
|
|
htmlElement.scrollTop = 0;
|
|
// Scroll to domNode if domNode is not in viewport when scrolled to top of document
|
|
if (!topOfElementInViewport(domNode, viewportHeight)) {
|
|
// Scroll into view doesn't scroll horizontally by default when not needed
|
|
domNode.scrollIntoView();
|
|
}
|
|
}, {
|
|
// We will force layout by querying domNode position
|
|
dontForceLayout: true,
|
|
onlyHashChange: focusAndScrollRef.onlyHashChange
|
|
});
|
|
// Mutate after scrolling so that it can be read by `disableSmoothScrollDuringRouteTransition`
|
|
focusAndScrollRef.onlyHashChange = false;
|
|
focusAndScrollRef.hashFragment = null;
|
|
// Set focus on the element
|
|
domNode.focus();
|
|
};
|
|
}
|
|
}
|
|
/**
|
|
* Fork of InnerScrollAndFocusHandlerOld using Fragment refs for scrolling.
|
|
* No longer focuses the first host descendant.
|
|
*/ function InnerScrollHandlerNew(props) {
|
|
const childrenRef = _react.default.useRef(null);
|
|
(0, _react.useLayoutEffect)(()=>{
|
|
const { focusAndScrollRef, cacheNode } = props;
|
|
const scrollRef = focusAndScrollRef.forceScroll ? focusAndScrollRef.scrollRef : cacheNode.scrollRef;
|
|
if (scrollRef === null || !scrollRef.current) return;
|
|
let instance = null;
|
|
const hashFragment = focusAndScrollRef.hashFragment;
|
|
if (hashFragment) {
|
|
instance = getHashFragmentDomNode(hashFragment);
|
|
}
|
|
if (!instance) {
|
|
instance = childrenRef.current;
|
|
}
|
|
// If there is no DOM node this layout-router level is skipped. It'll be handled higher-up in the tree.
|
|
if (instance === null) {
|
|
return;
|
|
}
|
|
// Mark as scrolled so no other segment scrolls for this navigation.
|
|
scrollRef.current = false;
|
|
const activeElement = document.activeElement;
|
|
if (activeElement !== null && 'blur' in activeElement && typeof activeElement.blur === 'function') {
|
|
// Trying to match hard navigations.
|
|
// Ideally we'd move the internal focus cursor either to the top
|
|
// or at least before the segment. But there's no DOM API to do that,
|
|
// so we just blur.
|
|
// We could workaround this by moving focus to a temporary element in
|
|
// the body. But adding elements might trigger layout or other effects
|
|
// so it should be well motivated.
|
|
activeElement.blur();
|
|
}
|
|
(0, _disablesmoothscroll.disableSmoothScrollDuringRouteTransition)(()=>{
|
|
// In case of hash scroll, we only need to scroll the element into view
|
|
if (hashFragment) {
|
|
instance.scrollIntoView();
|
|
return;
|
|
}
|
|
// Store the current viewport height because reading `clientHeight` causes a reflow,
|
|
// and it won't change during this function.
|
|
const htmlElement = document.documentElement;
|
|
const viewportHeight = htmlElement.clientHeight;
|
|
// If the element's top edge is already in the viewport, exit early.
|
|
if (topOfElementInViewport(instance, viewportHeight)) {
|
|
return;
|
|
}
|
|
// Otherwise, try scrolling go the top of the document to be backward compatible with pages
|
|
// scrollIntoView() called on `<html/>` element scrolls horizontally on chrome and firefox (that shouldn't happen)
|
|
// We could use it to scroll horizontally following RTL but that also seems to be broken - it will always scroll left
|
|
// scrollLeft = 0 also seems to ignore RTL and manually checking for RTL is too much hassle so we will scroll just vertically
|
|
htmlElement.scrollTop = 0;
|
|
// Scroll to domNode if domNode is not in viewport when scrolled to top of document
|
|
if (!topOfElementInViewport(instance, viewportHeight)) {
|
|
// Scroll into view doesn't scroll horizontally by default when not needed
|
|
instance.scrollIntoView();
|
|
}
|
|
}, {
|
|
// We will force layout by querying domNode position
|
|
dontForceLayout: true,
|
|
onlyHashChange: focusAndScrollRef.onlyHashChange
|
|
});
|
|
// Mutate after scrolling so that it can be read by `disableSmoothScrollDuringRouteTransition`
|
|
focusAndScrollRef.onlyHashChange = false;
|
|
focusAndScrollRef.hashFragment = null;
|
|
}, // but be prepared for lots of manual testing.
|
|
undefined);
|
|
return /*#__PURE__*/ (0, _jsxruntime.jsx)(_react.Fragment, {
|
|
ref: childrenRef,
|
|
children: props.children
|
|
});
|
|
}
|
|
const InnerScrollAndMaybeFocusHandler = ("TURBOPACK compile-time falsy", 0) ? "TURBOPACK unreachable" : InnerScrollAndFocusHandlerOld;
|
|
function ScrollAndMaybeFocusHandler({ children, cacheNode }) {
|
|
const context = (0, _react.useContext)(_approutercontextsharedruntime.GlobalLayoutRouterContext);
|
|
if (!context) {
|
|
throw Object.defineProperty(new Error('invariant global layout router not mounted'), "__NEXT_ERROR_CODE", {
|
|
value: "E473",
|
|
enumerable: false,
|
|
configurable: true
|
|
});
|
|
}
|
|
return /*#__PURE__*/ (0, _jsxruntime.jsx)(InnerScrollAndMaybeFocusHandler, {
|
|
focusAndScrollRef: context.focusAndScrollRef,
|
|
cacheNode: cacheNode,
|
|
children: children
|
|
});
|
|
}
|
|
/**
|
|
* InnerLayoutRouter handles rendering the provided segment based on the cache.
|
|
*/ function InnerLayoutRouter({ tree, segmentPath, debugNameContext, cacheNode: maybeCacheNode, params, url, isActive }) {
|
|
const context = (0, _react.useContext)(_approutercontextsharedruntime.GlobalLayoutRouterContext);
|
|
const parentNavPromises = (0, _react.useContext)(_hooksclientcontextsharedruntime.NavigationPromisesContext);
|
|
if (!context) {
|
|
throw Object.defineProperty(new Error('invariant global layout router not mounted'), "__NEXT_ERROR_CODE", {
|
|
value: "E473",
|
|
enumerable: false,
|
|
configurable: true
|
|
});
|
|
}
|
|
const cacheNode = maybeCacheNode !== null ? maybeCacheNode : // This should only be reachable for inactive/hidden segments, during
|
|
// prerendering The active segment should always be consistent with the
|
|
// CacheNode tree. Regardless, if we don't have a matching CacheNode, we
|
|
// must suspend rather than render nothing, to prevent showing an
|
|
// inconsistent route.
|
|
(0, _react.use)(_unresolvedthenable.unresolvedThenable);
|
|
// `rsc` represents the renderable node for this segment.
|
|
// If this segment has a `prefetchRsc`, it's the statically prefetched data.
|
|
// We should use that on initial render instead of `rsc`. Then we'll switch
|
|
// to `rsc` when the dynamic response streams in.
|
|
//
|
|
// If no prefetch data is available, then we go straight to rendering `rsc`.
|
|
const resolvedPrefetchRsc = cacheNode.prefetchRsc !== null ? cacheNode.prefetchRsc : cacheNode.rsc;
|
|
// We use `useDeferredValue` to handle switching between the prefetched and
|
|
// final values. The second argument is returned on initial render, then it
|
|
// re-renders with the first argument.
|
|
const rsc = (0, _react.useDeferredValue)(cacheNode.rsc, resolvedPrefetchRsc);
|
|
// `rsc` is either a React node or a promise for a React node, except we
|
|
// special case `null` to represent that this segment's data is missing. If
|
|
// it's a promise, we need to unwrap it so we can determine whether or not the
|
|
// data is missing.
|
|
let resolvedRsc;
|
|
if ((0, _pprnavigations.isDeferredRsc)(rsc)) {
|
|
const unwrappedRsc = (0, _react.use)(rsc);
|
|
if (unwrappedRsc === null) {
|
|
// If the promise was resolved to `null`, it means the data for this
|
|
// segment was not returned by the server. Suspend indefinitely. When this
|
|
// happens, the router is responsible for triggering a new state update to
|
|
// un-suspend this segment.
|
|
(0, _react.use)(_unresolvedthenable.unresolvedThenable);
|
|
}
|
|
resolvedRsc = unwrappedRsc;
|
|
} else {
|
|
// This is not a deferred RSC promise. Don't need to unwrap it.
|
|
if (rsc === null) {
|
|
(0, _react.use)(_unresolvedthenable.unresolvedThenable);
|
|
}
|
|
resolvedRsc = rsc;
|
|
}
|
|
// In dev, we create a NavigationPromisesContext containing the instrumented promises that provide
|
|
// `useSelectedLayoutSegment` and `useSelectedLayoutSegments`.
|
|
// Promises are cached outside of render to survive suspense retries.
|
|
let navigationPromises = null;
|
|
if ("TURBOPACK compile-time truthy", 1) {
|
|
const { createNestedLayoutNavigationPromises } = __turbopack_context__.r("[project]/node_modules/next/dist/client/components/navigation-devtools.js [app-client] (ecmascript)");
|
|
navigationPromises = createNestedLayoutNavigationPromises(tree, parentNavPromises);
|
|
}
|
|
let children = resolvedRsc;
|
|
if (navigationPromises) {
|
|
children = /*#__PURE__*/ (0, _jsxruntime.jsx)(_hooksclientcontextsharedruntime.NavigationPromisesContext.Provider, {
|
|
value: navigationPromises,
|
|
children: resolvedRsc
|
|
});
|
|
}
|
|
children = /*#__PURE__*/ (0, _jsxruntime.jsx)(_approutercontextsharedruntime.LayoutRouterContext.Provider, {
|
|
value: {
|
|
parentTree: tree,
|
|
parentCacheNode: cacheNode,
|
|
parentSegmentPath: segmentPath,
|
|
parentParams: params,
|
|
// This is always set to null as we enter a child segment. It's
|
|
// populated by LoadingBoundaryProvider the next time we reach a
|
|
// loading boundary.
|
|
parentLoadingData: null,
|
|
debugNameContext: debugNameContext,
|
|
// TODO-APP: overriding of url for parallel routes
|
|
url: url,
|
|
isActive: isActive
|
|
},
|
|
children: children
|
|
});
|
|
return children;
|
|
}
|
|
function LoadingBoundaryProvider({ loading, children }) {
|
|
// Provides the data needed to render a loading.tsx boundary, via context.
|
|
//
|
|
// loading.tsx creates a Suspense boundary around each of a layout's child
|
|
// slots. (Might be bit confusing to think about the data flow, but: if
|
|
// loading.tsx and layout.tsx are in the same directory, they are assigned
|
|
// to the same CacheNode.)
|
|
//
|
|
// This provider component does not render the Suspense boundary directly;
|
|
// that's handled by LoadingBoundary.
|
|
//
|
|
// TODO: For simplicity, we should combine this provider with LoadingBoundary
|
|
// and render the Suspense boundary directly. The only real benefit of doing
|
|
// it separately is so that when there are multiple parallel routes, we only
|
|
// send the boundary data once, rather than once per child. But that's a
|
|
// negligible benefit and can be achieved via caching instead.
|
|
const parentContext = (0, _react.use)(_approutercontextsharedruntime.LayoutRouterContext);
|
|
if (parentContext === null) {
|
|
return children;
|
|
}
|
|
// All values except for parentLoadingData are the same as the parent context.
|
|
return /*#__PURE__*/ (0, _jsxruntime.jsx)(_approutercontextsharedruntime.LayoutRouterContext.Provider, {
|
|
value: {
|
|
parentTree: parentContext.parentTree,
|
|
parentCacheNode: parentContext.parentCacheNode,
|
|
parentSegmentPath: parentContext.parentSegmentPath,
|
|
parentParams: parentContext.parentParams,
|
|
parentLoadingData: loading,
|
|
debugNameContext: parentContext.debugNameContext,
|
|
url: parentContext.url,
|
|
isActive: parentContext.isActive
|
|
},
|
|
children: children
|
|
});
|
|
}
|
|
/**
|
|
* Renders suspense boundary with the provided "loading" property as the fallback.
|
|
* If no loading property is provided it renders the children without a suspense boundary.
|
|
*/ function LoadingBoundary({ name, loading, children }) {
|
|
// TODO: For LoadingBoundary, and the other built-in boundary types, don't
|
|
// wrap in an extra function component if no user-defined boundary is
|
|
// provided. In other words, inline this conditional wrapping logic into
|
|
// the parent component. More efficient and keeps unnecessary junk out of
|
|
// the component stack.
|
|
if (loading !== null) {
|
|
const loadingRsc = loading[0];
|
|
const loadingStyles = loading[1];
|
|
const loadingScripts = loading[2];
|
|
return /*#__PURE__*/ (0, _jsxruntime.jsx)(_react.Suspense, {
|
|
name: name,
|
|
fallback: /*#__PURE__*/ (0, _jsxruntime.jsxs)(_jsxruntime.Fragment, {
|
|
children: [
|
|
loadingStyles,
|
|
loadingScripts,
|
|
loadingRsc
|
|
]
|
|
}),
|
|
children: children
|
|
});
|
|
}
|
|
return /*#__PURE__*/ (0, _jsxruntime.jsx)(_jsxruntime.Fragment, {
|
|
children: children
|
|
});
|
|
}
|
|
function OuterLayoutRouter({ parallelRouterKey, error, errorStyles, errorScripts, templateStyles, templateScripts, template, notFound, forbidden, unauthorized, segmentViewBoundaries }) {
|
|
const context = (0, _react.useContext)(_approutercontextsharedruntime.LayoutRouterContext);
|
|
if (!context) {
|
|
throw Object.defineProperty(new Error('invariant expected layout router to be mounted'), "__NEXT_ERROR_CODE", {
|
|
value: "E56",
|
|
enumerable: false,
|
|
configurable: true
|
|
});
|
|
}
|
|
const { parentTree, parentCacheNode, parentSegmentPath, parentParams, parentLoadingData, url, isActive, debugNameContext } = context;
|
|
// Get the CacheNode for this segment by reading it from the parent segment's
|
|
// child map.
|
|
const parentTreeSegment = parentTree[0];
|
|
const segmentPath = parentSegmentPath === null ? // the code. We should clean this up.
|
|
[
|
|
parallelRouterKey
|
|
] : parentSegmentPath.concat([
|
|
parentTreeSegment,
|
|
parallelRouterKey
|
|
]);
|
|
// The "state" key of a segment is the one passed to React — it represents the
|
|
// identity of the UI tree. Whenever the state key changes, the tree is
|
|
// recreated and the state is reset. In the App Router model, search params do
|
|
// not cause state to be lost, so two segments with the same segment path but
|
|
// different search params should have the same state key.
|
|
//
|
|
// The "cache" key of a segment, however, *does* include the search params, if
|
|
// it's possible that the segment accessed the search params on the server.
|
|
// (This only applies to page segments; layout segments cannot access search
|
|
// params on the server.)
|
|
const activeTree = parentTree[1][parallelRouterKey];
|
|
const maybeParentSlots = parentCacheNode.slots;
|
|
if (activeTree === undefined || maybeParentSlots === null) {
|
|
// Could not find a matching segment. The client tree is inconsistent with
|
|
// the server tree. Suspend indefinitely; the router will have already
|
|
// detected the inconsistency when handling the server response, and
|
|
// triggered a refresh of the page to recover.
|
|
(0, _react.use)(_unresolvedthenable.unresolvedThenable);
|
|
}
|
|
let maybeValidationBoundaryId = null;
|
|
if ("TURBOPACK compile-time falsy", 0) //TURBOPACK unreachable
|
|
;
|
|
const activeSegment = activeTree[0];
|
|
const activeCacheNode = maybeParentSlots[parallelRouterKey] ?? null;
|
|
const activeStateKey = (0, _createroutercachekey.createRouterCacheKey)(activeSegment, true) // no search params
|
|
;
|
|
// At each level of the route tree, not only do we render the currently
|
|
// active segment — we also render the last N segments that were active at
|
|
// this level inside a hidden <Activity> boundary, to preserve their state
|
|
// if or when the user navigates to them again.
|
|
//
|
|
// bfcacheEntry is a linked list of FlightRouterStates.
|
|
let bfcacheEntry = (0, _bfcachestatemanager.useRouterBFCache)(activeTree, activeCacheNode, activeStateKey);
|
|
let children = [];
|
|
do {
|
|
const tree = bfcacheEntry.tree;
|
|
const cacheNode = bfcacheEntry.cacheNode;
|
|
const stateKey = bfcacheEntry.stateKey;
|
|
const segment = tree[0];
|
|
/*
|
|
- Error boundary
|
|
- Only renders error boundary if error component is provided.
|
|
- Rendered for each segment to ensure they have their own error state.
|
|
- When gracefully degrade for bots, skip rendering error boundary.
|
|
- Loading boundary
|
|
- Only renders suspense boundary if loading components is provided.
|
|
- Rendered for each segment to ensure they have their own loading state.
|
|
- Passed to the router during rendering to ensure it can be immediately rendered when suspending on a Flight fetch.
|
|
*/ let segmentBoundaryTriggerNode = null;
|
|
let segmentViewStateNode = null;
|
|
if ("TURBOPACK compile-time truthy", 1) {
|
|
const { SegmentBoundaryTriggerNode, SegmentViewStateNode } = __turbopack_context__.r("[project]/node_modules/next/dist/next-devtools/userspace/app/segment-explorer-node.js [app-client] (ecmascript)");
|
|
const pagePrefix = (0, _apppaths.normalizeAppPath)(url);
|
|
segmentViewStateNode = /*#__PURE__*/ (0, _jsxruntime.jsx)(SegmentViewStateNode, {
|
|
page: pagePrefix
|
|
}, pagePrefix);
|
|
segmentBoundaryTriggerNode = /*#__PURE__*/ (0, _jsxruntime.jsx)(_jsxruntime.Fragment, {
|
|
children: /*#__PURE__*/ (0, _jsxruntime.jsx)(SegmentBoundaryTriggerNode, {})
|
|
});
|
|
}
|
|
let params = parentParams;
|
|
if (Array.isArray(segment)) {
|
|
// This segment contains a route param. Accumulate these as we traverse
|
|
// down the router tree. The result represents the set of params that
|
|
// the layout/page components are permitted to access below this point.
|
|
const paramName = segment[0];
|
|
const paramCacheKey = segment[1];
|
|
const paramType = segment[2];
|
|
const paramValue = (0, _routeparams.getParamValueFromCacheKey)(paramCacheKey, paramType);
|
|
if (paramValue !== null) {
|
|
params = {
|
|
...parentParams,
|
|
[paramName]: paramValue
|
|
};
|
|
}
|
|
}
|
|
const debugName = getBoundaryDebugNameFromSegment(segment);
|
|
// `debugNameContext` represents the nearest non-"virtual" parent segment.
|
|
// `getBoundaryDebugNameFromSegment` returns undefined for virtual segments.
|
|
// So if `debugName` is undefined, the context is passed through unchanged.
|
|
const childDebugNameContext = debugName ?? debugNameContext;
|
|
// In practical terms, clicking this name in the Suspense DevTools
|
|
// should select the child slots of that layout.
|
|
//
|
|
// So the name we apply to the Activity boundary is actually based on
|
|
// the nearest parent segments.
|
|
//
|
|
// We skip over "virtual" parents, i.e. ones inserted by Next.js that
|
|
// don't correspond to application-defined code.
|
|
const isVirtual = debugName === undefined;
|
|
const debugNameToDisplay = isVirtual ? undefined : debugNameContext;
|
|
let templateValue = /*#__PURE__*/ (0, _jsxruntime.jsxs)(ScrollAndMaybeFocusHandler, {
|
|
cacheNode: cacheNode,
|
|
children: [
|
|
/*#__PURE__*/ (0, _jsxruntime.jsx)(_errorboundary.ErrorBoundary, {
|
|
errorComponent: error,
|
|
errorStyles: errorStyles,
|
|
errorScripts: errorScripts,
|
|
children: /*#__PURE__*/ (0, _jsxruntime.jsx)(LoadingBoundary, {
|
|
name: debugNameToDisplay,
|
|
// TODO: The loading module data for a segment is stored on the
|
|
// parent, then applied to each of that parent segment's
|
|
// parallel route slots. In the simple case where there's only
|
|
// one parallel route (the `children` slot), this is no
|
|
// different from if the loading module data were stored on the
|
|
// child directly. But I'm not sure this actually makes sense
|
|
// when there are multiple parallel routes. It's not a huge
|
|
// issue because you always have the option to define a narrower
|
|
// loading boundary for a particular slot. But this sort of
|
|
// smells like an implementation accident to me.
|
|
loading: parentLoadingData,
|
|
children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_errorboundary1.HTTPAccessFallbackBoundary, {
|
|
notFound: notFound,
|
|
forbidden: forbidden,
|
|
unauthorized: unauthorized,
|
|
children: /*#__PURE__*/ (0, _jsxruntime.jsxs)(_redirectboundary.RedirectBoundary, {
|
|
children: [
|
|
/*#__PURE__*/ (0, _jsxruntime.jsx)(InnerLayoutRouter, {
|
|
url: url,
|
|
tree: tree,
|
|
params: params,
|
|
cacheNode: cacheNode,
|
|
segmentPath: segmentPath,
|
|
debugNameContext: childDebugNameContext,
|
|
isActive: isActive && stateKey === activeStateKey
|
|
}),
|
|
segmentBoundaryTriggerNode
|
|
]
|
|
})
|
|
})
|
|
})
|
|
}),
|
|
segmentViewStateNode
|
|
]
|
|
});
|
|
if ("TURBOPACK compile-time falsy", 0) //TURBOPACK unreachable
|
|
;
|
|
let child = /*#__PURE__*/ (0, _jsxruntime.jsxs)(_approutercontextsharedruntime.TemplateContext.Provider, {
|
|
value: templateValue,
|
|
children: [
|
|
templateStyles,
|
|
templateScripts,
|
|
template
|
|
]
|
|
}, stateKey);
|
|
if ("TURBOPACK compile-time truthy", 1) {
|
|
const { SegmentStateProvider } = __turbopack_context__.r("[project]/node_modules/next/dist/next-devtools/userspace/app/segment-explorer-node.js [app-client] (ecmascript)");
|
|
child = /*#__PURE__*/ (0, _jsxruntime.jsxs)(SegmentStateProvider, {
|
|
children: [
|
|
child,
|
|
segmentViewBoundaries
|
|
]
|
|
}, stateKey);
|
|
}
|
|
if ("TURBOPACK compile-time falsy", 0) //TURBOPACK unreachable
|
|
;
|
|
children.push(child);
|
|
bfcacheEntry = bfcacheEntry.next;
|
|
}while (bfcacheEntry !== null)
|
|
return children;
|
|
}
|
|
function getBoundaryDebugNameFromSegment(segment) {
|
|
if (segment === '/') {
|
|
// Reached the root
|
|
return '/';
|
|
}
|
|
if (typeof segment === 'string') {
|
|
if (isVirtualLayout(segment)) {
|
|
return undefined;
|
|
} else {
|
|
return segment + '/';
|
|
}
|
|
}
|
|
const paramCacheKey = segment[1];
|
|
return paramCacheKey + '/';
|
|
}
|
|
function isVirtualLayout(segment) {
|
|
return(// (like __PAGE__ and __DEFAULT__) to avoid collisions with
|
|
// user-defined route groups.
|
|
segment === '(__SLOT__)');
|
|
}
|
|
if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {
|
|
Object.defineProperty(exports.default, '__esModule', {
|
|
value: true
|
|
});
|
|
Object.assign(exports.default, exports);
|
|
module.exports = exports.default;
|
|
}
|
|
}),
|
|
"[project]/node_modules/next/dist/client/components/render-from-template-context.js [app-client] (ecmascript)", ((__turbopack_context__, module, exports) => {
|
|
"use strict";
|
|
|
|
Object.defineProperty(exports, "__esModule", {
|
|
value: true
|
|
});
|
|
Object.defineProperty(exports, "default", {
|
|
enumerable: true,
|
|
get: function() {
|
|
return RenderFromTemplateContext;
|
|
}
|
|
});
|
|
const _interop_require_wildcard = __turbopack_context__.r("[project]/node_modules/@swc/helpers/cjs/_interop_require_wildcard.cjs [app-client] (ecmascript)");
|
|
const _jsxruntime = __turbopack_context__.r("[project]/node_modules/next/dist/compiled/react/jsx-runtime.js [app-client] (ecmascript)");
|
|
const _react = /*#__PURE__*/ _interop_require_wildcard._(__turbopack_context__.r("[project]/node_modules/next/dist/compiled/react/index.js [app-client] (ecmascript)"));
|
|
const _approutercontextsharedruntime = __turbopack_context__.r("[project]/node_modules/next/dist/shared/lib/app-router-context.shared-runtime.js [app-client] (ecmascript)");
|
|
function RenderFromTemplateContext() {
|
|
const children = (0, _react.useContext)(_approutercontextsharedruntime.TemplateContext);
|
|
return /*#__PURE__*/ (0, _jsxruntime.jsx)(_jsxruntime.Fragment, {
|
|
children: children
|
|
});
|
|
}
|
|
if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {
|
|
Object.defineProperty(exports.default, '__esModule', {
|
|
value: true
|
|
});
|
|
Object.assign(exports.default, exports);
|
|
module.exports = exports.default;
|
|
}
|
|
}),
|
|
"[project]/node_modules/next/dist/server/web/spec-extension/adapters/reflect.js [app-client] (ecmascript)", ((__turbopack_context__, module, exports) => {
|
|
"use strict";
|
|
|
|
Object.defineProperty(exports, "__esModule", {
|
|
value: true
|
|
});
|
|
Object.defineProperty(exports, "ReflectAdapter", {
|
|
enumerable: true,
|
|
get: function() {
|
|
return ReflectAdapter;
|
|
}
|
|
});
|
|
class ReflectAdapter {
|
|
static get(target, prop, receiver) {
|
|
const value = Reflect.get(target, prop, receiver);
|
|
if (typeof value === 'function') {
|
|
return value.bind(target);
|
|
}
|
|
return value;
|
|
}
|
|
static set(target, prop, value, receiver) {
|
|
return Reflect.set(target, prop, value, receiver);
|
|
}
|
|
static has(target, prop) {
|
|
return Reflect.has(target, prop);
|
|
}
|
|
static deleteProperty(target, prop) {
|
|
return Reflect.deleteProperty(target, prop);
|
|
}
|
|
}
|
|
}),
|
|
"[project]/node_modules/next/dist/shared/lib/utils/reflect-utils.js [app-client] (ecmascript)", ((__turbopack_context__, module, exports) => {
|
|
"use strict";
|
|
|
|
// This regex will have fast negatives meaning valid identifiers may not pass
|
|
// this test. However this is only used during static generation to provide hints
|
|
// about why a page bailed out of some or all prerendering and we can use bracket notation
|
|
// for example while `ಠ_ಠ` is a valid identifier it's ok to print `searchParams['ಠ_ಠ']`
|
|
// even if this would have been fine too `searchParams.ಠ_ಠ`
|
|
Object.defineProperty(exports, "__esModule", {
|
|
value: true
|
|
});
|
|
0 && (module.exports = {
|
|
describeHasCheckingStringProperty: null,
|
|
describeStringPropertyAccess: null,
|
|
wellKnownProperties: null
|
|
});
|
|
function _export(target, all) {
|
|
for(var name in all)Object.defineProperty(target, name, {
|
|
enumerable: true,
|
|
get: all[name]
|
|
});
|
|
}
|
|
_export(exports, {
|
|
describeHasCheckingStringProperty: function() {
|
|
return describeHasCheckingStringProperty;
|
|
},
|
|
describeStringPropertyAccess: function() {
|
|
return describeStringPropertyAccess;
|
|
},
|
|
wellKnownProperties: function() {
|
|
return wellKnownProperties;
|
|
}
|
|
});
|
|
const isDefinitelyAValidIdentifier = /^[A-Za-z_$][A-Za-z0-9_$]*$/;
|
|
function describeStringPropertyAccess(target, prop) {
|
|
if (isDefinitelyAValidIdentifier.test(prop)) {
|
|
return `\`${target}.${prop}\``;
|
|
}
|
|
return `\`${target}[${JSON.stringify(prop)}]\``;
|
|
}
|
|
function describeHasCheckingStringProperty(target, prop) {
|
|
const stringifiedProp = JSON.stringify(prop);
|
|
return `\`Reflect.has(${target}, ${stringifiedProp})\`, \`${stringifiedProp} in ${target}\`, or similar`;
|
|
}
|
|
const wellKnownProperties = new Set([
|
|
'hasOwnProperty',
|
|
'isPrototypeOf',
|
|
'propertyIsEnumerable',
|
|
'toString',
|
|
'valueOf',
|
|
'toLocaleString',
|
|
// Promise prototype
|
|
'then',
|
|
'catch',
|
|
'finally',
|
|
// React Promise extension
|
|
'status',
|
|
// 'value',
|
|
// 'error',
|
|
// React introspection
|
|
'displayName',
|
|
'_debugInfo',
|
|
// Common tested properties
|
|
'toJSON',
|
|
'$$typeof',
|
|
'__esModule',
|
|
// Tested by flight when checking for iterables
|
|
'@@iterator'
|
|
]);
|
|
}),
|
|
"[project]/node_modules/next/dist/client/request/search-params.browser.dev.js [app-client] (ecmascript)", ((__turbopack_context__, module, exports) => {
|
|
"use strict";
|
|
|
|
Object.defineProperty(exports, "__esModule", {
|
|
value: true
|
|
});
|
|
Object.defineProperty(exports, "createRenderSearchParamsFromClient", {
|
|
enumerable: true,
|
|
get: function() {
|
|
return createRenderSearchParamsFromClient;
|
|
}
|
|
});
|
|
const _reflect = __turbopack_context__.r("[project]/node_modules/next/dist/server/web/spec-extension/adapters/reflect.js [app-client] (ecmascript)");
|
|
const _reflectutils = __turbopack_context__.r("[project]/node_modules/next/dist/shared/lib/utils/reflect-utils.js [app-client] (ecmascript)");
|
|
const CachedSearchParams = new WeakMap();
|
|
function makeUntrackedSearchParamsWithDevWarnings(underlyingSearchParams) {
|
|
const cachedSearchParams = CachedSearchParams.get(underlyingSearchParams);
|
|
if (cachedSearchParams) {
|
|
return cachedSearchParams;
|
|
}
|
|
const proxiedProperties = new Set();
|
|
const promise = Promise.resolve(underlyingSearchParams);
|
|
Object.keys(underlyingSearchParams).forEach((prop)=>{
|
|
if (_reflectutils.wellKnownProperties.has(prop)) {
|
|
// These properties cannot be shadowed because they need to be the
|
|
// true underlying value for Promises to work correctly at runtime
|
|
} else {
|
|
proxiedProperties.add(prop);
|
|
}
|
|
});
|
|
const proxiedPromise = new Proxy(promise, {
|
|
get (target, prop, receiver) {
|
|
if (typeof prop === 'string') {
|
|
if (!_reflectutils.wellKnownProperties.has(prop) && (proxiedProperties.has(prop) || // We are accessing a property that doesn't exist on the promise nor
|
|
// the underlying searchParams.
|
|
Reflect.has(target, prop) === false)) {
|
|
const expression = (0, _reflectutils.describeStringPropertyAccess)('searchParams', prop);
|
|
warnForSyncAccess(expression);
|
|
}
|
|
}
|
|
return _reflect.ReflectAdapter.get(target, prop, receiver);
|
|
},
|
|
set (target, prop, value, receiver) {
|
|
if (typeof prop === 'string') {
|
|
proxiedProperties.delete(prop);
|
|
}
|
|
return Reflect.set(target, prop, value, receiver);
|
|
},
|
|
has (target, prop) {
|
|
if (typeof prop === 'string') {
|
|
if (!_reflectutils.wellKnownProperties.has(prop) && (proxiedProperties.has(prop) || // We are accessing a property that doesn't exist on the promise nor
|
|
// the underlying searchParams.
|
|
Reflect.has(target, prop) === false)) {
|
|
const expression = (0, _reflectutils.describeHasCheckingStringProperty)('searchParams', prop);
|
|
warnForSyncAccess(expression);
|
|
}
|
|
}
|
|
return Reflect.has(target, prop);
|
|
},
|
|
ownKeys (target) {
|
|
warnForSyncSpread();
|
|
return Reflect.ownKeys(target);
|
|
}
|
|
});
|
|
CachedSearchParams.set(underlyingSearchParams, proxiedPromise);
|
|
return proxiedPromise;
|
|
}
|
|
function warnForSyncAccess(expression) {
|
|
console.error(`A searchParam property was accessed directly with ${expression}. ` + `\`searchParams\` is a Promise and must be unwrapped with \`React.use()\` before accessing its properties. ` + `Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis`);
|
|
}
|
|
function warnForSyncSpread() {
|
|
console.error(`The keys of \`searchParams\` were accessed directly. ` + `\`searchParams\` is a Promise and must be unwrapped with \`React.use()\` before accessing its properties. ` + `Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis`);
|
|
}
|
|
function createRenderSearchParamsFromClient(underlyingSearchParams) {
|
|
return makeUntrackedSearchParamsWithDevWarnings(underlyingSearchParams);
|
|
}
|
|
if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {
|
|
Object.defineProperty(exports.default, '__esModule', {
|
|
value: true
|
|
});
|
|
Object.assign(exports.default, exports);
|
|
module.exports = exports.default;
|
|
}
|
|
}),
|
|
"[project]/node_modules/next/dist/client/request/search-params.browser.js [app-client] (ecmascript)", ((__turbopack_context__, module, exports) => {
|
|
"use strict";
|
|
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$build$2f$polyfills$2f$process$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__ = /*#__PURE__*/ __turbopack_context__.i("[project]/node_modules/next/dist/build/polyfills/process.js [app-client] (ecmascript)");
|
|
"use strict";
|
|
Object.defineProperty(exports, "__esModule", {
|
|
value: true
|
|
});
|
|
Object.defineProperty(exports, "createRenderSearchParamsFromClient", {
|
|
enumerable: true,
|
|
get: function() {
|
|
return createRenderSearchParamsFromClient;
|
|
}
|
|
});
|
|
const createRenderSearchParamsFromClient = ("TURBOPACK compile-time truthy", 1) ? __turbopack_context__.r("[project]/node_modules/next/dist/client/request/search-params.browser.dev.js [app-client] (ecmascript)").createRenderSearchParamsFromClient : "TURBOPACK unreachable";
|
|
if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {
|
|
Object.defineProperty(exports.default, '__esModule', {
|
|
value: true
|
|
});
|
|
Object.assign(exports.default, exports);
|
|
module.exports = exports.default;
|
|
}
|
|
}),
|
|
"[project]/node_modules/next/dist/client/request/params.browser.dev.js [app-client] (ecmascript)", ((__turbopack_context__, module, exports) => {
|
|
"use strict";
|
|
|
|
Object.defineProperty(exports, "__esModule", {
|
|
value: true
|
|
});
|
|
Object.defineProperty(exports, "createRenderParamsFromClient", {
|
|
enumerable: true,
|
|
get: function() {
|
|
return createRenderParamsFromClient;
|
|
}
|
|
});
|
|
const _reflect = __turbopack_context__.r("[project]/node_modules/next/dist/server/web/spec-extension/adapters/reflect.js [app-client] (ecmascript)");
|
|
const _reflectutils = __turbopack_context__.r("[project]/node_modules/next/dist/shared/lib/utils/reflect-utils.js [app-client] (ecmascript)");
|
|
const CachedParams = new WeakMap();
|
|
function makeDynamicallyTrackedParamsWithDevWarnings(underlyingParams) {
|
|
const cachedParams = CachedParams.get(underlyingParams);
|
|
if (cachedParams) {
|
|
return cachedParams;
|
|
}
|
|
// We don't use makeResolvedReactPromise here because params
|
|
// supports copying with spread and we don't want to unnecessarily
|
|
// instrument the promise with spreadable properties of ReactPromise.
|
|
const promise = Promise.resolve(underlyingParams);
|
|
const proxiedProperties = new Set();
|
|
Object.keys(underlyingParams).forEach((prop)=>{
|
|
if (_reflectutils.wellKnownProperties.has(prop)) {
|
|
// These properties cannot be shadowed because they need to be the
|
|
// true underlying value for Promises to work correctly at runtime
|
|
} else {
|
|
proxiedProperties.add(prop);
|
|
}
|
|
});
|
|
const proxiedPromise = new Proxy(promise, {
|
|
get (target, prop, receiver) {
|
|
if (typeof prop === 'string') {
|
|
if (proxiedProperties.has(prop)) {
|
|
const expression = (0, _reflectutils.describeStringPropertyAccess)('params', prop);
|
|
warnForSyncAccess(expression);
|
|
}
|
|
}
|
|
return _reflect.ReflectAdapter.get(target, prop, receiver);
|
|
},
|
|
set (target, prop, value, receiver) {
|
|
if (typeof prop === 'string') {
|
|
proxiedProperties.delete(prop);
|
|
}
|
|
return _reflect.ReflectAdapter.set(target, prop, value, receiver);
|
|
},
|
|
ownKeys (target) {
|
|
warnForEnumeration();
|
|
return Reflect.ownKeys(target);
|
|
}
|
|
});
|
|
CachedParams.set(underlyingParams, proxiedPromise);
|
|
return proxiedPromise;
|
|
}
|
|
function warnForSyncAccess(expression) {
|
|
console.error(`A param property was accessed directly with ${expression}. ` + `\`params\` is a Promise and must be unwrapped with \`React.use()\` before accessing its properties. ` + `Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis`);
|
|
}
|
|
function warnForEnumeration() {
|
|
console.error(`params are being enumerated. ` + `\`params\` is a Promise and must be unwrapped with \`React.use()\` before accessing its properties. ` + `Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis`);
|
|
}
|
|
function createRenderParamsFromClient(clientParams) {
|
|
return makeDynamicallyTrackedParamsWithDevWarnings(clientParams);
|
|
}
|
|
if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {
|
|
Object.defineProperty(exports.default, '__esModule', {
|
|
value: true
|
|
});
|
|
Object.assign(exports.default, exports);
|
|
module.exports = exports.default;
|
|
}
|
|
}),
|
|
"[project]/node_modules/next/dist/client/request/params.browser.js [app-client] (ecmascript)", ((__turbopack_context__, module, exports) => {
|
|
"use strict";
|
|
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$build$2f$polyfills$2f$process$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__ = /*#__PURE__*/ __turbopack_context__.i("[project]/node_modules/next/dist/build/polyfills/process.js [app-client] (ecmascript)");
|
|
"use strict";
|
|
Object.defineProperty(exports, "__esModule", {
|
|
value: true
|
|
});
|
|
Object.defineProperty(exports, "createRenderParamsFromClient", {
|
|
enumerable: true,
|
|
get: function() {
|
|
return createRenderParamsFromClient;
|
|
}
|
|
});
|
|
const createRenderParamsFromClient = ("TURBOPACK compile-time truthy", 1) ? __turbopack_context__.r("[project]/node_modules/next/dist/client/request/params.browser.dev.js [app-client] (ecmascript)").createRenderParamsFromClient : "TURBOPACK unreachable";
|
|
if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {
|
|
Object.defineProperty(exports.default, '__esModule', {
|
|
value: true
|
|
});
|
|
Object.assign(exports.default, exports);
|
|
module.exports = exports.default;
|
|
}
|
|
}),
|
|
"[project]/node_modules/next/dist/server/app-render/vary-params.js [app-client] (ecmascript)", ((__turbopack_context__, module, exports) => {
|
|
"use strict";
|
|
|
|
Object.defineProperty(exports, "__esModule", {
|
|
value: true
|
|
});
|
|
0 && (module.exports = {
|
|
accumulateRootVaryParam: null,
|
|
accumulateVaryParam: null,
|
|
createResponseVaryParamsAccumulator: null,
|
|
createVaryParamsAccumulator: null,
|
|
createVaryingParams: null,
|
|
createVaryingSearchParams: null,
|
|
emptyVaryParamsAccumulator: null,
|
|
finishAccumulatingVaryParams: null,
|
|
getMetadataVaryParamsAccumulator: null,
|
|
getMetadataVaryParamsThenable: null,
|
|
getRootParamsVaryParamsAccumulator: null,
|
|
getVaryParamsThenable: null,
|
|
getViewportVaryParamsAccumulator: null
|
|
});
|
|
function _export(target, all) {
|
|
for(var name in all)Object.defineProperty(target, name, {
|
|
enumerable: true,
|
|
get: all[name]
|
|
});
|
|
}
|
|
_export(exports, {
|
|
accumulateRootVaryParam: function() {
|
|
return accumulateRootVaryParam;
|
|
},
|
|
accumulateVaryParam: function() {
|
|
return accumulateVaryParam;
|
|
},
|
|
createResponseVaryParamsAccumulator: function() {
|
|
return createResponseVaryParamsAccumulator;
|
|
},
|
|
createVaryParamsAccumulator: function() {
|
|
return createVaryParamsAccumulator;
|
|
},
|
|
createVaryingParams: function() {
|
|
return createVaryingParams;
|
|
},
|
|
createVaryingSearchParams: function() {
|
|
return createVaryingSearchParams;
|
|
},
|
|
emptyVaryParamsAccumulator: function() {
|
|
return emptyVaryParamsAccumulator;
|
|
},
|
|
finishAccumulatingVaryParams: function() {
|
|
return finishAccumulatingVaryParams;
|
|
},
|
|
getMetadataVaryParamsAccumulator: function() {
|
|
return getMetadataVaryParamsAccumulator;
|
|
},
|
|
getMetadataVaryParamsThenable: function() {
|
|
return getMetadataVaryParamsThenable;
|
|
},
|
|
getRootParamsVaryParamsAccumulator: function() {
|
|
return getRootParamsVaryParamsAccumulator;
|
|
},
|
|
getVaryParamsThenable: function() {
|
|
return getVaryParamsThenable;
|
|
},
|
|
getViewportVaryParamsAccumulator: function() {
|
|
return getViewportVaryParamsAccumulator;
|
|
}
|
|
});
|
|
const _workunitasyncstorageexternal = __turbopack_context__.r("[project]/node_modules/next/dist/server/app-render/work-unit-async-storage.external.js [app-client] (ecmascript)");
|
|
function createSegmentVaryParamsAccumulator() {
|
|
const accumulator = {
|
|
varyParams: new Set(),
|
|
status: 'pending',
|
|
value: new Set(),
|
|
then (onfulfilled) {
|
|
if (onfulfilled) {
|
|
if (accumulator.status === 'pending') {
|
|
accumulator.resolvers.push(onfulfilled);
|
|
} else {
|
|
onfulfilled(accumulator.value);
|
|
}
|
|
}
|
|
},
|
|
resolvers: []
|
|
};
|
|
return accumulator;
|
|
}
|
|
/**
|
|
* A singleton accumulator that's already resolved to an empty Set. Use this for
|
|
* segments where we know upfront that no params will be accessed, such as
|
|
* client components or segments without user code.
|
|
*
|
|
* Benefits:
|
|
* - No need to accumulate or resolve later
|
|
* - Resilient: resolves correctly even if other tracking fails
|
|
* - Memory efficient: reuses the same object
|
|
*/ const emptySet = new Set();
|
|
const emptyVaryParamsAccumulator = {
|
|
varyParams: emptySet,
|
|
status: 'fulfilled',
|
|
value: emptySet,
|
|
then (onfulfilled) {
|
|
if (onfulfilled) {
|
|
onfulfilled(emptySet);
|
|
}
|
|
},
|
|
resolvers: []
|
|
};
|
|
function createResponseVaryParamsAccumulator() {
|
|
// Create the head and rootParams accumulators as top-level fields.
|
|
// Segment accumulators are added to the segments set as they are created.
|
|
const head = createSegmentVaryParamsAccumulator();
|
|
const rootParams = createSegmentVaryParamsAccumulator();
|
|
const segments = new Set();
|
|
return {
|
|
head,
|
|
rootParams,
|
|
segments
|
|
};
|
|
}
|
|
function createVaryParamsAccumulator() {
|
|
const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore();
|
|
if (workUnitStore) {
|
|
switch(workUnitStore.type){
|
|
case 'prerender':
|
|
case 'prerender-runtime':
|
|
{
|
|
const responseAccumulator = workUnitStore.varyParamsAccumulator;
|
|
if (responseAccumulator !== null) {
|
|
const accumulator = createSegmentVaryParamsAccumulator();
|
|
responseAccumulator.segments.add(accumulator);
|
|
return accumulator;
|
|
}
|
|
return null;
|
|
}
|
|
case 'prerender-ppr':
|
|
case 'prerender-legacy':
|
|
case 'request':
|
|
case 'cache':
|
|
case 'private-cache':
|
|
case 'prerender-client':
|
|
case 'validation-client':
|
|
case 'unstable-cache':
|
|
case 'generate-static-params':
|
|
break;
|
|
default:
|
|
workUnitStore;
|
|
}
|
|
}
|
|
return null;
|
|
}
|
|
function getMetadataVaryParamsAccumulator() {
|
|
const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore();
|
|
if (workUnitStore) {
|
|
switch(workUnitStore.type){
|
|
case 'prerender':
|
|
case 'prerender-runtime':
|
|
{
|
|
const responseAccumulator = workUnitStore.varyParamsAccumulator;
|
|
if (responseAccumulator !== null) {
|
|
return responseAccumulator.head;
|
|
}
|
|
return null;
|
|
}
|
|
case 'prerender-ppr':
|
|
case 'prerender-legacy':
|
|
case 'request':
|
|
case 'cache':
|
|
case 'private-cache':
|
|
case 'prerender-client':
|
|
case 'validation-client':
|
|
case 'unstable-cache':
|
|
case 'generate-static-params':
|
|
return null;
|
|
default:
|
|
workUnitStore;
|
|
}
|
|
}
|
|
return null;
|
|
}
|
|
function getVaryParamsThenable(accumulator) {
|
|
return accumulator;
|
|
}
|
|
function getMetadataVaryParamsThenable() {
|
|
const accumulator = getMetadataVaryParamsAccumulator();
|
|
if (accumulator !== null) {
|
|
return getVaryParamsThenable(accumulator);
|
|
}
|
|
return null;
|
|
}
|
|
const getViewportVaryParamsAccumulator = getMetadataVaryParamsAccumulator;
|
|
function getRootParamsVaryParamsAccumulator() {
|
|
const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore();
|
|
if (workUnitStore) {
|
|
switch(workUnitStore.type){
|
|
case 'prerender':
|
|
case 'prerender-runtime':
|
|
{
|
|
const responseAccumulator = workUnitStore.varyParamsAccumulator;
|
|
if (responseAccumulator !== null) {
|
|
return responseAccumulator.rootParams;
|
|
}
|
|
return null;
|
|
}
|
|
case 'prerender-ppr':
|
|
case 'prerender-legacy':
|
|
case 'request':
|
|
case 'cache':
|
|
case 'private-cache':
|
|
case 'prerender-client':
|
|
case 'validation-client':
|
|
case 'unstable-cache':
|
|
case 'generate-static-params':
|
|
return null;
|
|
default:
|
|
workUnitStore;
|
|
}
|
|
}
|
|
return null;
|
|
}
|
|
function accumulateVaryParam(accumulator, paramName) {
|
|
accumulator.varyParams.add(paramName);
|
|
}
|
|
function accumulateRootVaryParam(paramName) {
|
|
const rootParamsAccumulator = getRootParamsVaryParamsAccumulator();
|
|
if (rootParamsAccumulator !== null) {
|
|
accumulateVaryParam(rootParamsAccumulator, paramName);
|
|
}
|
|
}
|
|
function createVaryingParams(accumulator, originalParamsObject, optionalCatchAllParamName) {
|
|
if (optionalCatchAllParamName !== null) {
|
|
// When there's an optional catch-all param with no value (e.g.,
|
|
// [[...slug]] at /), the param doesn't exist as a property on the params
|
|
// object. Use a Proxy to track all param access — both existing params
|
|
// and the missing optional param — including enumeration patterns like
|
|
// Object.keys(), spread, for...in, and `in` checks.
|
|
return new Proxy(originalParamsObject, {
|
|
get (target, prop, receiver) {
|
|
if (typeof prop === 'string') {
|
|
if (prop === optionalCatchAllParamName || Object.prototype.hasOwnProperty.call(target, prop)) {
|
|
accumulateVaryParam(accumulator, prop);
|
|
}
|
|
}
|
|
return Reflect.get(target, prop, receiver);
|
|
},
|
|
has (target, prop) {
|
|
if (prop === optionalCatchAllParamName) {
|
|
accumulateVaryParam(accumulator, optionalCatchAllParamName);
|
|
}
|
|
return Reflect.has(target, prop);
|
|
},
|
|
ownKeys (target) {
|
|
// Enumerating the params object means the user's code may depend on
|
|
// which params are present, so conservatively track the optional
|
|
// param as accessed.
|
|
accumulateVaryParam(accumulator, optionalCatchAllParamName);
|
|
return Reflect.ownKeys(target);
|
|
}
|
|
});
|
|
}
|
|
// When there's no optional catch-all, all params exist as properties on the
|
|
// object, so we can use defineProperty getters instead of a Proxy. This is
|
|
// faster because the engine can optimize property access on regular objects
|
|
// more aggressively than Proxy trap calls.
|
|
const underlyingParamsWithVarying = {};
|
|
for(const paramName in originalParamsObject){
|
|
Object.defineProperty(underlyingParamsWithVarying, paramName, {
|
|
get () {
|
|
accumulateVaryParam(accumulator, paramName);
|
|
return originalParamsObject[paramName];
|
|
},
|
|
enumerable: true
|
|
});
|
|
}
|
|
return underlyingParamsWithVarying;
|
|
}
|
|
function createVaryingSearchParams(accumulator, originalSearchParamsObject) {
|
|
const underlyingSearchParamsWithVarying = {};
|
|
for(const searchParamName in originalSearchParamsObject){
|
|
Object.defineProperty(underlyingSearchParamsWithVarying, searchParamName, {
|
|
get () {
|
|
// TODO: Unlike path params, we don't vary track each search param
|
|
// individually. The entire search string is treated as a single param.
|
|
// This may change in the future.
|
|
accumulateVaryParam(accumulator, '?');
|
|
return originalSearchParamsObject[searchParamName];
|
|
},
|
|
enumerable: true
|
|
});
|
|
}
|
|
return underlyingSearchParamsWithVarying;
|
|
}
|
|
async function finishAccumulatingVaryParams(responseAccumulator) {
|
|
const rootVaryParams = responseAccumulator.rootParams.varyParams;
|
|
// Resolve head
|
|
finishSegmentAccumulator(responseAccumulator.head, rootVaryParams);
|
|
// Resolve each segment
|
|
for (const segmentAccumulator of responseAccumulator.segments){
|
|
finishSegmentAccumulator(segmentAccumulator, rootVaryParams);
|
|
}
|
|
// Now that the thenables are resolved, Flight should be able to flush the
|
|
// vary params into the response stream. This work gets scheduled internally
|
|
// by Flight using a microtask as soon as we notify the thenable listeners.
|
|
//
|
|
// We need to ensure that Flight's pending queues are emptied before this
|
|
// function returns; the caller will abort the prerender immediately after.
|
|
// We can't use a macrotask, because that would allow dynamic IO to sneak
|
|
// into the response. So we use microtasks instead.
|
|
//
|
|
// The exact number of awaits here isn't important (indeed, one seems to be
|
|
// sufficient, at the time of writing), as long as we wait enough ticks for
|
|
// Flight to finish writing the response.
|
|
//
|
|
// Anything that remains in Flight's internal queue after these awaits must
|
|
// be actual dynamic IO, not caused by pending vary params tasks. In other
|
|
// words, failing to do this would cause us to treat a fully static prerender
|
|
// as if it were partially dynamic.
|
|
await Promise.resolve();
|
|
await Promise.resolve();
|
|
await Promise.resolve();
|
|
}
|
|
function finishSegmentAccumulator(accumulator, rootVaryParams) {
|
|
if (accumulator.status !== 'pending') {
|
|
return;
|
|
}
|
|
const merged = new Set(accumulator.varyParams);
|
|
for (const param of rootVaryParams){
|
|
merged.add(param);
|
|
}
|
|
accumulator.value = merged;
|
|
accumulator.status = 'fulfilled';
|
|
for (const resolver of accumulator.resolvers){
|
|
resolver(merged);
|
|
}
|
|
accumulator.resolvers = [];
|
|
}
|
|
}),
|
|
"[project]/node_modules/next/dist/server/create-deduped-by-callsite-server-error-logger.js [app-client] (ecmascript)", ((__turbopack_context__, module, exports) => {
|
|
"use strict";
|
|
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$build$2f$polyfills$2f$process$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__ = /*#__PURE__*/ __turbopack_context__.i("[project]/node_modules/next/dist/build/polyfills/process.js [app-client] (ecmascript)");
|
|
"use strict";
|
|
Object.defineProperty(exports, "__esModule", {
|
|
value: true
|
|
});
|
|
Object.defineProperty(exports, "createDedupedByCallsiteServerErrorLoggerDev", {
|
|
enumerable: true,
|
|
get: function() {
|
|
return createDedupedByCallsiteServerErrorLoggerDev;
|
|
}
|
|
});
|
|
const _react = /*#__PURE__*/ _interop_require_wildcard(__turbopack_context__.r("[project]/node_modules/next/dist/compiled/react/index.js [app-client] (ecmascript)"));
|
|
function _getRequireWildcardCache(nodeInterop) {
|
|
if (typeof WeakMap !== "function") return null;
|
|
var cacheBabelInterop = new WeakMap();
|
|
var cacheNodeInterop = new WeakMap();
|
|
return (_getRequireWildcardCache = function(nodeInterop) {
|
|
return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
|
|
})(nodeInterop);
|
|
}
|
|
function _interop_require_wildcard(obj, nodeInterop) {
|
|
if (!nodeInterop && obj && obj.__esModule) {
|
|
return obj;
|
|
}
|
|
if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
|
|
return {
|
|
default: obj
|
|
};
|
|
}
|
|
var cache = _getRequireWildcardCache(nodeInterop);
|
|
if (cache && cache.has(obj)) {
|
|
return cache.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 (cache) {
|
|
cache.set(obj, newObj);
|
|
}
|
|
return newObj;
|
|
}
|
|
const errorRef = {
|
|
current: null
|
|
};
|
|
// React.cache is currently only available in canary/experimental React channels.
|
|
const cache = typeof _react.cache === 'function' ? _react.cache : (fn)=>fn;
|
|
// When Cache Components is enabled, we record these as errors so that they
|
|
// are captured by the dev overlay as it's more critical to fix these
|
|
// when enabled.
|
|
const logErrorOrWarn = ("TURBOPACK compile-time falsy", 0) ? "TURBOPACK unreachable" : console.warn;
|
|
// We don't want to dedupe across requests.
|
|
// The developer might've just attempted to fix the warning so we should warn again if it still happens.
|
|
const flushCurrentErrorIfNew = cache((key)=>{
|
|
try {
|
|
logErrorOrWarn(errorRef.current);
|
|
} finally{
|
|
errorRef.current = null;
|
|
}
|
|
});
|
|
function createDedupedByCallsiteServerErrorLoggerDev(getMessage) {
|
|
return function logDedupedError(...args) {
|
|
const message = getMessage(...args);
|
|
if ("TURBOPACK compile-time truthy", 1) {
|
|
var _stack;
|
|
const callStackFrames = (_stack = new Error().stack) == null ? void 0 : _stack.split('\n');
|
|
if (callStackFrames === undefined || callStackFrames.length < 4) {
|
|
logErrorOrWarn(message);
|
|
} else {
|
|
// Error:
|
|
// logDedupedError
|
|
// asyncApiBeingAccessedSynchronously
|
|
// <userland callsite>
|
|
// TODO: This breaks if sourcemaps with ignore lists are enabled.
|
|
const key = callStackFrames[4];
|
|
errorRef.current = message;
|
|
flushCurrentErrorIfNew(key);
|
|
}
|
|
} else //TURBOPACK unreachable
|
|
;
|
|
};
|
|
}
|
|
}),
|
|
"[project]/node_modules/next/dist/server/app-render/after-task-async-storage-instance.js [app-client] (ecmascript)", ((__turbopack_context__, module, exports) => {
|
|
"use strict";
|
|
|
|
Object.defineProperty(exports, "__esModule", {
|
|
value: true
|
|
});
|
|
Object.defineProperty(exports, "afterTaskAsyncStorageInstance", {
|
|
enumerable: true,
|
|
get: function() {
|
|
return afterTaskAsyncStorageInstance;
|
|
}
|
|
});
|
|
const _asynclocalstorage = __turbopack_context__.r("[project]/node_modules/next/dist/server/app-render/async-local-storage.js [app-client] (ecmascript)");
|
|
const afterTaskAsyncStorageInstance = (0, _asynclocalstorage.createAsyncLocalStorage)();
|
|
}),
|
|
"[project]/node_modules/next/dist/server/app-render/after-task-async-storage.external.js [app-client] (ecmascript)", ((__turbopack_context__, module, exports) => {
|
|
"use strict";
|
|
|
|
Object.defineProperty(exports, "__esModule", {
|
|
value: true
|
|
});
|
|
Object.defineProperty(exports, "afterTaskAsyncStorage", {
|
|
enumerable: true,
|
|
get: function() {
|
|
return _aftertaskasyncstorageinstance.afterTaskAsyncStorageInstance;
|
|
}
|
|
});
|
|
const _aftertaskasyncstorageinstance = __turbopack_context__.r("[project]/node_modules/next/dist/server/app-render/after-task-async-storage-instance.js [app-client] (ecmascript)");
|
|
}),
|
|
"[project]/node_modules/next/dist/server/request/utils.js [app-client] (ecmascript)", ((__turbopack_context__, module, exports) => {
|
|
"use strict";
|
|
|
|
Object.defineProperty(exports, "__esModule", {
|
|
value: true
|
|
});
|
|
0 && (module.exports = {
|
|
isRequestAPICallableInsideAfter: null,
|
|
throwForSearchParamsAccessInUseCache: null,
|
|
throwWithStaticGenerationBailoutErrorWithDynamicError: null
|
|
});
|
|
function _export(target, all) {
|
|
for(var name in all)Object.defineProperty(target, name, {
|
|
enumerable: true,
|
|
get: all[name]
|
|
});
|
|
}
|
|
_export(exports, {
|
|
isRequestAPICallableInsideAfter: function() {
|
|
return isRequestAPICallableInsideAfter;
|
|
},
|
|
throwForSearchParamsAccessInUseCache: function() {
|
|
return throwForSearchParamsAccessInUseCache;
|
|
},
|
|
throwWithStaticGenerationBailoutErrorWithDynamicError: function() {
|
|
return throwWithStaticGenerationBailoutErrorWithDynamicError;
|
|
}
|
|
});
|
|
const _staticgenerationbailout = __turbopack_context__.r("[project]/node_modules/next/dist/client/components/static-generation-bailout.js [app-client] (ecmascript)");
|
|
const _aftertaskasyncstorageexternal = __turbopack_context__.r("[project]/node_modules/next/dist/server/app-render/after-task-async-storage.external.js [app-client] (ecmascript)");
|
|
function throwWithStaticGenerationBailoutErrorWithDynamicError(route, expression) {
|
|
throw Object.defineProperty(new _staticgenerationbailout.StaticGenBailoutError(`Route ${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`), "__NEXT_ERROR_CODE", {
|
|
value: "E543",
|
|
enumerable: false,
|
|
configurable: true
|
|
});
|
|
}
|
|
function throwForSearchParamsAccessInUseCache(workStore, constructorOpt) {
|
|
const error = Object.defineProperty(new Error(`Route ${workStore.route} used \`searchParams\` inside "use cache". Accessing dynamic request data inside a cache scope is not supported. If you need some search params inside a cached function await \`searchParams\` outside of the cached function and pass only the required search params as arguments to the cached function. See more info here: https://nextjs.org/docs/messages/next-request-in-use-cache`), "__NEXT_ERROR_CODE", {
|
|
value: "E842",
|
|
enumerable: false,
|
|
configurable: true
|
|
});
|
|
Error.captureStackTrace(error, constructorOpt);
|
|
workStore.invalidDynamicUsageError ??= error;
|
|
throw error;
|
|
}
|
|
function isRequestAPICallableInsideAfter() {
|
|
const afterTaskStore = _aftertaskasyncstorageexternal.afterTaskAsyncStorage.getStore();
|
|
return (afterTaskStore == null ? void 0 : afterTaskStore.rootTaskSpawnPhase) === 'action';
|
|
}
|
|
}),
|
|
"[project]/node_modules/next/dist/compiled/@edge-runtime/cookies/index.js [app-client] (ecmascript)", ((__turbopack_context__, module, exports) => {
|
|
"use strict";
|
|
|
|
var __defProp = Object.defineProperty;
|
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
var __export = (target, all)=>{
|
|
for(var name in all)__defProp(target, name, {
|
|
get: all[name],
|
|
enumerable: true
|
|
});
|
|
};
|
|
var __copyProps = (to, from, except, desc)=>{
|
|
if (from && typeof from === "object" || typeof from === "function") {
|
|
for (let key of __getOwnPropNames(from))if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
|
|
get: ()=>from[key],
|
|
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
});
|
|
}
|
|
return to;
|
|
};
|
|
var __toCommonJS = (mod)=>__copyProps(__defProp({}, "__esModule", {
|
|
value: true
|
|
}), mod);
|
|
// src/index.ts
|
|
var src_exports = {};
|
|
__export(src_exports, {
|
|
RequestCookies: ()=>RequestCookies,
|
|
ResponseCookies: ()=>ResponseCookies,
|
|
parseCookie: ()=>parseCookie,
|
|
parseSetCookie: ()=>parseSetCookie,
|
|
stringifyCookie: ()=>stringifyCookie
|
|
});
|
|
module.exports = __toCommonJS(src_exports);
|
|
// src/serialize.ts
|
|
function stringifyCookie(c) {
|
|
var _a;
|
|
const attrs = [
|
|
"path" in c && c.path && `Path=${c.path}`,
|
|
"expires" in c && (c.expires || c.expires === 0) && `Expires=${(typeof c.expires === "number" ? new Date(c.expires) : c.expires).toUTCString()}`,
|
|
"maxAge" in c && typeof c.maxAge === "number" && `Max-Age=${c.maxAge}`,
|
|
"domain" in c && c.domain && `Domain=${c.domain}`,
|
|
"secure" in c && c.secure && "Secure",
|
|
"httpOnly" in c && c.httpOnly && "HttpOnly",
|
|
"sameSite" in c && c.sameSite && `SameSite=${c.sameSite}`,
|
|
"partitioned" in c && c.partitioned && "Partitioned",
|
|
"priority" in c && c.priority && `Priority=${c.priority}`
|
|
].filter(Boolean);
|
|
const stringified = `${c.name}=${encodeURIComponent((_a = c.value) != null ? _a : "")}`;
|
|
return attrs.length === 0 ? stringified : `${stringified}; ${attrs.join("; ")}`;
|
|
}
|
|
function parseCookie(cookie) {
|
|
const map = /* @__PURE__ */ new Map();
|
|
for (const pair of cookie.split(/; */)){
|
|
if (!pair) continue;
|
|
const splitAt = pair.indexOf("=");
|
|
if (splitAt === -1) {
|
|
map.set(pair, "true");
|
|
continue;
|
|
}
|
|
const [key, value] = [
|
|
pair.slice(0, splitAt),
|
|
pair.slice(splitAt + 1)
|
|
];
|
|
try {
|
|
map.set(key, decodeURIComponent(value != null ? value : "true"));
|
|
} catch {}
|
|
}
|
|
return map;
|
|
}
|
|
function parseSetCookie(setCookie) {
|
|
if (!setCookie) {
|
|
return void 0;
|
|
}
|
|
const [[name, value], ...attributes] = parseCookie(setCookie);
|
|
const { domain, expires, httponly, maxage, path, samesite, secure, partitioned, priority } = Object.fromEntries(attributes.map(([key, value2])=>[
|
|
key.toLowerCase().replace(/-/g, ""),
|
|
value2
|
|
]));
|
|
const cookie = {
|
|
name,
|
|
value: decodeURIComponent(value),
|
|
domain,
|
|
...expires && {
|
|
expires: new Date(expires)
|
|
},
|
|
...httponly && {
|
|
httpOnly: true
|
|
},
|
|
...typeof maxage === "string" && {
|
|
maxAge: Number(maxage)
|
|
},
|
|
path,
|
|
...samesite && {
|
|
sameSite: parseSameSite(samesite)
|
|
},
|
|
...secure && {
|
|
secure: true
|
|
},
|
|
...priority && {
|
|
priority: parsePriority(priority)
|
|
},
|
|
...partitioned && {
|
|
partitioned: true
|
|
}
|
|
};
|
|
return compact(cookie);
|
|
}
|
|
function compact(t) {
|
|
const newT = {};
|
|
for(const key in t){
|
|
if (t[key]) {
|
|
newT[key] = t[key];
|
|
}
|
|
}
|
|
return newT;
|
|
}
|
|
var SAME_SITE = [
|
|
"strict",
|
|
"lax",
|
|
"none"
|
|
];
|
|
function parseSameSite(string) {
|
|
string = string.toLowerCase();
|
|
return SAME_SITE.includes(string) ? string : void 0;
|
|
}
|
|
var PRIORITY = [
|
|
"low",
|
|
"medium",
|
|
"high"
|
|
];
|
|
function parsePriority(string) {
|
|
string = string.toLowerCase();
|
|
return PRIORITY.includes(string) ? string : void 0;
|
|
}
|
|
function splitCookiesString(cookiesString) {
|
|
if (!cookiesString) return [];
|
|
var cookiesStrings = [];
|
|
var pos = 0;
|
|
var start;
|
|
var ch;
|
|
var lastComma;
|
|
var nextStart;
|
|
var cookiesSeparatorFound;
|
|
function skipWhitespace() {
|
|
while(pos < cookiesString.length && /\s/.test(cookiesString.charAt(pos))){
|
|
pos += 1;
|
|
}
|
|
return pos < cookiesString.length;
|
|
}
|
|
function notSpecialChar() {
|
|
ch = cookiesString.charAt(pos);
|
|
return ch !== "=" && ch !== ";" && ch !== ",";
|
|
}
|
|
while(pos < cookiesString.length){
|
|
start = pos;
|
|
cookiesSeparatorFound = false;
|
|
while(skipWhitespace()){
|
|
ch = cookiesString.charAt(pos);
|
|
if (ch === ",") {
|
|
lastComma = pos;
|
|
pos += 1;
|
|
skipWhitespace();
|
|
nextStart = pos;
|
|
while(pos < cookiesString.length && notSpecialChar()){
|
|
pos += 1;
|
|
}
|
|
if (pos < cookiesString.length && cookiesString.charAt(pos) === "=") {
|
|
cookiesSeparatorFound = true;
|
|
pos = nextStart;
|
|
cookiesStrings.push(cookiesString.substring(start, lastComma));
|
|
start = pos;
|
|
} else {
|
|
pos = lastComma + 1;
|
|
}
|
|
} else {
|
|
pos += 1;
|
|
}
|
|
}
|
|
if (!cookiesSeparatorFound || pos >= cookiesString.length) {
|
|
cookiesStrings.push(cookiesString.substring(start, cookiesString.length));
|
|
}
|
|
}
|
|
return cookiesStrings;
|
|
}
|
|
// src/request-cookies.ts
|
|
var RequestCookies = class {
|
|
constructor(requestHeaders){
|
|
/** @internal */ this._parsed = /* @__PURE__ */ new Map();
|
|
this._headers = requestHeaders;
|
|
const header = requestHeaders.get("cookie");
|
|
if (header) {
|
|
const parsed = parseCookie(header);
|
|
for (const [name, value] of parsed){
|
|
this._parsed.set(name, {
|
|
name,
|
|
value
|
|
});
|
|
}
|
|
}
|
|
}
|
|
[Symbol.iterator]() {
|
|
return this._parsed[Symbol.iterator]();
|
|
}
|
|
/**
|
|
* The amount of cookies received from the client
|
|
*/ get size() {
|
|
return this._parsed.size;
|
|
}
|
|
get(...args) {
|
|
const name = typeof args[0] === "string" ? args[0] : args[0].name;
|
|
return this._parsed.get(name);
|
|
}
|
|
getAll(...args) {
|
|
var _a;
|
|
const all = Array.from(this._parsed);
|
|
if (!args.length) {
|
|
return all.map(([_, value])=>value);
|
|
}
|
|
const name = typeof args[0] === "string" ? args[0] : (_a = args[0]) == null ? void 0 : _a.name;
|
|
return all.filter(([n])=>n === name).map(([_, value])=>value);
|
|
}
|
|
has(name) {
|
|
return this._parsed.has(name);
|
|
}
|
|
set(...args) {
|
|
const [name, value] = args.length === 1 ? [
|
|
args[0].name,
|
|
args[0].value
|
|
] : args;
|
|
const map = this._parsed;
|
|
map.set(name, {
|
|
name,
|
|
value
|
|
});
|
|
this._headers.set("cookie", Array.from(map).map(([_, value2])=>stringifyCookie(value2)).join("; "));
|
|
return this;
|
|
}
|
|
/**
|
|
* Delete the cookies matching the passed name or names in the request.
|
|
*/ delete(names) {
|
|
const map = this._parsed;
|
|
const result = !Array.isArray(names) ? map.delete(names) : names.map((name)=>map.delete(name));
|
|
this._headers.set("cookie", Array.from(map).map(([_, value])=>stringifyCookie(value)).join("; "));
|
|
return result;
|
|
}
|
|
/**
|
|
* Delete all the cookies in the cookies in the request.
|
|
*/ clear() {
|
|
this.delete(Array.from(this._parsed.keys()));
|
|
return this;
|
|
}
|
|
/**
|
|
* Format the cookies in the request as a string for logging
|
|
*/ [Symbol.for("edge-runtime.inspect.custom")]() {
|
|
return `RequestCookies ${JSON.stringify(Object.fromEntries(this._parsed))}`;
|
|
}
|
|
toString() {
|
|
return [
|
|
...this._parsed.values()
|
|
].map((v)=>`${v.name}=${encodeURIComponent(v.value)}`).join("; ");
|
|
}
|
|
};
|
|
// src/response-cookies.ts
|
|
var ResponseCookies = class {
|
|
constructor(responseHeaders){
|
|
/** @internal */ this._parsed = /* @__PURE__ */ new Map();
|
|
var _a, _b, _c;
|
|
this._headers = responseHeaders;
|
|
const setCookie = (_c = (_b = (_a = responseHeaders.getSetCookie) == null ? void 0 : _a.call(responseHeaders)) != null ? _b : responseHeaders.get("set-cookie")) != null ? _c : [];
|
|
const cookieStrings = Array.isArray(setCookie) ? setCookie : splitCookiesString(setCookie);
|
|
for (const cookieString of cookieStrings){
|
|
const parsed = parseSetCookie(cookieString);
|
|
if (parsed) this._parsed.set(parsed.name, parsed);
|
|
}
|
|
}
|
|
/**
|
|
* {@link https://wicg.github.io/cookie-store/#CookieStore-get CookieStore#get} without the Promise.
|
|
*/ get(...args) {
|
|
const key = typeof args[0] === "string" ? args[0] : args[0].name;
|
|
return this._parsed.get(key);
|
|
}
|
|
/**
|
|
* {@link https://wicg.github.io/cookie-store/#CookieStore-getAll CookieStore#getAll} without the Promise.
|
|
*/ getAll(...args) {
|
|
var _a;
|
|
const all = Array.from(this._parsed.values());
|
|
if (!args.length) {
|
|
return all;
|
|
}
|
|
const key = typeof args[0] === "string" ? args[0] : (_a = args[0]) == null ? void 0 : _a.name;
|
|
return all.filter((c)=>c.name === key);
|
|
}
|
|
has(name) {
|
|
return this._parsed.has(name);
|
|
}
|
|
/**
|
|
* {@link https://wicg.github.io/cookie-store/#CookieStore-set CookieStore#set} without the Promise.
|
|
*/ set(...args) {
|
|
const [name, value, cookie] = args.length === 1 ? [
|
|
args[0].name,
|
|
args[0].value,
|
|
args[0]
|
|
] : args;
|
|
const map = this._parsed;
|
|
map.set(name, normalizeCookie({
|
|
name,
|
|
value,
|
|
...cookie
|
|
}));
|
|
replace(map, this._headers);
|
|
return this;
|
|
}
|
|
/**
|
|
* {@link https://wicg.github.io/cookie-store/#CookieStore-delete CookieStore#delete} without the Promise.
|
|
*/ delete(...args) {
|
|
const [name, options] = typeof args[0] === "string" ? [
|
|
args[0]
|
|
] : [
|
|
args[0].name,
|
|
args[0]
|
|
];
|
|
return this.set({
|
|
...options,
|
|
name,
|
|
value: "",
|
|
expires: /* @__PURE__ */ new Date(0)
|
|
});
|
|
}
|
|
[Symbol.for("edge-runtime.inspect.custom")]() {
|
|
return `ResponseCookies ${JSON.stringify(Object.fromEntries(this._parsed))}`;
|
|
}
|
|
toString() {
|
|
return [
|
|
...this._parsed.values()
|
|
].map(stringifyCookie).join("; ");
|
|
}
|
|
};
|
|
function replace(bag, headers) {
|
|
headers.delete("set-cookie");
|
|
for (const [, value] of bag){
|
|
const serialized = stringifyCookie(value);
|
|
headers.append("set-cookie", serialized);
|
|
}
|
|
}
|
|
function normalizeCookie(cookie = {
|
|
name: "",
|
|
value: ""
|
|
}) {
|
|
if (typeof cookie.expires === "number") {
|
|
cookie.expires = new Date(cookie.expires);
|
|
}
|
|
if (cookie.maxAge) {
|
|
cookie.expires = new Date(Date.now() + cookie.maxAge * 1e3);
|
|
}
|
|
if (cookie.path === null || cookie.path === void 0) {
|
|
cookie.path = "/";
|
|
}
|
|
return cookie;
|
|
}
|
|
// Annotate the CommonJS export names for ESM import in node:
|
|
0 && (module.exports = {
|
|
RequestCookies,
|
|
ResponseCookies,
|
|
parseCookie,
|
|
parseSetCookie,
|
|
stringifyCookie
|
|
});
|
|
}),
|
|
"[project]/node_modules/next/dist/server/web/spec-extension/cookies.js [app-client] (ecmascript)", ((__turbopack_context__, module, exports) => {
|
|
"use strict";
|
|
|
|
Object.defineProperty(exports, "__esModule", {
|
|
value: true
|
|
});
|
|
0 && (module.exports = {
|
|
RequestCookies: null,
|
|
ResponseCookies: null,
|
|
stringifyCookie: null
|
|
});
|
|
function _export(target, all) {
|
|
for(var name in all)Object.defineProperty(target, name, {
|
|
enumerable: true,
|
|
get: all[name]
|
|
});
|
|
}
|
|
_export(exports, {
|
|
RequestCookies: function() {
|
|
return _cookies.RequestCookies;
|
|
},
|
|
ResponseCookies: function() {
|
|
return _cookies.ResponseCookies;
|
|
},
|
|
stringifyCookie: function() {
|
|
return _cookies.stringifyCookie;
|
|
}
|
|
});
|
|
const _cookies = __turbopack_context__.r("[project]/node_modules/next/dist/compiled/@edge-runtime/cookies/index.js [app-client] (ecmascript)");
|
|
}),
|
|
"[project]/node_modules/next/dist/server/web/spec-extension/adapters/request-cookies.js [app-client] (ecmascript)", ((__turbopack_context__, module, exports) => {
|
|
"use strict";
|
|
|
|
Object.defineProperty(exports, "__esModule", {
|
|
value: true
|
|
});
|
|
0 && (module.exports = {
|
|
MutableRequestCookiesAdapter: null,
|
|
ReadonlyRequestCookiesError: null,
|
|
RequestCookiesAdapter: null,
|
|
appendMutableCookies: null,
|
|
areCookiesMutableInCurrentPhase: null,
|
|
createCookiesWithMutableAccessCheck: null,
|
|
getModifiedCookieValues: null,
|
|
responseCookiesToRequestCookies: null
|
|
});
|
|
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;
|
|
},
|
|
createCookiesWithMutableAccessCheck: function() {
|
|
return createCookiesWithMutableAccessCheck;
|
|
},
|
|
getModifiedCookieValues: function() {
|
|
return getModifiedCookieValues;
|
|
},
|
|
responseCookiesToRequestCookies: function() {
|
|
return responseCookiesToRequestCookies;
|
|
}
|
|
});
|
|
const _cookies = __turbopack_context__.r("[project]/node_modules/next/dist/server/web/spec-extension/cookies.js [app-client] (ecmascript)");
|
|
const _reflect = __turbopack_context__.r("[project]/node_modules/next/dist/server/web/spec-extension/adapters/reflect.js [app-client] (ecmascript)");
|
|
const _workasyncstorageexternal = __turbopack_context__.r("[project]/node_modules/next/dist/server/app-render/work-async-storage.external.js [app-client] (ecmascript)");
|
|
const _actionrevalidationkind = __turbopack_context__.r("[project]/node_modules/next/dist/shared/lib/action-revalidation-kind.js [app-client] (ecmascript)");
|
|
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();
|
|
}
|
|
}
|
|
class RequestCookiesAdapter {
|
|
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);
|
|
}
|
|
}
|
|
});
|
|
}
|
|
}
|
|
const 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(headers, mutableCookies) {
|
|
const modifiedCookieValues = getModifiedCookieValues(mutableCookies);
|
|
if (modifiedCookieValues.length === 0) {
|
|
return false;
|
|
}
|
|
// Return a new response that extends the response with
|
|
// the modified cookies as fallbacks. `res` cookies
|
|
// will still take precedence.
|
|
const resCookies = new _cookies.ResponseCookies(headers);
|
|
const returnedCookies = resCookies.getAll();
|
|
// Set the modified cookies as fallbacks.
|
|
for (const cookie of modifiedCookieValues){
|
|
resCookies.set(cookie);
|
|
}
|
|
// Set the original cookies as the final values.
|
|
for (const cookie of returnedCookies){
|
|
resCookies.set(cookie);
|
|
}
|
|
return true;
|
|
}
|
|
class MutableRequestCookiesAdapter {
|
|
static wrap(cookies, onUpdateCookies) {
|
|
const responseCookies = new _cookies.ResponseCookies(new Headers());
|
|
for (const cookie of cookies.getAll()){
|
|
responseCookies.set(cookie);
|
|
}
|
|
let modifiedValues = [];
|
|
const modifiedCookies = new Set();
|
|
const updateResponseCookies = ()=>{
|
|
// TODO-APP: change method of getting workStore
|
|
const workStore = _workasyncstorageexternal.workAsyncStorage.getStore();
|
|
if (workStore) {
|
|
workStore.pathWasRevalidated = _actionrevalidationkind.ActionDidRevalidateStaticAndDynamic;
|
|
}
|
|
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 createCookiesWithMutableAccessCheck(requestStore) {
|
|
const wrappedCookies = new Proxy(requestStore.mutableCookies, {
|
|
get (target, prop, receiver) {
|
|
switch(prop){
|
|
case 'delete':
|
|
return function(...args) {
|
|
ensureCookiesAreStillMutable(requestStore, 'cookies().delete');
|
|
target.delete(...args);
|
|
return wrappedCookies;
|
|
};
|
|
case 'set':
|
|
return function(...args) {
|
|
ensureCookiesAreStillMutable(requestStore, 'cookies().set');
|
|
target.set(...args);
|
|
return wrappedCookies;
|
|
};
|
|
default:
|
|
return _reflect.ReflectAdapter.get(target, prop, receiver);
|
|
}
|
|
}
|
|
});
|
|
return wrappedCookies;
|
|
}
|
|
function areCookiesMutableInCurrentPhase(requestStore) {
|
|
return requestStore.phase === 'action';
|
|
}
|
|
/** Ensure that cookies() starts throwing on mutation
|
|
* if we changed phases and can no longer mutate.
|
|
*
|
|
* This can happen when going:
|
|
* 'render' -> 'after'
|
|
* 'action' -> 'render'
|
|
* */ function ensureCookiesAreStillMutable(requestStore, _callingExpression) {
|
|
if (!areCookiesMutableInCurrentPhase(requestStore)) {
|
|
// TODO: maybe we can give a more precise error message based on callingExpression?
|
|
throw new ReadonlyRequestCookiesError();
|
|
}
|
|
}
|
|
function responseCookiesToRequestCookies(responseCookies) {
|
|
const requestCookies = new _cookies.RequestCookies(new Headers());
|
|
for (const cookie of responseCookies.getAll()){
|
|
requestCookies.set(cookie);
|
|
}
|
|
return requestCookies;
|
|
}
|
|
}),
|
|
"[project]/node_modules/next/dist/server/web/spec-extension/adapters/headers.js [app-client] (ecmascript)", ((__turbopack_context__, module, exports) => {
|
|
"use strict";
|
|
|
|
Object.defineProperty(exports, "__esModule", {
|
|
value: true
|
|
});
|
|
0 && (module.exports = {
|
|
HeadersAdapter: null,
|
|
ReadonlyHeadersError: null
|
|
});
|
|
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;
|
|
}
|
|
});
|
|
const _reflect = __turbopack_context__.r("[project]/node_modules/next/dist/server/web/spec-extension/adapters/reflect.js [app-client] (ecmascript)");
|
|
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();
|
|
}
|
|
}
|
|
class HeadersAdapter extends Headers {
|
|
constructor(headers){
|
|
// We've already overridden the methods that would be called, so we're just
|
|
// calling the super constructor to ensure that the instanceof check works.
|
|
super();
|
|
this.headers = new Proxy(headers, {
|
|
get (target, prop, receiver) {
|
|
// Because this is just an object, we expect that all "get" operations
|
|
// are for properties. If it's a "get" for a symbol, we'll just return
|
|
// the symbol.
|
|
if (typeof prop === 'symbol') {
|
|
return _reflect.ReflectAdapter.get(target, prop, receiver);
|
|
}
|
|
const lowercased = prop.toLowerCase();
|
|
// Let's find the original casing of the key. This assumes that there is
|
|
// no mixed case keys (e.g. "Content-Type" and "content-type") in the
|
|
// headers object.
|
|
const original = Object.keys(headers).find((o)=>o.toLowerCase() === lowercased);
|
|
// If the original casing doesn't exist, return undefined.
|
|
if (typeof original === 'undefined') return;
|
|
// If the original casing exists, return the value.
|
|
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();
|
|
// Let's find the original casing of the key. This assumes that there is
|
|
// no mixed case keys (e.g. "Content-Type" and "content-type") in the
|
|
// headers object.
|
|
const original = Object.keys(headers).find((o)=>o.toLowerCase() === lowercased);
|
|
// If the original casing doesn't exist, use the prop as the key.
|
|
return _reflect.ReflectAdapter.set(target, original ?? prop, value, receiver);
|
|
},
|
|
has (target, prop) {
|
|
if (typeof prop === 'symbol') return _reflect.ReflectAdapter.has(target, prop);
|
|
const lowercased = prop.toLowerCase();
|
|
// Let's find the original casing of the key. This assumes that there is
|
|
// no mixed case keys (e.g. "Content-Type" and "content-type") in the
|
|
// headers object.
|
|
const original = Object.keys(headers).find((o)=>o.toLowerCase() === lowercased);
|
|
// If the original casing doesn't exist, return false.
|
|
if (typeof original === 'undefined') return false;
|
|
// If the original casing exists, return true.
|
|
return _reflect.ReflectAdapter.has(target, original);
|
|
},
|
|
deleteProperty (target, prop) {
|
|
if (typeof prop === 'symbol') return _reflect.ReflectAdapter.deleteProperty(target, prop);
|
|
const lowercased = prop.toLowerCase();
|
|
// Let's find the original casing of the key. This assumes that there is
|
|
// no mixed case keys (e.g. "Content-Type" and "content-type") in the
|
|
// headers object.
|
|
const original = Object.keys(headers).find((o)=>o.toLowerCase() === lowercased);
|
|
// If the original casing doesn't exist, return true.
|
|
if (typeof original === 'undefined') return true;
|
|
// If the original casing exists, delete the property.
|
|
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(headers) {
|
|
return new Proxy(headers, {
|
|
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(headers) {
|
|
if (headers instanceof Headers) return headers;
|
|
return new HeadersAdapter(headers);
|
|
}
|
|
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();
|
|
// We assert here that this is a string because we got it from the
|
|
// Object.keys() call above.
|
|
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)){
|
|
// We assert here that this is a string because we got it from the
|
|
// Object.keys() call above.
|
|
const value = this.get(key);
|
|
yield value;
|
|
}
|
|
}
|
|
[Symbol.iterator]() {
|
|
return this.entries();
|
|
}
|
|
}
|
|
}),
|
|
"[project]/node_modules/next/dist/shared/lib/router/utils/get-segment-param.js [app-client] (ecmascript)", ((__turbopack_context__, module, exports) => {
|
|
"use strict";
|
|
|
|
Object.defineProperty(exports, "__esModule", {
|
|
value: true
|
|
});
|
|
0 && (module.exports = {
|
|
getParamProperties: null,
|
|
getSegmentParam: null,
|
|
isCatchAll: null
|
|
});
|
|
function _export(target, all) {
|
|
for(var name in all)Object.defineProperty(target, name, {
|
|
enumerable: true,
|
|
get: all[name]
|
|
});
|
|
}
|
|
_export(exports, {
|
|
getParamProperties: function() {
|
|
return getParamProperties;
|
|
},
|
|
getSegmentParam: function() {
|
|
return getSegmentParam;
|
|
},
|
|
isCatchAll: function() {
|
|
return isCatchAll;
|
|
}
|
|
});
|
|
const _interceptionroutes = __turbopack_context__.r("[project]/node_modules/next/dist/shared/lib/router/utils/interception-routes.js [app-client] (ecmascript)");
|
|
function getSegmentParam(segment) {
|
|
const interceptionMarker = _interceptionroutes.INTERCEPTION_ROUTE_MARKERS.find((marker)=>segment.startsWith(marker));
|
|
// if an interception marker is part of the path segment, we need to jump ahead
|
|
// to the relevant portion for param parsing
|
|
if (interceptionMarker) {
|
|
segment = segment.slice(interceptionMarker.length);
|
|
}
|
|
if (segment.startsWith('[[...') && segment.endsWith(']]')) {
|
|
return {
|
|
// TODO-APP: Optional catchall does not currently work with parallel routes,
|
|
// so for now aren't handling a potential interception marker.
|
|
paramType: 'optional-catchall',
|
|
paramName: segment.slice(5, -2)
|
|
};
|
|
}
|
|
if (segment.startsWith('[...') && segment.endsWith(']')) {
|
|
return {
|
|
paramType: interceptionMarker ? `catchall-intercepted-${interceptionMarker}` : 'catchall',
|
|
paramName: segment.slice(4, -1)
|
|
};
|
|
}
|
|
if (segment.startsWith('[') && segment.endsWith(']')) {
|
|
return {
|
|
paramType: interceptionMarker ? `dynamic-intercepted-${interceptionMarker}` : 'dynamic',
|
|
paramName: segment.slice(1, -1)
|
|
};
|
|
}
|
|
return null;
|
|
}
|
|
function isCatchAll(type) {
|
|
return type === 'catchall' || type === 'catchall-intercepted-(..)(..)' || type === 'catchall-intercepted-(.)' || type === 'catchall-intercepted-(..)' || type === 'catchall-intercepted-(...)' || type === 'optional-catchall';
|
|
}
|
|
function getParamProperties(paramType) {
|
|
let repeat = false;
|
|
let optional = false;
|
|
switch(paramType){
|
|
case 'catchall':
|
|
case 'catchall-intercepted-(..)(..)':
|
|
case 'catchall-intercepted-(.)':
|
|
case 'catchall-intercepted-(..)':
|
|
case 'catchall-intercepted-(...)':
|
|
repeat = true;
|
|
break;
|
|
case 'optional-catchall':
|
|
repeat = true;
|
|
optional = true;
|
|
break;
|
|
case 'dynamic':
|
|
case 'dynamic-intercepted-(..)(..)':
|
|
case 'dynamic-intercepted-(.)':
|
|
case 'dynamic-intercepted-(..)':
|
|
case 'dynamic-intercepted-(...)':
|
|
break;
|
|
default:
|
|
paramType;
|
|
}
|
|
return {
|
|
repeat,
|
|
optional
|
|
};
|
|
}
|
|
}),
|
|
"[project]/node_modules/next/dist/shared/lib/utils.js [app-client] (ecmascript)", ((__turbopack_context__, module, exports) => {
|
|
"use strict";
|
|
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$build$2f$polyfills$2f$process$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__ = /*#__PURE__*/ __turbopack_context__.i("[project]/node_modules/next/dist/build/polyfills/process.js [app-client] (ecmascript)");
|
|
"use strict";
|
|
Object.defineProperty(exports, "__esModule", {
|
|
value: true
|
|
});
|
|
0 && (module.exports = {
|
|
DecodeError: null,
|
|
MiddlewareNotFoundError: null,
|
|
MissingStaticPage: null,
|
|
NormalizeError: null,
|
|
PageNotFoundError: null,
|
|
SP: null,
|
|
ST: null,
|
|
WEB_VITALS: null,
|
|
execOnce: null,
|
|
getDisplayName: null,
|
|
getLocationOrigin: null,
|
|
getURL: null,
|
|
isAbsoluteUrl: null,
|
|
isResSent: null,
|
|
loadGetInitialProps: null,
|
|
normalizeRepeatedSlashes: null,
|
|
stringifyError: null
|
|
});
|
|
function _export(target, all) {
|
|
for(var name in all)Object.defineProperty(target, name, {
|
|
enumerable: true,
|
|
get: all[name]
|
|
});
|
|
}
|
|
_export(exports, {
|
|
DecodeError: function() {
|
|
return DecodeError;
|
|
},
|
|
MiddlewareNotFoundError: function() {
|
|
return MiddlewareNotFoundError;
|
|
},
|
|
MissingStaticPage: function() {
|
|
return MissingStaticPage;
|
|
},
|
|
NormalizeError: function() {
|
|
return NormalizeError;
|
|
},
|
|
PageNotFoundError: function() {
|
|
return PageNotFoundError;
|
|
},
|
|
SP: function() {
|
|
return SP;
|
|
},
|
|
ST: function() {
|
|
return ST;
|
|
},
|
|
WEB_VITALS: function() {
|
|
return WEB_VITALS;
|
|
},
|
|
execOnce: function() {
|
|
return execOnce;
|
|
},
|
|
getDisplayName: function() {
|
|
return getDisplayName;
|
|
},
|
|
getLocationOrigin: function() {
|
|
return getLocationOrigin;
|
|
},
|
|
getURL: function() {
|
|
return getURL;
|
|
},
|
|
isAbsoluteUrl: function() {
|
|
return isAbsoluteUrl;
|
|
},
|
|
isResSent: function() {
|
|
return isResSent;
|
|
},
|
|
loadGetInitialProps: function() {
|
|
return loadGetInitialProps;
|
|
},
|
|
normalizeRepeatedSlashes: function() {
|
|
return normalizeRepeatedSlashes;
|
|
},
|
|
stringifyError: function() {
|
|
return stringifyError;
|
|
}
|
|
});
|
|
const WEB_VITALS = [
|
|
'CLS',
|
|
'FCP',
|
|
'FID',
|
|
'INP',
|
|
'LCP',
|
|
'TTFB'
|
|
];
|
|
function execOnce(fn) {
|
|
let used = false;
|
|
let result;
|
|
return (...args)=>{
|
|
if (!used) {
|
|
used = true;
|
|
result = fn(...args);
|
|
}
|
|
return result;
|
|
};
|
|
}
|
|
// Scheme: https://tools.ietf.org/html/rfc3986#section-3.1
|
|
// Absolute URL: https://tools.ietf.org/html/rfc3986#section-4.3
|
|
const ABSOLUTE_URL_REGEX = /^[a-zA-Z][a-zA-Z\d+\-.]*?:/;
|
|
const isAbsoluteUrl = (url)=>ABSOLUTE_URL_REGEX.test(url);
|
|
function getLocationOrigin() {
|
|
const { protocol, hostname, port } = window.location;
|
|
return `${protocol}//${hostname}${port ? ':' + port : ''}`;
|
|
}
|
|
function getURL() {
|
|
const { href } = window.location;
|
|
const origin = getLocationOrigin();
|
|
return href.substring(origin.length);
|
|
}
|
|
function getDisplayName(Component) {
|
|
return typeof Component === 'string' ? Component : Component.displayName || Component.name || 'Unknown';
|
|
}
|
|
function isResSent(res) {
|
|
return res.finished || res.headersSent;
|
|
}
|
|
function normalizeRepeatedSlashes(url) {
|
|
const urlParts = url.split('?');
|
|
const urlNoQuery = urlParts[0];
|
|
return urlNoQuery // first we replace any non-encoded backslashes with forward
|
|
// then normalize repeated forward slashes
|
|
.replace(/\\/g, '/').replace(/\/\/+/g, '/') + (urlParts[1] ? `?${urlParts.slice(1).join('?')}` : '');
|
|
}
|
|
async function loadGetInitialProps(App, ctx) {
|
|
if ("TURBOPACK compile-time truthy", 1) {
|
|
if (App.prototype?.getInitialProps) {
|
|
const message = `"${getDisplayName(App)}.getInitialProps()" is defined as an instance method - visit https://nextjs.org/docs/messages/get-initial-props-as-an-instance-method for more information.`;
|
|
throw Object.defineProperty(new Error(message), "__NEXT_ERROR_CODE", {
|
|
value: "E1035",
|
|
enumerable: false,
|
|
configurable: true
|
|
});
|
|
}
|
|
}
|
|
// when called from _app `ctx` is nested in `ctx`
|
|
const res = ctx.res || ctx.ctx && ctx.ctx.res;
|
|
if (!App.getInitialProps) {
|
|
if (ctx.ctx && ctx.Component) {
|
|
// @ts-ignore pageProps default
|
|
return {
|
|
pageProps: await loadGetInitialProps(ctx.Component, ctx.ctx)
|
|
};
|
|
}
|
|
return {};
|
|
}
|
|
const props = await App.getInitialProps(ctx);
|
|
if (res && isResSent(res)) {
|
|
return props;
|
|
}
|
|
if (!props) {
|
|
const message = `"${getDisplayName(App)}.getInitialProps()" should resolve to an object. But found "${props}" instead.`;
|
|
throw Object.defineProperty(new Error(message), "__NEXT_ERROR_CODE", {
|
|
value: "E1025",
|
|
enumerable: false,
|
|
configurable: true
|
|
});
|
|
}
|
|
if ("TURBOPACK compile-time truthy", 1) {
|
|
if (Object.keys(props).length === 0 && !ctx.ctx) {
|
|
console.warn(`${getDisplayName(App)} returned an empty object from \`getInitialProps\`. This de-optimizes and prevents automatic static optimization. https://nextjs.org/docs/messages/empty-object-getInitialProps`);
|
|
}
|
|
}
|
|
return props;
|
|
}
|
|
const SP = typeof performance !== 'undefined';
|
|
const ST = SP && [
|
|
'mark',
|
|
'measure',
|
|
'getEntriesByName'
|
|
].every((method)=>typeof performance[method] === 'function');
|
|
class DecodeError extends Error {
|
|
}
|
|
class NormalizeError extends Error {
|
|
}
|
|
class PageNotFoundError extends Error {
|
|
constructor(page){
|
|
super();
|
|
this.code = 'ENOENT';
|
|
this.name = 'PageNotFoundError';
|
|
this.message = `Cannot find module for page: ${page}`;
|
|
}
|
|
}
|
|
class MissingStaticPage extends Error {
|
|
constructor(page, message){
|
|
super();
|
|
this.message = `Failed to load static file for page: ${page} ${message}`;
|
|
}
|
|
}
|
|
class MiddlewareNotFoundError extends Error {
|
|
constructor(){
|
|
super();
|
|
this.code = 'ENOENT';
|
|
this.message = `Cannot find the middleware module`;
|
|
}
|
|
}
|
|
function stringifyError(error) {
|
|
return JSON.stringify({
|
|
message: error.message,
|
|
stack: error.stack
|
|
});
|
|
}
|
|
}),
|
|
"[project]/node_modules/next/dist/shared/lib/router/utils/querystring.js [app-client] (ecmascript)", ((__turbopack_context__, module, exports) => {
|
|
"use strict";
|
|
|
|
Object.defineProperty(exports, "__esModule", {
|
|
value: true
|
|
});
|
|
0 && (module.exports = {
|
|
assign: null,
|
|
searchParamsToUrlQuery: null,
|
|
urlQueryToSearchParams: null
|
|
});
|
|
function _export(target, all) {
|
|
for(var name in all)Object.defineProperty(target, name, {
|
|
enumerable: true,
|
|
get: all[name]
|
|
});
|
|
}
|
|
_export(exports, {
|
|
assign: function() {
|
|
return assign;
|
|
},
|
|
searchParamsToUrlQuery: function() {
|
|
return searchParamsToUrlQuery;
|
|
},
|
|
urlQueryToSearchParams: function() {
|
|
return urlQueryToSearchParams;
|
|
}
|
|
});
|
|
function searchParamsToUrlQuery(searchParams) {
|
|
const query = {};
|
|
for (const [key, value] of searchParams.entries()){
|
|
const existing = query[key];
|
|
if (typeof existing === 'undefined') {
|
|
query[key] = value;
|
|
} else if (Array.isArray(existing)) {
|
|
existing.push(value);
|
|
} else {
|
|
query[key] = [
|
|
existing,
|
|
value
|
|
];
|
|
}
|
|
}
|
|
return query;
|
|
}
|
|
function stringifyUrlQueryParam(param) {
|
|
if (typeof param === 'string') {
|
|
return param;
|
|
}
|
|
if (typeof param === 'number' && !isNaN(param) || typeof param === 'boolean') {
|
|
return String(param);
|
|
} else {
|
|
return '';
|
|
}
|
|
}
|
|
function urlQueryToSearchParams(query) {
|
|
const searchParams = new URLSearchParams();
|
|
for (const [key, value] of Object.entries(query)){
|
|
if (Array.isArray(value)) {
|
|
for (const item of value){
|
|
searchParams.append(key, stringifyUrlQueryParam(item));
|
|
}
|
|
} else {
|
|
searchParams.set(key, stringifyUrlQueryParam(value));
|
|
}
|
|
}
|
|
return searchParams;
|
|
}
|
|
function assign(target, ...searchParamsList) {
|
|
for (const searchParams of searchParamsList){
|
|
for (const key of searchParams.keys()){
|
|
target.delete(key);
|
|
}
|
|
for (const [key, value] of searchParams.entries()){
|
|
target.append(key, value);
|
|
}
|
|
}
|
|
return target;
|
|
}
|
|
}),
|
|
"[project]/node_modules/next/dist/shared/lib/router/utils/parse-relative-url.js [app-client] (ecmascript)", ((__turbopack_context__, module, exports) => {
|
|
"use strict";
|
|
|
|
Object.defineProperty(exports, "__esModule", {
|
|
value: true
|
|
});
|
|
Object.defineProperty(exports, "parseRelativeUrl", {
|
|
enumerable: true,
|
|
get: function() {
|
|
return parseRelativeUrl;
|
|
}
|
|
});
|
|
const _utils = __turbopack_context__.r("[project]/node_modules/next/dist/shared/lib/utils.js [app-client] (ecmascript)");
|
|
const _querystring = __turbopack_context__.r("[project]/node_modules/next/dist/shared/lib/router/utils/querystring.js [app-client] (ecmascript)");
|
|
function parseRelativeUrl(url, base, parseQuery = true) {
|
|
const globalBase = new URL(typeof window === 'undefined' ? 'http://n' : (0, _utils.getLocationOrigin)());
|
|
const resolvedBase = base ? new URL(base, globalBase) : url.startsWith('.') ? new URL(typeof window === 'undefined' ? 'http://n' : window.location.href) : globalBase;
|
|
const { pathname, searchParams, search, hash, href, origin } = url.startsWith('/') ? // Not using `origin` to support other protocols
|
|
new URL(`${resolvedBase.protocol}//${resolvedBase.host}${url}`) : new URL(url, resolvedBase);
|
|
if (origin !== globalBase.origin) {
|
|
throw Object.defineProperty(new Error(`invariant: invalid relative URL, router received ${url}`), "__NEXT_ERROR_CODE", {
|
|
value: "E159",
|
|
enumerable: false,
|
|
configurable: true
|
|
});
|
|
}
|
|
return {
|
|
auth: null,
|
|
host: null,
|
|
hostname: null,
|
|
pathname,
|
|
port: null,
|
|
protocol: null,
|
|
query: parseQuery ? (0, _querystring.searchParamsToUrlQuery)(searchParams) : undefined,
|
|
search,
|
|
hash,
|
|
href: href.slice(origin.length),
|
|
// We don't know for relative URLs at this point since we set a custom, internal
|
|
// base that isn't surfaced to users.
|
|
slashes: null
|
|
};
|
|
}
|
|
}),
|
|
"[project]/node_modules/next/dist/server/app-render/instant-validation/instant-validation-error.js [app-client] (ecmascript)", ((__turbopack_context__, module, exports) => {
|
|
"use strict";
|
|
|
|
Object.defineProperty(exports, "__esModule", {
|
|
value: true
|
|
});
|
|
0 && (module.exports = {
|
|
InstantValidationError: null,
|
|
isInstantValidationError: null
|
|
});
|
|
function _export(target, all) {
|
|
for(var name in all)Object.defineProperty(target, name, {
|
|
enumerable: true,
|
|
get: all[name]
|
|
});
|
|
}
|
|
_export(exports, {
|
|
InstantValidationError: function() {
|
|
return InstantValidationError;
|
|
},
|
|
isInstantValidationError: function() {
|
|
return isInstantValidationError;
|
|
}
|
|
});
|
|
const INSTANT_VALIDATION_ERROR_DIGEST = 'INSTANT_VALIDATION_ERROR';
|
|
function isInstantValidationError(err) {
|
|
return !!(err && typeof err === 'object' && err instanceof Error && err.digest === INSTANT_VALIDATION_ERROR_DIGEST);
|
|
}
|
|
class InstantValidationError extends Error {
|
|
constructor(...args){
|
|
super(...args), this.digest = INSTANT_VALIDATION_ERROR_DIGEST;
|
|
}
|
|
}
|
|
}),
|
|
"[project]/node_modules/next/dist/server/app-render/instant-validation/instant-samples.js [app-client] (ecmascript)", ((__turbopack_context__, module, exports) => {
|
|
"use strict";
|
|
|
|
Object.defineProperty(exports, "__esModule", {
|
|
value: true
|
|
});
|
|
0 && (module.exports = {
|
|
assertRootParamInSamples: null,
|
|
createCookiesFromSample: null,
|
|
createDraftModeForValidation: null,
|
|
createExhaustiveParamsProxy: null,
|
|
createExhaustiveSearchParamsProxy: null,
|
|
createExhaustiveURLSearchParamsProxy: null,
|
|
createHeadersFromSample: null,
|
|
createRelativeURLFromSamples: null,
|
|
createValidationSampleTracking: null,
|
|
trackMissingSampleError: null,
|
|
trackMissingSampleErrorAndThrow: null
|
|
});
|
|
function _export(target, all) {
|
|
for(var name in all)Object.defineProperty(target, name, {
|
|
enumerable: true,
|
|
get: all[name]
|
|
});
|
|
}
|
|
_export(exports, {
|
|
assertRootParamInSamples: function() {
|
|
return assertRootParamInSamples;
|
|
},
|
|
createCookiesFromSample: function() {
|
|
return createCookiesFromSample;
|
|
},
|
|
createDraftModeForValidation: function() {
|
|
return createDraftModeForValidation;
|
|
},
|
|
createExhaustiveParamsProxy: function() {
|
|
return createExhaustiveParamsProxy;
|
|
},
|
|
createExhaustiveSearchParamsProxy: function() {
|
|
return createExhaustiveSearchParamsProxy;
|
|
},
|
|
createExhaustiveURLSearchParamsProxy: function() {
|
|
return createExhaustiveURLSearchParamsProxy;
|
|
},
|
|
createHeadersFromSample: function() {
|
|
return createHeadersFromSample;
|
|
},
|
|
createRelativeURLFromSamples: function() {
|
|
return createRelativeURLFromSamples;
|
|
},
|
|
createValidationSampleTracking: function() {
|
|
return createValidationSampleTracking;
|
|
},
|
|
trackMissingSampleError: function() {
|
|
return trackMissingSampleError;
|
|
},
|
|
trackMissingSampleErrorAndThrow: function() {
|
|
return trackMissingSampleErrorAndThrow;
|
|
}
|
|
});
|
|
const _cookies = __turbopack_context__.r("[project]/node_modules/next/dist/server/web/spec-extension/cookies.js [app-client] (ecmascript)");
|
|
const _requestcookies = __turbopack_context__.r("[project]/node_modules/next/dist/server/web/spec-extension/adapters/request-cookies.js [app-client] (ecmascript)");
|
|
const _headers = __turbopack_context__.r("[project]/node_modules/next/dist/server/web/spec-extension/adapters/headers.js [app-client] (ecmascript)");
|
|
const _getsegmentparam = __turbopack_context__.r("[project]/node_modules/next/dist/shared/lib/router/utils/get-segment-param.js [app-client] (ecmascript)");
|
|
const _parserelativeurl = __turbopack_context__.r("[project]/node_modules/next/dist/shared/lib/router/utils/parse-relative-url.js [app-client] (ecmascript)");
|
|
const _invarianterror = __turbopack_context__.r("[project]/node_modules/next/dist/shared/lib/invariant-error.js [app-client] (ecmascript)");
|
|
const _instantvalidationerror = __turbopack_context__.r("[project]/node_modules/next/dist/server/app-render/instant-validation/instant-validation-error.js [app-client] (ecmascript)");
|
|
const _workunitasyncstorageexternal = __turbopack_context__.r("[project]/node_modules/next/dist/server/app-render/work-unit-async-storage.external.js [app-client] (ecmascript)");
|
|
const _reflectutils = __turbopack_context__.r("[project]/node_modules/next/dist/shared/lib/utils/reflect-utils.js [app-client] (ecmascript)");
|
|
function createValidationSampleTracking() {
|
|
return {
|
|
missingSampleErrors: []
|
|
};
|
|
}
|
|
function getExpectedSampleTracking() {
|
|
let validationSampleTracking = null;
|
|
const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore();
|
|
if (workUnitStore) {
|
|
switch(workUnitStore.type){
|
|
case 'request':
|
|
case 'validation-client':
|
|
// TODO(instant-validation-build): do we need any special handling for caches?
|
|
validationSampleTracking = workUnitStore.validationSampleTracking ?? null;
|
|
break;
|
|
case 'cache':
|
|
case 'private-cache':
|
|
case 'unstable-cache':
|
|
case 'prerender-legacy':
|
|
case 'prerender-ppr':
|
|
case 'prerender-client':
|
|
case 'prerender':
|
|
case 'prerender-runtime':
|
|
case 'generate-static-params':
|
|
break;
|
|
default:
|
|
workUnitStore;
|
|
}
|
|
}
|
|
if (!validationSampleTracking) {
|
|
throw Object.defineProperty(new _invarianterror.InvariantError('Expected to have a workUnitStore that provides validationSampleTracking'), "__NEXT_ERROR_CODE", {
|
|
value: "E1110",
|
|
enumerable: false,
|
|
configurable: true
|
|
});
|
|
}
|
|
return validationSampleTracking;
|
|
}
|
|
function trackMissingSampleError(error) {
|
|
const validationSampleTracking = getExpectedSampleTracking();
|
|
validationSampleTracking.missingSampleErrors.push(error);
|
|
}
|
|
function trackMissingSampleErrorAndThrow(error) {
|
|
// TODO(instant-validation-build): this should abort the render
|
|
trackMissingSampleError(error);
|
|
throw error;
|
|
}
|
|
function createCookiesFromSample(sampleCookies, route) {
|
|
const declaredNames = new Set();
|
|
const cookies = new _cookies.RequestCookies(new Headers());
|
|
if (sampleCookies) {
|
|
for (const cookie of sampleCookies){
|
|
declaredNames.add(cookie.name);
|
|
if (cookie.value !== null) {
|
|
cookies.set(cookie.name, cookie.value);
|
|
}
|
|
}
|
|
}
|
|
const sealed = _requestcookies.RequestCookiesAdapter.seal(cookies);
|
|
return new Proxy(sealed, {
|
|
get (target, prop, receiver) {
|
|
if (prop === 'has') {
|
|
const originalMethod = Reflect.get(target, prop, receiver);
|
|
const wrappedMethod = function(name) {
|
|
if (!declaredNames.has(name)) {
|
|
trackMissingSampleErrorAndThrow(createMissingCookieSampleError(route, name));
|
|
}
|
|
return originalMethod.call(target, name);
|
|
};
|
|
return wrappedMethod;
|
|
}
|
|
if (prop === 'get') {
|
|
const originalMethod = Reflect.get(target, prop, receiver);
|
|
const wrappedMethod = function(nameOrCookie) {
|
|
let name;
|
|
if (typeof nameOrCookie === 'string') {
|
|
name = nameOrCookie;
|
|
} else if (nameOrCookie && typeof nameOrCookie === 'object' && typeof nameOrCookie.name === 'string') {
|
|
name = nameOrCookie.name;
|
|
} else {
|
|
// This is an invalid input. Pass it through to the original method so it can error.
|
|
return originalMethod.call(target, nameOrCookie);
|
|
}
|
|
if (!declaredNames.has(name)) {
|
|
trackMissingSampleErrorAndThrow(createMissingCookieSampleError(route, name));
|
|
}
|
|
return originalMethod.call(target, name);
|
|
};
|
|
return wrappedMethod;
|
|
}
|
|
// TODO(instant-validation-build): what should getAll do?
|
|
// Maybe we should only allow it if there's an array (possibly empty?)
|
|
return Reflect.get(target, prop, receiver);
|
|
}
|
|
});
|
|
}
|
|
function createMissingCookieSampleError(route, name) {
|
|
return Object.defineProperty(new _instantvalidationerror.InstantValidationError(`Route "${route}" accessed cookie "${name}" which is not defined in the \`samples\` ` + `of \`unstable_instant\`. Add it to the sample's \`cookies\` array, ` + `or \`{ name: "${name}", value: null }\` if it should be absent.`), "__NEXT_ERROR_CODE", {
|
|
value: "E1115",
|
|
enumerable: false,
|
|
configurable: true
|
|
});
|
|
}
|
|
function createHeadersFromSample(rawSampleHeaders, sampleCookies, route) {
|
|
// If we have cookie samples, add a `cookie` header to match.
|
|
// Accessing it will be implicitly allowed by the proxy --
|
|
// if the user defined some cookies, accessing the "cookie" header is also fine.
|
|
const sampleHeaders = rawSampleHeaders ? [
|
|
...rawSampleHeaders
|
|
] : [];
|
|
if (sampleHeaders.find(([name])=>name.toLowerCase() === 'cookie')) {
|
|
throw Object.defineProperty(new _instantvalidationerror.InstantValidationError('Invalid sample: Defining cookies via a "cookie" header is not supported. Use `cookies: [{ name: ..., value: ... }]` instead.'), "__NEXT_ERROR_CODE", {
|
|
value: "E1111",
|
|
enumerable: false,
|
|
configurable: true
|
|
});
|
|
}
|
|
if (sampleCookies) {
|
|
const cookieHeaderValue = sampleCookies.toString();
|
|
sampleHeaders.push([
|
|
'cookie',
|
|
// if the `cookies` samples were empty, or they were all `null`, then we have no cookies,
|
|
// and the header isn't present, but should remains readable, so we set it to null.
|
|
cookieHeaderValue !== '' ? cookieHeaderValue : null
|
|
]);
|
|
}
|
|
const declaredNames = new Set();
|
|
const headersInit = {};
|
|
for (const [name, value] of sampleHeaders){
|
|
declaredNames.add(name.toLowerCase());
|
|
if (value !== null) {
|
|
headersInit[name.toLowerCase()] = value;
|
|
}
|
|
}
|
|
const sealed = _headers.HeadersAdapter.seal(_headers.HeadersAdapter.from(headersInit));
|
|
return new Proxy(sealed, {
|
|
get (target, prop, receiver) {
|
|
if (prop === 'get' || prop === 'has') {
|
|
const originalMethod = Reflect.get(target, prop, receiver);
|
|
const patchedMethod = function(rawName) {
|
|
const name = rawName.toLowerCase();
|
|
if (!declaredNames.has(name)) {
|
|
trackMissingSampleErrorAndThrow(Object.defineProperty(new _instantvalidationerror.InstantValidationError(`Route "${route}" accessed header "${name}" which is not defined in the \`samples\` ` + `of \`unstable_instant\`. Add it to the sample's \`headers\` array, ` + `or \`["${name}", null]\` if it should be absent.`), "__NEXT_ERROR_CODE", {
|
|
value: "E1116",
|
|
enumerable: false,
|
|
configurable: true
|
|
}));
|
|
}
|
|
// typescript can't reconcile a union of functions with a union of return types,
|
|
// so we have to cast the original return type away
|
|
return originalMethod.call(target, name);
|
|
};
|
|
return patchedMethod;
|
|
}
|
|
return Reflect.get(target, prop, receiver);
|
|
}
|
|
});
|
|
}
|
|
function createDraftModeForValidation() {
|
|
// Create a minimal DraftModeProvider-compatible object
|
|
// that always reports draft mode as disabled.
|
|
//
|
|
// private properties that can't be set from outside the class.
|
|
return {
|
|
get isEnabled () {
|
|
return false;
|
|
},
|
|
enable () {
|
|
throw Object.defineProperty(new Error('Draft mode cannot be enabled during build-time instant validation.'), "__NEXT_ERROR_CODE", {
|
|
value: "E1092",
|
|
enumerable: false,
|
|
configurable: true
|
|
});
|
|
},
|
|
disable () {
|
|
throw Object.defineProperty(new Error('Draft mode cannot be disabled during build-time instant validation.'), "__NEXT_ERROR_CODE", {
|
|
value: "E1094",
|
|
enumerable: false,
|
|
configurable: true
|
|
});
|
|
}
|
|
};
|
|
}
|
|
function createExhaustiveParamsProxy(underlyingParams, declaredParamNames, route) {
|
|
return new Proxy(underlyingParams, {
|
|
get (target, prop, receiver) {
|
|
if (typeof prop === 'string' && !_reflectutils.wellKnownProperties.has(prop) && // Only error when accessing a param that is part of the route but wasn't provided.
|
|
// accessing properties that aren't expected to be a valid param value is fine.
|
|
prop in underlyingParams && !declaredParamNames.has(prop)) {
|
|
trackMissingSampleErrorAndThrow(Object.defineProperty(new _instantvalidationerror.InstantValidationError(`Route "${route}" accessed param "${prop}" which is not defined in the \`samples\` ` + `of \`unstable_instant\`. Add it to the sample's \`params\` object.`), "__NEXT_ERROR_CODE", {
|
|
value: "E1095",
|
|
enumerable: false,
|
|
configurable: true
|
|
}));
|
|
}
|
|
return Reflect.get(target, prop, receiver);
|
|
}
|
|
});
|
|
}
|
|
function createExhaustiveSearchParamsProxy(searchParams, declaredSearchParamNames, route) {
|
|
return new Proxy(searchParams, {
|
|
get (target, prop, receiver) {
|
|
if (typeof prop === 'string' && !_reflectutils.wellKnownProperties.has(prop) && !declaredSearchParamNames.has(prop)) {
|
|
trackMissingSampleErrorAndThrow(createMissingSearchParamSampleError(route, prop));
|
|
}
|
|
return Reflect.get(target, prop, receiver);
|
|
},
|
|
has (target, prop) {
|
|
if (typeof prop === 'string' && !_reflectutils.wellKnownProperties.has(prop) && !declaredSearchParamNames.has(prop)) {
|
|
trackMissingSampleErrorAndThrow(createMissingSearchParamSampleError(route, prop));
|
|
}
|
|
return Reflect.has(target, prop);
|
|
}
|
|
});
|
|
}
|
|
function createExhaustiveURLSearchParamsProxy(searchParams, declaredSearchParamNames, route) {
|
|
return new Proxy(searchParams, {
|
|
get (target, prop, receiver) {
|
|
// Intercept method calls that access specific param names
|
|
if (prop === 'get' || prop === 'getAll' || prop === 'has') {
|
|
const originalMathod = Reflect.get(target, prop, receiver);
|
|
return (name)=>{
|
|
if (typeof name === 'string' && !declaredSearchParamNames.has(name)) {
|
|
trackMissingSampleErrorAndThrow(createMissingSearchParamSampleError(route, name));
|
|
}
|
|
return originalMathod.call(target, name);
|
|
};
|
|
}
|
|
const value = Reflect.get(target, prop, receiver);
|
|
// Prevent `TypeError: Value of "this" must be of type URLSearchParams` for methods
|
|
if (typeof value === 'function' && !Object.hasOwn(target, prop)) {
|
|
return value.bind(target);
|
|
}
|
|
return value;
|
|
}
|
|
});
|
|
}
|
|
function createMissingSearchParamSampleError(route, name) {
|
|
return Object.defineProperty(new _instantvalidationerror.InstantValidationError(`Route "${route}" accessed searchParam "${name}" which is not defined in the \`samples\` ` + `of \`unstable_instant\`. Add it to the sample's \`searchParams\` object, ` + `or \`{ "${name}": null }\` if it should be absent.`), "__NEXT_ERROR_CODE", {
|
|
value: "E1098",
|
|
enumerable: false,
|
|
configurable: true
|
|
});
|
|
}
|
|
function createRelativeURLFromSamples(route, sampleParams, sampleSearchParams) {
|
|
// Build searchParams query object and URL search string from sample
|
|
const pathname = createPathnameFromRouteAndSampleParams(route, sampleParams ?? {});
|
|
let search = '';
|
|
if (sampleSearchParams) {
|
|
const qs = createURLSearchParamsFromSample(sampleSearchParams).toString();
|
|
if (qs) {
|
|
search = '?' + qs;
|
|
}
|
|
}
|
|
return (0, _parserelativeurl.parseRelativeUrl)(pathname + search, undefined, true);
|
|
}
|
|
function createURLSearchParamsFromSample(sampleSearchParams) {
|
|
const result = new URLSearchParams();
|
|
if (sampleSearchParams) {
|
|
for (const [key, value] of Object.entries(sampleSearchParams)){
|
|
if (value === null || value === undefined) continue;
|
|
if (Array.isArray(value)) {
|
|
for (const v of value){
|
|
result.append(key, v);
|
|
}
|
|
} else {
|
|
result.set(key, value);
|
|
}
|
|
}
|
|
}
|
|
return result;
|
|
}
|
|
/**
|
|
* Substitute sample params into `workStore.route` to create a plausible pathname.
|
|
* TODO(instant-validation-build): this logic is somewhat hacky and likely incomplete,
|
|
* but it should be good enough for some initial testing.
|
|
*/ function createPathnameFromRouteAndSampleParams(route, params) {
|
|
let interpolatedSegments = [];
|
|
const rawSegments = route.split('/');
|
|
for (const rawSegment of rawSegments){
|
|
const param = (0, _getsegmentparam.getSegmentParam)(rawSegment);
|
|
if (param) {
|
|
switch(param.paramType){
|
|
case 'catchall':
|
|
case 'optional-catchall':
|
|
{
|
|
let paramValue = params[param.paramName];
|
|
if (paramValue === undefined) {
|
|
// The value for the param was not provided. `usePathname` will detect this and throw
|
|
// before this can surface to userspace. Use `[...NAME]` as a placeholder for the param value
|
|
// in case it pops up somewhere unexpectedly.
|
|
paramValue = [
|
|
rawSegment
|
|
];
|
|
} else if (!Array.isArray(paramValue)) {
|
|
// NOTE: this happens outside of render, so we don't need `trackMissingSampleErrorAndThrow`
|
|
throw Object.defineProperty(new _instantvalidationerror.InstantValidationError(`Expected sample param value for segment '${rawSegment}' to be an array of strings, got ${typeof paramValue}`), "__NEXT_ERROR_CODE", {
|
|
value: "E1104",
|
|
enumerable: false,
|
|
configurable: true
|
|
});
|
|
}
|
|
interpolatedSegments.push(...paramValue.map((v)=>encodeURIComponent(v)));
|
|
break;
|
|
}
|
|
case 'dynamic':
|
|
{
|
|
let paramValue = params[param.paramName];
|
|
if (paramValue === undefined) {
|
|
// The value for the param was not provided. `usePathname` will detect this and throw
|
|
// before this can surface to userspace. Use `[NAME]` as a placeholder for the param value
|
|
// in case it pops up somewhere unexpectedly.
|
|
paramValue = rawSegment;
|
|
} else if (typeof paramValue !== 'string') {
|
|
// NOTE: this happens outside of render, so we don't need `trackMissingSampleErrorAndThrow`
|
|
throw Object.defineProperty(new _instantvalidationerror.InstantValidationError(`Expected sample param value for segment '${rawSegment}' to be a string, got ${typeof paramValue}`), "__NEXT_ERROR_CODE", {
|
|
value: "E1108",
|
|
enumerable: false,
|
|
configurable: true
|
|
});
|
|
}
|
|
interpolatedSegments.push(encodeURIComponent(paramValue));
|
|
break;
|
|
}
|
|
case 'catchall-intercepted-(..)(..)':
|
|
case 'catchall-intercepted-(.)':
|
|
case 'catchall-intercepted-(..)':
|
|
case 'catchall-intercepted-(...)':
|
|
case 'dynamic-intercepted-(..)(..)':
|
|
case 'dynamic-intercepted-(.)':
|
|
case 'dynamic-intercepted-(..)':
|
|
case 'dynamic-intercepted-(...)':
|
|
{
|
|
// TODO(instant-validation-build): i don't know how these are supposed to work, or if we can even get them here
|
|
throw Object.defineProperty(new _invarianterror.InvariantError('Not implemented: Validation of interception routes'), "__NEXT_ERROR_CODE", {
|
|
value: "E1106",
|
|
enumerable: false,
|
|
configurable: true
|
|
});
|
|
}
|
|
default:
|
|
{
|
|
param.paramType;
|
|
}
|
|
}
|
|
} else {
|
|
interpolatedSegments.push(rawSegment);
|
|
}
|
|
}
|
|
return interpolatedSegments.join('/');
|
|
}
|
|
function assertRootParamInSamples(workStore, sampleParams, paramName) {
|
|
if (sampleParams && paramName in sampleParams) {
|
|
// The param is defined in the samples.
|
|
} else {
|
|
const route = workStore.route;
|
|
trackMissingSampleErrorAndThrow(Object.defineProperty(new _instantvalidationerror.InstantValidationError(`Route "${route}" accessed root param "${paramName}" which is not defined in the \`samples\` ` + `of \`unstable_instant\`. Add it to the sample's \`params\` object.`), "__NEXT_ERROR_CODE", {
|
|
value: "E1114",
|
|
enumerable: false,
|
|
configurable: true
|
|
}));
|
|
}
|
|
}
|
|
}),
|
|
"[project]/node_modules/next/dist/server/request/search-params.js [app-client] (ecmascript)", ((__turbopack_context__, module, exports) => {
|
|
"use strict";
|
|
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$build$2f$polyfills$2f$process$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__ = /*#__PURE__*/ __turbopack_context__.i("[project]/node_modules/next/dist/build/polyfills/process.js [app-client] (ecmascript)");
|
|
"use strict";
|
|
Object.defineProperty(exports, "__esModule", {
|
|
value: true
|
|
});
|
|
0 && (module.exports = {
|
|
createPrerenderSearchParamsForClientPage: null,
|
|
createSearchParamsFromClient: null,
|
|
createServerSearchParamsForMetadata: null,
|
|
createServerSearchParamsForServerPage: null,
|
|
makeErroringSearchParamsForUseCache: null
|
|
});
|
|
function _export(target, all) {
|
|
for(var name in all)Object.defineProperty(target, name, {
|
|
enumerable: true,
|
|
get: all[name]
|
|
});
|
|
}
|
|
_export(exports, {
|
|
createPrerenderSearchParamsForClientPage: function() {
|
|
return createPrerenderSearchParamsForClientPage;
|
|
},
|
|
createSearchParamsFromClient: function() {
|
|
return createSearchParamsFromClient;
|
|
},
|
|
createServerSearchParamsForMetadata: function() {
|
|
return createServerSearchParamsForMetadata;
|
|
},
|
|
createServerSearchParamsForServerPage: function() {
|
|
return createServerSearchParamsForServerPage;
|
|
},
|
|
makeErroringSearchParamsForUseCache: function() {
|
|
return makeErroringSearchParamsForUseCache;
|
|
}
|
|
});
|
|
const _workasyncstorageexternal = __turbopack_context__.r("[project]/node_modules/next/dist/server/app-render/work-async-storage.external.js [app-client] (ecmascript)");
|
|
const _varyparams = __turbopack_context__.r("[project]/node_modules/next/dist/server/app-render/vary-params.js [app-client] (ecmascript)");
|
|
const _reflect = __turbopack_context__.r("[project]/node_modules/next/dist/server/web/spec-extension/adapters/reflect.js [app-client] (ecmascript)");
|
|
const _dynamicrendering = __turbopack_context__.r("[project]/node_modules/next/dist/server/app-render/dynamic-rendering.js [app-client] (ecmascript)");
|
|
const _workunitasyncstorageexternal = __turbopack_context__.r("[project]/node_modules/next/dist/server/app-render/work-unit-async-storage.external.js [app-client] (ecmascript)");
|
|
const _invarianterror = __turbopack_context__.r("[project]/node_modules/next/dist/shared/lib/invariant-error.js [app-client] (ecmascript)");
|
|
const _dynamicrenderingutils = __turbopack_context__.r("[project]/node_modules/next/dist/server/dynamic-rendering-utils.js [app-client] (ecmascript)");
|
|
const _creatededupedbycallsiteservererrorlogger = __turbopack_context__.r("[project]/node_modules/next/dist/server/create-deduped-by-callsite-server-error-logger.js [app-client] (ecmascript)");
|
|
const _reflectutils = __turbopack_context__.r("[project]/node_modules/next/dist/shared/lib/utils/reflect-utils.js [app-client] (ecmascript)");
|
|
const _utils = __turbopack_context__.r("[project]/node_modules/next/dist/server/request/utils.js [app-client] (ecmascript)");
|
|
const _stagedrendering = __turbopack_context__.r("[project]/node_modules/next/dist/server/app-render/staged-rendering.js [app-client] (ecmascript)");
|
|
function createSearchParamsFromClient(underlyingSearchParams) {
|
|
const workStore = _workasyncstorageexternal.workAsyncStorage.getStore();
|
|
if (!workStore) {
|
|
throw Object.defineProperty(new _invarianterror.InvariantError('Expected workStore to be initialized'), "__NEXT_ERROR_CODE", {
|
|
value: "E1068",
|
|
enumerable: false,
|
|
configurable: true
|
|
});
|
|
}
|
|
const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore();
|
|
if (workUnitStore) {
|
|
switch(workUnitStore.type){
|
|
case 'prerender':
|
|
case 'prerender-client':
|
|
case 'prerender-ppr':
|
|
case 'prerender-legacy':
|
|
return createStaticPrerenderSearchParams(workStore, workUnitStore);
|
|
case 'validation-client':
|
|
{
|
|
return createClientSearchParamsInValidation(underlyingSearchParams, workStore, workUnitStore);
|
|
}
|
|
case 'prerender-runtime':
|
|
throw Object.defineProperty(new _invarianterror.InvariantError('createSearchParamsFromClient should not be called in a runtime prerender.'), "__NEXT_ERROR_CODE", {
|
|
value: "E769",
|
|
enumerable: false,
|
|
configurable: true
|
|
});
|
|
case 'cache':
|
|
case 'private-cache':
|
|
case 'unstable-cache':
|
|
throw Object.defineProperty(new _invarianterror.InvariantError('createSearchParamsFromClient should not be called in cache contexts.'), "__NEXT_ERROR_CODE", {
|
|
value: "E739",
|
|
enumerable: false,
|
|
configurable: true
|
|
});
|
|
case 'generate-static-params':
|
|
throw Object.defineProperty(new _invarianterror.InvariantError('createSearchParamsFromClient should not be called inside generateStaticParams.'), "__NEXT_ERROR_CODE", {
|
|
value: "E1133",
|
|
enumerable: false,
|
|
configurable: true
|
|
});
|
|
case 'request':
|
|
// Client searchParams are not runtime prefetchable
|
|
const isRuntimePrefetchable = false;
|
|
return createRenderSearchParams(underlyingSearchParams, workStore, workUnitStore, isRuntimePrefetchable);
|
|
default:
|
|
workUnitStore;
|
|
}
|
|
}
|
|
(0, _workunitasyncstorageexternal.throwInvariantForMissingStore)();
|
|
}
|
|
function createServerSearchParamsForMetadata(underlyingSearchParams, isRuntimePrefetchable) {
|
|
const metadataVaryParamsAccumulator = (0, _varyparams.getMetadataVaryParamsAccumulator)();
|
|
return createServerSearchParamsForServerPage(underlyingSearchParams, metadataVaryParamsAccumulator, isRuntimePrefetchable);
|
|
}
|
|
function createServerSearchParamsForServerPage(underlyingSearchParams, varyParamsAccumulator, isRuntimePrefetchable) {
|
|
const workStore = _workasyncstorageexternal.workAsyncStorage.getStore();
|
|
if (!workStore) {
|
|
throw Object.defineProperty(new _invarianterror.InvariantError('Expected workStore to be initialized'), "__NEXT_ERROR_CODE", {
|
|
value: "E1068",
|
|
enumerable: false,
|
|
configurable: true
|
|
});
|
|
}
|
|
const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore();
|
|
if (workUnitStore) {
|
|
switch(workUnitStore.type){
|
|
case 'prerender':
|
|
case 'prerender-client':
|
|
case 'prerender-ppr':
|
|
case 'prerender-legacy':
|
|
return createStaticPrerenderSearchParams(workStore, workUnitStore);
|
|
case 'validation-client':
|
|
throw Object.defineProperty(new _invarianterror.InvariantError('createServerSearchParamsForServerPage should not be called in a client validation.'), "__NEXT_ERROR_CODE", {
|
|
value: "E1066",
|
|
enumerable: false,
|
|
configurable: true
|
|
});
|
|
case 'cache':
|
|
case 'private-cache':
|
|
case 'unstable-cache':
|
|
throw Object.defineProperty(new _invarianterror.InvariantError('createServerSearchParamsForServerPage should not be called in cache contexts.'), "__NEXT_ERROR_CODE", {
|
|
value: "E747",
|
|
enumerable: false,
|
|
configurable: true
|
|
});
|
|
case 'generate-static-params':
|
|
throw Object.defineProperty(new _invarianterror.InvariantError('createServerSearchParamsForServerPage should not be called inside generateStaticParams.'), "__NEXT_ERROR_CODE", {
|
|
value: "E1128",
|
|
enumerable: false,
|
|
configurable: true
|
|
});
|
|
case 'prerender-runtime':
|
|
return createRuntimePrerenderSearchParams(underlyingSearchParams, workUnitStore, varyParamsAccumulator, isRuntimePrefetchable);
|
|
case 'request':
|
|
return createRenderSearchParams(underlyingSearchParams, workStore, workUnitStore, isRuntimePrefetchable);
|
|
default:
|
|
workUnitStore;
|
|
}
|
|
}
|
|
(0, _workunitasyncstorageexternal.throwInvariantForMissingStore)();
|
|
}
|
|
function createPrerenderSearchParamsForClientPage() {
|
|
const workStore = _workasyncstorageexternal.workAsyncStorage.getStore();
|
|
if (!workStore) {
|
|
throw Object.defineProperty(new _invarianterror.InvariantError('Expected workStore to be initialized'), "__NEXT_ERROR_CODE", {
|
|
value: "E1068",
|
|
enumerable: false,
|
|
configurable: true
|
|
});
|
|
}
|
|
if (workStore.forceStatic) {
|
|
// When using forceStatic we override all other logic and always just return an empty
|
|
// dictionary object.
|
|
return Promise.resolve({});
|
|
}
|
|
const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore();
|
|
if (workUnitStore) {
|
|
switch(workUnitStore.type){
|
|
case 'prerender':
|
|
case 'prerender-client':
|
|
// We're prerendering in a mode that aborts (cacheComponents) and should stall
|
|
// the promise to ensure the RSC side is considered dynamic
|
|
return (0, _dynamicrenderingutils.makeHangingPromise)(workUnitStore.renderSignal, workStore.route, '`searchParams`');
|
|
case 'validation-client':
|
|
throw Object.defineProperty(new _invarianterror.InvariantError('createPrerenderSearchParamsForClientPage should not be called in a client validation.'), "__NEXT_ERROR_CODE", {
|
|
value: "E1061",
|
|
enumerable: false,
|
|
configurable: true
|
|
});
|
|
case 'prerender-runtime':
|
|
throw Object.defineProperty(new _invarianterror.InvariantError('createPrerenderSearchParamsForClientPage should not be called in a runtime prerender.'), "__NEXT_ERROR_CODE", {
|
|
value: "E768",
|
|
enumerable: false,
|
|
configurable: true
|
|
});
|
|
case 'cache':
|
|
case 'private-cache':
|
|
case 'unstable-cache':
|
|
throw Object.defineProperty(new _invarianterror.InvariantError('createPrerenderSearchParamsForClientPage should not be called in cache contexts.'), "__NEXT_ERROR_CODE", {
|
|
value: "E746",
|
|
enumerable: false,
|
|
configurable: true
|
|
});
|
|
case 'generate-static-params':
|
|
throw Object.defineProperty(new _invarianterror.InvariantError('createPrerenderSearchParamsForClientPage should not be called inside generateStaticParams.'), "__NEXT_ERROR_CODE", {
|
|
value: "E1124",
|
|
enumerable: false,
|
|
configurable: true
|
|
});
|
|
case 'prerender-ppr':
|
|
case 'prerender-legacy':
|
|
case 'request':
|
|
return Promise.resolve({});
|
|
default:
|
|
workUnitStore;
|
|
}
|
|
}
|
|
(0, _workunitasyncstorageexternal.throwInvariantForMissingStore)();
|
|
}
|
|
function createStaticPrerenderSearchParams(workStore, prerenderStore) {
|
|
if (workStore.forceStatic) {
|
|
// When using forceStatic we override all other logic and always just return an empty
|
|
// dictionary object.
|
|
return Promise.resolve({});
|
|
}
|
|
switch(prerenderStore.type){
|
|
case 'prerender':
|
|
case 'prerender-client':
|
|
// We are in a cacheComponents (PPR or otherwise) prerender
|
|
return makeHangingSearchParams(workStore, prerenderStore);
|
|
case 'prerender-ppr':
|
|
case 'prerender-legacy':
|
|
// We are in a legacy static generation and need to interrupt the
|
|
// prerender when search params are accessed.
|
|
return makeErroringSearchParams(workStore, prerenderStore);
|
|
default:
|
|
return prerenderStore;
|
|
}
|
|
}
|
|
function createRuntimePrerenderSearchParams(underlyingSearchParams, workUnitStore, varyParamsAccumulator, isRuntimePrefetchable) {
|
|
const underlyingSearchParamsWithVarying = varyParamsAccumulator !== null ? (0, _varyparams.createVaryingSearchParams)(varyParamsAccumulator, underlyingSearchParams) : underlyingSearchParams;
|
|
const result = makeUntrackedSearchParams(underlyingSearchParamsWithVarying);
|
|
const { stagedRendering } = workUnitStore;
|
|
if (!stagedRendering) {
|
|
return result;
|
|
}
|
|
const stage = isRuntimePrefetchable ? _stagedrendering.RenderStage.EarlyRuntime : _stagedrendering.RenderStage.Runtime;
|
|
return stagedRendering.waitForStage(stage).then(()=>result);
|
|
}
|
|
function createRenderSearchParams(underlyingSearchParams, workStore, requestStore, isRuntimePrefetchable) {
|
|
if (workStore.forceStatic) {
|
|
// When using forceStatic we override all other logic and always just return an empty
|
|
// dictionary object.
|
|
return Promise.resolve({});
|
|
} else {
|
|
if ("TURBOPACK compile-time truthy", 1) {
|
|
// Semantically we only need the dev tracking when running in `next dev`
|
|
// but since you would never use next dev with production NODE_ENV we use this
|
|
// as a proxy so we can statically exclude this code from production builds.
|
|
return makeUntrackedSearchParamsWithDevWarnings(underlyingSearchParams, workStore, requestStore, isRuntimePrefetchable);
|
|
} else //TURBOPACK unreachable
|
|
;
|
|
}
|
|
}
|
|
const CachedSearchParams = new WeakMap();
|
|
const CachedSearchParamsForUseCache = new WeakMap();
|
|
function makeHangingSearchParams(workStore, prerenderStore) {
|
|
const cachedSearchParams = CachedSearchParams.get(prerenderStore);
|
|
if (cachedSearchParams) {
|
|
return cachedSearchParams;
|
|
}
|
|
const promise = (0, _dynamicrenderingutils.makeHangingPromise)(prerenderStore.renderSignal, workStore.route, '`searchParams`');
|
|
const proxiedPromise = new Proxy(promise, {
|
|
get (target, prop, receiver) {
|
|
if (Object.hasOwn(promise, prop)) {
|
|
// The promise has this property directly. we must return it.
|
|
// We know it isn't a dynamic access because it can only be something
|
|
// that was previously written to the promise and thus not an underlying searchParam value
|
|
return _reflect.ReflectAdapter.get(target, prop, receiver);
|
|
}
|
|
switch(prop){
|
|
case 'then':
|
|
{
|
|
const expression = '`await searchParams`, `searchParams.then`, or similar';
|
|
(0, _dynamicrendering.annotateDynamicAccess)(expression, prerenderStore);
|
|
return _reflect.ReflectAdapter.get(target, prop, receiver);
|
|
}
|
|
case 'status':
|
|
{
|
|
const expression = '`use(searchParams)`, `searchParams.status`, or similar';
|
|
(0, _dynamicrendering.annotateDynamicAccess)(expression, prerenderStore);
|
|
return _reflect.ReflectAdapter.get(target, prop, receiver);
|
|
}
|
|
default:
|
|
{
|
|
return _reflect.ReflectAdapter.get(target, prop, receiver);
|
|
}
|
|
}
|
|
}
|
|
});
|
|
CachedSearchParams.set(prerenderStore, proxiedPromise);
|
|
return proxiedPromise;
|
|
}
|
|
function makeErroringSearchParams(workStore, prerenderStore) {
|
|
const cachedSearchParams = CachedSearchParams.get(workStore);
|
|
if (cachedSearchParams) {
|
|
return cachedSearchParams;
|
|
}
|
|
const underlyingSearchParams = {};
|
|
// For search params we don't construct a ReactPromise because we want to interrupt
|
|
// rendering on any property access that was not set from outside and so we only want
|
|
// to have properties like value and status if React sets them.
|
|
const promise = Promise.resolve(underlyingSearchParams);
|
|
const proxiedPromise = new Proxy(promise, {
|
|
get (target, prop, receiver) {
|
|
if (Object.hasOwn(promise, prop)) {
|
|
// The promise has this property directly. we must return it.
|
|
// We know it isn't a dynamic access because it can only be something
|
|
// that was previously written to the promise and thus not an underlying searchParam value
|
|
return _reflect.ReflectAdapter.get(target, prop, receiver);
|
|
}
|
|
if (typeof prop === 'string' && prop === 'then') {
|
|
const expression = '`await searchParams`, `searchParams.then`, or similar';
|
|
if (workStore.dynamicShouldError) {
|
|
(0, _utils.throwWithStaticGenerationBailoutErrorWithDynamicError)(workStore.route, expression);
|
|
} else if (prerenderStore.type === 'prerender-ppr') {
|
|
// PPR Prerender (no cacheComponents)
|
|
(0, _dynamicrendering.postponeWithTracking)(workStore.route, expression, prerenderStore.dynamicTracking);
|
|
} else {
|
|
// Legacy Prerender
|
|
(0, _dynamicrendering.throwToInterruptStaticGeneration)(expression, workStore, prerenderStore);
|
|
}
|
|
}
|
|
return _reflect.ReflectAdapter.get(target, prop, receiver);
|
|
}
|
|
});
|
|
CachedSearchParams.set(workStore, proxiedPromise);
|
|
return proxiedPromise;
|
|
}
|
|
function makeErroringSearchParamsForUseCache() {
|
|
const workStore = _workasyncstorageexternal.workAsyncStorage.getStore();
|
|
if (!workStore) {
|
|
throw Object.defineProperty(new _invarianterror.InvariantError('Expected workStore to be initialized'), "__NEXT_ERROR_CODE", {
|
|
value: "E1068",
|
|
enumerable: false,
|
|
configurable: true
|
|
});
|
|
}
|
|
const cachedSearchParams = CachedSearchParamsForUseCache.get(workStore);
|
|
if (cachedSearchParams) {
|
|
return cachedSearchParams;
|
|
}
|
|
const promise = Promise.resolve({});
|
|
const proxiedPromise = new Proxy(promise, {
|
|
get: function get(target, prop, receiver) {
|
|
if (Object.hasOwn(promise, prop)) {
|
|
// The promise has this property directly. we must return it. We know it
|
|
// isn't a dynamic access because it can only be something that was
|
|
// previously written to the promise and thus not an underlying
|
|
// searchParam value
|
|
return _reflect.ReflectAdapter.get(target, prop, receiver);
|
|
}
|
|
if (typeof prop === 'string' && (prop === 'then' || !_reflectutils.wellKnownProperties.has(prop))) {
|
|
(0, _utils.throwForSearchParamsAccessInUseCache)(workStore, get);
|
|
}
|
|
return _reflect.ReflectAdapter.get(target, prop, receiver);
|
|
}
|
|
});
|
|
CachedSearchParamsForUseCache.set(workStore, proxiedPromise);
|
|
return proxiedPromise;
|
|
}
|
|
function makeUntrackedSearchParams(underlyingSearchParams) {
|
|
const cachedSearchParams = CachedSearchParams.get(underlyingSearchParams);
|
|
if (cachedSearchParams) {
|
|
return cachedSearchParams;
|
|
}
|
|
const promise = Promise.resolve(underlyingSearchParams);
|
|
CachedSearchParams.set(underlyingSearchParams, promise);
|
|
return promise;
|
|
}
|
|
function makeUntrackedSearchParamsWithDevWarnings(underlyingSearchParams, workStore, requestStore, isRuntimePrefetchable) {
|
|
if (requestStore.asyncApiPromises) {
|
|
// Do not cache the resulting promise. If we do, we'll only show the first "awaited at"
|
|
// across all segments that receive searchParams.
|
|
return makeUntrackedSearchParamsWithDevWarningsImpl(underlyingSearchParams, workStore, requestStore, isRuntimePrefetchable);
|
|
} else {
|
|
const cachedSearchParams = CachedSearchParams.get(underlyingSearchParams);
|
|
if (cachedSearchParams) {
|
|
return cachedSearchParams;
|
|
}
|
|
const promise = makeUntrackedSearchParamsWithDevWarningsImpl(underlyingSearchParams, workStore, requestStore, isRuntimePrefetchable);
|
|
CachedSearchParams.set(requestStore, promise);
|
|
return promise;
|
|
}
|
|
}
|
|
function makeUntrackedSearchParamsWithDevWarningsImpl(underlyingSearchParams, workStore, requestStore, isRuntimePrefetchable) {
|
|
const promiseInitialized = {
|
|
current: false
|
|
};
|
|
const proxiedUnderlying = instrumentSearchParamsObjectWithDevWarnings(underlyingSearchParams, workStore, promiseInitialized);
|
|
let promise;
|
|
if (requestStore.asyncApiPromises) {
|
|
// We wrap each instance of searchParams in a `new Promise()`.
|
|
// This is important when all awaits are in third party which would otherwise
|
|
// track all the way to the internal params.
|
|
const sharedSearchParamsParent = isRuntimePrefetchable ? requestStore.asyncApiPromises.earlySharedSearchParamsParent : requestStore.asyncApiPromises.sharedSearchParamsParent;
|
|
promise = new Promise((resolve, reject)=>{
|
|
sharedSearchParamsParent.then(()=>resolve(proxiedUnderlying), reject);
|
|
});
|
|
// @ts-expect-error
|
|
promise.displayName = 'searchParams';
|
|
} else {
|
|
promise = (0, _dynamicrenderingutils.makeDevtoolsIOAwarePromise)(proxiedUnderlying, requestStore, _stagedrendering.RenderStage.Runtime);
|
|
}
|
|
promise.then(()=>{
|
|
promiseInitialized.current = true;
|
|
}, // is aborted before it can reach the runtime stage.
|
|
// In that case, we have to prevent an unhandled rejection from the promise
|
|
// created by this `.then()` call.
|
|
// This does not affect the `promiseInitialized` logic above,
|
|
// because `proxiedUnderlying` will not be used to resolve the promise,
|
|
// so there's no risk of any of its properties being accessed and triggering
|
|
// an undesireable warning.
|
|
ignoreReject);
|
|
return instrumentSearchParamsPromiseWithDevWarnings(underlyingSearchParams, promise, workStore);
|
|
}
|
|
function ignoreReject() {}
|
|
function instrumentSearchParamsObjectWithDevWarnings(underlyingSearchParams, workStore, promiseInitialized) {
|
|
// We have an unfortunate sequence of events that requires this initialization logic. We want to instrument the underlying
|
|
// searchParams object to detect if you are accessing values in dev. This is used for warnings and for things like the static prerender
|
|
// indicator. However when we pass this proxy to our Promise.resolve() below the VM checks if the resolved value is a promise by looking
|
|
// at the `.then` property. To our dynamic tracking logic this is indistinguishable from a `then` searchParam and so we would normally trigger
|
|
// dynamic tracking. However we know that this .then is not real dynamic access, it's just how thenables resolve in sequence. So we introduce
|
|
// this initialization concept so we omit the dynamic check until after we've constructed our resolved promise.
|
|
return new Proxy(underlyingSearchParams, {
|
|
get (target, prop, receiver) {
|
|
if (typeof prop === 'string' && promiseInitialized.current) {
|
|
if (workStore.dynamicShouldError) {
|
|
const expression = (0, _reflectutils.describeStringPropertyAccess)('searchParams', prop);
|
|
(0, _utils.throwWithStaticGenerationBailoutErrorWithDynamicError)(workStore.route, expression);
|
|
}
|
|
}
|
|
return _reflect.ReflectAdapter.get(target, prop, receiver);
|
|
},
|
|
has (target, prop) {
|
|
if (typeof prop === 'string') {
|
|
if (workStore.dynamicShouldError) {
|
|
const expression = (0, _reflectutils.describeHasCheckingStringProperty)('searchParams', prop);
|
|
(0, _utils.throwWithStaticGenerationBailoutErrorWithDynamicError)(workStore.route, expression);
|
|
}
|
|
}
|
|
return Reflect.has(target, prop);
|
|
},
|
|
ownKeys (target) {
|
|
if (workStore.dynamicShouldError) {
|
|
const expression = '`{...searchParams}`, `Object.keys(searchParams)`, or similar';
|
|
(0, _utils.throwWithStaticGenerationBailoutErrorWithDynamicError)(workStore.route, expression);
|
|
}
|
|
return Reflect.ownKeys(target);
|
|
}
|
|
});
|
|
}
|
|
function instrumentSearchParamsPromiseWithDevWarnings(underlyingSearchParams, promise, workStore) {
|
|
// Track which properties we should warn for.
|
|
const proxiedProperties = new Set();
|
|
Object.keys(underlyingSearchParams).forEach((prop)=>{
|
|
if (_reflectutils.wellKnownProperties.has(prop)) {
|
|
// These properties cannot be shadowed because they need to be the
|
|
// true underlying value for Promises to work correctly at runtime
|
|
} else {
|
|
proxiedProperties.add(prop);
|
|
}
|
|
});
|
|
return new Proxy(promise, {
|
|
get (target, prop, receiver) {
|
|
if (prop === 'then' && workStore.dynamicShouldError) {
|
|
const expression = '`searchParams.then`';
|
|
(0, _utils.throwWithStaticGenerationBailoutErrorWithDynamicError)(workStore.route, expression);
|
|
}
|
|
if (typeof prop === 'string') {
|
|
if (!_reflectutils.wellKnownProperties.has(prop) && (proxiedProperties.has(prop) || // We are accessing a property that doesn't exist on the promise nor
|
|
// the underlying searchParams.
|
|
Reflect.has(target, prop) === false)) {
|
|
const expression = (0, _reflectutils.describeStringPropertyAccess)('searchParams', prop);
|
|
warnForSyncAccess(workStore.route, expression);
|
|
}
|
|
}
|
|
return _reflect.ReflectAdapter.get(target, prop, receiver);
|
|
},
|
|
set (target, prop, value, receiver) {
|
|
if (typeof prop === 'string') {
|
|
proxiedProperties.delete(prop);
|
|
}
|
|
return Reflect.set(target, prop, value, receiver);
|
|
},
|
|
has (target, prop) {
|
|
if (typeof prop === 'string') {
|
|
if (!_reflectutils.wellKnownProperties.has(prop) && (proxiedProperties.has(prop) || // We are accessing a property that doesn't exist on the promise nor
|
|
// the underlying searchParams.
|
|
Reflect.has(target, prop) === false)) {
|
|
const expression = (0, _reflectutils.describeHasCheckingStringProperty)('searchParams', prop);
|
|
warnForSyncAccess(workStore.route, expression);
|
|
}
|
|
}
|
|
return Reflect.has(target, prop);
|
|
},
|
|
ownKeys (target) {
|
|
const expression = '`Object.keys(searchParams)` or similar';
|
|
warnForSyncAccess(workStore.route, expression);
|
|
return Reflect.ownKeys(target);
|
|
}
|
|
});
|
|
}
|
|
const warnForSyncAccess = (0, _creatededupedbycallsiteservererrorlogger.createDedupedByCallsiteServerErrorLoggerDev)(createSearchAccessError);
|
|
function createSearchAccessError(route, expression) {
|
|
const prefix = route ? `Route "${route}" ` : 'This route ';
|
|
return Object.defineProperty(new Error(`${prefix}used ${expression}. ` + `\`searchParams\` is a Promise and must be unwrapped with \`await\` or \`React.use()\` before accessing its properties. ` + `Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis`), "__NEXT_ERROR_CODE", {
|
|
value: "E848",
|
|
enumerable: false,
|
|
configurable: true
|
|
});
|
|
}
|
|
function createClientSearchParamsInValidation(underlyingSearchParams, workStore, workUnitStore) {
|
|
var _workUnitStore_validationSamples;
|
|
const { createExhaustiveSearchParamsProxy } = __turbopack_context__.r("[project]/node_modules/next/dist/server/app-render/instant-validation/instant-samples.js [app-client] (ecmascript)");
|
|
const declaredKeys = new Set(Object.keys(((_workUnitStore_validationSamples = workUnitStore.validationSamples) == null ? void 0 : _workUnitStore_validationSamples.searchParams) ?? {}));
|
|
underlyingSearchParams = createExhaustiveSearchParamsProxy(underlyingSearchParams, declaredKeys, workStore.route);
|
|
return Promise.resolve(underlyingSearchParams);
|
|
}
|
|
}),
|
|
"[project]/node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js [app-client] (ecmascript)", ((__turbopack_context__, module, exports) => {
|
|
"use strict";
|
|
|
|
Object.defineProperty(exports, "__esModule", {
|
|
value: true
|
|
});
|
|
Object.defineProperty(exports, "dynamicAccessAsyncStorageInstance", {
|
|
enumerable: true,
|
|
get: function() {
|
|
return dynamicAccessAsyncStorageInstance;
|
|
}
|
|
});
|
|
const _asynclocalstorage = __turbopack_context__.r("[project]/node_modules/next/dist/server/app-render/async-local-storage.js [app-client] (ecmascript)");
|
|
const dynamicAccessAsyncStorageInstance = (0, _asynclocalstorage.createAsyncLocalStorage)();
|
|
}),
|
|
"[project]/node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js [app-client] (ecmascript)", ((__turbopack_context__, module, exports) => {
|
|
"use strict";
|
|
|
|
Object.defineProperty(exports, "__esModule", {
|
|
value: true
|
|
});
|
|
Object.defineProperty(exports, "dynamicAccessAsyncStorage", {
|
|
enumerable: true,
|
|
get: function() {
|
|
return _dynamicaccessasyncstorageinstance.dynamicAccessAsyncStorageInstance;
|
|
}
|
|
});
|
|
const _dynamicaccessasyncstorageinstance = __turbopack_context__.r("[project]/node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js [app-client] (ecmascript)");
|
|
}),
|
|
"[project]/node_modules/next/dist/server/request/params.js [app-client] (ecmascript)", ((__turbopack_context__, module, exports) => {
|
|
"use strict";
|
|
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$build$2f$polyfills$2f$process$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__ = /*#__PURE__*/ __turbopack_context__.i("[project]/node_modules/next/dist/build/polyfills/process.js [app-client] (ecmascript)");
|
|
"use strict";
|
|
Object.defineProperty(exports, "__esModule", {
|
|
value: true
|
|
});
|
|
0 && (module.exports = {
|
|
createParamsFromClient: null,
|
|
createPrerenderParamsForClientSegment: null,
|
|
createServerParamsForMetadata: null,
|
|
createServerParamsForRoute: null,
|
|
createServerParamsForServerSegment: null
|
|
});
|
|
function _export(target, all) {
|
|
for(var name in all)Object.defineProperty(target, name, {
|
|
enumerable: true,
|
|
get: all[name]
|
|
});
|
|
}
|
|
_export(exports, {
|
|
createParamsFromClient: function() {
|
|
return createParamsFromClient;
|
|
},
|
|
createPrerenderParamsForClientSegment: function() {
|
|
return createPrerenderParamsForClientSegment;
|
|
},
|
|
createServerParamsForMetadata: function() {
|
|
return createServerParamsForMetadata;
|
|
},
|
|
createServerParamsForRoute: function() {
|
|
return createServerParamsForRoute;
|
|
},
|
|
createServerParamsForServerSegment: function() {
|
|
return createServerParamsForServerSegment;
|
|
}
|
|
});
|
|
const _workasyncstorageexternal = __turbopack_context__.r("[project]/node_modules/next/dist/server/app-render/work-async-storage.external.js [app-client] (ecmascript)");
|
|
const _varyparams = __turbopack_context__.r("[project]/node_modules/next/dist/server/app-render/vary-params.js [app-client] (ecmascript)");
|
|
const _reflect = __turbopack_context__.r("[project]/node_modules/next/dist/server/web/spec-extension/adapters/reflect.js [app-client] (ecmascript)");
|
|
const _dynamicrendering = __turbopack_context__.r("[project]/node_modules/next/dist/server/app-render/dynamic-rendering.js [app-client] (ecmascript)");
|
|
const _workunitasyncstorageexternal = __turbopack_context__.r("[project]/node_modules/next/dist/server/app-render/work-unit-async-storage.external.js [app-client] (ecmascript)");
|
|
const _invarianterror = __turbopack_context__.r("[project]/node_modules/next/dist/shared/lib/invariant-error.js [app-client] (ecmascript)");
|
|
const _reflectutils = __turbopack_context__.r("[project]/node_modules/next/dist/shared/lib/utils/reflect-utils.js [app-client] (ecmascript)");
|
|
const _dynamicrenderingutils = __turbopack_context__.r("[project]/node_modules/next/dist/server/dynamic-rendering-utils.js [app-client] (ecmascript)");
|
|
const _creatededupedbycallsiteservererrorlogger = __turbopack_context__.r("[project]/node_modules/next/dist/server/create-deduped-by-callsite-server-error-logger.js [app-client] (ecmascript)");
|
|
const _dynamicaccessasyncstorageexternal = __turbopack_context__.r("[project]/node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js [app-client] (ecmascript)");
|
|
const _stagedrendering = __turbopack_context__.r("[project]/node_modules/next/dist/server/app-render/staged-rendering.js [app-client] (ecmascript)");
|
|
function createParamsFromClient(underlyingParams) {
|
|
const workStore = _workasyncstorageexternal.workAsyncStorage.getStore();
|
|
if (!workStore) {
|
|
throw Object.defineProperty(new _invarianterror.InvariantError('Expected workStore to be initialized'), "__NEXT_ERROR_CODE", {
|
|
value: "E1068",
|
|
enumerable: false,
|
|
configurable: true
|
|
});
|
|
}
|
|
const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore();
|
|
if (workUnitStore) {
|
|
switch(workUnitStore.type){
|
|
case 'prerender':
|
|
case 'prerender-client':
|
|
case 'prerender-ppr':
|
|
case 'prerender-legacy':
|
|
// Client params don't need additional vary tracking because by the
|
|
// time they reach the client, the access would have already been
|
|
// tracked by the server.
|
|
const varyParamsAccumulator = null;
|
|
return createStaticPrerenderParams(underlyingParams, null, workStore, workUnitStore, varyParamsAccumulator);
|
|
case 'validation-client':
|
|
return createClientParamsInInstantValidation(underlyingParams, workStore, workUnitStore.validationSamples);
|
|
case 'cache':
|
|
case 'private-cache':
|
|
case 'unstable-cache':
|
|
throw Object.defineProperty(new _invarianterror.InvariantError('createParamsFromClient should not be called in cache contexts.'), "__NEXT_ERROR_CODE", {
|
|
value: "E736",
|
|
enumerable: false,
|
|
configurable: true
|
|
});
|
|
case 'prerender-runtime':
|
|
throw Object.defineProperty(new _invarianterror.InvariantError('createParamsFromClient should not be called in a runtime prerender.'), "__NEXT_ERROR_CODE", {
|
|
value: "E770",
|
|
enumerable: false,
|
|
configurable: true
|
|
});
|
|
case 'generate-static-params':
|
|
throw Object.defineProperty(new _invarianterror.InvariantError('createParamsFromClient should not be called inside generateStaticParams.'), "__NEXT_ERROR_CODE", {
|
|
value: "E1122",
|
|
enumerable: false,
|
|
configurable: true
|
|
});
|
|
case 'request':
|
|
if ("TURBOPACK compile-time truthy", 1) {
|
|
// Semantically we only need the dev tracking when running in `next dev`
|
|
// but since you would never use next dev with production NODE_ENV we use this
|
|
// as a proxy so we can statically exclude this code from production builds.
|
|
const fallbackParams = workUnitStore.fallbackParams;
|
|
// Client params are not runtime prefetchable
|
|
const isRuntimePrefetchable = false;
|
|
return createRenderParamsInDev(underlyingParams, fallbackParams, workStore, workUnitStore, isRuntimePrefetchable);
|
|
} else //TURBOPACK unreachable
|
|
;
|
|
default:
|
|
workUnitStore;
|
|
}
|
|
}
|
|
(0, _workunitasyncstorageexternal.throwInvariantForMissingStore)();
|
|
}
|
|
function createServerParamsForMetadata(underlyingParams, optionalCatchAllParamName, isRuntimePrefetchable) {
|
|
const metadataVaryParamsAccumulator = (0, _varyparams.getMetadataVaryParamsAccumulator)();
|
|
return createServerParamsForServerSegment(underlyingParams, optionalCatchAllParamName, metadataVaryParamsAccumulator, isRuntimePrefetchable);
|
|
}
|
|
function createServerParamsForRoute(underlyingParams, varyParamsAccumulator = null) {
|
|
const workStore = _workasyncstorageexternal.workAsyncStorage.getStore();
|
|
if (!workStore) {
|
|
throw Object.defineProperty(new _invarianterror.InvariantError('Expected workStore to be initialized'), "__NEXT_ERROR_CODE", {
|
|
value: "E1068",
|
|
enumerable: false,
|
|
configurable: true
|
|
});
|
|
}
|
|
const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore();
|
|
if (workUnitStore) {
|
|
switch(workUnitStore.type){
|
|
case 'prerender':
|
|
case 'prerender-ppr':
|
|
case 'prerender-legacy':
|
|
return createStaticPrerenderParams(underlyingParams, null, workStore, workUnitStore, varyParamsAccumulator);
|
|
case 'prerender-client':
|
|
case 'validation-client':
|
|
throw Object.defineProperty(new _invarianterror.InvariantError('createServerParamsForRoute should not be called in client contexts.'), "__NEXT_ERROR_CODE", {
|
|
value: "E1064",
|
|
enumerable: false,
|
|
configurable: true
|
|
});
|
|
case 'cache':
|
|
case 'private-cache':
|
|
case 'unstable-cache':
|
|
throw Object.defineProperty(new _invarianterror.InvariantError('createServerParamsForRoute should not be called in cache contexts.'), "__NEXT_ERROR_CODE", {
|
|
value: "E738",
|
|
enumerable: false,
|
|
configurable: true
|
|
});
|
|
case 'generate-static-params':
|
|
throw Object.defineProperty(new _invarianterror.InvariantError('createServerParamsForRoute should not be called inside generateStaticParams.'), "__NEXT_ERROR_CODE", {
|
|
value: "E1131",
|
|
enumerable: false,
|
|
configurable: true
|
|
});
|
|
case 'prerender-runtime':
|
|
{
|
|
// Route params are not runtime prefetchable
|
|
const isRuntimePrefetchable = false;
|
|
return createRuntimePrerenderParams(underlyingParams, null, workUnitStore, varyParamsAccumulator, isRuntimePrefetchable);
|
|
}
|
|
case 'request':
|
|
if ("TURBOPACK compile-time truthy", 1) {
|
|
// Semantically we only need the dev tracking when running in `next dev`
|
|
// but since you would never use next dev with production NODE_ENV we use this
|
|
// as a proxy so we can statically exclude this code from production builds.
|
|
const fallbackParams = workUnitStore.fallbackParams;
|
|
// Route params are not runtime prefetchable
|
|
const isRuntimePrefetchable = false;
|
|
return createRenderParamsInDev(underlyingParams, fallbackParams, workStore, workUnitStore, isRuntimePrefetchable);
|
|
} else //TURBOPACK unreachable
|
|
;
|
|
default:
|
|
workUnitStore;
|
|
}
|
|
}
|
|
(0, _workunitasyncstorageexternal.throwInvariantForMissingStore)();
|
|
}
|
|
function createServerParamsForServerSegment(underlyingParams, optionalCatchAllParamName, varyParamsAccumulator, isRuntimePrefetchable) {
|
|
const workStore = _workasyncstorageexternal.workAsyncStorage.getStore();
|
|
if (!workStore) {
|
|
throw Object.defineProperty(new _invarianterror.InvariantError('Expected workStore to be initialized'), "__NEXT_ERROR_CODE", {
|
|
value: "E1068",
|
|
enumerable: false,
|
|
configurable: true
|
|
});
|
|
}
|
|
const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore();
|
|
if (workUnitStore) {
|
|
switch(workUnitStore.type){
|
|
case 'prerender':
|
|
case 'prerender-client':
|
|
case 'prerender-ppr':
|
|
case 'prerender-legacy':
|
|
return createStaticPrerenderParams(underlyingParams, optionalCatchAllParamName, workStore, workUnitStore, varyParamsAccumulator);
|
|
case 'validation-client':
|
|
throw Object.defineProperty(new _invarianterror.InvariantError('createServerParamsForServerSegment should not be called in client contexts.'), "__NEXT_ERROR_CODE", {
|
|
value: "E1101",
|
|
enumerable: false,
|
|
configurable: true
|
|
});
|
|
case 'cache':
|
|
case 'private-cache':
|
|
case 'unstable-cache':
|
|
throw Object.defineProperty(new _invarianterror.InvariantError('createServerParamsForServerSegment should not be called in cache contexts.'), "__NEXT_ERROR_CODE", {
|
|
value: "E743",
|
|
enumerable: false,
|
|
configurable: true
|
|
});
|
|
case 'generate-static-params':
|
|
throw Object.defineProperty(new _invarianterror.InvariantError('createServerParamsForServerSegment should not be called inside generateStaticParams.'), "__NEXT_ERROR_CODE", {
|
|
value: "E1120",
|
|
enumerable: false,
|
|
configurable: true
|
|
});
|
|
case 'prerender-runtime':
|
|
return createRuntimePrerenderParams(underlyingParams, optionalCatchAllParamName, workUnitStore, varyParamsAccumulator, isRuntimePrefetchable);
|
|
case 'request':
|
|
if ("TURBOPACK compile-time truthy", 1) {
|
|
// Semantically we only need the dev tracking when running in `next dev`
|
|
// but since you would never use next dev with production NODE_ENV we use this
|
|
// as a proxy so we can statically exclude this code from production builds.
|
|
const fallbackParams = workUnitStore.fallbackParams;
|
|
return createRenderParamsInDev(underlyingParams, fallbackParams, workStore, workUnitStore, isRuntimePrefetchable);
|
|
} else //TURBOPACK unreachable
|
|
;
|
|
default:
|
|
workUnitStore;
|
|
}
|
|
}
|
|
(0, _workunitasyncstorageexternal.throwInvariantForMissingStore)();
|
|
}
|
|
function createPrerenderParamsForClientSegment(underlyingParams) {
|
|
const workStore = _workasyncstorageexternal.workAsyncStorage.getStore();
|
|
if (!workStore) {
|
|
throw Object.defineProperty(new _invarianterror.InvariantError('Missing workStore in createPrerenderParamsForClientSegment'), "__NEXT_ERROR_CODE", {
|
|
value: "E773",
|
|
enumerable: false,
|
|
configurable: true
|
|
});
|
|
}
|
|
const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore();
|
|
if (workUnitStore) {
|
|
switch(workUnitStore.type){
|
|
case 'prerender':
|
|
case 'prerender-client':
|
|
const fallbackParams = workUnitStore.fallbackRouteParams;
|
|
if (fallbackParams) {
|
|
for(let key in underlyingParams){
|
|
if (fallbackParams.has(key)) {
|
|
// This params object has one or more fallback params, so we need
|
|
// to consider the awaiting of this params object "dynamic". Since
|
|
// we are in cacheComponents mode we encode this as a promise that never
|
|
// resolves.
|
|
return (0, _dynamicrenderingutils.makeHangingPromise)(workUnitStore.renderSignal, workStore.route, '`params`');
|
|
}
|
|
}
|
|
}
|
|
break;
|
|
case 'validation-client':
|
|
throw Object.defineProperty(new _invarianterror.InvariantError('createPrerenderParamsForClientSegment should not be called in validation contexts.'), "__NEXT_ERROR_CODE", {
|
|
value: "E1099",
|
|
enumerable: false,
|
|
configurable: true
|
|
});
|
|
break;
|
|
case 'cache':
|
|
case 'private-cache':
|
|
case 'unstable-cache':
|
|
throw Object.defineProperty(new _invarianterror.InvariantError('createPrerenderParamsForClientSegment should not be called in cache contexts.'), "__NEXT_ERROR_CODE", {
|
|
value: "E734",
|
|
enumerable: false,
|
|
configurable: true
|
|
});
|
|
case 'generate-static-params':
|
|
throw Object.defineProperty(new _invarianterror.InvariantError('createPrerenderParamsForClientSegment should not be called inside generateStaticParams.'), "__NEXT_ERROR_CODE", {
|
|
value: "E1126",
|
|
enumerable: false,
|
|
configurable: true
|
|
});
|
|
case 'prerender-ppr':
|
|
case 'prerender-legacy':
|
|
case 'prerender-runtime':
|
|
case 'request':
|
|
break;
|
|
default:
|
|
workUnitStore;
|
|
}
|
|
}
|
|
// We're prerendering in a mode that does not abort. We resolve the promise without
|
|
// any tracking because we're just transporting a value from server to client where the tracking
|
|
// will be applied.
|
|
return Promise.resolve(underlyingParams);
|
|
}
|
|
function createStaticPrerenderParams(underlyingParams, optionalCatchAllParamName, workStore, prerenderStore, varyParamsAccumulator) {
|
|
const underlyingParamsWithVarying = varyParamsAccumulator !== null ? (0, _varyparams.createVaryingParams)(varyParamsAccumulator, underlyingParams, optionalCatchAllParamName) : underlyingParams;
|
|
switch(prerenderStore.type){
|
|
case 'prerender':
|
|
case 'prerender-client':
|
|
{
|
|
const fallbackParams = prerenderStore.fallbackRouteParams;
|
|
if (fallbackParams) {
|
|
for(const key in underlyingParams){
|
|
if (fallbackParams.has(key)) {
|
|
// This params object has one or more fallback params, so we need
|
|
// to consider the awaiting of this params object "dynamic". Since
|
|
// we are in cacheComponents mode we encode this as a promise that never
|
|
// resolves.
|
|
return makeHangingParams(underlyingParamsWithVarying, workStore, prerenderStore);
|
|
}
|
|
}
|
|
}
|
|
break;
|
|
}
|
|
case 'prerender-ppr':
|
|
{
|
|
const fallbackParams = prerenderStore.fallbackRouteParams;
|
|
if (fallbackParams) {
|
|
for(const key in underlyingParams){
|
|
if (fallbackParams.has(key)) {
|
|
return makeErroringParams(underlyingParamsWithVarying, fallbackParams, workStore, prerenderStore);
|
|
}
|
|
}
|
|
}
|
|
break;
|
|
}
|
|
case 'prerender-legacy':
|
|
break;
|
|
default:
|
|
prerenderStore;
|
|
}
|
|
return makeUntrackedParams(underlyingParamsWithVarying);
|
|
}
|
|
function createRuntimePrerenderParams(underlyingParams, optionalCatchAllParamName, workUnitStore, varyParamsAccumulator, isRuntimePrefetchable) {
|
|
const underlyingParamsWithVarying = varyParamsAccumulator !== null ? (0, _varyparams.createVaryingParams)(varyParamsAccumulator, underlyingParams, optionalCatchAllParamName) : underlyingParams;
|
|
const result = makeUntrackedParams(underlyingParamsWithVarying);
|
|
const { stagedRendering } = workUnitStore;
|
|
if (!stagedRendering) {
|
|
return result;
|
|
}
|
|
const stage = isRuntimePrefetchable ? _stagedrendering.RenderStage.EarlyRuntime : _stagedrendering.RenderStage.Runtime;
|
|
return stagedRendering.waitForStage(stage).then(()=>result);
|
|
}
|
|
function hasFallbackRouteParams(underlyingParams, fallbackParams) {
|
|
if (fallbackParams) {
|
|
for(let key in underlyingParams){
|
|
if (fallbackParams.has(key)) {
|
|
return true;
|
|
}
|
|
}
|
|
}
|
|
return false;
|
|
}
|
|
function createServerParamsInInstantValidation(underlyingParams, workStore, validationSamples, asyncApiPromises, isRuntimePrefetchable) {
|
|
const { createExhaustiveParamsProxy } = __turbopack_context__.r("[project]/node_modules/next/dist/server/app-render/instant-validation/instant-samples.js [app-client] (ecmascript)");
|
|
const declaredParams = new Set(Object.keys(validationSamples.params ?? {}));
|
|
const proxiedUnderlying = createExhaustiveParamsProxy(underlyingParams, declaredParams, workStore.route);
|
|
return (isRuntimePrefetchable ? asyncApiPromises.earlySharedParamsParent : asyncApiPromises.sharedParamsParent).then(()=>proxiedUnderlying);
|
|
}
|
|
function createClientParamsInInstantValidation(underlyingParams, workStore, validationSamples) {
|
|
const { createExhaustiveParamsProxy } = __turbopack_context__.r("[project]/node_modules/next/dist/server/app-render/instant-validation/instant-samples.js [app-client] (ecmascript)");
|
|
const declaredParams = new Set(Object.keys((validationSamples == null ? void 0 : validationSamples.params) ?? {}));
|
|
const proxiedUnderlying = createExhaustiveParamsProxy(underlyingParams, declaredParams, workStore.route);
|
|
return Promise.resolve(proxiedUnderlying);
|
|
}
|
|
function createRenderParamsInProd(underlyingParams) {
|
|
return makeUntrackedParams(underlyingParams);
|
|
}
|
|
function createRenderParamsInDev(underlyingParams, fallbackParams, workStore, requestStore, isRuntimePrefetchable) {
|
|
return makeDynamicallyTrackedParamsWithDevWarnings(underlyingParams, hasFallbackRouteParams(underlyingParams, fallbackParams), workStore, requestStore, isRuntimePrefetchable);
|
|
}
|
|
const CachedParams = new WeakMap();
|
|
const fallbackParamsProxyHandler = {
|
|
get: function get(target, prop, receiver) {
|
|
if (prop === 'then' || prop === 'catch' || prop === 'finally') {
|
|
const originalMethod = _reflect.ReflectAdapter.get(target, prop, receiver);
|
|
return ({
|
|
[prop]: (...args)=>{
|
|
const store = _dynamicaccessasyncstorageexternal.dynamicAccessAsyncStorage.getStore();
|
|
if (store) {
|
|
store.abortController.abort(Object.defineProperty(new Error(`Accessed fallback \`params\` during prerendering.`), "__NEXT_ERROR_CODE", {
|
|
value: "E691",
|
|
enumerable: false,
|
|
configurable: true
|
|
}));
|
|
}
|
|
return new Proxy(originalMethod.apply(target, args), fallbackParamsProxyHandler);
|
|
}
|
|
})[prop];
|
|
}
|
|
return _reflect.ReflectAdapter.get(target, prop, receiver);
|
|
}
|
|
};
|
|
function makeHangingParams(underlyingParams, workStore, prerenderStore) {
|
|
const cachedParams = CachedParams.get(underlyingParams);
|
|
if (cachedParams) {
|
|
return cachedParams;
|
|
}
|
|
const promise = new Proxy((0, _dynamicrenderingutils.makeHangingPromise)(prerenderStore.renderSignal, workStore.route, '`params`'), fallbackParamsProxyHandler);
|
|
CachedParams.set(underlyingParams, promise);
|
|
return promise;
|
|
}
|
|
function makeErroringParams(underlyingParams, fallbackParams, workStore, prerenderStore) {
|
|
const cachedParams = CachedParams.get(underlyingParams);
|
|
if (cachedParams) {
|
|
return cachedParams;
|
|
}
|
|
const augmentedUnderlying = {
|
|
...underlyingParams
|
|
};
|
|
// We don't use makeResolvedReactPromise here because params
|
|
// supports copying with spread and we don't want to unnecessarily
|
|
// instrument the promise with spreadable properties of ReactPromise.
|
|
const promise = Promise.resolve(augmentedUnderlying);
|
|
CachedParams.set(underlyingParams, promise);
|
|
Object.keys(underlyingParams).forEach((prop)=>{
|
|
if (_reflectutils.wellKnownProperties.has(prop)) {
|
|
// These properties cannot be shadowed because they need to be the
|
|
// true underlying value for Promises to work correctly at runtime
|
|
} else {
|
|
if (fallbackParams.has(prop)) {
|
|
Object.defineProperty(augmentedUnderlying, prop, {
|
|
get () {
|
|
const expression = (0, _reflectutils.describeStringPropertyAccess)('params', prop);
|
|
// In most dynamic APIs we also throw if `dynamic = "error"` however
|
|
// for params is only dynamic when we're generating a fallback shell
|
|
// and even when `dynamic = "error"` we still support generating dynamic
|
|
// fallback shells
|
|
// TODO remove this comment when cacheComponents is the default since there
|
|
// will be no `dynamic = "error"`
|
|
if (prerenderStore.type === 'prerender-ppr') {
|
|
// PPR Prerender (no cacheComponents)
|
|
(0, _dynamicrendering.postponeWithTracking)(workStore.route, expression, prerenderStore.dynamicTracking);
|
|
} else {
|
|
// Legacy Prerender
|
|
(0, _dynamicrendering.throwToInterruptStaticGeneration)(expression, workStore, prerenderStore);
|
|
}
|
|
},
|
|
enumerable: true
|
|
});
|
|
}
|
|
}
|
|
});
|
|
return promise;
|
|
}
|
|
function makeUntrackedParams(underlyingParams) {
|
|
const cachedParams = CachedParams.get(underlyingParams);
|
|
if (cachedParams) {
|
|
return cachedParams;
|
|
}
|
|
const promise = Promise.resolve(underlyingParams);
|
|
CachedParams.set(underlyingParams, promise);
|
|
return promise;
|
|
}
|
|
function makeDynamicallyTrackedParamsWithDevWarnings(underlyingParams, hasFallbackParams, workStore, requestStore, isRuntimePrefetchable) {
|
|
if (requestStore.asyncApiPromises && hasFallbackParams) {
|
|
// We wrap each instance of params in a `new Promise()`, because deduping
|
|
// them across requests doesn't work anyway and this let us show each
|
|
// await a different set of values. This is important when all awaits
|
|
// are in third party which would otherwise track all the way to the
|
|
// internal params.
|
|
const sharedParamsParent = isRuntimePrefetchable ? requestStore.asyncApiPromises.earlySharedParamsParent : requestStore.asyncApiPromises.sharedParamsParent;
|
|
const promise = new Promise((resolve, reject)=>{
|
|
sharedParamsParent.then(()=>resolve(underlyingParams), reject);
|
|
});
|
|
// @ts-expect-error
|
|
promise.displayName = 'params';
|
|
return instrumentParamsPromiseWithDevWarnings(underlyingParams, promise, workStore);
|
|
}
|
|
const cachedParams = CachedParams.get(underlyingParams);
|
|
if (cachedParams) {
|
|
return cachedParams;
|
|
}
|
|
// We don't use makeResolvedReactPromise here because params
|
|
// supports copying with spread and we don't want to unnecessarily
|
|
// instrument the promise with spreadable properties of ReactPromise.
|
|
const promise = hasFallbackParams ? (0, _dynamicrenderingutils.makeDevtoolsIOAwarePromise)(underlyingParams, requestStore, _stagedrendering.RenderStage.Runtime) : Promise.resolve(underlyingParams);
|
|
const proxiedPromise = instrumentParamsPromiseWithDevWarnings(underlyingParams, promise, workStore);
|
|
CachedParams.set(underlyingParams, proxiedPromise);
|
|
return proxiedPromise;
|
|
}
|
|
function instrumentParamsPromiseWithDevWarnings(underlyingParams, promise, workStore) {
|
|
// Track which properties we should warn for.
|
|
const proxiedProperties = new Set();
|
|
Object.keys(underlyingParams).forEach((prop)=>{
|
|
if (_reflectutils.wellKnownProperties.has(prop)) {
|
|
// These properties cannot be shadowed because they need to be the
|
|
// true underlying value for Promises to work correctly at runtime
|
|
} else {
|
|
proxiedProperties.add(prop);
|
|
}
|
|
});
|
|
return new Proxy(promise, {
|
|
get (target, prop, receiver) {
|
|
if (typeof prop === 'string') {
|
|
if (proxiedProperties.has(prop)) {
|
|
const expression = (0, _reflectutils.describeStringPropertyAccess)('params', prop);
|
|
warnForSyncAccess(workStore.route, expression);
|
|
}
|
|
}
|
|
return _reflect.ReflectAdapter.get(target, prop, receiver);
|
|
},
|
|
set (target, prop, value, receiver) {
|
|
if (typeof prop === 'string') {
|
|
proxiedProperties.delete(prop);
|
|
}
|
|
return _reflect.ReflectAdapter.set(target, prop, value, receiver);
|
|
},
|
|
ownKeys (target) {
|
|
const expression = '`...params` or similar expression';
|
|
warnForSyncAccess(workStore.route, expression);
|
|
return Reflect.ownKeys(target);
|
|
}
|
|
});
|
|
}
|
|
const warnForSyncAccess = (0, _creatededupedbycallsiteservererrorlogger.createDedupedByCallsiteServerErrorLoggerDev)(createParamsAccessError);
|
|
function createParamsAccessError(route, expression) {
|
|
const prefix = route ? `Route "${route}" ` : 'This route ';
|
|
return Object.defineProperty(new Error(`${prefix}used ${expression}. ` + `\`params\` is a Promise and must be unwrapped with \`await\` or \`React.use()\` before accessing its properties. ` + `Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis`), "__NEXT_ERROR_CODE", {
|
|
value: "E834",
|
|
enumerable: false,
|
|
configurable: true
|
|
});
|
|
}
|
|
}),
|
|
"[project]/node_modules/next/dist/client/components/client-page.js [app-client] (ecmascript)", ((__turbopack_context__, module, exports) => {
|
|
"use strict";
|
|
|
|
Object.defineProperty(exports, "__esModule", {
|
|
value: true
|
|
});
|
|
Object.defineProperty(exports, "ClientPageRoot", {
|
|
enumerable: true,
|
|
get: function() {
|
|
return ClientPageRoot;
|
|
}
|
|
});
|
|
const _jsxruntime = __turbopack_context__.r("[project]/node_modules/next/dist/compiled/react/jsx-runtime.js [app-client] (ecmascript)");
|
|
const _approutercontextsharedruntime = __turbopack_context__.r("[project]/node_modules/next/dist/shared/lib/app-router-context.shared-runtime.js [app-client] (ecmascript)");
|
|
const _react = __turbopack_context__.r("[project]/node_modules/next/dist/compiled/react/index.js [app-client] (ecmascript)");
|
|
const _routeparams = __turbopack_context__.r("[project]/node_modules/next/dist/client/route-params.js [app-client] (ecmascript)");
|
|
const _hooksclientcontextsharedruntime = __turbopack_context__.r("[project]/node_modules/next/dist/shared/lib/hooks-client-context.shared-runtime.js [app-client] (ecmascript)");
|
|
function ClientPageRoot({ Component, serverProvidedParams }) {
|
|
let searchParams;
|
|
let params;
|
|
if (serverProvidedParams !== null) {
|
|
searchParams = serverProvidedParams.searchParams;
|
|
params = serverProvidedParams.params;
|
|
} else {
|
|
// When Cache Components is enabled, the server does not pass the params as
|
|
// props; they are parsed on the client and passed via context.
|
|
const layoutRouterContext = (0, _react.use)(_approutercontextsharedruntime.LayoutRouterContext);
|
|
params = layoutRouterContext !== null ? layoutRouterContext.parentParams : {};
|
|
// This is an intentional behavior change: when Cache Components is enabled,
|
|
// client segments receive the "canonical" search params, not the
|
|
// rewritten ones. Users should either call useSearchParams directly or pass
|
|
// the rewritten ones in from a Server Component.
|
|
// TODO: Log a deprecation error when this object is accessed
|
|
searchParams = (0, _routeparams.urlSearchParamsToParsedUrlQuery)((0, _react.use)(_hooksclientcontextsharedruntime.SearchParamsContext));
|
|
}
|
|
if (typeof window === 'undefined') {
|
|
let clientSearchParams;
|
|
let clientParams;
|
|
const { createSearchParamsFromClient } = __turbopack_context__.r("[project]/node_modules/next/dist/server/request/search-params.js [app-client] (ecmascript)");
|
|
clientSearchParams = createSearchParamsFromClient(searchParams);
|
|
const { createParamsFromClient } = __turbopack_context__.r("[project]/node_modules/next/dist/server/request/params.js [app-client] (ecmascript)");
|
|
clientParams = createParamsFromClient(params);
|
|
return /*#__PURE__*/ (0, _jsxruntime.jsx)(Component, {
|
|
params: clientParams,
|
|
searchParams: clientSearchParams
|
|
});
|
|
} else {
|
|
const { createRenderSearchParamsFromClient } = __turbopack_context__.r("[project]/node_modules/next/dist/client/request/search-params.browser.js [app-client] (ecmascript)");
|
|
const clientSearchParams = createRenderSearchParamsFromClient(searchParams);
|
|
const { createRenderParamsFromClient } = __turbopack_context__.r("[project]/node_modules/next/dist/client/request/params.browser.js [app-client] (ecmascript)");
|
|
const clientParams = createRenderParamsFromClient(params);
|
|
return /*#__PURE__*/ (0, _jsxruntime.jsx)(Component, {
|
|
params: clientParams,
|
|
searchParams: clientSearchParams
|
|
});
|
|
}
|
|
}
|
|
if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {
|
|
Object.defineProperty(exports.default, '__esModule', {
|
|
value: true
|
|
});
|
|
Object.assign(exports.default, exports);
|
|
module.exports = exports.default;
|
|
}
|
|
}),
|
|
"[project]/node_modules/next/dist/client/components/client-segment.js [app-client] (ecmascript)", ((__turbopack_context__, module, exports) => {
|
|
"use strict";
|
|
|
|
Object.defineProperty(exports, "__esModule", {
|
|
value: true
|
|
});
|
|
Object.defineProperty(exports, "ClientSegmentRoot", {
|
|
enumerable: true,
|
|
get: function() {
|
|
return ClientSegmentRoot;
|
|
}
|
|
});
|
|
const _jsxruntime = __turbopack_context__.r("[project]/node_modules/next/dist/compiled/react/jsx-runtime.js [app-client] (ecmascript)");
|
|
const _approutercontextsharedruntime = __turbopack_context__.r("[project]/node_modules/next/dist/shared/lib/app-router-context.shared-runtime.js [app-client] (ecmascript)");
|
|
const _react = __turbopack_context__.r("[project]/node_modules/next/dist/compiled/react/index.js [app-client] (ecmascript)");
|
|
function ClientSegmentRoot({ Component, slots, serverProvidedParams }) {
|
|
let params;
|
|
if (serverProvidedParams !== null) {
|
|
params = serverProvidedParams.params;
|
|
} else {
|
|
// When Cache Components is enabled, the server does not pass the params
|
|
// as props; they are parsed on the client and passed via context.
|
|
const layoutRouterContext = (0, _react.use)(_approutercontextsharedruntime.LayoutRouterContext);
|
|
params = layoutRouterContext !== null ? layoutRouterContext.parentParams : {};
|
|
}
|
|
if (typeof window === 'undefined') {
|
|
const { createParamsFromClient } = __turbopack_context__.r("[project]/node_modules/next/dist/server/request/params.js [app-client] (ecmascript)");
|
|
const clientParams = createParamsFromClient(params);
|
|
return /*#__PURE__*/ (0, _jsxruntime.jsx)(Component, {
|
|
...slots,
|
|
params: clientParams
|
|
});
|
|
} else {
|
|
const { createRenderParamsFromClient } = __turbopack_context__.r("[project]/node_modules/next/dist/client/request/params.browser.js [app-client] (ecmascript)");
|
|
const clientParams = createRenderParamsFromClient(params);
|
|
return /*#__PURE__*/ (0, _jsxruntime.jsx)(Component, {
|
|
...slots,
|
|
params: clientParams
|
|
});
|
|
}
|
|
}
|
|
if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {
|
|
Object.defineProperty(exports.default, '__esModule', {
|
|
value: true
|
|
});
|
|
Object.assign(exports.default, exports);
|
|
module.exports = exports.default;
|
|
}
|
|
}),
|
|
"[project]/node_modules/next/dist/lib/metadata/generate/icon-mark.js [app-client] (ecmascript)", ((__turbopack_context__, module, exports) => {
|
|
"use strict";
|
|
|
|
Object.defineProperty(exports, "__esModule", {
|
|
value: true
|
|
});
|
|
Object.defineProperty(exports, "IconMark", {
|
|
enumerable: true,
|
|
get: function() {
|
|
return IconMark;
|
|
}
|
|
});
|
|
const _jsxruntime = __turbopack_context__.r("[project]/node_modules/next/dist/compiled/react/jsx-runtime.js [app-client] (ecmascript)");
|
|
const IconMark = ()=>{
|
|
if (typeof window !== 'undefined') {
|
|
return null;
|
|
}
|
|
return /*#__PURE__*/ (0, _jsxruntime.jsx)("meta", {
|
|
name: "\xabnxt-icon\xbb"
|
|
});
|
|
};
|
|
}),
|
|
]);
|
|
|
|
//# sourceMappingURL=node_modules_11n2jjv._.js.map
|