Nicholai 16cee69250 __Admin dashboard scaffolded with D1 database and R2 file uploads__
This commit implements the core admin dashboard functionality including NextAuth authentication, Cloudflare D1 database integration with complete schema, and Cloudflare R2 file upload system for portfolio images. Features include artist management, appointment scheduling, and data migration capabilities.
2025-09-17 16:08:34 -06:00

6987 lines
335 KiB
JavaScript

import {Buffer} from "node:buffer";
globalThis.Buffer = Buffer;
import {AsyncLocalStorage} from "node:async_hooks";
globalThis.AsyncLocalStorage = AsyncLocalStorage;
const defaultDefineProperty = Object.defineProperty;
Object.defineProperty = function(o, p, a) {
if(p=== '__import_unsupported' && Boolean(globalThis.__import_unsupported)) {
return;
}
return defaultDefineProperty(o, p, a);
};
globalThis.openNextDebug = false;globalThis.openNextVersion = "3.7.6";
var __create = Object.create;
var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __getProtoOf = Object.getPrototypeOf;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __esm = (fn, res) => function __init() {
return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res;
};
var __commonJS = (cb, mod) => function __require() {
return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
};
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 __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
// If the importer is in node compatibility mode or this is not an ESM
// file that has been converted to a CommonJS file using a Babel-
// compatible transform (i.e. "__esModule" has not been set), then set
// "default" to the CommonJS "module.exports" for node compatibility.
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
mod
));
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
// node_modules/@opennextjs/aws/dist/utils/error.js
function isOpenNextError(e) {
try {
return "__openNextInternal" in e;
} catch {
return false;
}
}
var init_error = __esm({
"node_modules/@opennextjs/aws/dist/utils/error.js"() {
}
});
// node_modules/@opennextjs/aws/dist/adapters/logger.js
function debug(...args) {
if (globalThis.openNextDebug) {
console.log(...args);
}
}
function warn(...args) {
console.warn(...args);
}
function error(...args) {
if (args.some((arg) => isDownplayedErrorLog(arg))) {
return debug(...args);
}
if (args.some((arg) => isOpenNextError(arg))) {
const error2 = args.find((arg) => isOpenNextError(arg));
if (error2.logLevel < getOpenNextErrorLogLevel()) {
return;
}
if (error2.logLevel === 0) {
return console.log(...args.map((arg) => isOpenNextError(arg) ? `${arg.name}: ${arg.message}` : arg));
}
if (error2.logLevel === 1) {
return warn(...args.map((arg) => isOpenNextError(arg) ? `${arg.name}: ${arg.message}` : arg));
}
return console.error(...args);
}
console.error(...args);
}
function getOpenNextErrorLogLevel() {
const strLevel = process.env.OPEN_NEXT_ERROR_LOG_LEVEL ?? "1";
switch (strLevel.toLowerCase()) {
case "debug":
case "0":
return 0;
case "error":
case "2":
return 2;
default:
return 1;
}
}
var DOWNPLAYED_ERROR_LOGS, isDownplayedErrorLog;
var init_logger = __esm({
"node_modules/@opennextjs/aws/dist/adapters/logger.js"() {
init_error();
DOWNPLAYED_ERROR_LOGS = [
{
clientName: "S3Client",
commandName: "GetObjectCommand",
errorName: "NoSuchKey"
}
];
isDownplayedErrorLog = (errorLog) => DOWNPLAYED_ERROR_LOGS.some((downplayedInput) => downplayedInput.clientName === errorLog?.clientName && downplayedInput.commandName === errorLog?.commandName && (downplayedInput.errorName === errorLog?.error?.name || downplayedInput.errorName === errorLog?.error?.Code));
}
});
// node_modules/@opennextjs/aws/node_modules/cookie/dist/index.js
var require_dist = __commonJS({
"node_modules/@opennextjs/aws/node_modules/cookie/dist/index.js"(exports) {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.parse = parse3;
exports.serialize = serialize;
var cookieNameRegExp = /^[\u0021-\u003A\u003C\u003E-\u007E]+$/;
var cookieValueRegExp = /^[\u0021-\u003A\u003C-\u007E]*$/;
var domainValueRegExp = /^([.]?[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?)([.][a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?)*$/i;
var pathValueRegExp = /^[\u0020-\u003A\u003D-\u007E]*$/;
var __toString = Object.prototype.toString;
var NullObject = /* @__PURE__ */ (() => {
const C = function() {
};
C.prototype = /* @__PURE__ */ Object.create(null);
return C;
})();
function parse3(str, options) {
const obj = new NullObject();
const len = str.length;
if (len < 2)
return obj;
const dec = options?.decode || decode;
let index = 0;
do {
const eqIdx = str.indexOf("=", index);
if (eqIdx === -1)
break;
const colonIdx = str.indexOf(";", index);
const endIdx = colonIdx === -1 ? len : colonIdx;
if (eqIdx > endIdx) {
index = str.lastIndexOf(";", eqIdx - 1) + 1;
continue;
}
const keyStartIdx = startIndex(str, index, eqIdx);
const keyEndIdx = endIndex(str, eqIdx, keyStartIdx);
const key = str.slice(keyStartIdx, keyEndIdx);
if (obj[key] === void 0) {
let valStartIdx = startIndex(str, eqIdx + 1, endIdx);
let valEndIdx = endIndex(str, endIdx, valStartIdx);
const value = dec(str.slice(valStartIdx, valEndIdx));
obj[key] = value;
}
index = endIdx + 1;
} while (index < len);
return obj;
}
function startIndex(str, index, max) {
do {
const code = str.charCodeAt(index);
if (code !== 32 && code !== 9)
return index;
} while (++index < max);
return max;
}
function endIndex(str, index, min) {
while (index > min) {
const code = str.charCodeAt(--index);
if (code !== 32 && code !== 9)
return index + 1;
}
return min;
}
function serialize(name, val, options) {
const enc = options?.encode || encodeURIComponent;
if (!cookieNameRegExp.test(name)) {
throw new TypeError(`argument name is invalid: ${name}`);
}
const value = enc(val);
if (!cookieValueRegExp.test(value)) {
throw new TypeError(`argument val is invalid: ${val}`);
}
let str = name + "=" + value;
if (!options)
return str;
if (options.maxAge !== void 0) {
if (!Number.isInteger(options.maxAge)) {
throw new TypeError(`option maxAge is invalid: ${options.maxAge}`);
}
str += "; Max-Age=" + options.maxAge;
}
if (options.domain) {
if (!domainValueRegExp.test(options.domain)) {
throw new TypeError(`option domain is invalid: ${options.domain}`);
}
str += "; Domain=" + options.domain;
}
if (options.path) {
if (!pathValueRegExp.test(options.path)) {
throw new TypeError(`option path is invalid: ${options.path}`);
}
str += "; Path=" + options.path;
}
if (options.expires) {
if (!isDate(options.expires) || !Number.isFinite(options.expires.valueOf())) {
throw new TypeError(`option expires is invalid: ${options.expires}`);
}
str += "; Expires=" + options.expires.toUTCString();
}
if (options.httpOnly) {
str += "; HttpOnly";
}
if (options.secure) {
str += "; Secure";
}
if (options.partitioned) {
str += "; Partitioned";
}
if (options.priority) {
const priority = typeof options.priority === "string" ? options.priority.toLowerCase() : void 0;
switch (priority) {
case "low":
str += "; Priority=Low";
break;
case "medium":
str += "; Priority=Medium";
break;
case "high":
str += "; Priority=High";
break;
default:
throw new TypeError(`option priority is invalid: ${options.priority}`);
}
}
if (options.sameSite) {
const sameSite = typeof options.sameSite === "string" ? options.sameSite.toLowerCase() : options.sameSite;
switch (sameSite) {
case true:
case "strict":
str += "; SameSite=Strict";
break;
case "lax":
str += "; SameSite=Lax";
break;
case "none":
str += "; SameSite=None";
break;
default:
throw new TypeError(`option sameSite is invalid: ${options.sameSite}`);
}
}
return str;
}
function decode(str) {
if (str.indexOf("%") === -1)
return str;
try {
return decodeURIComponent(str);
} catch (e) {
return str;
}
}
function isDate(val) {
return __toString.call(val) === "[object Date]";
}
}
});
// node_modules/@opennextjs/aws/dist/http/util.js
function parseSetCookieHeader(cookies) {
if (!cookies) {
return [];
}
if (typeof cookies === "string") {
return cookies.split(/(?<!Expires=\w+),/i).map((c) => c.trim());
}
return cookies;
}
function getQueryFromIterator(it) {
const query = {};
for (const [key, value] of it) {
if (key in query) {
if (Array.isArray(query[key])) {
query[key].push(value);
} else {
query[key] = [query[key], value];
}
} else {
query[key] = value;
}
}
return query;
}
var init_util = __esm({
"node_modules/@opennextjs/aws/dist/http/util.js"() {
}
});
// node_modules/@opennextjs/aws/dist/overrides/converters/utils.js
function getQueryFromSearchParams(searchParams) {
return getQueryFromIterator(searchParams.entries());
}
var init_utils = __esm({
"node_modules/@opennextjs/aws/dist/overrides/converters/utils.js"() {
init_util();
}
});
// node_modules/@opennextjs/aws/dist/overrides/converters/edge.js
var edge_exports = {};
__export(edge_exports, {
default: () => edge_default
});
import { Buffer as Buffer2 } from "node:buffer";
var import_cookie, NULL_BODY_STATUSES, converter, edge_default;
var init_edge = __esm({
"node_modules/@opennextjs/aws/dist/overrides/converters/edge.js"() {
import_cookie = __toESM(require_dist(), 1);
init_util();
init_utils();
NULL_BODY_STATUSES = /* @__PURE__ */ new Set([101, 103, 204, 205, 304]);
converter = {
convertFrom: async (event) => {
const url = new URL(event.url);
const searchParams = url.searchParams;
const query = getQueryFromSearchParams(searchParams);
const body = await event.arrayBuffer();
const headers = {};
event.headers.forEach((value, key) => {
headers[key] = value;
});
const rawPath = url.pathname;
const method = event.method;
const shouldHaveBody = method !== "GET" && method !== "HEAD";
const cookieHeader = event.headers.get("cookie");
const cookies = cookieHeader ? import_cookie.default.parse(cookieHeader) : {};
return {
type: "core",
method,
rawPath,
url: event.url,
body: shouldHaveBody ? Buffer2.from(body) : void 0,
headers,
remoteAddress: event.headers.get("x-forwarded-for") ?? "::1",
query,
cookies
};
},
convertTo: async (result) => {
if ("internalEvent" in result) {
const request = new Request(result.internalEvent.url, {
body: result.internalEvent.body,
method: result.internalEvent.method,
headers: {
...result.internalEvent.headers,
"x-forwarded-host": result.internalEvent.headers.host
}
});
if (globalThis.__dangerous_ON_edge_converter_returns_request === true) {
return request;
}
const cfCache = (result.isISR || result.internalEvent.rawPath.startsWith("/_next/image")) && process.env.DISABLE_CACHE !== "true" ? { cacheEverything: true } : {};
return fetch(request, {
// This is a hack to make sure that the response is cached by Cloudflare
// See https://developers.cloudflare.com/workers/examples/cache-using-fetch/#caching-html-resources
// @ts-expect-error - This is a Cloudflare specific option
cf: cfCache
});
}
const headers = new Headers();
for (const [key, value] of Object.entries(result.headers)) {
if (key === "set-cookie" && typeof value === "string") {
const cookies = parseSetCookieHeader(value);
for (const cookie of cookies) {
headers.append(key, cookie);
}
continue;
}
if (Array.isArray(value)) {
for (const v of value) {
headers.append(key, v);
}
} else {
headers.set(key, value);
}
}
const body = NULL_BODY_STATUSES.has(result.statusCode) ? null : result.body;
return new Response(body, {
status: result.statusCode,
headers
});
},
name: "edge"
};
edge_default = converter;
}
});
// node_modules/@opennextjs/aws/dist/overrides/wrappers/cloudflare-edge.js
var cloudflare_edge_exports = {};
__export(cloudflare_edge_exports, {
default: () => cloudflare_edge_default
});
var cfPropNameMapping, handler, cloudflare_edge_default;
var init_cloudflare_edge = __esm({
"node_modules/@opennextjs/aws/dist/overrides/wrappers/cloudflare-edge.js"() {
cfPropNameMapping = {
// The city name is percent-encoded.
// See https://github.com/vercel/vercel/blob/4cb6143/packages/functions/src/headers.ts#L94C19-L94C37
city: [encodeURIComponent, "x-open-next-city"],
country: "x-open-next-country",
regionCode: "x-open-next-region",
latitude: "x-open-next-latitude",
longitude: "x-open-next-longitude"
};
handler = async (handler3, converter2) => async (request, env, ctx) => {
globalThis.process = process;
for (const [key, value] of Object.entries(env)) {
if (typeof value === "string") {
process.env[key] = value;
}
}
const internalEvent = await converter2.convertFrom(request);
const cfProperties = request.cf;
for (const [propName, mapping] of Object.entries(cfPropNameMapping)) {
const propValue = cfProperties?.[propName];
if (propValue != null) {
const [encode, headerName] = Array.isArray(mapping) ? mapping : [null, mapping];
internalEvent.headers[headerName] = encode ? encode(propValue) : propValue;
}
}
const response = await handler3(internalEvent, {
waitUntil: ctx.waitUntil.bind(ctx)
});
const result = await converter2.convertTo(response);
return result;
};
cloudflare_edge_default = {
wrapper: handler,
name: "cloudflare-edge",
supportStreaming: true,
edgeRuntime: true
};
}
});
// node_modules/@opennextjs/aws/dist/overrides/originResolver/pattern-env.js
var pattern_env_exports = {};
__export(pattern_env_exports, {
default: () => pattern_env_default
});
var envLoader, pattern_env_default;
var init_pattern_env = __esm({
"node_modules/@opennextjs/aws/dist/overrides/originResolver/pattern-env.js"() {
init_logger();
envLoader = {
name: "env",
resolve: async (_path) => {
try {
const origin = JSON.parse(process.env.OPEN_NEXT_ORIGIN ?? "{}");
for (const [key, value] of Object.entries(globalThis.openNextConfig.functions ?? {}).filter(([key2]) => key2 !== "default")) {
if (value.patterns.some((pattern) => {
return new RegExp(
// transform glob pattern to regex
`/${pattern.replace(/\*\*/g, "(.*)").replace(/\*/g, "([^/]*)").replace(/\//g, "\\/").replace(/\?/g, ".")}`
).test(_path);
})) {
debug("Using origin", key, value.patterns);
return origin[key];
}
}
if (_path.startsWith("/_next/image") && origin.imageOptimizer) {
debug("Using origin", "imageOptimizer", _path);
return origin.imageOptimizer;
}
if (origin.default) {
debug("Using default origin", origin.default, _path);
return origin.default;
}
return false;
} catch (e) {
error("Error while resolving origin", e);
return false;
}
}
};
pattern_env_default = envLoader;
}
});
// node_modules/@opennextjs/aws/dist/overrides/assetResolver/dummy.js
var dummy_exports = {};
__export(dummy_exports, {
default: () => dummy_default
});
var resolver, dummy_default;
var init_dummy = __esm({
"node_modules/@opennextjs/aws/dist/overrides/assetResolver/dummy.js"() {
resolver = {
name: "dummy"
};
dummy_default = resolver;
}
});
// node_modules/@opennextjs/aws/dist/utils/stream.js
import { Readable } from "node:stream";
function toReadableStream(value, isBase64) {
return Readable.toWeb(Readable.from(Buffer.from(value, isBase64 ? "base64" : "utf8")));
}
function emptyReadableStream() {
if (process.env.OPEN_NEXT_FORCE_NON_EMPTY_RESPONSE === "true") {
return Readable.toWeb(Readable.from([Buffer.from("SOMETHING")]));
}
return Readable.toWeb(Readable.from([]));
}
var init_stream = __esm({
"node_modules/@opennextjs/aws/dist/utils/stream.js"() {
}
});
// node_modules/@opennextjs/aws/dist/overrides/proxyExternalRequest/fetch.js
var fetch_exports = {};
__export(fetch_exports, {
default: () => fetch_default
});
var fetchProxy, fetch_default;
var init_fetch = __esm({
"node_modules/@opennextjs/aws/dist/overrides/proxyExternalRequest/fetch.js"() {
init_stream();
fetchProxy = {
name: "fetch-proxy",
// @ts-ignore
proxy: async (internalEvent) => {
const { url, headers: eventHeaders, method, body } = internalEvent;
const headers = Object.fromEntries(Object.entries(eventHeaders).filter(([key]) => key.toLowerCase() !== "cf-connecting-ip"));
const response = await fetch(url, {
method,
headers,
body
});
const responseHeaders = {};
response.headers.forEach((value, key) => {
responseHeaders[key] = value;
});
return {
type: "core",
headers: responseHeaders,
statusCode: response.status,
isBase64Encoded: true,
body: response.body ?? emptyReadableStream()
};
}
};
fetch_default = fetchProxy;
}
});
// .next/server/edge-runtime-webpack.js
var require_edge_runtime_webpack = __commonJS({
".next/server/edge-runtime-webpack.js"() {
"use strict";
(() => {
"use strict";
var e = {}, r = {};
function t(o) {
var n = r[o];
if (void 0 !== n) return n.exports;
var i = r[o] = { exports: {} }, a = true;
try {
e[o](i, i.exports, t), a = false;
} finally {
a && delete r[o];
}
return i.exports;
}
t.m = e, t.amdO = {}, (() => {
var e2 = [];
t.O = (r2, o, n, i) => {
if (o) {
i = i || 0;
for (var a = e2.length; a > 0 && e2[a - 1][2] > i; a--) e2[a] = e2[a - 1];
e2[a] = [o, n, i];
return;
}
for (var l = 1 / 0, a = 0; a < e2.length; a++) {
for (var [o, n, i] = e2[a], u = true, f = 0; f < o.length; f++) l >= i && Object.keys(t.O).every((e3) => t.O[e3](o[f])) ? o.splice(f--, 1) : (u = false, i < l && (l = i));
if (u) {
e2.splice(a--, 1);
var s = n();
void 0 !== s && (r2 = s);
}
}
return r2;
};
})(), t.n = (e2) => {
var r2 = e2 && e2.__esModule ? () => e2.default : () => e2;
return t.d(r2, { a: r2 }), r2;
}, t.d = (e2, r2) => {
for (var o in r2) t.o(r2, o) && !t.o(e2, o) && Object.defineProperty(e2, o, { enumerable: true, get: r2[o] });
}, t.g = function() {
if ("object" == typeof globalThis) return globalThis;
try {
return this || Function("return this")();
} catch (e2) {
if ("object" == typeof window) return window;
}
}(), t.o = (e2, r2) => Object.prototype.hasOwnProperty.call(e2, r2), t.r = (e2) => {
"undefined" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(e2, Symbol.toStringTag, { value: "Module" }), Object.defineProperty(e2, "__esModule", { value: true });
}, (() => {
var e2 = { 993: 0 };
t.O.j = (r3) => 0 === e2[r3];
var r2 = (r3, o2) => {
var n, i, [a, l, u] = o2, f = 0;
if (a.some((r4) => 0 !== e2[r4])) {
for (n in l) t.o(l, n) && (t.m[n] = l[n]);
if (u) var s = u(t);
}
for (r3 && r3(o2); f < a.length; f++) i = a[f], t.o(e2, i) && e2[i] && e2[i][0](), e2[i] = 0;
return t.O(s);
}, o = self.webpackChunk_N_E = self.webpackChunk_N_E || [];
o.forEach(r2.bind(null, 0)), o.push = r2.bind(null, o.push.bind(o));
})();
})();
}
});
// node-built-in-modules:node:async_hooks
var node_async_hooks_exports = {};
import * as node_async_hooks_star from "node:async_hooks";
var init_node_async_hooks = __esm({
"node-built-in-modules:node:async_hooks"() {
__reExport(node_async_hooks_exports, node_async_hooks_star);
}
});
// node-built-in-modules:node:buffer
var node_buffer_exports = {};
import * as node_buffer_star from "node:buffer";
var init_node_buffer = __esm({
"node-built-in-modules:node:buffer"() {
__reExport(node_buffer_exports, node_buffer_star);
}
});
// .next/server/middleware.js
var require_middleware = __commonJS({
".next/server/middleware.js"() {
"use strict";
(self.webpackChunk_N_E = self.webpackChunk_N_E || []).push([[826], { 67: (e) => {
"use strict";
e.exports = (init_node_async_hooks(), __toCommonJS(node_async_hooks_exports));
}, 195: (e) => {
"use strict";
e.exports = (init_node_buffer(), __toCommonJS(node_buffer_exports));
}, 441: (e, t, r) => {
"use strict";
let n;
r.r(t), r.d(t, { default: () => eI });
var a, i, o, s, c, l, d, u, p, h, f, g, y, w, m = {};
async function b() {
let e2 = "_ENTRIES" in globalThis && _ENTRIES.middleware_instrumentation && (await _ENTRIES.middleware_instrumentation).register;
if (e2) try {
await e2();
} catch (e3) {
throw e3.message = `An error occurred while loading instrumentation hook: ${e3.message}`, e3;
}
}
r.r(m), r.d(m, { config: () => eR, default: () => ex });
let v = null;
function S() {
return v || (v = b()), v;
}
function E(e2) {
return `The edge runtime does not support Node.js '${e2}' module.
Learn More: https://nextjs.org/docs/messages/node-module-in-edge-runtime`;
}
process !== r.g.process && (process.env = r.g.process.env, r.g.process = process), Object.defineProperty(globalThis, "__import_unsupported", { value: function(e2) {
let t2 = new Proxy(function() {
}, { get(t3, r2) {
if ("then" === r2) return {};
throw Error(E(e2));
}, construct() {
throw Error(E(e2));
}, apply(r2, n2, a2) {
if ("function" == typeof a2[0]) return a2[0](t2);
throw Error(E(e2));
} });
return new Proxy({}, { get: () => t2 });
}, enumerable: false, configurable: false }), S();
var _ = r(416), A = r(329);
let P = Symbol("response"), C = Symbol("passThrough"), x = Symbol("waitUntil");
class R {
constructor(e2) {
this[x] = [], this[C] = false;
}
respondWith(e2) {
this[P] || (this[P] = Promise.resolve(e2));
}
passThroughOnException() {
this[C] = true;
}
waitUntil(e2) {
this[x].push(e2);
}
}
class T extends R {
constructor(e2) {
super(e2.request), this.sourcePage = e2.page;
}
get request() {
throw new _.qJ({ page: this.sourcePage });
}
respondWith() {
throw new _.qJ({ page: this.sourcePage });
}
}
var O = r(669), k = r(241);
function I(e2, t2) {
let r2 = "string" == typeof t2 ? new URL(t2) : t2, n2 = new URL(e2, t2), a2 = r2.protocol + "//" + r2.host;
return n2.protocol + "//" + n2.host === a2 ? n2.toString().replace(a2, "") : n2.toString();
}
var N = r(718);
let H = [["RSC"], ["Next-Router-State-Tree"], ["Next-Router-Prefetch"]], M = ["__nextFallback", "__nextLocale", "__nextInferredLocaleFromDefault", "__nextDefaultLocale", "__nextIsNotFound", "_rsc"], D = ["__nextDataReq"], U = "nxtP", W = { shared: "shared", reactServerComponents: "rsc", serverSideRendering: "ssr", actionBrowser: "action-browser", api: "api", middleware: "middleware", instrument: "instrument", edgeAsset: "edge-asset", appPagesBrowser: "app-pages-browser", appMetadataRoute: "app-metadata-route", appRouteHandler: "app-route-handler" };
({ ...W, GROUP: { serverOnly: [W.reactServerComponents, W.actionBrowser, W.appMetadataRoute, W.appRouteHandler, W.instrument], clientOnly: [W.serverSideRendering, W.appPagesBrowser], nonClientServerTarget: [W.middleware, W.api], app: [W.reactServerComponents, W.actionBrowser, W.appMetadataRoute, W.appRouteHandler, W.serverSideRendering, W.appPagesBrowser, W.shared, W.instrument] } });
var L = r(217);
class K extends Error {
constructor() {
super("Headers cannot be modified. Read more: https://nextjs.org/docs/app/api-reference/functions/headers");
}
static callable() {
throw new K();
}
}
class j extends Headers {
constructor(e2) {
super(), this.headers = new Proxy(e2, { get(t2, r2, n2) {
if ("symbol" == typeof r2) return L.g.get(t2, r2, n2);
let a2 = r2.toLowerCase(), i2 = Object.keys(e2).find((e3) => e3.toLowerCase() === a2);
if (void 0 !== i2) return L.g.get(t2, i2, n2);
}, set(t2, r2, n2, a2) {
if ("symbol" == typeof r2) return L.g.set(t2, r2, n2, a2);
let i2 = r2.toLowerCase(), o2 = Object.keys(e2).find((e3) => e3.toLowerCase() === i2);
return L.g.set(t2, o2 ?? r2, n2, a2);
}, has(t2, r2) {
if ("symbol" == typeof r2) return L.g.has(t2, r2);
let n2 = r2.toLowerCase(), a2 = Object.keys(e2).find((e3) => e3.toLowerCase() === n2);
return void 0 !== a2 && L.g.has(t2, a2);
}, deleteProperty(t2, r2) {
if ("symbol" == typeof r2) return L.g.deleteProperty(t2, r2);
let n2 = r2.toLowerCase(), a2 = Object.keys(e2).find((e3) => e3.toLowerCase() === n2);
return void 0 === a2 || L.g.deleteProperty(t2, a2);
} });
}
static seal(e2) {
return new Proxy(e2, { get(e3, t2, r2) {
switch (t2) {
case "append":
case "delete":
case "set":
return K.callable;
default:
return L.g.get(e3, t2, r2);
}
} });
}
merge(e2) {
return Array.isArray(e2) ? e2.join(", ") : e2;
}
static from(e2) {
return e2 instanceof Headers ? e2 : new j(e2);
}
append(e2, t2) {
let r2 = this.headers[e2];
"string" == typeof r2 ? this.headers[e2] = [r2, t2] : Array.isArray(r2) ? r2.push(t2) : this.headers[e2] = t2;
}
delete(e2) {
delete this.headers[e2];
}
get(e2) {
let t2 = this.headers[e2];
return void 0 !== t2 ? this.merge(t2) : null;
}
has(e2) {
return void 0 !== this.headers[e2];
}
set(e2, t2) {
this.headers[e2] = t2;
}
forEach(e2, t2) {
for (let [r2, n2] of this.entries()) e2.call(t2, n2, r2, this);
}
*entries() {
for (let e2 of Object.keys(this.headers)) {
let t2 = e2.toLowerCase(), r2 = this.get(t2);
yield [t2, r2];
}
}
*keys() {
for (let e2 of Object.keys(this.headers)) {
let t2 = e2.toLowerCase();
yield t2;
}
}
*values() {
for (let e2 of Object.keys(this.headers)) {
let t2 = this.get(e2);
yield t2;
}
}
[Symbol.iterator]() {
return this.entries();
}
}
var J = r(938);
let B = Error("Invariant: AsyncLocalStorage accessed in runtime where it is not available");
class $ {
disable() {
throw B;
}
getStore() {
}
run() {
throw B;
}
exit() {
throw B;
}
enterWith() {
throw B;
}
}
let V = globalThis.AsyncLocalStorage;
function G() {
return V ? new V() : new $();
}
let q = G();
class F 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#cookiessetname-value-options");
}
static callable() {
throw new F();
}
}
class z {
static seal(e2) {
return new Proxy(e2, { get(e3, t2, r2) {
switch (t2) {
case "clear":
case "delete":
case "set":
return F.callable;
default:
return L.g.get(e3, t2, r2);
}
} });
}
}
let X = Symbol.for("next.mutated.cookies");
class Y {
static wrap(e2, t2) {
let r2 = new J.nV(new Headers());
for (let t3 of e2.getAll()) r2.set(t3);
let n2 = [], a2 = /* @__PURE__ */ new Set(), i2 = () => {
let e3 = q.getStore();
if (e3 && (e3.pathWasRevalidated = true), n2 = r2.getAll().filter((e4) => a2.has(e4.name)), t2) {
let e4 = [];
for (let t3 of n2) {
let r3 = new J.nV(new Headers());
r3.set(t3), e4.push(r3.toString());
}
t2(e4);
}
};
return new Proxy(r2, { get(e3, t3, r3) {
switch (t3) {
case X:
return n2;
case "delete":
return function(...t4) {
a2.add("string" == typeof t4[0] ? t4[0] : t4[0].name);
try {
e3.delete(...t4);
} finally {
i2();
}
};
case "set":
return function(...t4) {
a2.add("string" == typeof t4[0] ? t4[0] : t4[0].name);
try {
return e3.set(...t4);
} finally {
i2();
}
};
default:
return L.g.get(e3, t3, r3);
}
} });
}
}
!function(e2) {
e2.handleRequest = "BaseServer.handleRequest", e2.run = "BaseServer.run", e2.pipe = "BaseServer.pipe", e2.getStaticHTML = "BaseServer.getStaticHTML", e2.render = "BaseServer.render", e2.renderToResponseWithComponents = "BaseServer.renderToResponseWithComponents", e2.renderToResponse = "BaseServer.renderToResponse", e2.renderToHTML = "BaseServer.renderToHTML", e2.renderError = "BaseServer.renderError", e2.renderErrorToResponse = "BaseServer.renderErrorToResponse", e2.renderErrorToHTML = "BaseServer.renderErrorToHTML", e2.render404 = "BaseServer.render404";
}(a || (a = {})), function(e2) {
e2.loadDefaultErrorComponents = "LoadComponents.loadDefaultErrorComponents", e2.loadComponents = "LoadComponents.loadComponents";
}(i || (i = {})), function(e2) {
e2.getRequestHandler = "NextServer.getRequestHandler", e2.getServer = "NextServer.getServer", e2.getServerRequestHandler = "NextServer.getServerRequestHandler", e2.createServer = "createServer.createServer";
}(o || (o = {})), function(e2) {
e2.compression = "NextNodeServer.compression", e2.getBuildId = "NextNodeServer.getBuildId", e2.createComponentTree = "NextNodeServer.createComponentTree", e2.clientComponentLoading = "NextNodeServer.clientComponentLoading", e2.getLayoutOrPageModule = "NextNodeServer.getLayoutOrPageModule", e2.generateStaticRoutes = "NextNodeServer.generateStaticRoutes", e2.generateFsStaticRoutes = "NextNodeServer.generateFsStaticRoutes", e2.generatePublicRoutes = "NextNodeServer.generatePublicRoutes", e2.generateImageRoutes = "NextNodeServer.generateImageRoutes.route", e2.sendRenderResult = "NextNodeServer.sendRenderResult", e2.proxyRequest = "NextNodeServer.proxyRequest", e2.runApi = "NextNodeServer.runApi", e2.render = "NextNodeServer.render", e2.renderHTML = "NextNodeServer.renderHTML", e2.imageOptimizer = "NextNodeServer.imageOptimizer", e2.getPagePath = "NextNodeServer.getPagePath", e2.getRoutesManifest = "NextNodeServer.getRoutesManifest", e2.findPageComponents = "NextNodeServer.findPageComponents", e2.getFontManifest = "NextNodeServer.getFontManifest", e2.getServerComponentManifest = "NextNodeServer.getServerComponentManifest", e2.getRequestHandler = "NextNodeServer.getRequestHandler", e2.renderToHTML = "NextNodeServer.renderToHTML", e2.renderError = "NextNodeServer.renderError", e2.renderErrorToHTML = "NextNodeServer.renderErrorToHTML", e2.render404 = "NextNodeServer.render404", e2.startResponse = "NextNodeServer.startResponse", e2.route = "route", e2.onProxyReq = "onProxyReq", e2.apiResolver = "apiResolver", e2.internalFetch = "internalFetch";
}(s || (s = {})), (c || (c = {})).startServer = "startServer.startServer", function(e2) {
e2.getServerSideProps = "Render.getServerSideProps", e2.getStaticProps = "Render.getStaticProps", e2.renderToString = "Render.renderToString", e2.renderDocument = "Render.renderDocument", e2.createBodyResult = "Render.createBodyResult";
}(l || (l = {})), function(e2) {
e2.renderToString = "AppRender.renderToString", e2.renderToReadableStream = "AppRender.renderToReadableStream", e2.getBodyResult = "AppRender.getBodyResult", e2.fetch = "AppRender.fetch";
}(d || (d = {})), (u || (u = {})).executeRoute = "Router.executeRoute", (p || (p = {})).runHandler = "Node.runHandler", (h || (h = {})).runHandler = "AppRouteRouteHandlers.runHandler", function(e2) {
e2.generateMetadata = "ResolveMetadata.generateMetadata", e2.generateViewport = "ResolveMetadata.generateViewport";
}(f || (f = {})), (g || (g = {})).execute = "Middleware.execute";
let Z = ["Middleware.execute", "BaseServer.handleRequest", "Render.getServerSideProps", "Render.getStaticProps", "AppRender.fetch", "AppRender.getBodyResult", "Render.renderDocument", "Node.runHandler", "AppRouteRouteHandlers.runHandler", "ResolveMetadata.generateMetadata", "ResolveMetadata.generateViewport", "NextNodeServer.createComponentTree", "NextNodeServer.findPageComponents", "NextNodeServer.getLayoutOrPageModule", "NextNodeServer.startResponse", "NextNodeServer.clientComponentLoading"], Q = ["NextNodeServer.findPageComponents", "NextNodeServer.createComponentTree", "NextNodeServer.clientComponentLoading"], { context: ee, propagation: et, trace: er, SpanStatusCode: en, SpanKind: ea, ROOT_CONTEXT: ei } = n = r(439), eo = (e2) => null !== e2 && "object" == typeof e2 && "function" == typeof e2.then, es = (e2, t2) => {
(null == t2 ? void 0 : t2.bubble) === true ? e2.setAttribute("next.bubble", true) : (t2 && e2.recordException(t2), e2.setStatus({ code: en.ERROR, message: null == t2 ? void 0 : t2.message })), e2.end();
}, ec = /* @__PURE__ */ new Map(), el = n.createContextKey("next.rootSpanId"), ed = 0, eu = () => ed++;
class ep {
getTracerInstance() {
return er.getTracer("next.js", "0.0.1");
}
getContext() {
return ee;
}
getActiveScopeSpan() {
return er.getSpan(null == ee ? void 0 : ee.active());
}
withPropagatedContext(e2, t2, r2) {
let n2 = ee.active();
if (er.getSpanContext(n2)) return t2();
let a2 = et.extract(n2, e2, r2);
return ee.with(a2, t2);
}
trace(...e2) {
var t2;
let [r2, n2, a2] = e2, { fn: i2, options: o2 } = "function" == typeof n2 ? { fn: n2, options: {} } : { fn: a2, options: { ...n2 } }, s2 = o2.spanName ?? r2;
if (!Z.includes(r2) && "1" !== process.env.NEXT_OTEL_VERBOSE || o2.hideSpan) return i2();
let c2 = this.getSpanContext((null == o2 ? void 0 : o2.parentSpan) ?? this.getActiveScopeSpan()), l2 = false;
c2 ? (null == (t2 = er.getSpanContext(c2)) ? void 0 : t2.isRemote) && (l2 = true) : (c2 = (null == ee ? void 0 : ee.active()) ?? ei, l2 = true);
let d2 = eu();
return o2.attributes = { "next.span_name": s2, "next.span_type": r2, ...o2.attributes }, ee.with(c2.setValue(el, d2), () => this.getTracerInstance().startActiveSpan(s2, o2, (e3) => {
let t3 = "performance" in globalThis ? globalThis.performance.now() : void 0, n3 = () => {
ec.delete(d2), t3 && process.env.NEXT_OTEL_PERFORMANCE_PREFIX && Q.includes(r2 || "") && performance.measure(`${process.env.NEXT_OTEL_PERFORMANCE_PREFIX}:next-${(r2.split(".").pop() || "").replace(/[A-Z]/g, (e4) => "-" + e4.toLowerCase())}`, { start: t3, end: performance.now() });
};
l2 && ec.set(d2, new Map(Object.entries(o2.attributes ?? {})));
try {
if (i2.length > 1) return i2(e3, (t5) => es(e3, t5));
let t4 = i2(e3);
if (eo(t4)) return t4.then((t5) => (e3.end(), t5)).catch((t5) => {
throw es(e3, t5), t5;
}).finally(n3);
return e3.end(), n3(), t4;
} catch (t4) {
throw es(e3, t4), n3(), t4;
}
}));
}
wrap(...e2) {
let t2 = this, [r2, n2, a2] = 3 === e2.length ? e2 : [e2[0], {}, e2[1]];
return Z.includes(r2) || "1" === process.env.NEXT_OTEL_VERBOSE ? function() {
let e3 = n2;
"function" == typeof e3 && "function" == typeof a2 && (e3 = e3.apply(this, arguments));
let i2 = arguments.length - 1, o2 = arguments[i2];
if ("function" != typeof o2) return t2.trace(r2, e3, () => a2.apply(this, arguments));
{
let n3 = t2.getContext().bind(ee.active(), o2);
return t2.trace(r2, e3, (e4, t3) => (arguments[i2] = function(e5) {
return null == t3 || t3(e5), n3.apply(this, arguments);
}, a2.apply(this, arguments)));
}
} : a2;
}
startSpan(...e2) {
let [t2, r2] = e2, n2 = this.getSpanContext((null == r2 ? void 0 : r2.parentSpan) ?? this.getActiveScopeSpan());
return this.getTracerInstance().startSpan(t2, r2, n2);
}
getSpanContext(e2) {
return e2 ? er.setSpan(ee.active(), e2) : void 0;
}
getRootSpanAttributes() {
let e2 = ee.active().getValue(el);
return ec.get(e2);
}
}
let eh = (() => {
let e2 = new ep();
return () => e2;
})(), ef = "__prerender_bypass";
Symbol("__next_preview_data"), Symbol(ef);
class eg {
constructor(e2, t2, r2, n2) {
var a2;
let i2 = e2 && function(e3, t3) {
let r3 = j.from(e3.headers);
return { isOnDemandRevalidate: r3.get("x-prerender-revalidate") === t3.previewModeId, revalidateOnlyGenerated: r3.has("x-prerender-revalidate-if-generated") };
}(t2, e2).isOnDemandRevalidate, o2 = null == (a2 = r2.get(ef)) ? void 0 : a2.value;
this.isEnabled = !!(!i2 && o2 && e2 && o2 === e2.previewModeId), this._previewModeId = null == e2 ? void 0 : e2.previewModeId, this._mutableCookies = n2;
}
enable() {
if (!this._previewModeId) throw Error("Invariant: previewProps missing previewModeId this should never happen");
this._mutableCookies.set({ name: ef, value: this._previewModeId, httpOnly: true, sameSite: "none", secure: true, path: "/" });
}
disable() {
this._mutableCookies.set({ name: ef, value: "", httpOnly: true, sameSite: "none", secure: true, path: "/", expires: /* @__PURE__ */ new Date(0) });
}
}
function ey(e2, t2) {
if ("x-middleware-set-cookie" in e2.headers && "string" == typeof e2.headers["x-middleware-set-cookie"]) {
let r2 = e2.headers["x-middleware-set-cookie"], n2 = new Headers();
for (let e3 of (0, A.l$)(r2)) n2.append("set-cookie", e3);
for (let e3 of new J.nV(n2).getAll()) t2.set(e3);
}
}
let ew = { wrap(e2, { req: t2, res: r2, renderOpts: n2 }, a2) {
let i2;
function o2(e3) {
r2 && r2.setHeader("Set-Cookie", e3);
}
n2 && "previewProps" in n2 && (i2 = n2.previewProps);
let s2 = {}, c2 = { get headers() {
return s2.headers || (s2.headers = function(e3) {
let t3 = j.from(e3);
for (let e4 of H) t3.delete(e4.toString().toLowerCase());
return j.seal(t3);
}(t2.headers)), s2.headers;
}, get cookies() {
if (!s2.cookies) {
let e3 = new J.qC(j.from(t2.headers));
ey(t2, e3), s2.cookies = z.seal(e3);
}
return s2.cookies;
}, get mutableCookies() {
if (!s2.mutableCookies) {
let e3 = function(e4, t3) {
let r3 = new J.qC(j.from(e4));
return Y.wrap(r3, t3);
}(t2.headers, (null == n2 ? void 0 : n2.onUpdateCookies) || (r2 ? o2 : void 0));
ey(t2, e3), s2.mutableCookies = e3;
}
return s2.mutableCookies;
}, get draftMode() {
return s2.draftMode || (s2.draftMode = new eg(i2, t2, this.cookies, this.mutableCookies)), s2.draftMode;
}, reactLoadableManifest: (null == n2 ? void 0 : n2.reactLoadableManifest) || {}, assetPrefix: (null == n2 ? void 0 : n2.assetPrefix) || "" };
return e2.run(c2, a2, c2);
} }, em = G();
function eb() {
return { previewModeId: process.env.__NEXT_PREVIEW_MODE_ID, previewModeSigningKey: process.env.__NEXT_PREVIEW_MODE_SIGNING_KEY || "", previewModeEncryptionKey: process.env.__NEXT_PREVIEW_MODE_ENCRYPTION_KEY || "" };
}
class ev extends O.I {
constructor(e2) {
super(e2.input, e2.init), this.sourcePage = e2.page;
}
get request() {
throw new _.qJ({ page: this.sourcePage });
}
respondWith() {
throw new _.qJ({ page: this.sourcePage });
}
waitUntil() {
throw new _.qJ({ page: this.sourcePage });
}
}
let eS = { keys: (e2) => Array.from(e2.keys()), get: (e2, t2) => e2.get(t2) ?? void 0 }, eE = (e2, t2) => eh().withPropagatedContext(e2.headers, t2, eS), e_ = false;
async function eA(e2) {
let t2, n2;
!function() {
if (!e_ && (e_ = true, "true" === process.env.NEXT_PRIVATE_TEST_PROXY)) {
let { interceptTestApis: e3, wrapRequestHandler: t3 } = r(177);
e3(), eE = t3(eE);
}
}(), await S();
let a2 = void 0 !== self.__BUILD_MANIFEST;
e2.request.url = e2.request.url.replace(/\.rsc($|\?)/, "$1");
let i2 = new N.c(e2.request.url, { headers: e2.request.headers, nextConfig: e2.request.nextConfig });
for (let e3 of [...i2.searchParams.keys()]) {
let t3 = i2.searchParams.getAll(e3);
if (e3 !== U && e3.startsWith(U)) {
let r2 = e3.substring(U.length);
for (let e4 of (i2.searchParams.delete(r2), t3)) i2.searchParams.append(r2, e4);
i2.searchParams.delete(e3);
}
}
let o2 = i2.buildId;
i2.buildId = "";
let s2 = e2.request.headers["x-nextjs-data"];
s2 && "/index" === i2.pathname && (i2.pathname = "/");
let c2 = (0, A.EK)(e2.request.headers), l2 = /* @__PURE__ */ new Map();
if (!a2) for (let e3 of H) {
let t3 = e3.toString().toLowerCase();
c2.get(t3) && (l2.set(t3, c2.get(t3)), c2.delete(t3));
}
let d2 = new ev({ page: e2.page, input: function(e3, t3) {
let r2 = "string" == typeof e3, n3 = r2 ? new URL(e3) : e3;
for (let e4 of M) n3.searchParams.delete(e4);
if (t3) for (let e4 of D) n3.searchParams.delete(e4);
return r2 ? n3.toString() : n3;
}(i2, true).toString(), init: { body: e2.request.body, geo: e2.request.geo, headers: c2, ip: e2.request.ip, method: e2.request.method, nextConfig: e2.request.nextConfig, signal: e2.request.signal } });
s2 && Object.defineProperty(d2, "__isData", { enumerable: false, value: true }), !globalThis.__incrementalCache && e2.IncrementalCache && (globalThis.__incrementalCache = new e2.IncrementalCache({ appDir: true, fetchCache: true, minimalMode: true, fetchCacheKeyPrefix: "", dev: false, requestHeaders: e2.request.headers, requestProtocol: "https", getPrerenderManifest: () => ({ version: -1, routes: {}, dynamicRoutes: {}, notFoundRoutes: [], preview: eb() }) }));
let u2 = new T({ request: d2, page: e2.page });
if ((t2 = await eE(d2, () => "/middleware" === e2.page || "/src/middleware" === e2.page ? eh().trace(g.execute, { spanName: `middleware ${d2.method} ${d2.nextUrl.pathname}`, attributes: { "http.target": d2.nextUrl.pathname, "http.method": d2.method } }, () => ew.wrap(em, { req: d2, renderOpts: { onUpdateCookies: (e3) => {
n2 = e3;
}, previewProps: eb() } }, () => e2.handler(d2, u2))) : e2.handler(d2, u2))) && !(t2 instanceof Response)) throw TypeError("Expected an instance of Response to be returned");
t2 && n2 && t2.headers.set("set-cookie", n2);
let p2 = null == t2 ? void 0 : t2.headers.get("x-middleware-rewrite");
if (t2 && p2 && !a2) {
let r2 = new N.c(p2, { forceLocale: true, headers: e2.request.headers, nextConfig: e2.request.nextConfig });
r2.host === d2.nextUrl.host && (r2.buildId = o2 || r2.buildId, t2.headers.set("x-middleware-rewrite", String(r2)));
let n3 = I(String(r2), String(i2));
s2 && t2.headers.set("x-nextjs-rewrite", n3);
}
let h2 = null == t2 ? void 0 : t2.headers.get("Location");
if (t2 && h2 && !a2) {
let r2 = new N.c(h2, { forceLocale: false, headers: e2.request.headers, nextConfig: e2.request.nextConfig });
t2 = new Response(t2.body, t2), r2.host === d2.nextUrl.host && (r2.buildId = o2 || r2.buildId, t2.headers.set("Location", String(r2))), s2 && (t2.headers.delete("Location"), t2.headers.set("x-nextjs-redirect", I(String(r2), String(i2))));
}
let f2 = t2 || k.x.next(), y2 = f2.headers.get("x-middleware-override-headers"), w2 = [];
if (y2) {
for (let [e3, t3] of l2) f2.headers.set(`x-middleware-request-${e3}`, t3), w2.push(e3);
w2.length > 0 && f2.headers.set("x-middleware-override-headers", y2 + "," + w2.join(","));
}
return { response: f2, waitUntil: Promise.all(u2[x]), fetchMetrics: d2.fetchMetrics };
}
var eP = r(784), eC = r(635);
!function(e2) {
e2.SUPER_ADMIN = "SUPER_ADMIN", e2.SHOP_ADMIN = "SHOP_ADMIN", e2.ARTIST = "ARTIST", e2.CLIENT = "CLIENT";
}(y || (y = {})), function(e2) {
e2.PENDING = "PENDING", e2.CONFIRMED = "CONFIRMED", e2.IN_PROGRESS = "IN_PROGRESS", e2.COMPLETED = "COMPLETED", e2.CANCELLED = "CANCELLED";
}(w || (w = {}));
let ex = (0, eP.withAuth)(function(e2) {
let t2 = e2.nextauth.token, { pathname: r2 } = e2.nextUrl;
if (r2.startsWith("/admin")) {
if (!t2) return eC.NextResponse.redirect(new URL("/auth/signin", e2.url));
let r3 = t2.role;
if (r3 !== y.SHOP_ADMIN && r3 !== y.SUPER_ADMIN) return eC.NextResponse.redirect(new URL("/unauthorized", e2.url));
}
if (r2.startsWith("/artist")) {
if (!t2) return eC.NextResponse.redirect(new URL("/auth/signin", e2.url));
let r3 = t2.role;
if (r3 !== y.ARTIST && r3 !== y.SHOP_ADMIN && r3 !== y.SUPER_ADMIN) return eC.NextResponse.redirect(new URL("/unauthorized", e2.url));
}
if (r2.startsWith("/api/admin")) {
if (!t2) return eC.NextResponse.json({ error: "Authentication required" }, { status: 401 });
let e3 = t2.role;
if (e3 !== y.SHOP_ADMIN && e3 !== y.SUPER_ADMIN) return eC.NextResponse.json({ error: "Insufficient permissions" }, { status: 403 });
}
return eC.NextResponse.next();
}, { callbacks: { authorized: ({ token: e2, req: t2 }) => {
let { pathname: r2 } = t2.nextUrl;
return !!(["/", "/artists", "/contact", "/book", "/aftercare", "/gift-cards", "/specials", "/terms", "/privacy", "/auth/signin", "/auth/error", "/unauthorized"].some((e3) => r2 === e3 || r2.startsWith(e3)) || r2.match(/^\/artists\/[^\/]+$/) || r2.startsWith("/api/auth") || r2.startsWith("/api/public")) || !!e2;
} } }), eR = { matcher: ["/((?!_next/static|_next/image|favicon.ico|public|.*\\.png$|.*\\.jpg$|.*\\.jpeg$|.*\\.gif$|.*\\.svg$).*)"] }, eT = { ...m }, eO = eT.middleware || eT.default, ek = "/middleware";
if ("function" != typeof eO) throw Error(`The Middleware "${ek}" must export a \`middleware\` or a \`default\` function`);
function eI(e2) {
return eA({ ...e2, page: ek, handler: eO });
}
}, 282: (e, t) => {
"use strict";
function r(e2, t2, r2) {
n(e2, t2), t2.set(e2, r2);
}
function n(e2, t2) {
if (t2.has(e2)) throw TypeError("Cannot initialize the same private elements twice on an object");
}
function a(e2, t2) {
return e2.get(o(e2, t2));
}
function i(e2, t2, r2) {
return e2.set(o(e2, t2), r2), r2;
}
function o(e2, t2, r2) {
if ("function" == typeof e2 ? e2 === t2 : e2.has(t2)) return arguments.length < 3 ? t2 : r2;
throw TypeError("Private element is not present on this object");
}
Object.defineProperty(t, "__esModule", { value: true }), t.SessionStore = void 0, t.defaultCookies = function(e2) {
let t2 = e2 ? "__Secure-" : "";
return { sessionToken: { name: `${t2}next-auth.session-token`, options: { httpOnly: true, sameSite: "lax", path: "/", secure: e2 } }, callbackUrl: { name: `${t2}next-auth.callback-url`, options: { httpOnly: true, sameSite: "lax", path: "/", secure: e2 } }, csrfToken: { name: `${e2 ? "__Host-" : ""}next-auth.csrf-token`, options: { httpOnly: true, sameSite: "lax", path: "/", secure: e2 } }, pkceCodeVerifier: { name: `${t2}next-auth.pkce.code_verifier`, options: { httpOnly: true, sameSite: "lax", path: "/", secure: e2, maxAge: 900 } }, state: { name: `${t2}next-auth.state`, options: { httpOnly: true, sameSite: "lax", path: "/", secure: e2, maxAge: 900 } }, nonce: { name: `${t2}next-auth.nonce`, options: { httpOnly: true, sameSite: "lax", path: "/", secure: e2 } } };
};
var s = /* @__PURE__ */ new WeakMap(), c = /* @__PURE__ */ new WeakMap(), l = /* @__PURE__ */ new WeakMap(), d = /* @__PURE__ */ new WeakSet();
class u {
constructor(e2, t2, o2) {
!function(e3, t3) {
n(e3, t3), t3.add(e3);
}(this, d), r(this, s, {}), r(this, c, void 0), r(this, l, void 0), i(l, this, o2), i(c, this, e2);
let { cookies: u2 } = t2, { name: p2 } = e2;
if ("function" == typeof (null == u2 ? void 0 : u2.getAll)) for (let { name: e3, value: t3 } of u2.getAll()) e3.startsWith(p2) && (a(s, this)[e3] = t3);
else if (u2 instanceof Map) for (let e3 of u2.keys()) e3.startsWith(p2) && (a(s, this)[e3] = u2.get(e3));
else for (let e3 in u2) e3.startsWith(p2) && (a(s, this)[e3] = u2[e3]);
}
get value() {
return Object.keys(a(s, this)).sort((e2, t2) => {
var r2, n2;
return parseInt(null !== (r2 = e2.split(".").pop()) && void 0 !== r2 ? r2 : "0") - parseInt(null !== (n2 = t2.split(".").pop()) && void 0 !== n2 ? n2 : "0");
}).map((e2) => a(s, this)[e2]).join("");
}
chunk(e2, t2) {
let r2 = o(d, this, h).call(this);
for (let n2 of o(d, this, p).call(this, { name: a(c, this).name, value: e2, options: { ...a(c, this).options, ...t2 } })) r2[n2.name] = n2;
return Object.values(r2);
}
clean() {
return Object.values(o(d, this, h).call(this));
}
}
function p(e2) {
let t2 = Math.ceil(e2.value.length / 3933);
if (1 === t2) return a(s, this)[e2.name] = e2.value, [e2];
let r2 = [];
for (let n2 = 0; n2 < t2; n2++) {
let t3 = `${e2.name}.${n2}`, i2 = e2.value.substr(3933 * n2, 3933);
r2.push({ ...e2, name: t3, value: i2 }), a(s, this)[t3] = i2;
}
return a(l, this).debug("CHUNKING_SESSION_COOKIE", { message: "Session cookie exceeds allowed 4096 bytes.", emptyCookieSize: 163, valueSize: e2.value.length, chunks: r2.map((e3) => e3.value.length + 163) }), r2;
}
function h() {
let e2 = {};
for (let r2 in a(s, this)) {
var t2;
null === (t2 = a(s, this)) || void 0 === t2 || delete t2[r2], e2[r2] = { name: r2, value: "", options: { ...a(c, this).options, maxAge: 0 } };
}
return e2;
}
t.SessionStore = u;
}, 859: (e, t, r) => {
"use strict";
var n = r(476);
Object.defineProperty(t, "__esModule", { value: true });
var a = { encode: true, decode: true, getToken: true };
t.decode = p, t.encode = u, t.getToken = h;
var i = r(507), o = n(r(728)), s = r(532), c = r(282), l = r(555);
Object.keys(l).forEach(function(e2) {
!("default" === e2 || "__esModule" === e2 || Object.prototype.hasOwnProperty.call(a, e2)) && (e2 in t && t[e2] === l[e2] || Object.defineProperty(t, e2, { enumerable: true, get: function() {
return l[e2];
} }));
});
let d = () => Date.now() / 1e3 | 0;
async function u(e2) {
let { token: t2 = {}, secret: r2, maxAge: n2 = 2592e3, salt: a2 = "" } = e2, o2 = await f(r2, a2);
return await new i.EncryptJWT(t2).setProtectedHeader({ alg: "dir", enc: "A256GCM" }).setIssuedAt().setExpirationTime(d() + n2).setJti((0, s.v4)()).encrypt(o2);
}
async function p(e2) {
let { token: t2, secret: r2, salt: n2 = "" } = e2;
if (!t2) return null;
let a2 = await f(r2, n2), { payload: o2 } = await (0, i.jwtDecrypt)(t2, a2, { clockTolerance: 15 });
return o2;
}
async function h(e2) {
var t2, r2, n2, a2;
let { req: i2, secureCookie: o2 = null !== (t2 = null === (r2 = process.env.NEXTAUTH_URL) || void 0 === r2 ? void 0 : r2.startsWith("https://")) && void 0 !== t2 ? t2 : !!process.env.VERCEL, cookieName: s2 = o2 ? "__Secure-next-auth.session-token" : "next-auth.session-token", raw: l2, decode: d2 = p, logger: u2 = console, secret: h2 = null !== (n2 = process.env.NEXTAUTH_SECRET) && void 0 !== n2 ? n2 : process.env.AUTH_SECRET } = e2;
if (!i2) throw Error("Must pass `req` to JWT getToken()");
let f2 = new c.SessionStore({ name: s2, options: { secure: o2 } }, { cookies: i2.cookies, headers: i2.headers }, u2).value, g = i2.headers instanceof Headers ? i2.headers.get("authorization") : null === (a2 = i2.headers) || void 0 === a2 ? void 0 : a2.authorization;
if (f2 || (null == g ? void 0 : g.split(" ")[0]) !== "Bearer" || (f2 = decodeURIComponent(g.split(" ")[1])), !f2) return null;
if (l2) return f2;
try {
return await d2({ token: f2, secret: h2 });
} catch (e3) {
return null;
}
}
async function f(e2, t2) {
return await (0, o.default)("sha256", e2, t2, `NextAuth.js Generated Encryption Key${t2 ? ` (${t2})` : ""}`, 32);
}
}, 555: (e, t) => {
"use strict";
Object.defineProperty(t, "__esModule", { value: true });
}, 784: (e, t, r) => {
"use strict";
Object.defineProperty(t, "__esModule", { value: true });
var n = {};
Object.defineProperty(t, "default", { enumerable: true, get: function() {
return a.default;
} });
var a = function(e2, t2) {
if (e2 && e2.__esModule) return e2;
if (null === e2 || "object" != typeof e2 && "function" != typeof e2) return { default: e2 };
var r2 = i(void 0);
if (r2 && r2.has(e2)) return r2.get(e2);
var n2 = { __proto__: null }, a2 = Object.defineProperty && Object.getOwnPropertyDescriptor;
for (var o in e2) if ("default" !== o && {}.hasOwnProperty.call(e2, o)) {
var s = a2 ? Object.getOwnPropertyDescriptor(e2, o) : null;
s && (s.get || s.set) ? Object.defineProperty(n2, o, s) : n2[o] = e2[o];
}
return n2.default = e2, r2 && r2.set(e2, n2), n2;
}(r(93));
function i(e2) {
if ("function" != typeof WeakMap) return null;
var t2 = /* @__PURE__ */ new WeakMap(), r2 = /* @__PURE__ */ new WeakMap();
return (i = function(e3) {
return e3 ? r2 : t2;
})(e2);
}
Object.keys(a).forEach(function(e2) {
!("default" === e2 || "__esModule" === e2 || Object.prototype.hasOwnProperty.call(n, e2)) && (e2 in t && t[e2] === a[e2] || Object.defineProperty(t, e2, { enumerable: true, get: function() {
return a[e2];
} }));
});
}, 93: (e, t, r) => {
"use strict";
var n = r(476);
Object.defineProperty(t, "__esModule", { value: true }), t.default = void 0, t.withAuth = c;
var a = r(635), i = r(859), o = n(r(66));
async function s(e2, t2, r2) {
var n2, s2, c2, l, d, u, p, h, f, g, y;
let { pathname: w, search: m, origin: b, basePath: v } = e2.nextUrl, S = null !== (n2 = null == t2 || null === (s2 = t2.pages) || void 0 === s2 ? void 0 : s2.signIn) && void 0 !== n2 ? n2 : "/api/auth/signin", E = null !== (c2 = null == t2 || null === (l = t2.pages) || void 0 === l ? void 0 : l.error) && void 0 !== c2 ? c2 : "/api/auth/error", _ = (0, o.default)(process.env.NEXTAUTH_URL).path;
if (`${v}${w}`.startsWith(_) || [S, E].includes(w) || ["/_next", "/favicon.ico"].some((e3) => w.startsWith(e3))) return;
let A = null !== (d = null !== (u = null == t2 ? void 0 : t2.secret) && void 0 !== u ? u : process.env.NEXTAUTH_SECRET) && void 0 !== d ? d : process.env.AUTH_SECRET;
if (!A) {
console.error("[next-auth][error][NO_SECRET]", `
https://next-auth.js.org/errors#no_secret`);
let e3 = new URL(`${v}${E}`, b);
return e3.searchParams.append("error", "Configuration"), a.NextResponse.redirect(e3);
}
let P = await (0, i.getToken)({ req: e2, decode: null == t2 || null === (p = t2.jwt) || void 0 === p ? void 0 : p.decode, cookieName: null == t2 || null === (h = t2.cookies) || void 0 === h || null === (h = h.sessionToken) || void 0 === h ? void 0 : h.name, secret: A });
if (null !== (f = await (null == t2 || null === (g = t2.callbacks) || void 0 === g || null === (y = g.authorized) || void 0 === y ? void 0 : y.call(g, { req: e2, token: P }))) && void 0 !== f ? f : !!P) return await (null == r2 ? void 0 : r2(P));
let C = new URL(`${v}${S}`, b);
return C.searchParams.append("callbackUrl", `${v}${w}${m}`), a.NextResponse.redirect(C);
}
function c(...e2) {
if (!e2.length || e2[0] instanceof Request) return s(...e2);
if ("function" == typeof e2[0]) {
let t3 = e2[0], r2 = e2[1];
return async (...e3) => await s(e3[0], r2, async (r3) => (e3[0].nextauth = { token: r3 }, await t3(...e3)));
}
let t2 = e2[0];
return async (...e3) => await s(e3[0], t2);
}
t.default = c;
}, 532: (e, t, r) => {
"use strict";
r.r(t), r.d(t, { NIL: () => T, parse: () => y, stringify: () => p, v1: () => g, v3: () => P, v4: () => C, v5: () => R, validate: () => l, version: () => O });
var n, a, i, o = new Uint8Array(16);
function s() {
if (!n && !(n = "undefined" != typeof crypto && crypto.getRandomValues && crypto.getRandomValues.bind(crypto) || "undefined" != typeof msCrypto && "function" == typeof msCrypto.getRandomValues && msCrypto.getRandomValues.bind(msCrypto))) throw Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");
return n(o);
}
let c = /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i, l = function(e2) {
return "string" == typeof e2 && c.test(e2);
};
for (var d = [], u = 0; u < 256; ++u) d.push((u + 256).toString(16).substr(1));
let p = function(e2) {
var t2 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 0, r2 = (d[e2[t2 + 0]] + d[e2[t2 + 1]] + d[e2[t2 + 2]] + d[e2[t2 + 3]] + "-" + d[e2[t2 + 4]] + d[e2[t2 + 5]] + "-" + d[e2[t2 + 6]] + d[e2[t2 + 7]] + "-" + d[e2[t2 + 8]] + d[e2[t2 + 9]] + "-" + d[e2[t2 + 10]] + d[e2[t2 + 11]] + d[e2[t2 + 12]] + d[e2[t2 + 13]] + d[e2[t2 + 14]] + d[e2[t2 + 15]]).toLowerCase();
if (!l(r2)) throw TypeError("Stringified UUID is invalid");
return r2;
};
var h = 0, f = 0;
let g = function(e2, t2, r2) {
var n2 = t2 && r2 || 0, o2 = t2 || Array(16), c2 = (e2 = e2 || {}).node || a, l2 = void 0 !== e2.clockseq ? e2.clockseq : i;
if (null == c2 || null == l2) {
var d2 = e2.random || (e2.rng || s)();
null == c2 && (c2 = a = [1 | d2[0], d2[1], d2[2], d2[3], d2[4], d2[5]]), null == l2 && (l2 = i = (d2[6] << 8 | d2[7]) & 16383);
}
var u2 = void 0 !== e2.msecs ? e2.msecs : Date.now(), g2 = void 0 !== e2.nsecs ? e2.nsecs : f + 1, y2 = u2 - h + (g2 - f) / 1e4;
if (y2 < 0 && void 0 === e2.clockseq && (l2 = l2 + 1 & 16383), (y2 < 0 || u2 > h) && void 0 === e2.nsecs && (g2 = 0), g2 >= 1e4) throw Error("uuid.v1(): Can't create more than 10M uuids/sec");
h = u2, f = g2, i = l2;
var w2 = ((268435455 & (u2 += 122192928e5)) * 1e4 + g2) % 4294967296;
o2[n2++] = w2 >>> 24 & 255, o2[n2++] = w2 >>> 16 & 255, o2[n2++] = w2 >>> 8 & 255, o2[n2++] = 255 & w2;
var m2 = u2 / 4294967296 * 1e4 & 268435455;
o2[n2++] = m2 >>> 8 & 255, o2[n2++] = 255 & m2, o2[n2++] = m2 >>> 24 & 15 | 16, o2[n2++] = m2 >>> 16 & 255, o2[n2++] = l2 >>> 8 | 128, o2[n2++] = 255 & l2;
for (var b2 = 0; b2 < 6; ++b2) o2[n2 + b2] = c2[b2];
return t2 || p(o2);
}, y = function(e2) {
if (!l(e2)) throw TypeError("Invalid UUID");
var t2, r2 = new Uint8Array(16);
return r2[0] = (t2 = parseInt(e2.slice(0, 8), 16)) >>> 24, r2[1] = t2 >>> 16 & 255, r2[2] = t2 >>> 8 & 255, r2[3] = 255 & t2, r2[4] = (t2 = parseInt(e2.slice(9, 13), 16)) >>> 8, r2[5] = 255 & t2, r2[6] = (t2 = parseInt(e2.slice(14, 18), 16)) >>> 8, r2[7] = 255 & t2, r2[8] = (t2 = parseInt(e2.slice(19, 23), 16)) >>> 8, r2[9] = 255 & t2, r2[10] = (t2 = parseInt(e2.slice(24, 36), 16)) / 1099511627776 & 255, r2[11] = t2 / 4294967296 & 255, r2[12] = t2 >>> 24 & 255, r2[13] = t2 >>> 16 & 255, r2[14] = t2 >>> 8 & 255, r2[15] = 255 & t2, r2;
};
function w(e2, t2, r2) {
function n2(e3, n3, a2, i2) {
if ("string" == typeof e3 && (e3 = function(e4) {
e4 = unescape(encodeURIComponent(e4));
for (var t3 = [], r3 = 0; r3 < e4.length; ++r3) t3.push(e4.charCodeAt(r3));
return t3;
}(e3)), "string" == typeof n3 && (n3 = y(n3)), 16 !== n3.length) throw TypeError("Namespace must be array-like (16 iterable integer values, 0-255)");
var o2 = new Uint8Array(16 + e3.length);
if (o2.set(n3), o2.set(e3, n3.length), (o2 = r2(o2))[6] = 15 & o2[6] | t2, o2[8] = 63 & o2[8] | 128, a2) {
i2 = i2 || 0;
for (var s2 = 0; s2 < 16; ++s2) a2[i2 + s2] = o2[s2];
return a2;
}
return p(o2);
}
try {
n2.name = e2;
} catch (e3) {
}
return n2.DNS = "6ba7b810-9dad-11d1-80b4-00c04fd430c8", n2.URL = "6ba7b811-9dad-11d1-80b4-00c04fd430c8", n2;
}
function m(e2) {
return (e2 + 64 >>> 9 << 4) + 14 + 1;
}
function b(e2, t2) {
var r2 = (65535 & e2) + (65535 & t2);
return (e2 >> 16) + (t2 >> 16) + (r2 >> 16) << 16 | 65535 & r2;
}
function v(e2, t2, r2, n2, a2, i2) {
var o2;
return b((o2 = b(b(t2, e2), b(n2, i2))) << a2 | o2 >>> 32 - a2, r2);
}
function S(e2, t2, r2, n2, a2, i2, o2) {
return v(t2 & r2 | ~t2 & n2, e2, t2, a2, i2, o2);
}
function E(e2, t2, r2, n2, a2, i2, o2) {
return v(t2 & n2 | r2 & ~n2, e2, t2, a2, i2, o2);
}
function _(e2, t2, r2, n2, a2, i2, o2) {
return v(t2 ^ r2 ^ n2, e2, t2, a2, i2, o2);
}
function A(e2, t2, r2, n2, a2, i2, o2) {
return v(r2 ^ (t2 | ~n2), e2, t2, a2, i2, o2);
}
let P = w("v3", 48, function(e2) {
if ("string" == typeof e2) {
var t2 = unescape(encodeURIComponent(e2));
e2 = new Uint8Array(t2.length);
for (var r2 = 0; r2 < t2.length; ++r2) e2[r2] = t2.charCodeAt(r2);
}
return function(e3) {
for (var t3 = [], r3 = 32 * e3.length, n2 = "0123456789abcdef", a2 = 0; a2 < r3; a2 += 8) {
var i2 = e3[a2 >> 5] >>> a2 % 32 & 255, o2 = parseInt(n2.charAt(i2 >>> 4 & 15) + n2.charAt(15 & i2), 16);
t3.push(o2);
}
return t3;
}(function(e3, t3) {
e3[t3 >> 5] |= 128 << t3 % 32, e3[m(t3) - 1] = t3;
for (var r3 = 1732584193, n2 = -271733879, a2 = -1732584194, i2 = 271733878, o2 = 0; o2 < e3.length; o2 += 16) {
var s2 = r3, c2 = n2, l2 = a2, d2 = i2;
r3 = S(r3, n2, a2, i2, e3[o2], 7, -680876936), i2 = S(i2, r3, n2, a2, e3[o2 + 1], 12, -389564586), a2 = S(a2, i2, r3, n2, e3[o2 + 2], 17, 606105819), n2 = S(n2, a2, i2, r3, e3[o2 + 3], 22, -1044525330), r3 = S(r3, n2, a2, i2, e3[o2 + 4], 7, -176418897), i2 = S(i2, r3, n2, a2, e3[o2 + 5], 12, 1200080426), a2 = S(a2, i2, r3, n2, e3[o2 + 6], 17, -1473231341), n2 = S(n2, a2, i2, r3, e3[o2 + 7], 22, -45705983), r3 = S(r3, n2, a2, i2, e3[o2 + 8], 7, 1770035416), i2 = S(i2, r3, n2, a2, e3[o2 + 9], 12, -1958414417), a2 = S(a2, i2, r3, n2, e3[o2 + 10], 17, -42063), n2 = S(n2, a2, i2, r3, e3[o2 + 11], 22, -1990404162), r3 = S(r3, n2, a2, i2, e3[o2 + 12], 7, 1804603682), i2 = S(i2, r3, n2, a2, e3[o2 + 13], 12, -40341101), a2 = S(a2, i2, r3, n2, e3[o2 + 14], 17, -1502002290), n2 = S(n2, a2, i2, r3, e3[o2 + 15], 22, 1236535329), r3 = E(r3, n2, a2, i2, e3[o2 + 1], 5, -165796510), i2 = E(i2, r3, n2, a2, e3[o2 + 6], 9, -1069501632), a2 = E(a2, i2, r3, n2, e3[o2 + 11], 14, 643717713), n2 = E(n2, a2, i2, r3, e3[o2], 20, -373897302), r3 = E(r3, n2, a2, i2, e3[o2 + 5], 5, -701558691), i2 = E(i2, r3, n2, a2, e3[o2 + 10], 9, 38016083), a2 = E(a2, i2, r3, n2, e3[o2 + 15], 14, -660478335), n2 = E(n2, a2, i2, r3, e3[o2 + 4], 20, -405537848), r3 = E(r3, n2, a2, i2, e3[o2 + 9], 5, 568446438), i2 = E(i2, r3, n2, a2, e3[o2 + 14], 9, -1019803690), a2 = E(a2, i2, r3, n2, e3[o2 + 3], 14, -187363961), n2 = E(n2, a2, i2, r3, e3[o2 + 8], 20, 1163531501), r3 = E(r3, n2, a2, i2, e3[o2 + 13], 5, -1444681467), i2 = E(i2, r3, n2, a2, e3[o2 + 2], 9, -51403784), a2 = E(a2, i2, r3, n2, e3[o2 + 7], 14, 1735328473), n2 = E(n2, a2, i2, r3, e3[o2 + 12], 20, -1926607734), r3 = _(r3, n2, a2, i2, e3[o2 + 5], 4, -378558), i2 = _(i2, r3, n2, a2, e3[o2 + 8], 11, -2022574463), a2 = _(a2, i2, r3, n2, e3[o2 + 11], 16, 1839030562), n2 = _(n2, a2, i2, r3, e3[o2 + 14], 23, -35309556), r3 = _(r3, n2, a2, i2, e3[o2 + 1], 4, -1530992060), i2 = _(i2, r3, n2, a2, e3[o2 + 4], 11, 1272893353), a2 = _(a2, i2, r3, n2, e3[o2 + 7], 16, -155497632), n2 = _(n2, a2, i2, r3, e3[o2 + 10], 23, -1094730640), r3 = _(r3, n2, a2, i2, e3[o2 + 13], 4, 681279174), i2 = _(i2, r3, n2, a2, e3[o2], 11, -358537222), a2 = _(a2, i2, r3, n2, e3[o2 + 3], 16, -722521979), n2 = _(n2, a2, i2, r3, e3[o2 + 6], 23, 76029189), r3 = _(r3, n2, a2, i2, e3[o2 + 9], 4, -640364487), i2 = _(i2, r3, n2, a2, e3[o2 + 12], 11, -421815835), a2 = _(a2, i2, r3, n2, e3[o2 + 15], 16, 530742520), n2 = _(n2, a2, i2, r3, e3[o2 + 2], 23, -995338651), r3 = A(r3, n2, a2, i2, e3[o2], 6, -198630844), i2 = A(i2, r3, n2, a2, e3[o2 + 7], 10, 1126891415), a2 = A(a2, i2, r3, n2, e3[o2 + 14], 15, -1416354905), n2 = A(n2, a2, i2, r3, e3[o2 + 5], 21, -57434055), r3 = A(r3, n2, a2, i2, e3[o2 + 12], 6, 1700485571), i2 = A(i2, r3, n2, a2, e3[o2 + 3], 10, -1894986606), a2 = A(a2, i2, r3, n2, e3[o2 + 10], 15, -1051523), n2 = A(n2, a2, i2, r3, e3[o2 + 1], 21, -2054922799), r3 = A(r3, n2, a2, i2, e3[o2 + 8], 6, 1873313359), i2 = A(i2, r3, n2, a2, e3[o2 + 15], 10, -30611744), a2 = A(a2, i2, r3, n2, e3[o2 + 6], 15, -1560198380), n2 = A(n2, a2, i2, r3, e3[o2 + 13], 21, 1309151649), r3 = A(r3, n2, a2, i2, e3[o2 + 4], 6, -145523070), i2 = A(i2, r3, n2, a2, e3[o2 + 11], 10, -1120210379), a2 = A(a2, i2, r3, n2, e3[o2 + 2], 15, 718787259), n2 = A(n2, a2, i2, r3, e3[o2 + 9], 21, -343485551), r3 = b(r3, s2), n2 = b(n2, c2), a2 = b(a2, l2), i2 = b(i2, d2);
}
return [r3, n2, a2, i2];
}(function(e3) {
if (0 === e3.length) return [];
for (var t3 = 8 * e3.length, r3 = new Uint32Array(m(t3)), n2 = 0; n2 < t3; n2 += 8) r3[n2 >> 5] |= (255 & e3[n2 / 8]) << n2 % 32;
return r3;
}(e2), 8 * e2.length));
}), C = function(e2, t2, r2) {
var n2 = (e2 = e2 || {}).random || (e2.rng || s)();
if (n2[6] = 15 & n2[6] | 64, n2[8] = 63 & n2[8] | 128, t2) {
r2 = r2 || 0;
for (var a2 = 0; a2 < 16; ++a2) t2[r2 + a2] = n2[a2];
return t2;
}
return p(n2);
};
function x(e2, t2) {
return e2 << t2 | e2 >>> 32 - t2;
}
let R = w("v5", 80, function(e2) {
var t2 = [1518500249, 1859775393, 2400959708, 3395469782], r2 = [1732584193, 4023233417, 2562383102, 271733878, 3285377520];
if ("string" == typeof e2) {
var n2 = unescape(encodeURIComponent(e2));
e2 = [];
for (var a2 = 0; a2 < n2.length; ++a2) e2.push(n2.charCodeAt(a2));
} else Array.isArray(e2) || (e2 = Array.prototype.slice.call(e2));
e2.push(128);
for (var i2 = Math.ceil((e2.length / 4 + 2) / 16), o2 = Array(i2), s2 = 0; s2 < i2; ++s2) {
for (var c2 = new Uint32Array(16), l2 = 0; l2 < 16; ++l2) c2[l2] = e2[64 * s2 + 4 * l2] << 24 | e2[64 * s2 + 4 * l2 + 1] << 16 | e2[64 * s2 + 4 * l2 + 2] << 8 | e2[64 * s2 + 4 * l2 + 3];
o2[s2] = c2;
}
o2[i2 - 1][14] = (e2.length - 1) * 8 / 4294967296, o2[i2 - 1][14] = Math.floor(o2[i2 - 1][14]), o2[i2 - 1][15] = (e2.length - 1) * 8 & 4294967295;
for (var d2 = 0; d2 < i2; ++d2) {
for (var u2 = new Uint32Array(80), p2 = 0; p2 < 16; ++p2) u2[p2] = o2[d2][p2];
for (var h2 = 16; h2 < 80; ++h2) u2[h2] = x(u2[h2 - 3] ^ u2[h2 - 8] ^ u2[h2 - 14] ^ u2[h2 - 16], 1);
for (var f2 = r2[0], g2 = r2[1], y2 = r2[2], w2 = r2[3], m2 = r2[4], b2 = 0; b2 < 80; ++b2) {
var v2 = Math.floor(b2 / 20), S2 = x(f2, 5) + function(e3, t3, r3, n3) {
switch (e3) {
case 0:
return t3 & r3 ^ ~t3 & n3;
case 1:
case 3:
return t3 ^ r3 ^ n3;
case 2:
return t3 & r3 ^ t3 & n3 ^ r3 & n3;
}
}(v2, g2, y2, w2) + m2 + t2[v2] + u2[b2] >>> 0;
m2 = w2, w2 = y2, y2 = x(g2, 30) >>> 0, g2 = f2, f2 = S2;
}
r2[0] = r2[0] + f2 >>> 0, r2[1] = r2[1] + g2 >>> 0, r2[2] = r2[2] + y2 >>> 0, r2[3] = r2[3] + w2 >>> 0, r2[4] = r2[4] + m2 >>> 0;
}
return [r2[0] >> 24 & 255, r2[0] >> 16 & 255, r2[0] >> 8 & 255, 255 & r2[0], r2[1] >> 24 & 255, r2[1] >> 16 & 255, r2[1] >> 8 & 255, 255 & r2[1], r2[2] >> 24 & 255, r2[2] >> 16 & 255, r2[2] >> 8 & 255, 255 & r2[2], r2[3] >> 24 & 255, r2[3] >> 16 & 255, r2[3] >> 8 & 255, 255 & r2[3], r2[4] >> 24 & 255, r2[4] >> 16 & 255, r2[4] >> 8 & 255, 255 & r2[4]];
}), T = "00000000-0000-0000-0000-000000000000", O = function(e2) {
if (!l(e2)) throw TypeError("Invalid UUID");
return parseInt(e2.substr(14, 1), 16);
};
}, 66: (e, t) => {
"use strict";
Object.defineProperty(t, "__esModule", { value: true }), t.default = function(e2) {
var t2;
let r = new URL("http://localhost:3000/api/auth");
e2 && !e2.startsWith("http") && (e2 = `https://${e2}`);
let n = new URL(null !== (t2 = e2) && void 0 !== t2 ? t2 : r), a = ("/" === n.pathname ? r.pathname : n.pathname).replace(/\/$/, ""), i = `${n.origin}${a}`;
return { origin: n.origin, host: n.host, path: a, base: i, toString: () => i };
};
}, 945: (e) => {
"use strict";
var t = Object.defineProperty, r = Object.getOwnPropertyDescriptor, n = Object.getOwnPropertyNames, a = Object.prototype.hasOwnProperty, i = {};
function o(e2) {
var t2;
let r2 = ["path" in e2 && e2.path && `Path=${e2.path}`, "expires" in e2 && (e2.expires || 0 === e2.expires) && `Expires=${("number" == typeof e2.expires ? new Date(e2.expires) : e2.expires).toUTCString()}`, "maxAge" in e2 && "number" == typeof e2.maxAge && `Max-Age=${e2.maxAge}`, "domain" in e2 && e2.domain && `Domain=${e2.domain}`, "secure" in e2 && e2.secure && "Secure", "httpOnly" in e2 && e2.httpOnly && "HttpOnly", "sameSite" in e2 && e2.sameSite && `SameSite=${e2.sameSite}`, "partitioned" in e2 && e2.partitioned && "Partitioned", "priority" in e2 && e2.priority && `Priority=${e2.priority}`].filter(Boolean), n2 = `${e2.name}=${encodeURIComponent(null != (t2 = e2.value) ? t2 : "")}`;
return 0 === r2.length ? n2 : `${n2}; ${r2.join("; ")}`;
}
function s(e2) {
let t2 = /* @__PURE__ */ new Map();
for (let r2 of e2.split(/; */)) {
if (!r2) continue;
let e3 = r2.indexOf("=");
if (-1 === e3) {
t2.set(r2, "true");
continue;
}
let [n2, a2] = [r2.slice(0, e3), r2.slice(e3 + 1)];
try {
t2.set(n2, decodeURIComponent(null != a2 ? a2 : "true"));
} catch {
}
}
return t2;
}
function c(e2) {
var t2, r2;
if (!e2) return;
let [[n2, a2], ...i2] = s(e2), { domain: o2, expires: c2, httponly: u2, maxage: p2, path: h, samesite: f, secure: g, partitioned: y, priority: w } = Object.fromEntries(i2.map(([e3, t3]) => [e3.toLowerCase(), t3]));
return function(e3) {
let t3 = {};
for (let r3 in e3) e3[r3] && (t3[r3] = e3[r3]);
return t3;
}({ name: n2, value: decodeURIComponent(a2), domain: o2, ...c2 && { expires: new Date(c2) }, ...u2 && { httpOnly: true }, ..."string" == typeof p2 && { maxAge: Number(p2) }, path: h, ...f && { sameSite: l.includes(t2 = (t2 = f).toLowerCase()) ? t2 : void 0 }, ...g && { secure: true }, ...w && { priority: d.includes(r2 = (r2 = w).toLowerCase()) ? r2 : void 0 }, ...y && { partitioned: true } });
}
((e2, r2) => {
for (var n2 in r2) t(e2, n2, { get: r2[n2], enumerable: true });
})(i, { RequestCookies: () => u, ResponseCookies: () => p, parseCookie: () => s, parseSetCookie: () => c, stringifyCookie: () => o }), e.exports = ((e2, i2, o2, s2) => {
if (i2 && "object" == typeof i2 || "function" == typeof i2) for (let c2 of n(i2)) a.call(e2, c2) || c2 === o2 || t(e2, c2, { get: () => i2[c2], enumerable: !(s2 = r(i2, c2)) || s2.enumerable });
return e2;
})(t({}, "__esModule", { value: true }), i);
var l = ["strict", "lax", "none"], d = ["low", "medium", "high"], u = class {
constructor(e2) {
this._parsed = /* @__PURE__ */ new Map(), this._headers = e2;
let t2 = e2.get("cookie");
if (t2) for (let [e3, r2] of s(t2)) this._parsed.set(e3, { name: e3, value: r2 });
}
[Symbol.iterator]() {
return this._parsed[Symbol.iterator]();
}
get size() {
return this._parsed.size;
}
get(...e2) {
let t2 = "string" == typeof e2[0] ? e2[0] : e2[0].name;
return this._parsed.get(t2);
}
getAll(...e2) {
var t2;
let r2 = Array.from(this._parsed);
if (!e2.length) return r2.map(([e3, t3]) => t3);
let n2 = "string" == typeof e2[0] ? e2[0] : null == (t2 = e2[0]) ? void 0 : t2.name;
return r2.filter(([e3]) => e3 === n2).map(([e3, t3]) => t3);
}
has(e2) {
return this._parsed.has(e2);
}
set(...e2) {
let [t2, r2] = 1 === e2.length ? [e2[0].name, e2[0].value] : e2, n2 = this._parsed;
return n2.set(t2, { name: t2, value: r2 }), this._headers.set("cookie", Array.from(n2).map(([e3, t3]) => o(t3)).join("; ")), this;
}
delete(e2) {
let t2 = this._parsed, r2 = Array.isArray(e2) ? e2.map((e3) => t2.delete(e3)) : t2.delete(e2);
return this._headers.set("cookie", Array.from(t2).map(([e3, t3]) => o(t3)).join("; ")), r2;
}
clear() {
return this.delete(Array.from(this._parsed.keys())), this;
}
[Symbol.for("edge-runtime.inspect.custom")]() {
return `RequestCookies ${JSON.stringify(Object.fromEntries(this._parsed))}`;
}
toString() {
return [...this._parsed.values()].map((e2) => `${e2.name}=${encodeURIComponent(e2.value)}`).join("; ");
}
}, p = class {
constructor(e2) {
var t2, r2, n2;
this._parsed = /* @__PURE__ */ new Map(), this._headers = e2;
let a2 = null != (n2 = null != (r2 = null == (t2 = e2.getSetCookie) ? void 0 : t2.call(e2)) ? r2 : e2.get("set-cookie")) ? n2 : [];
for (let e3 of Array.isArray(a2) ? a2 : function(e4) {
if (!e4) return [];
var t3, r3, n3, a3, i2, o2 = [], s2 = 0;
function c2() {
for (; s2 < e4.length && /\s/.test(e4.charAt(s2)); ) s2 += 1;
return s2 < e4.length;
}
for (; s2 < e4.length; ) {
for (t3 = s2, i2 = false; c2(); ) if ("," === (r3 = e4.charAt(s2))) {
for (n3 = s2, s2 += 1, c2(), a3 = s2; s2 < e4.length && "=" !== (r3 = e4.charAt(s2)) && ";" !== r3 && "," !== r3; ) s2 += 1;
s2 < e4.length && "=" === e4.charAt(s2) ? (i2 = true, s2 = a3, o2.push(e4.substring(t3, n3)), t3 = s2) : s2 = n3 + 1;
} else s2 += 1;
(!i2 || s2 >= e4.length) && o2.push(e4.substring(t3, e4.length));
}
return o2;
}(a2)) {
let t3 = c(e3);
t3 && this._parsed.set(t3.name, t3);
}
}
get(...e2) {
let t2 = "string" == typeof e2[0] ? e2[0] : e2[0].name;
return this._parsed.get(t2);
}
getAll(...e2) {
var t2;
let r2 = Array.from(this._parsed.values());
if (!e2.length) return r2;
let n2 = "string" == typeof e2[0] ? e2[0] : null == (t2 = e2[0]) ? void 0 : t2.name;
return r2.filter((e3) => e3.name === n2);
}
has(e2) {
return this._parsed.has(e2);
}
set(...e2) {
let [t2, r2, n2] = 1 === e2.length ? [e2[0].name, e2[0].value, e2[0]] : e2, a2 = this._parsed;
return a2.set(t2, function(e3 = { name: "", value: "" }) {
return "number" == typeof e3.expires && (e3.expires = new Date(e3.expires)), e3.maxAge && (e3.expires = new Date(Date.now() + 1e3 * e3.maxAge)), (null === e3.path || void 0 === e3.path) && (e3.path = "/"), e3;
}({ name: t2, value: r2, ...n2 })), function(e3, t3) {
for (let [, r3] of (t3.delete("set-cookie"), e3)) {
let e4 = o(r3);
t3.append("set-cookie", e4);
}
}(a2, this._headers), this;
}
delete(...e2) {
let [t2, r2, n2] = "string" == typeof e2[0] ? [e2[0]] : [e2[0].name, e2[0].path, e2[0].domain];
return this.set({ name: t2, path: r2, domain: n2, 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(o).join("; ");
}
};
}, 439: (e, t, r) => {
(() => {
"use strict";
var t2 = { 491: (e2, t3, r2) => {
Object.defineProperty(t3, "__esModule", { value: true }), t3.ContextAPI = void 0;
let n2 = r2(223), a2 = r2(172), i2 = r2(930), o = "context", s = new n2.NoopContextManager();
class c {
constructor() {
}
static getInstance() {
return this._instance || (this._instance = new c()), this._instance;
}
setGlobalContextManager(e3) {
return (0, a2.registerGlobal)(o, e3, i2.DiagAPI.instance());
}
active() {
return this._getContextManager().active();
}
with(e3, t4, r3, ...n3) {
return this._getContextManager().with(e3, t4, r3, ...n3);
}
bind(e3, t4) {
return this._getContextManager().bind(e3, t4);
}
_getContextManager() {
return (0, a2.getGlobal)(o) || s;
}
disable() {
this._getContextManager().disable(), (0, a2.unregisterGlobal)(o, i2.DiagAPI.instance());
}
}
t3.ContextAPI = c;
}, 930: (e2, t3, r2) => {
Object.defineProperty(t3, "__esModule", { value: true }), t3.DiagAPI = void 0;
let n2 = r2(56), a2 = r2(912), i2 = r2(957), o = r2(172);
class s {
constructor() {
function e3(e4) {
return function(...t5) {
let r3 = (0, o.getGlobal)("diag");
if (r3) return r3[e4](...t5);
};
}
let t4 = this;
t4.setLogger = (e4, r3 = { logLevel: i2.DiagLogLevel.INFO }) => {
var n3, s2, c;
if (e4 === t4) {
let e5 = Error("Cannot use diag as the logger for itself. Please use a DiagLogger implementation like ConsoleDiagLogger or a custom implementation");
return t4.error(null !== (n3 = e5.stack) && void 0 !== n3 ? n3 : e5.message), false;
}
"number" == typeof r3 && (r3 = { logLevel: r3 });
let l = (0, o.getGlobal)("diag"), d = (0, a2.createLogLevelDiagLogger)(null !== (s2 = r3.logLevel) && void 0 !== s2 ? s2 : i2.DiagLogLevel.INFO, e4);
if (l && !r3.suppressOverrideMessage) {
let e5 = null !== (c = Error().stack) && void 0 !== c ? c : "<failed to generate stacktrace>";
l.warn(`Current logger will be overwritten from ${e5}`), d.warn(`Current logger will overwrite one already registered from ${e5}`);
}
return (0, o.registerGlobal)("diag", d, t4, true);
}, t4.disable = () => {
(0, o.unregisterGlobal)("diag", t4);
}, t4.createComponentLogger = (e4) => new n2.DiagComponentLogger(e4), t4.verbose = e3("verbose"), t4.debug = e3("debug"), t4.info = e3("info"), t4.warn = e3("warn"), t4.error = e3("error");
}
static instance() {
return this._instance || (this._instance = new s()), this._instance;
}
}
t3.DiagAPI = s;
}, 653: (e2, t3, r2) => {
Object.defineProperty(t3, "__esModule", { value: true }), t3.MetricsAPI = void 0;
let n2 = r2(660), a2 = r2(172), i2 = r2(930), o = "metrics";
class s {
constructor() {
}
static getInstance() {
return this._instance || (this._instance = new s()), this._instance;
}
setGlobalMeterProvider(e3) {
return (0, a2.registerGlobal)(o, e3, i2.DiagAPI.instance());
}
getMeterProvider() {
return (0, a2.getGlobal)(o) || n2.NOOP_METER_PROVIDER;
}
getMeter(e3, t4, r3) {
return this.getMeterProvider().getMeter(e3, t4, r3);
}
disable() {
(0, a2.unregisterGlobal)(o, i2.DiagAPI.instance());
}
}
t3.MetricsAPI = s;
}, 181: (e2, t3, r2) => {
Object.defineProperty(t3, "__esModule", { value: true }), t3.PropagationAPI = void 0;
let n2 = r2(172), a2 = r2(874), i2 = r2(194), o = r2(277), s = r2(369), c = r2(930), l = "propagation", d = new a2.NoopTextMapPropagator();
class u {
constructor() {
this.createBaggage = s.createBaggage, this.getBaggage = o.getBaggage, this.getActiveBaggage = o.getActiveBaggage, this.setBaggage = o.setBaggage, this.deleteBaggage = o.deleteBaggage;
}
static getInstance() {
return this._instance || (this._instance = new u()), this._instance;
}
setGlobalPropagator(e3) {
return (0, n2.registerGlobal)(l, e3, c.DiagAPI.instance());
}
inject(e3, t4, r3 = i2.defaultTextMapSetter) {
return this._getGlobalPropagator().inject(e3, t4, r3);
}
extract(e3, t4, r3 = i2.defaultTextMapGetter) {
return this._getGlobalPropagator().extract(e3, t4, r3);
}
fields() {
return this._getGlobalPropagator().fields();
}
disable() {
(0, n2.unregisterGlobal)(l, c.DiagAPI.instance());
}
_getGlobalPropagator() {
return (0, n2.getGlobal)(l) || d;
}
}
t3.PropagationAPI = u;
}, 997: (e2, t3, r2) => {
Object.defineProperty(t3, "__esModule", { value: true }), t3.TraceAPI = void 0;
let n2 = r2(172), a2 = r2(846), i2 = r2(139), o = r2(607), s = r2(930), c = "trace";
class l {
constructor() {
this._proxyTracerProvider = new a2.ProxyTracerProvider(), this.wrapSpanContext = i2.wrapSpanContext, this.isSpanContextValid = i2.isSpanContextValid, this.deleteSpan = o.deleteSpan, this.getSpan = o.getSpan, this.getActiveSpan = o.getActiveSpan, this.getSpanContext = o.getSpanContext, this.setSpan = o.setSpan, this.setSpanContext = o.setSpanContext;
}
static getInstance() {
return this._instance || (this._instance = new l()), this._instance;
}
setGlobalTracerProvider(e3) {
let t4 = (0, n2.registerGlobal)(c, this._proxyTracerProvider, s.DiagAPI.instance());
return t4 && this._proxyTracerProvider.setDelegate(e3), t4;
}
getTracerProvider() {
return (0, n2.getGlobal)(c) || this._proxyTracerProvider;
}
getTracer(e3, t4) {
return this.getTracerProvider().getTracer(e3, t4);
}
disable() {
(0, n2.unregisterGlobal)(c, s.DiagAPI.instance()), this._proxyTracerProvider = new a2.ProxyTracerProvider();
}
}
t3.TraceAPI = l;
}, 277: (e2, t3, r2) => {
Object.defineProperty(t3, "__esModule", { value: true }), t3.deleteBaggage = t3.setBaggage = t3.getActiveBaggage = t3.getBaggage = void 0;
let n2 = r2(491), a2 = (0, r2(780).createContextKey)("OpenTelemetry Baggage Key");
function i2(e3) {
return e3.getValue(a2) || void 0;
}
t3.getBaggage = i2, t3.getActiveBaggage = function() {
return i2(n2.ContextAPI.getInstance().active());
}, t3.setBaggage = function(e3, t4) {
return e3.setValue(a2, t4);
}, t3.deleteBaggage = function(e3) {
return e3.deleteValue(a2);
};
}, 993: (e2, t3) => {
Object.defineProperty(t3, "__esModule", { value: true }), t3.BaggageImpl = void 0;
class r2 {
constructor(e3) {
this._entries = e3 ? new Map(e3) : /* @__PURE__ */ new Map();
}
getEntry(e3) {
let t4 = this._entries.get(e3);
if (t4) return Object.assign({}, t4);
}
getAllEntries() {
return Array.from(this._entries.entries()).map(([e3, t4]) => [e3, t4]);
}
setEntry(e3, t4) {
let n2 = new r2(this._entries);
return n2._entries.set(e3, t4), n2;
}
removeEntry(e3) {
let t4 = new r2(this._entries);
return t4._entries.delete(e3), t4;
}
removeEntries(...e3) {
let t4 = new r2(this._entries);
for (let r3 of e3) t4._entries.delete(r3);
return t4;
}
clear() {
return new r2();
}
}
t3.BaggageImpl = r2;
}, 830: (e2, t3) => {
Object.defineProperty(t3, "__esModule", { value: true }), t3.baggageEntryMetadataSymbol = void 0, t3.baggageEntryMetadataSymbol = Symbol("BaggageEntryMetadata");
}, 369: (e2, t3, r2) => {
Object.defineProperty(t3, "__esModule", { value: true }), t3.baggageEntryMetadataFromString = t3.createBaggage = void 0;
let n2 = r2(930), a2 = r2(993), i2 = r2(830), o = n2.DiagAPI.instance();
t3.createBaggage = function(e3 = {}) {
return new a2.BaggageImpl(new Map(Object.entries(e3)));
}, t3.baggageEntryMetadataFromString = function(e3) {
return "string" != typeof e3 && (o.error(`Cannot create baggage metadata from unknown type: ${typeof e3}`), e3 = ""), { __TYPE__: i2.baggageEntryMetadataSymbol, toString: () => e3 };
};
}, 67: (e2, t3, r2) => {
Object.defineProperty(t3, "__esModule", { value: true }), t3.context = void 0;
let n2 = r2(491);
t3.context = n2.ContextAPI.getInstance();
}, 223: (e2, t3, r2) => {
Object.defineProperty(t3, "__esModule", { value: true }), t3.NoopContextManager = void 0;
let n2 = r2(780);
class a2 {
active() {
return n2.ROOT_CONTEXT;
}
with(e3, t4, r3, ...n3) {
return t4.call(r3, ...n3);
}
bind(e3, t4) {
return t4;
}
enable() {
return this;
}
disable() {
return this;
}
}
t3.NoopContextManager = a2;
}, 780: (e2, t3) => {
Object.defineProperty(t3, "__esModule", { value: true }), t3.ROOT_CONTEXT = t3.createContextKey = void 0, t3.createContextKey = function(e3) {
return Symbol.for(e3);
};
class r2 {
constructor(e3) {
let t4 = this;
t4._currentContext = e3 ? new Map(e3) : /* @__PURE__ */ new Map(), t4.getValue = (e4) => t4._currentContext.get(e4), t4.setValue = (e4, n2) => {
let a2 = new r2(t4._currentContext);
return a2._currentContext.set(e4, n2), a2;
}, t4.deleteValue = (e4) => {
let n2 = new r2(t4._currentContext);
return n2._currentContext.delete(e4), n2;
};
}
}
t3.ROOT_CONTEXT = new r2();
}, 506: (e2, t3, r2) => {
Object.defineProperty(t3, "__esModule", { value: true }), t3.diag = void 0;
let n2 = r2(930);
t3.diag = n2.DiagAPI.instance();
}, 56: (e2, t3, r2) => {
Object.defineProperty(t3, "__esModule", { value: true }), t3.DiagComponentLogger = void 0;
let n2 = r2(172);
class a2 {
constructor(e3) {
this._namespace = e3.namespace || "DiagComponentLogger";
}
debug(...e3) {
return i2("debug", this._namespace, e3);
}
error(...e3) {
return i2("error", this._namespace, e3);
}
info(...e3) {
return i2("info", this._namespace, e3);
}
warn(...e3) {
return i2("warn", this._namespace, e3);
}
verbose(...e3) {
return i2("verbose", this._namespace, e3);
}
}
function i2(e3, t4, r3) {
let a3 = (0, n2.getGlobal)("diag");
if (a3) return r3.unshift(t4), a3[e3](...r3);
}
t3.DiagComponentLogger = a2;
}, 972: (e2, t3) => {
Object.defineProperty(t3, "__esModule", { value: true }), t3.DiagConsoleLogger = void 0;
let r2 = [{ n: "error", c: "error" }, { n: "warn", c: "warn" }, { n: "info", c: "info" }, { n: "debug", c: "debug" }, { n: "verbose", c: "trace" }];
class n2 {
constructor() {
for (let e3 = 0; e3 < r2.length; e3++) this[r2[e3].n] = /* @__PURE__ */ function(e4) {
return function(...t4) {
if (console) {
let r3 = console[e4];
if ("function" != typeof r3 && (r3 = console.log), "function" == typeof r3) return r3.apply(console, t4);
}
};
}(r2[e3].c);
}
}
t3.DiagConsoleLogger = n2;
}, 912: (e2, t3, r2) => {
Object.defineProperty(t3, "__esModule", { value: true }), t3.createLogLevelDiagLogger = void 0;
let n2 = r2(957);
t3.createLogLevelDiagLogger = function(e3, t4) {
function r3(r4, n3) {
let a2 = t4[r4];
return "function" == typeof a2 && e3 >= n3 ? a2.bind(t4) : function() {
};
}
return e3 < n2.DiagLogLevel.NONE ? e3 = n2.DiagLogLevel.NONE : e3 > n2.DiagLogLevel.ALL && (e3 = n2.DiagLogLevel.ALL), t4 = t4 || {}, { error: r3("error", n2.DiagLogLevel.ERROR), warn: r3("warn", n2.DiagLogLevel.WARN), info: r3("info", n2.DiagLogLevel.INFO), debug: r3("debug", n2.DiagLogLevel.DEBUG), verbose: r3("verbose", n2.DiagLogLevel.VERBOSE) };
};
}, 957: (e2, t3) => {
Object.defineProperty(t3, "__esModule", { value: true }), t3.DiagLogLevel = void 0, function(e3) {
e3[e3.NONE = 0] = "NONE", e3[e3.ERROR = 30] = "ERROR", e3[e3.WARN = 50] = "WARN", e3[e3.INFO = 60] = "INFO", e3[e3.DEBUG = 70] = "DEBUG", e3[e3.VERBOSE = 80] = "VERBOSE", e3[e3.ALL = 9999] = "ALL";
}(t3.DiagLogLevel || (t3.DiagLogLevel = {}));
}, 172: (e2, t3, r2) => {
Object.defineProperty(t3, "__esModule", { value: true }), t3.unregisterGlobal = t3.getGlobal = t3.registerGlobal = void 0;
let n2 = r2(200), a2 = r2(521), i2 = r2(130), o = a2.VERSION.split(".")[0], s = Symbol.for(`opentelemetry.js.api.${o}`), c = n2._globalThis;
t3.registerGlobal = function(e3, t4, r3, n3 = false) {
var i3;
let o2 = c[s] = null !== (i3 = c[s]) && void 0 !== i3 ? i3 : { version: a2.VERSION };
if (!n3 && o2[e3]) {
let t5 = Error(`@opentelemetry/api: Attempted duplicate registration of API: ${e3}`);
return r3.error(t5.stack || t5.message), false;
}
if (o2.version !== a2.VERSION) {
let t5 = Error(`@opentelemetry/api: Registration of version v${o2.version} for ${e3} does not match previously registered API v${a2.VERSION}`);
return r3.error(t5.stack || t5.message), false;
}
return o2[e3] = t4, r3.debug(`@opentelemetry/api: Registered a global for ${e3} v${a2.VERSION}.`), true;
}, t3.getGlobal = function(e3) {
var t4, r3;
let n3 = null === (t4 = c[s]) || void 0 === t4 ? void 0 : t4.version;
if (n3 && (0, i2.isCompatible)(n3)) return null === (r3 = c[s]) || void 0 === r3 ? void 0 : r3[e3];
}, t3.unregisterGlobal = function(e3, t4) {
t4.debug(`@opentelemetry/api: Unregistering a global for ${e3} v${a2.VERSION}.`);
let r3 = c[s];
r3 && delete r3[e3];
};
}, 130: (e2, t3, r2) => {
Object.defineProperty(t3, "__esModule", { value: true }), t3.isCompatible = t3._makeCompatibilityCheck = void 0;
let n2 = r2(521), a2 = /^(\d+)\.(\d+)\.(\d+)(-(.+))?$/;
function i2(e3) {
let t4 = /* @__PURE__ */ new Set([e3]), r3 = /* @__PURE__ */ new Set(), n3 = e3.match(a2);
if (!n3) return () => false;
let i3 = { major: +n3[1], minor: +n3[2], patch: +n3[3], prerelease: n3[4] };
if (null != i3.prerelease) return function(t5) {
return t5 === e3;
};
function o(e4) {
return r3.add(e4), false;
}
return function(e4) {
if (t4.has(e4)) return true;
if (r3.has(e4)) return false;
let n4 = e4.match(a2);
if (!n4) return o(e4);
let s = { major: +n4[1], minor: +n4[2], patch: +n4[3], prerelease: n4[4] };
return null != s.prerelease || i3.major !== s.major ? o(e4) : 0 === i3.major ? i3.minor === s.minor && i3.patch <= s.patch ? (t4.add(e4), true) : o(e4) : i3.minor <= s.minor ? (t4.add(e4), true) : o(e4);
};
}
t3._makeCompatibilityCheck = i2, t3.isCompatible = i2(n2.VERSION);
}, 886: (e2, t3, r2) => {
Object.defineProperty(t3, "__esModule", { value: true }), t3.metrics = void 0;
let n2 = r2(653);
t3.metrics = n2.MetricsAPI.getInstance();
}, 901: (e2, t3) => {
Object.defineProperty(t3, "__esModule", { value: true }), t3.ValueType = void 0, function(e3) {
e3[e3.INT = 0] = "INT", e3[e3.DOUBLE = 1] = "DOUBLE";
}(t3.ValueType || (t3.ValueType = {}));
}, 102: (e2, t3) => {
Object.defineProperty(t3, "__esModule", { value: true }), t3.createNoopMeter = t3.NOOP_OBSERVABLE_UP_DOWN_COUNTER_METRIC = t3.NOOP_OBSERVABLE_GAUGE_METRIC = t3.NOOP_OBSERVABLE_COUNTER_METRIC = t3.NOOP_UP_DOWN_COUNTER_METRIC = t3.NOOP_HISTOGRAM_METRIC = t3.NOOP_COUNTER_METRIC = t3.NOOP_METER = t3.NoopObservableUpDownCounterMetric = t3.NoopObservableGaugeMetric = t3.NoopObservableCounterMetric = t3.NoopObservableMetric = t3.NoopHistogramMetric = t3.NoopUpDownCounterMetric = t3.NoopCounterMetric = t3.NoopMetric = t3.NoopMeter = void 0;
class r2 {
constructor() {
}
createHistogram(e3, r3) {
return t3.NOOP_HISTOGRAM_METRIC;
}
createCounter(e3, r3) {
return t3.NOOP_COUNTER_METRIC;
}
createUpDownCounter(e3, r3) {
return t3.NOOP_UP_DOWN_COUNTER_METRIC;
}
createObservableGauge(e3, r3) {
return t3.NOOP_OBSERVABLE_GAUGE_METRIC;
}
createObservableCounter(e3, r3) {
return t3.NOOP_OBSERVABLE_COUNTER_METRIC;
}
createObservableUpDownCounter(e3, r3) {
return t3.NOOP_OBSERVABLE_UP_DOWN_COUNTER_METRIC;
}
addBatchObservableCallback(e3, t4) {
}
removeBatchObservableCallback(e3) {
}
}
t3.NoopMeter = r2;
class n2 {
}
t3.NoopMetric = n2;
class a2 extends n2 {
add(e3, t4) {
}
}
t3.NoopCounterMetric = a2;
class i2 extends n2 {
add(e3, t4) {
}
}
t3.NoopUpDownCounterMetric = i2;
class o extends n2 {
record(e3, t4) {
}
}
t3.NoopHistogramMetric = o;
class s {
addCallback(e3) {
}
removeCallback(e3) {
}
}
t3.NoopObservableMetric = s;
class c extends s {
}
t3.NoopObservableCounterMetric = c;
class l extends s {
}
t3.NoopObservableGaugeMetric = l;
class d extends s {
}
t3.NoopObservableUpDownCounterMetric = d, t3.NOOP_METER = new r2(), t3.NOOP_COUNTER_METRIC = new a2(), t3.NOOP_HISTOGRAM_METRIC = new o(), t3.NOOP_UP_DOWN_COUNTER_METRIC = new i2(), t3.NOOP_OBSERVABLE_COUNTER_METRIC = new c(), t3.NOOP_OBSERVABLE_GAUGE_METRIC = new l(), t3.NOOP_OBSERVABLE_UP_DOWN_COUNTER_METRIC = new d(), t3.createNoopMeter = function() {
return t3.NOOP_METER;
};
}, 660: (e2, t3, r2) => {
Object.defineProperty(t3, "__esModule", { value: true }), t3.NOOP_METER_PROVIDER = t3.NoopMeterProvider = void 0;
let n2 = r2(102);
class a2 {
getMeter(e3, t4, r3) {
return n2.NOOP_METER;
}
}
t3.NoopMeterProvider = a2, t3.NOOP_METER_PROVIDER = new a2();
}, 200: function(e2, t3, r2) {
var n2 = this && this.__createBinding || (Object.create ? function(e3, t4, r3, n3) {
void 0 === n3 && (n3 = r3), Object.defineProperty(e3, n3, { enumerable: true, get: function() {
return t4[r3];
} });
} : function(e3, t4, r3, n3) {
void 0 === n3 && (n3 = r3), e3[n3] = t4[r3];
}), a2 = this && this.__exportStar || function(e3, t4) {
for (var r3 in e3) "default" === r3 || Object.prototype.hasOwnProperty.call(t4, r3) || n2(t4, e3, r3);
};
Object.defineProperty(t3, "__esModule", { value: true }), a2(r2(46), t3);
}, 651: (e2, t3) => {
Object.defineProperty(t3, "__esModule", { value: true }), t3._globalThis = void 0, t3._globalThis = "object" == typeof globalThis ? globalThis : r.g;
}, 46: function(e2, t3, r2) {
var n2 = this && this.__createBinding || (Object.create ? function(e3, t4, r3, n3) {
void 0 === n3 && (n3 = r3), Object.defineProperty(e3, n3, { enumerable: true, get: function() {
return t4[r3];
} });
} : function(e3, t4, r3, n3) {
void 0 === n3 && (n3 = r3), e3[n3] = t4[r3];
}), a2 = this && this.__exportStar || function(e3, t4) {
for (var r3 in e3) "default" === r3 || Object.prototype.hasOwnProperty.call(t4, r3) || n2(t4, e3, r3);
};
Object.defineProperty(t3, "__esModule", { value: true }), a2(r2(651), t3);
}, 939: (e2, t3, r2) => {
Object.defineProperty(t3, "__esModule", { value: true }), t3.propagation = void 0;
let n2 = r2(181);
t3.propagation = n2.PropagationAPI.getInstance();
}, 874: (e2, t3) => {
Object.defineProperty(t3, "__esModule", { value: true }), t3.NoopTextMapPropagator = void 0;
class r2 {
inject(e3, t4) {
}
extract(e3, t4) {
return e3;
}
fields() {
return [];
}
}
t3.NoopTextMapPropagator = r2;
}, 194: (e2, t3) => {
Object.defineProperty(t3, "__esModule", { value: true }), t3.defaultTextMapSetter = t3.defaultTextMapGetter = void 0, t3.defaultTextMapGetter = { get(e3, t4) {
if (null != e3) return e3[t4];
}, keys: (e3) => null == e3 ? [] : Object.keys(e3) }, t3.defaultTextMapSetter = { set(e3, t4, r2) {
null != e3 && (e3[t4] = r2);
} };
}, 845: (e2, t3, r2) => {
Object.defineProperty(t3, "__esModule", { value: true }), t3.trace = void 0;
let n2 = r2(997);
t3.trace = n2.TraceAPI.getInstance();
}, 403: (e2, t3, r2) => {
Object.defineProperty(t3, "__esModule", { value: true }), t3.NonRecordingSpan = void 0;
let n2 = r2(476);
class a2 {
constructor(e3 = n2.INVALID_SPAN_CONTEXT) {
this._spanContext = e3;
}
spanContext() {
return this._spanContext;
}
setAttribute(e3, t4) {
return this;
}
setAttributes(e3) {
return this;
}
addEvent(e3, t4) {
return this;
}
setStatus(e3) {
return this;
}
updateName(e3) {
return this;
}
end(e3) {
}
isRecording() {
return false;
}
recordException(e3, t4) {
}
}
t3.NonRecordingSpan = a2;
}, 614: (e2, t3, r2) => {
Object.defineProperty(t3, "__esModule", { value: true }), t3.NoopTracer = void 0;
let n2 = r2(491), a2 = r2(607), i2 = r2(403), o = r2(139), s = n2.ContextAPI.getInstance();
class c {
startSpan(e3, t4, r3 = s.active()) {
if (null == t4 ? void 0 : t4.root) return new i2.NonRecordingSpan();
let n3 = r3 && (0, a2.getSpanContext)(r3);
return "object" == typeof n3 && "string" == typeof n3.spanId && "string" == typeof n3.traceId && "number" == typeof n3.traceFlags && (0, o.isSpanContextValid)(n3) ? new i2.NonRecordingSpan(n3) : new i2.NonRecordingSpan();
}
startActiveSpan(e3, t4, r3, n3) {
let i3, o2, c2;
if (arguments.length < 2) return;
2 == arguments.length ? c2 = t4 : 3 == arguments.length ? (i3 = t4, c2 = r3) : (i3 = t4, o2 = r3, c2 = n3);
let l = null != o2 ? o2 : s.active(), d = this.startSpan(e3, i3, l), u = (0, a2.setSpan)(l, d);
return s.with(u, c2, void 0, d);
}
}
t3.NoopTracer = c;
}, 124: (e2, t3, r2) => {
Object.defineProperty(t3, "__esModule", { value: true }), t3.NoopTracerProvider = void 0;
let n2 = r2(614);
class a2 {
getTracer(e3, t4, r3) {
return new n2.NoopTracer();
}
}
t3.NoopTracerProvider = a2;
}, 125: (e2, t3, r2) => {
Object.defineProperty(t3, "__esModule", { value: true }), t3.ProxyTracer = void 0;
let n2 = new (r2(614)).NoopTracer();
class a2 {
constructor(e3, t4, r3, n3) {
this._provider = e3, this.name = t4, this.version = r3, this.options = n3;
}
startSpan(e3, t4, r3) {
return this._getTracer().startSpan(e3, t4, r3);
}
startActiveSpan(e3, t4, r3, n3) {
let a3 = this._getTracer();
return Reflect.apply(a3.startActiveSpan, a3, arguments);
}
_getTracer() {
if (this._delegate) return this._delegate;
let e3 = this._provider.getDelegateTracer(this.name, this.version, this.options);
return e3 ? (this._delegate = e3, this._delegate) : n2;
}
}
t3.ProxyTracer = a2;
}, 846: (e2, t3, r2) => {
Object.defineProperty(t3, "__esModule", { value: true }), t3.ProxyTracerProvider = void 0;
let n2 = r2(125), a2 = new (r2(124)).NoopTracerProvider();
class i2 {
getTracer(e3, t4, r3) {
var a3;
return null !== (a3 = this.getDelegateTracer(e3, t4, r3)) && void 0 !== a3 ? a3 : new n2.ProxyTracer(this, e3, t4, r3);
}
getDelegate() {
var e3;
return null !== (e3 = this._delegate) && void 0 !== e3 ? e3 : a2;
}
setDelegate(e3) {
this._delegate = e3;
}
getDelegateTracer(e3, t4, r3) {
var n3;
return null === (n3 = this._delegate) || void 0 === n3 ? void 0 : n3.getTracer(e3, t4, r3);
}
}
t3.ProxyTracerProvider = i2;
}, 996: (e2, t3) => {
Object.defineProperty(t3, "__esModule", { value: true }), t3.SamplingDecision = void 0, function(e3) {
e3[e3.NOT_RECORD = 0] = "NOT_RECORD", e3[e3.RECORD = 1] = "RECORD", e3[e3.RECORD_AND_SAMPLED = 2] = "RECORD_AND_SAMPLED";
}(t3.SamplingDecision || (t3.SamplingDecision = {}));
}, 607: (e2, t3, r2) => {
Object.defineProperty(t3, "__esModule", { value: true }), t3.getSpanContext = t3.setSpanContext = t3.deleteSpan = t3.setSpan = t3.getActiveSpan = t3.getSpan = void 0;
let n2 = r2(780), a2 = r2(403), i2 = r2(491), o = (0, n2.createContextKey)("OpenTelemetry Context Key SPAN");
function s(e3) {
return e3.getValue(o) || void 0;
}
function c(e3, t4) {
return e3.setValue(o, t4);
}
t3.getSpan = s, t3.getActiveSpan = function() {
return s(i2.ContextAPI.getInstance().active());
}, t3.setSpan = c, t3.deleteSpan = function(e3) {
return e3.deleteValue(o);
}, t3.setSpanContext = function(e3, t4) {
return c(e3, new a2.NonRecordingSpan(t4));
}, t3.getSpanContext = function(e3) {
var t4;
return null === (t4 = s(e3)) || void 0 === t4 ? void 0 : t4.spanContext();
};
}, 325: (e2, t3, r2) => {
Object.defineProperty(t3, "__esModule", { value: true }), t3.TraceStateImpl = void 0;
let n2 = r2(564);
class a2 {
constructor(e3) {
this._internalState = /* @__PURE__ */ new Map(), e3 && this._parse(e3);
}
set(e3, t4) {
let r3 = this._clone();
return r3._internalState.has(e3) && r3._internalState.delete(e3), r3._internalState.set(e3, t4), r3;
}
unset(e3) {
let t4 = this._clone();
return t4._internalState.delete(e3), t4;
}
get(e3) {
return this._internalState.get(e3);
}
serialize() {
return this._keys().reduce((e3, t4) => (e3.push(t4 + "=" + this.get(t4)), e3), []).join(",");
}
_parse(e3) {
!(e3.length > 512) && (this._internalState = e3.split(",").reverse().reduce((e4, t4) => {
let r3 = t4.trim(), a3 = r3.indexOf("=");
if (-1 !== a3) {
let i2 = r3.slice(0, a3), o = r3.slice(a3 + 1, t4.length);
(0, n2.validateKey)(i2) && (0, n2.validateValue)(o) && e4.set(i2, o);
}
return e4;
}, /* @__PURE__ */ new Map()), this._internalState.size > 32 && (this._internalState = new Map(Array.from(this._internalState.entries()).reverse().slice(0, 32))));
}
_keys() {
return Array.from(this._internalState.keys()).reverse();
}
_clone() {
let e3 = new a2();
return e3._internalState = new Map(this._internalState), e3;
}
}
t3.TraceStateImpl = a2;
}, 564: (e2, t3) => {
Object.defineProperty(t3, "__esModule", { value: true }), t3.validateValue = t3.validateKey = void 0;
let r2 = "[_0-9a-z-*/]", n2 = `[a-z]${r2}{0,255}`, a2 = `[a-z0-9]${r2}{0,240}@[a-z]${r2}{0,13}`, i2 = RegExp(`^(?:${n2}|${a2})$`), o = /^[ -~]{0,255}[!-~]$/, s = /,|=/;
t3.validateKey = function(e3) {
return i2.test(e3);
}, t3.validateValue = function(e3) {
return o.test(e3) && !s.test(e3);
};
}, 98: (e2, t3, r2) => {
Object.defineProperty(t3, "__esModule", { value: true }), t3.createTraceState = void 0;
let n2 = r2(325);
t3.createTraceState = function(e3) {
return new n2.TraceStateImpl(e3);
};
}, 476: (e2, t3, r2) => {
Object.defineProperty(t3, "__esModule", { value: true }), t3.INVALID_SPAN_CONTEXT = t3.INVALID_TRACEID = t3.INVALID_SPANID = void 0;
let n2 = r2(475);
t3.INVALID_SPANID = "0000000000000000", t3.INVALID_TRACEID = "00000000000000000000000000000000", t3.INVALID_SPAN_CONTEXT = { traceId: t3.INVALID_TRACEID, spanId: t3.INVALID_SPANID, traceFlags: n2.TraceFlags.NONE };
}, 357: (e2, t3) => {
Object.defineProperty(t3, "__esModule", { value: true }), t3.SpanKind = void 0, function(e3) {
e3[e3.INTERNAL = 0] = "INTERNAL", e3[e3.SERVER = 1] = "SERVER", e3[e3.CLIENT = 2] = "CLIENT", e3[e3.PRODUCER = 3] = "PRODUCER", e3[e3.CONSUMER = 4] = "CONSUMER";
}(t3.SpanKind || (t3.SpanKind = {}));
}, 139: (e2, t3, r2) => {
Object.defineProperty(t3, "__esModule", { value: true }), t3.wrapSpanContext = t3.isSpanContextValid = t3.isValidSpanId = t3.isValidTraceId = void 0;
let n2 = r2(476), a2 = r2(403), i2 = /^([0-9a-f]{32})$/i, o = /^[0-9a-f]{16}$/i;
function s(e3) {
return i2.test(e3) && e3 !== n2.INVALID_TRACEID;
}
function c(e3) {
return o.test(e3) && e3 !== n2.INVALID_SPANID;
}
t3.isValidTraceId = s, t3.isValidSpanId = c, t3.isSpanContextValid = function(e3) {
return s(e3.traceId) && c(e3.spanId);
}, t3.wrapSpanContext = function(e3) {
return new a2.NonRecordingSpan(e3);
};
}, 847: (e2, t3) => {
Object.defineProperty(t3, "__esModule", { value: true }), t3.SpanStatusCode = void 0, function(e3) {
e3[e3.UNSET = 0] = "UNSET", e3[e3.OK = 1] = "OK", e3[e3.ERROR = 2] = "ERROR";
}(t3.SpanStatusCode || (t3.SpanStatusCode = {}));
}, 475: (e2, t3) => {
Object.defineProperty(t3, "__esModule", { value: true }), t3.TraceFlags = void 0, function(e3) {
e3[e3.NONE = 0] = "NONE", e3[e3.SAMPLED = 1] = "SAMPLED";
}(t3.TraceFlags || (t3.TraceFlags = {}));
}, 521: (e2, t3) => {
Object.defineProperty(t3, "__esModule", { value: true }), t3.VERSION = void 0, t3.VERSION = "1.6.0";
} }, n = {};
function a(e2) {
var r2 = n[e2];
if (void 0 !== r2) return r2.exports;
var i2 = n[e2] = { exports: {} }, o = true;
try {
t2[e2].call(i2.exports, i2, i2.exports, a), o = false;
} finally {
o && delete n[e2];
}
return i2.exports;
}
a.ab = "//";
var i = {};
(() => {
Object.defineProperty(i, "__esModule", { value: true }), i.trace = i.propagation = i.metrics = i.diag = i.context = i.INVALID_SPAN_CONTEXT = i.INVALID_TRACEID = i.INVALID_SPANID = i.isValidSpanId = i.isValidTraceId = i.isSpanContextValid = i.createTraceState = i.TraceFlags = i.SpanStatusCode = i.SpanKind = i.SamplingDecision = i.ProxyTracerProvider = i.ProxyTracer = i.defaultTextMapSetter = i.defaultTextMapGetter = i.ValueType = i.createNoopMeter = i.DiagLogLevel = i.DiagConsoleLogger = i.ROOT_CONTEXT = i.createContextKey = i.baggageEntryMetadataFromString = void 0;
var e2 = a(369);
Object.defineProperty(i, "baggageEntryMetadataFromString", { enumerable: true, get: function() {
return e2.baggageEntryMetadataFromString;
} });
var t3 = a(780);
Object.defineProperty(i, "createContextKey", { enumerable: true, get: function() {
return t3.createContextKey;
} }), Object.defineProperty(i, "ROOT_CONTEXT", { enumerable: true, get: function() {
return t3.ROOT_CONTEXT;
} });
var r2 = a(972);
Object.defineProperty(i, "DiagConsoleLogger", { enumerable: true, get: function() {
return r2.DiagConsoleLogger;
} });
var n2 = a(957);
Object.defineProperty(i, "DiagLogLevel", { enumerable: true, get: function() {
return n2.DiagLogLevel;
} });
var o = a(102);
Object.defineProperty(i, "createNoopMeter", { enumerable: true, get: function() {
return o.createNoopMeter;
} });
var s = a(901);
Object.defineProperty(i, "ValueType", { enumerable: true, get: function() {
return s.ValueType;
} });
var c = a(194);
Object.defineProperty(i, "defaultTextMapGetter", { enumerable: true, get: function() {
return c.defaultTextMapGetter;
} }), Object.defineProperty(i, "defaultTextMapSetter", { enumerable: true, get: function() {
return c.defaultTextMapSetter;
} });
var l = a(125);
Object.defineProperty(i, "ProxyTracer", { enumerable: true, get: function() {
return l.ProxyTracer;
} });
var d = a(846);
Object.defineProperty(i, "ProxyTracerProvider", { enumerable: true, get: function() {
return d.ProxyTracerProvider;
} });
var u = a(996);
Object.defineProperty(i, "SamplingDecision", { enumerable: true, get: function() {
return u.SamplingDecision;
} });
var p = a(357);
Object.defineProperty(i, "SpanKind", { enumerable: true, get: function() {
return p.SpanKind;
} });
var h = a(847);
Object.defineProperty(i, "SpanStatusCode", { enumerable: true, get: function() {
return h.SpanStatusCode;
} });
var f = a(475);
Object.defineProperty(i, "TraceFlags", { enumerable: true, get: function() {
return f.TraceFlags;
} });
var g = a(98);
Object.defineProperty(i, "createTraceState", { enumerable: true, get: function() {
return g.createTraceState;
} });
var y = a(139);
Object.defineProperty(i, "isSpanContextValid", { enumerable: true, get: function() {
return y.isSpanContextValid;
} }), Object.defineProperty(i, "isValidTraceId", { enumerable: true, get: function() {
return y.isValidTraceId;
} }), Object.defineProperty(i, "isValidSpanId", { enumerable: true, get: function() {
return y.isValidSpanId;
} });
var w = a(476);
Object.defineProperty(i, "INVALID_SPANID", { enumerable: true, get: function() {
return w.INVALID_SPANID;
} }), Object.defineProperty(i, "INVALID_TRACEID", { enumerable: true, get: function() {
return w.INVALID_TRACEID;
} }), Object.defineProperty(i, "INVALID_SPAN_CONTEXT", { enumerable: true, get: function() {
return w.INVALID_SPAN_CONTEXT;
} });
let m = a(67);
Object.defineProperty(i, "context", { enumerable: true, get: function() {
return m.context;
} });
let b = a(506);
Object.defineProperty(i, "diag", { enumerable: true, get: function() {
return b.diag;
} });
let v = a(886);
Object.defineProperty(i, "metrics", { enumerable: true, get: function() {
return v.metrics;
} });
let S = a(939);
Object.defineProperty(i, "propagation", { enumerable: true, get: function() {
return S.propagation;
} });
let E = a(845);
Object.defineProperty(i, "trace", { enumerable: true, get: function() {
return E.trace;
} }), i.default = { context: m.context, diag: b.diag, metrics: v.metrics, propagation: S.propagation, trace: E.trace };
})(), e.exports = i;
})();
}, 133: (e) => {
(() => {
"use strict";
"undefined" != typeof __nccwpck_require__ && (__nccwpck_require__.ab = "//");
var t = {};
(() => {
t.parse = function(t2, r2) {
if ("string" != typeof t2) throw TypeError("argument str must be a string");
for (var a2 = {}, i = t2.split(n), o = (r2 || {}).decode || e2, s = 0; s < i.length; s++) {
var c = i[s], l = c.indexOf("=");
if (!(l < 0)) {
var d = c.substr(0, l).trim(), u = c.substr(++l, c.length).trim();
'"' == u[0] && (u = u.slice(1, -1)), void 0 == a2[d] && (a2[d] = function(e3, t3) {
try {
return t3(e3);
} catch (t4) {
return e3;
}
}(u, o));
}
}
return a2;
}, t.serialize = function(e3, t2, n2) {
var i = n2 || {}, o = i.encode || r;
if ("function" != typeof o) throw TypeError("option encode is invalid");
if (!a.test(e3)) throw TypeError("argument name is invalid");
var s = o(t2);
if (s && !a.test(s)) throw TypeError("argument val is invalid");
var c = e3 + "=" + s;
if (null != i.maxAge) {
var l = i.maxAge - 0;
if (isNaN(l) || !isFinite(l)) throw TypeError("option maxAge is invalid");
c += "; Max-Age=" + Math.floor(l);
}
if (i.domain) {
if (!a.test(i.domain)) throw TypeError("option domain is invalid");
c += "; Domain=" + i.domain;
}
if (i.path) {
if (!a.test(i.path)) throw TypeError("option path is invalid");
c += "; Path=" + i.path;
}
if (i.expires) {
if ("function" != typeof i.expires.toUTCString) throw TypeError("option expires is invalid");
c += "; Expires=" + i.expires.toUTCString();
}
if (i.httpOnly && (c += "; HttpOnly"), i.secure && (c += "; Secure"), i.sameSite) switch ("string" == typeof i.sameSite ? i.sameSite.toLowerCase() : i.sameSite) {
case true:
case "strict":
c += "; SameSite=Strict";
break;
case "lax":
c += "; SameSite=Lax";
break;
case "none":
c += "; SameSite=None";
break;
default:
throw TypeError("option sameSite is invalid");
}
return c;
};
var e2 = decodeURIComponent, r = encodeURIComponent, n = /; */, a = /^[\u0009\u0020-\u007e\u0080-\u00ff]+$/;
})(), e.exports = t;
})();
}, 340: (e, t, r) => {
var n;
(() => {
var a = { 226: function(a2, i2) {
!function(o2, s2) {
"use strict";
var c = "function", l = "undefined", d = "object", u = "string", p = "major", h = "model", f = "name", g = "type", y = "vendor", w = "version", m = "architecture", b = "console", v = "mobile", S = "tablet", E = "smarttv", _ = "wearable", A = "embedded", P = "Amazon", C = "Apple", x = "ASUS", R = "BlackBerry", T = "Browser", O = "Chrome", k = "Firefox", I = "Google", N = "Huawei", H = "Microsoft", M = "Motorola", D = "Opera", U = "Samsung", W = "Sharp", L = "Sony", K = "Xiaomi", j = "Zebra", J = "Facebook", B = "Chromium OS", $ = "Mac OS", V = function(e2, t2) {
var r2 = {};
for (var n2 in e2) t2[n2] && t2[n2].length % 2 == 0 ? r2[n2] = t2[n2].concat(e2[n2]) : r2[n2] = e2[n2];
return r2;
}, G = function(e2) {
for (var t2 = {}, r2 = 0; r2 < e2.length; r2++) t2[e2[r2].toUpperCase()] = e2[r2];
return t2;
}, q = function(e2, t2) {
return typeof e2 === u && -1 !== F(t2).indexOf(F(e2));
}, F = function(e2) {
return e2.toLowerCase();
}, z = function(e2, t2) {
if (typeof e2 === u) return e2 = e2.replace(/^\s\s*/, ""), typeof t2 === l ? e2 : e2.substring(0, 350);
}, X = function(e2, t2) {
for (var r2, n2, a3, i3, o3, l2, u2 = 0; u2 < t2.length && !o3; ) {
var p2 = t2[u2], h2 = t2[u2 + 1];
for (r2 = n2 = 0; r2 < p2.length && !o3 && p2[r2]; ) if (o3 = p2[r2++].exec(e2)) for (a3 = 0; a3 < h2.length; a3++) l2 = o3[++n2], typeof (i3 = h2[a3]) === d && i3.length > 0 ? 2 === i3.length ? typeof i3[1] == c ? this[i3[0]] = i3[1].call(this, l2) : this[i3[0]] = i3[1] : 3 === i3.length ? typeof i3[1] !== c || i3[1].exec && i3[1].test ? this[i3[0]] = l2 ? l2.replace(i3[1], i3[2]) : void 0 : this[i3[0]] = l2 ? i3[1].call(this, l2, i3[2]) : void 0 : 4 === i3.length && (this[i3[0]] = l2 ? i3[3].call(this, l2.replace(i3[1], i3[2])) : void 0) : this[i3] = l2 || s2;
u2 += 2;
}
}, Y = function(e2, t2) {
for (var r2 in t2) if (typeof t2[r2] === d && t2[r2].length > 0) {
for (var n2 = 0; n2 < t2[r2].length; n2++) if (q(t2[r2][n2], e2)) return "?" === r2 ? s2 : r2;
} else if (q(t2[r2], e2)) return "?" === r2 ? s2 : r2;
return e2;
}, Z = { ME: "4.90", "NT 3.11": "NT3.51", "NT 4.0": "NT4.0", 2e3: "NT 5.0", XP: ["NT 5.1", "NT 5.2"], Vista: "NT 6.0", 7: "NT 6.1", 8: "NT 6.2", 8.1: "NT 6.3", 10: ["NT 6.4", "NT 10.0"], RT: "ARM" }, Q = { browser: [[/\b(?:crmo|crios)\/([\w\.]+)/i], [w, [f, "Chrome"]], [/edg(?:e|ios|a)?\/([\w\.]+)/i], [w, [f, "Edge"]], [/(opera mini)\/([-\w\.]+)/i, /(opera [mobiletab]{3,6})\b.+version\/([-\w\.]+)/i, /(opera)(?:.+version\/|[\/ ]+)([\w\.]+)/i], [f, w], [/opios[\/ ]+([\w\.]+)/i], [w, [f, D + " Mini"]], [/\bopr\/([\w\.]+)/i], [w, [f, D]], [/(kindle)\/([\w\.]+)/i, /(lunascape|maxthon|netfront|jasmine|blazer)[\/ ]?([\w\.]*)/i, /(avant |iemobile|slim)(?:browser)?[\/ ]?([\w\.]*)/i, /(ba?idubrowser)[\/ ]?([\w\.]+)/i, /(?:ms|\()(ie) ([\w\.]+)/i, /(flock|rockmelt|midori|epiphany|silk|skyfire|bolt|iron|vivaldi|iridium|phantomjs|bowser|quark|qupzilla|falkon|rekonq|puffin|brave|whale(?!.+naver)|qqbrowserlite|qq|duckduckgo)\/([-\w\.]+)/i, /(heytap|ovi)browser\/([\d\.]+)/i, /(weibo)__([\d\.]+)/i], [f, w], [/(?:\buc? ?browser|(?:juc.+)ucweb)[\/ ]?([\w\.]+)/i], [w, [f, "UC" + T]], [/microm.+\bqbcore\/([\w\.]+)/i, /\bqbcore\/([\w\.]+).+microm/i], [w, [f, "WeChat(Win) Desktop"]], [/micromessenger\/([\w\.]+)/i], [w, [f, "WeChat"]], [/konqueror\/([\w\.]+)/i], [w, [f, "Konqueror"]], [/trident.+rv[: ]([\w\.]{1,9})\b.+like gecko/i], [w, [f, "IE"]], [/ya(?:search)?browser\/([\w\.]+)/i], [w, [f, "Yandex"]], [/(avast|avg)\/([\w\.]+)/i], [[f, /(.+)/, "$1 Secure " + T], w], [/\bfocus\/([\w\.]+)/i], [w, [f, k + " Focus"]], [/\bopt\/([\w\.]+)/i], [w, [f, D + " Touch"]], [/coc_coc\w+\/([\w\.]+)/i], [w, [f, "Coc Coc"]], [/dolfin\/([\w\.]+)/i], [w, [f, "Dolphin"]], [/coast\/([\w\.]+)/i], [w, [f, D + " Coast"]], [/miuibrowser\/([\w\.]+)/i], [w, [f, "MIUI " + T]], [/fxios\/([-\w\.]+)/i], [w, [f, k]], [/\bqihu|(qi?ho?o?|360)browser/i], [[f, "360 " + T]], [/(oculus|samsung|sailfish|huawei)browser\/([\w\.]+)/i], [[f, /(.+)/, "$1 " + T], w], [/(comodo_dragon)\/([\w\.]+)/i], [[f, /_/g, " "], w], [/(electron)\/([\w\.]+) safari/i, /(tesla)(?: qtcarbrowser|\/(20\d\d\.[-\w\.]+))/i, /m?(qqbrowser|baiduboxapp|2345Explorer)[\/ ]?([\w\.]+)/i], [f, w], [/(metasr)[\/ ]?([\w\.]+)/i, /(lbbrowser)/i, /\[(linkedin)app\]/i], [f], [/((?:fban\/fbios|fb_iab\/fb4a)(?!.+fbav)|;fbav\/([\w\.]+);)/i], [[f, J], w], [/(kakao(?:talk|story))[\/ ]([\w\.]+)/i, /(naver)\(.*?(\d+\.[\w\.]+).*\)/i, /safari (line)\/([\w\.]+)/i, /\b(line)\/([\w\.]+)\/iab/i, /(chromium|instagram)[\/ ]([-\w\.]+)/i], [f, w], [/\bgsa\/([\w\.]+) .*safari\//i], [w, [f, "GSA"]], [/musical_ly(?:.+app_?version\/|_)([\w\.]+)/i], [w, [f, "TikTok"]], [/headlesschrome(?:\/([\w\.]+)| )/i], [w, [f, O + " Headless"]], [/ wv\).+(chrome)\/([\w\.]+)/i], [[f, O + " WebView"], w], [/droid.+ version\/([\w\.]+)\b.+(?:mobile safari|safari)/i], [w, [f, "Android " + T]], [/(chrome|omniweb|arora|[tizenoka]{5} ?browser)\/v?([\w\.]+)/i], [f, w], [/version\/([\w\.\,]+) .*mobile\/\w+ (safari)/i], [w, [f, "Mobile Safari"]], [/version\/([\w(\.|\,)]+) .*(mobile ?safari|safari)/i], [w, f], [/webkit.+?(mobile ?safari|safari)(\/[\w\.]+)/i], [f, [w, Y, { "1.0": "/8", 1.2: "/1", 1.3: "/3", "2.0": "/412", "2.0.2": "/416", "2.0.3": "/417", "2.0.4": "/419", "?": "/" }]], [/(webkit|khtml)\/([\w\.]+)/i], [f, w], [/(navigator|netscape\d?)\/([-\w\.]+)/i], [[f, "Netscape"], w], [/mobile vr; rv:([\w\.]+)\).+firefox/i], [w, [f, k + " Reality"]], [/ekiohf.+(flow)\/([\w\.]+)/i, /(swiftfox)/i, /(icedragon|iceweasel|camino|chimera|fennec|maemo browser|minimo|conkeror|klar)[\/ ]?([\w\.\+]+)/i, /(seamonkey|k-meleon|icecat|iceape|firebird|phoenix|palemoon|basilisk|waterfox)\/([-\w\.]+)$/i, /(firefox)\/([\w\.]+)/i, /(mozilla)\/([\w\.]+) .+rv\:.+gecko\/\d+/i, /(polaris|lynx|dillo|icab|doris|amaya|w3m|netsurf|sleipnir|obigo|mosaic|(?:go|ice|up)[\. ]?browser)[-\/ ]?v?([\w\.]+)/i, /(links) \(([\w\.]+)/i, /panasonic;(viera)/i], [f, w], [/(cobalt)\/([\w\.]+)/i], [f, [w, /master.|lts./, ""]]], cpu: [[/(?:(amd|x(?:(?:86|64)[-_])?|wow|win)64)[;\)]/i], [[m, "amd64"]], [/(ia32(?=;))/i], [[m, F]], [/((?:i[346]|x)86)[;\)]/i], [[m, "ia32"]], [/\b(aarch64|arm(v?8e?l?|_?64))\b/i], [[m, "arm64"]], [/\b(arm(?:v[67])?ht?n?[fl]p?)\b/i], [[m, "armhf"]], [/windows (ce|mobile); ppc;/i], [[m, "arm"]], [/((?:ppc|powerpc)(?:64)?)(?: mac|;|\))/i], [[m, /ower/, "", F]], [/(sun4\w)[;\)]/i], [[m, "sparc"]], [/((?:avr32|ia64(?=;))|68k(?=\))|\barm(?=v(?:[1-7]|[5-7]1)l?|;|eabi)|(?=atmel )avr|(?:irix|mips|sparc)(?:64)?\b|pa-risc)/i], [[m, F]]], device: [[/\b(sch-i[89]0\d|shw-m380s|sm-[ptx]\w{2,4}|gt-[pn]\d{2,4}|sgh-t8[56]9|nexus 10)/i], [h, [y, U], [g, S]], [/\b((?:s[cgp]h|gt|sm)-\w+|sc[g-]?[\d]+a?|galaxy nexus)/i, /samsung[- ]([-\w]+)/i, /sec-(sgh\w+)/i], [h, [y, U], [g, v]], [/(?:\/|\()(ip(?:hone|od)[\w, ]*)(?:\/|;)/i], [h, [y, C], [g, v]], [/\((ipad);[-\w\),; ]+apple/i, /applecoremedia\/[\w\.]+ \((ipad)/i, /\b(ipad)\d\d?,\d\d?[;\]].+ios/i], [h, [y, C], [g, S]], [/(macintosh);/i], [h, [y, C]], [/\b(sh-?[altvz]?\d\d[a-ekm]?)/i], [h, [y, W], [g, v]], [/\b((?:ag[rs][23]?|bah2?|sht?|btv)-a?[lw]\d{2})\b(?!.+d\/s)/i], [h, [y, N], [g, S]], [/(?:huawei|honor)([-\w ]+)[;\)]/i, /\b(nexus 6p|\w{2,4}e?-[atu]?[ln][\dx][012359c][adn]?)\b(?!.+d\/s)/i], [h, [y, N], [g, v]], [/\b(poco[\w ]+)(?: bui|\))/i, /\b; (\w+) build\/hm\1/i, /\b(hm[-_ ]?note?[_ ]?(?:\d\w)?) bui/i, /\b(redmi[\-_ ]?(?:note|k)?[\w_ ]+)(?: bui|\))/i, /\b(mi[-_ ]?(?:a\d|one|one[_ ]plus|note lte|max|cc)?[_ ]?(?:\d?\w?)[_ ]?(?:plus|se|lite)?)(?: bui|\))/i], [[h, /_/g, " "], [y, K], [g, v]], [/\b(mi[-_ ]?(?:pad)(?:[\w_ ]+))(?: bui|\))/i], [[h, /_/g, " "], [y, K], [g, S]], [/; (\w+) bui.+ oppo/i, /\b(cph[12]\d{3}|p(?:af|c[al]|d\w|e[ar])[mt]\d0|x9007|a101op)\b/i], [h, [y, "OPPO"], [g, v]], [/vivo (\w+)(?: bui|\))/i, /\b(v[12]\d{3}\w?[at])(?: bui|;)/i], [h, [y, "Vivo"], [g, v]], [/\b(rmx[12]\d{3})(?: bui|;|\))/i], [h, [y, "Realme"], [g, v]], [/\b(milestone|droid(?:[2-4x]| (?:bionic|x2|pro|razr))?:?( 4g)?)\b[\w ]+build\//i, /\bmot(?:orola)?[- ](\w*)/i, /((?:moto[\w\(\) ]+|xt\d{3,4}|nexus 6)(?= bui|\)))/i], [h, [y, M], [g, v]], [/\b(mz60\d|xoom[2 ]{0,2}) build\//i], [h, [y, M], [g, S]], [/((?=lg)?[vl]k\-?\d{3}) bui| 3\.[-\w; ]{10}lg?-([06cv9]{3,4})/i], [h, [y, "LG"], [g, S]], [/(lm(?:-?f100[nv]?|-[\w\.]+)(?= bui|\))|nexus [45])/i, /\blg[-e;\/ ]+((?!browser|netcast|android tv)\w+)/i, /\blg-?([\d\w]+) bui/i], [h, [y, "LG"], [g, v]], [/(ideatab[-\w ]+)/i, /lenovo ?(s[56]000[-\w]+|tab(?:[\w ]+)|yt[-\d\w]{6}|tb[-\d\w]{6})/i], [h, [y, "Lenovo"], [g, S]], [/(?:maemo|nokia).*(n900|lumia \d+)/i, /nokia[-_ ]?([-\w\.]*)/i], [[h, /_/g, " "], [y, "Nokia"], [g, v]], [/(pixel c)\b/i], [h, [y, I], [g, S]], [/droid.+; (pixel[\daxl ]{0,6})(?: bui|\))/i], [h, [y, I], [g, v]], [/droid.+ (a?\d[0-2]{2}so|[c-g]\d{4}|so[-gl]\w+|xq-a\w[4-7][12])(?= bui|\).+chrome\/(?![1-6]{0,1}\d\.))/i], [h, [y, L], [g, v]], [/sony tablet [ps]/i, /\b(?:sony)?sgp\w+(?: bui|\))/i], [[h, "Xperia Tablet"], [y, L], [g, S]], [/ (kb2005|in20[12]5|be20[12][59])\b/i, /(?:one)?(?:plus)? (a\d0\d\d)(?: b|\))/i], [h, [y, "OnePlus"], [g, v]], [/(alexa)webm/i, /(kf[a-z]{2}wi|aeo[c-r]{2})( bui|\))/i, /(kf[a-z]+)( bui|\)).+silk\//i], [h, [y, P], [g, S]], [/((?:sd|kf)[0349hijorstuw]+)( bui|\)).+silk\//i], [[h, /(.+)/g, "Fire Phone $1"], [y, P], [g, v]], [/(playbook);[-\w\),; ]+(rim)/i], [h, y, [g, S]], [/\b((?:bb[a-f]|st[hv])100-\d)/i, /\(bb10; (\w+)/i], [h, [y, R], [g, v]], [/(?:\b|asus_)(transfo[prime ]{4,10} \w+|eeepc|slider \w+|nexus 7|padfone|p00[cj])/i], [h, [y, x], [g, S]], [/ (z[bes]6[027][012][km][ls]|zenfone \d\w?)\b/i], [h, [y, x], [g, v]], [/(nexus 9)/i], [h, [y, "HTC"], [g, S]], [/(htc)[-;_ ]{1,2}([\w ]+(?=\)| bui)|\w+)/i, /(zte)[- ]([\w ]+?)(?: bui|\/|\))/i, /(alcatel|geeksphone|nexian|panasonic(?!(?:;|\.))|sony(?!-bra))[-_ ]?([-\w]*)/i], [y, [h, /_/g, " "], [g, v]], [/droid.+; ([ab][1-7]-?[0178a]\d\d?)/i], [h, [y, "Acer"], [g, S]], [/droid.+; (m[1-5] note) bui/i, /\bmz-([-\w]{2,})/i], [h, [y, "Meizu"], [g, v]], [/(blackberry|benq|palm(?=\-)|sonyericsson|acer|asus|dell|meizu|motorola|polytron)[-_ ]?([-\w]*)/i, /(hp) ([\w ]+\w)/i, /(asus)-?(\w+)/i, /(microsoft); (lumia[\w ]+)/i, /(lenovo)[-_ ]?([-\w]+)/i, /(jolla)/i, /(oppo) ?([\w ]+) bui/i], [y, h, [g, v]], [/(kobo)\s(ereader|touch)/i, /(archos) (gamepad2?)/i, /(hp).+(touchpad(?!.+tablet)|tablet)/i, /(kindle)\/([\w\.]+)/i, /(nook)[\w ]+build\/(\w+)/i, /(dell) (strea[kpr\d ]*[\dko])/i, /(le[- ]+pan)[- ]+(\w{1,9}) bui/i, /(trinity)[- ]*(t\d{3}) bui/i, /(gigaset)[- ]+(q\w{1,9}) bui/i, /(vodafone) ([\w ]+)(?:\)| bui)/i], [y, h, [g, S]], [/(surface duo)/i], [h, [y, H], [g, S]], [/droid [\d\.]+; (fp\du?)(?: b|\))/i], [h, [y, "Fairphone"], [g, v]], [/(u304aa)/i], [h, [y, "AT&T"], [g, v]], [/\bsie-(\w*)/i], [h, [y, "Siemens"], [g, v]], [/\b(rct\w+) b/i], [h, [y, "RCA"], [g, S]], [/\b(venue[\d ]{2,7}) b/i], [h, [y, "Dell"], [g, S]], [/\b(q(?:mv|ta)\w+) b/i], [h, [y, "Verizon"], [g, S]], [/\b(?:barnes[& ]+noble |bn[rt])([\w\+ ]*) b/i], [h, [y, "Barnes & Noble"], [g, S]], [/\b(tm\d{3}\w+) b/i], [h, [y, "NuVision"], [g, S]], [/\b(k88) b/i], [h, [y, "ZTE"], [g, S]], [/\b(nx\d{3}j) b/i], [h, [y, "ZTE"], [g, v]], [/\b(gen\d{3}) b.+49h/i], [h, [y, "Swiss"], [g, v]], [/\b(zur\d{3}) b/i], [h, [y, "Swiss"], [g, S]], [/\b((zeki)?tb.*\b) b/i], [h, [y, "Zeki"], [g, S]], [/\b([yr]\d{2}) b/i, /\b(dragon[- ]+touch |dt)(\w{5}) b/i], [[y, "Dragon Touch"], h, [g, S]], [/\b(ns-?\w{0,9}) b/i], [h, [y, "Insignia"], [g, S]], [/\b((nxa|next)-?\w{0,9}) b/i], [h, [y, "NextBook"], [g, S]], [/\b(xtreme\_)?(v(1[045]|2[015]|[3469]0|7[05])) b/i], [[y, "Voice"], h, [g, v]], [/\b(lvtel\-)?(v1[12]) b/i], [[y, "LvTel"], h, [g, v]], [/\b(ph-1) /i], [h, [y, "Essential"], [g, v]], [/\b(v(100md|700na|7011|917g).*\b) b/i], [h, [y, "Envizen"], [g, S]], [/\b(trio[-\w\. ]+) b/i], [h, [y, "MachSpeed"], [g, S]], [/\btu_(1491) b/i], [h, [y, "Rotor"], [g, S]], [/(shield[\w ]+) b/i], [h, [y, "Nvidia"], [g, S]], [/(sprint) (\w+)/i], [y, h, [g, v]], [/(kin\.[onetw]{3})/i], [[h, /\./g, " "], [y, H], [g, v]], [/droid.+; (cc6666?|et5[16]|mc[239][23]x?|vc8[03]x?)\)/i], [h, [y, j], [g, S]], [/droid.+; (ec30|ps20|tc[2-8]\d[kx])\)/i], [h, [y, j], [g, v]], [/smart-tv.+(samsung)/i], [y, [g, E]], [/hbbtv.+maple;(\d+)/i], [[h, /^/, "SmartTV"], [y, U], [g, E]], [/(nux; netcast.+smarttv|lg (netcast\.tv-201\d|android tv))/i], [[y, "LG"], [g, E]], [/(apple) ?tv/i], [y, [h, C + " TV"], [g, E]], [/crkey/i], [[h, O + "cast"], [y, I], [g, E]], [/droid.+aft(\w)( bui|\))/i], [h, [y, P], [g, E]], [/\(dtv[\);].+(aquos)/i, /(aquos-tv[\w ]+)\)/i], [h, [y, W], [g, E]], [/(bravia[\w ]+)( bui|\))/i], [h, [y, L], [g, E]], [/(mitv-\w{5}) bui/i], [h, [y, K], [g, E]], [/Hbbtv.*(technisat) (.*);/i], [y, h, [g, E]], [/\b(roku)[\dx]*[\)\/]((?:dvp-)?[\d\.]*)/i, /hbbtv\/\d+\.\d+\.\d+ +\([\w\+ ]*; *([\w\d][^;]*);([^;]*)/i], [[y, z], [h, z], [g, E]], [/\b(android tv|smart[- ]?tv|opera tv|tv; rv:)\b/i], [[g, E]], [/(ouya)/i, /(nintendo) ([wids3utch]+)/i], [y, h, [g, b]], [/droid.+; (shield) bui/i], [h, [y, "Nvidia"], [g, b]], [/(playstation [345portablevi]+)/i], [h, [y, L], [g, b]], [/\b(xbox(?: one)?(?!; xbox))[\); ]/i], [h, [y, H], [g, b]], [/((pebble))app/i], [y, h, [g, _]], [/(watch)(?: ?os[,\/]|\d,\d\/)[\d\.]+/i], [h, [y, C], [g, _]], [/droid.+; (glass) \d/i], [h, [y, I], [g, _]], [/droid.+; (wt63?0{2,3})\)/i], [h, [y, j], [g, _]], [/(quest( 2| pro)?)/i], [h, [y, J], [g, _]], [/(tesla)(?: qtcarbrowser|\/[-\w\.]+)/i], [y, [g, A]], [/(aeobc)\b/i], [h, [y, P], [g, A]], [/droid .+?; ([^;]+?)(?: bui|\) applew).+? mobile safari/i], [h, [g, v]], [/droid .+?; ([^;]+?)(?: bui|\) applew).+?(?! mobile) safari/i], [h, [g, S]], [/\b((tablet|tab)[;\/]|focus\/\d(?!.+mobile))/i], [[g, S]], [/(phone|mobile(?:[;\/]| [ \w\/\.]*safari)|pda(?=.+windows ce))/i], [[g, v]], [/(android[-\w\. ]{0,9});.+buil/i], [h, [y, "Generic"]]], engine: [[/windows.+ edge\/([\w\.]+)/i], [w, [f, "EdgeHTML"]], [/webkit\/537\.36.+chrome\/(?!27)([\w\.]+)/i], [w, [f, "Blink"]], [/(presto)\/([\w\.]+)/i, /(webkit|trident|netfront|netsurf|amaya|lynx|w3m|goanna)\/([\w\.]+)/i, /ekioh(flow)\/([\w\.]+)/i, /(khtml|tasman|links)[\/ ]\(?([\w\.]+)/i, /(icab)[\/ ]([23]\.[\d\.]+)/i, /\b(libweb)/i], [f, w], [/rv\:([\w\.]{1,9})\b.+(gecko)/i], [w, f]], os: [[/microsoft (windows) (vista|xp)/i], [f, w], [/(windows) nt 6\.2; (arm)/i, /(windows (?:phone(?: os)?|mobile))[\/ ]?([\d\.\w ]*)/i, /(windows)[\/ ]?([ntce\d\. ]+\w)(?!.+xbox)/i], [f, [w, Y, Z]], [/(win(?=3|9|n)|win 9x )([nt\d\.]+)/i], [[f, "Windows"], [w, Y, Z]], [/ip[honead]{2,4}\b(?:.*os ([\w]+) like mac|; opera)/i, /ios;fbsv\/([\d\.]+)/i, /cfnetwork\/.+darwin/i], [[w, /_/g, "."], [f, "iOS"]], [/(mac os x) ?([\w\. ]*)/i, /(macintosh|mac_powerpc\b)(?!.+haiku)/i], [[f, $], [w, /_/g, "."]], [/droid ([\w\.]+)\b.+(android[- ]x86|harmonyos)/i], [w, f], [/(android|webos|qnx|bada|rim tablet os|maemo|meego|sailfish)[-\/ ]?([\w\.]*)/i, /(blackberry)\w*\/([\w\.]*)/i, /(tizen|kaios)[\/ ]([\w\.]+)/i, /\((series40);/i], [f, w], [/\(bb(10);/i], [w, [f, R]], [/(?:symbian ?os|symbos|s60(?=;)|series60)[-\/ ]?([\w\.]*)/i], [w, [f, "Symbian"]], [/mozilla\/[\d\.]+ \((?:mobile|tablet|tv|mobile; [\w ]+); rv:.+ gecko\/([\w\.]+)/i], [w, [f, k + " OS"]], [/web0s;.+rt(tv)/i, /\b(?:hp)?wos(?:browser)?\/([\w\.]+)/i], [w, [f, "webOS"]], [/watch(?: ?os[,\/]|\d,\d\/)([\d\.]+)/i], [w, [f, "watchOS"]], [/crkey\/([\d\.]+)/i], [w, [f, O + "cast"]], [/(cros) [\w]+(?:\)| ([\w\.]+)\b)/i], [[f, B], w], [/panasonic;(viera)/i, /(netrange)mmh/i, /(nettv)\/(\d+\.[\w\.]+)/i, /(nintendo|playstation) ([wids345portablevuch]+)/i, /(xbox); +xbox ([^\);]+)/i, /\b(joli|palm)\b ?(?:os)?\/?([\w\.]*)/i, /(mint)[\/\(\) ]?(\w*)/i, /(mageia|vectorlinux)[; ]/i, /([kxln]?ubuntu|debian|suse|opensuse|gentoo|arch(?= linux)|slackware|fedora|mandriva|centos|pclinuxos|red ?hat|zenwalk|linpus|raspbian|plan 9|minix|risc os|contiki|deepin|manjaro|elementary os|sabayon|linspire)(?: gnu\/linux)?(?: enterprise)?(?:[- ]linux)?(?:-gnu)?[-\/ ]?(?!chrom|package)([-\w\.]*)/i, /(hurd|linux) ?([\w\.]*)/i, /(gnu) ?([\w\.]*)/i, /\b([-frentopcghs]{0,5}bsd|dragonfly)[\/ ]?(?!amd|[ix346]{1,2}86)([\w\.]*)/i, /(haiku) (\w+)/i], [f, w], [/(sunos) ?([\w\.\d]*)/i], [[f, "Solaris"], w], [/((?:open)?solaris)[-\/ ]?([\w\.]*)/i, /(aix) ((\d)(?=\.|\)| )[\w\.])*/i, /\b(beos|os\/2|amigaos|morphos|openvms|fuchsia|hp-ux|serenityos)/i, /(unix) ?([\w\.]*)/i], [f, w]] }, ee = function(e2, t2) {
if (typeof e2 === d && (t2 = e2, e2 = s2), !(this instanceof ee)) return new ee(e2, t2).getResult();
var r2 = typeof o2 !== l && o2.navigator ? o2.navigator : s2, n2 = e2 || (r2 && r2.userAgent ? r2.userAgent : ""), a3 = r2 && r2.userAgentData ? r2.userAgentData : s2, i3 = t2 ? V(Q, t2) : Q, b2 = r2 && r2.userAgent == n2;
return this.getBrowser = function() {
var e3, t3 = {};
return t3[f] = s2, t3[w] = s2, X.call(t3, n2, i3.browser), t3[p] = typeof (e3 = t3[w]) === u ? e3.replace(/[^\d\.]/g, "").split(".")[0] : s2, b2 && r2 && r2.brave && typeof r2.brave.isBrave == c && (t3[f] = "Brave"), t3;
}, this.getCPU = function() {
var e3 = {};
return e3[m] = s2, X.call(e3, n2, i3.cpu), e3;
}, this.getDevice = function() {
var e3 = {};
return e3[y] = s2, e3[h] = s2, e3[g] = s2, X.call(e3, n2, i3.device), b2 && !e3[g] && a3 && a3.mobile && (e3[g] = v), b2 && "Macintosh" == e3[h] && r2 && typeof r2.standalone !== l && r2.maxTouchPoints && r2.maxTouchPoints > 2 && (e3[h] = "iPad", e3[g] = S), e3;
}, this.getEngine = function() {
var e3 = {};
return e3[f] = s2, e3[w] = s2, X.call(e3, n2, i3.engine), e3;
}, this.getOS = function() {
var e3 = {};
return e3[f] = s2, e3[w] = s2, X.call(e3, n2, i3.os), b2 && !e3[f] && a3 && "Unknown" != a3.platform && (e3[f] = a3.platform.replace(/chrome os/i, B).replace(/macos/i, $)), e3;
}, this.getResult = function() {
return { ua: this.getUA(), browser: this.getBrowser(), engine: this.getEngine(), os: this.getOS(), device: this.getDevice(), cpu: this.getCPU() };
}, this.getUA = function() {
return n2;
}, this.setUA = function(e3) {
return n2 = typeof e3 === u && e3.length > 350 ? z(e3, 350) : e3, this;
}, this.setUA(n2), this;
};
ee.VERSION = "1.0.35", ee.BROWSER = G([f, w, p]), ee.CPU = G([m]), ee.DEVICE = G([h, y, g, b, v, E, S, _, A]), ee.ENGINE = ee.OS = G([f, w]), typeof i2 !== l ? (a2.exports && (i2 = a2.exports = ee), i2.UAParser = ee) : r.amdO ? void 0 !== (n = function() {
return ee;
}.call(t, r, t, e)) && (e.exports = n) : typeof o2 !== l && (o2.UAParser = ee);
var et = typeof o2 !== l && (o2.jQuery || o2.Zepto);
if (et && !et.ua) {
var er = new ee();
et.ua = er.getResult(), et.ua.get = function() {
return er.getUA();
}, et.ua.set = function(e2) {
er.setUA(e2);
var t2 = er.getResult();
for (var r2 in t2) et.ua[r2] = t2[r2];
};
}
}("object" == typeof window ? window : this);
} }, i = {};
function o(e2) {
var t2 = i[e2];
if (void 0 !== t2) return t2.exports;
var r2 = i[e2] = { exports: {} }, n2 = true;
try {
a[e2].call(r2.exports, r2, r2.exports, o), n2 = false;
} finally {
n2 && delete i[e2];
}
return r2.exports;
}
o.ab = "//";
var s = o(226);
e.exports = s;
})();
}, 635: (e, t, r) => {
"use strict";
function n() {
throw Error('ImageResponse moved from "next/server" to "next/og" since Next.js 14, please import from "next/og" instead');
}
r.r(t), r.d(t, { ImageResponse: () => n, NextRequest: () => a.I, NextResponse: () => i.x, URLPattern: () => d, userAgent: () => l, userAgentFromString: () => c });
var a = r(669), i = r(241), o = r(340), s = r.n(o);
function c(e2) {
return { ...s()(e2), isBot: void 0 !== e2 && /Googlebot|Mediapartners-Google|AdsBot-Google|googleweblight|Storebot-Google|Google-PageRenderer|Google-InspectionTool|Bingbot|BingPreview|Slurp|DuckDuckBot|baiduspider|yandex|sogou|LinkedInBot|bitlybot|tumblr|vkShare|quora link preview|facebookexternalhit|facebookcatalog|Twitterbot|applebot|redditbot|Slackbot|Discordbot|WhatsApp|SkypeUriPreview|ia_archiver/i.test(e2) };
}
function l({ headers: e2 }) {
return c(e2.get("user-agent") || void 0);
}
let d = "undefined" == typeof URLPattern ? void 0 : URLPattern;
}, 416: (e, t, r) => {
"use strict";
r.d(t, { Y5: () => i, cR: () => a, qJ: () => n });
class n extends Error {
constructor({ page: e2 }) {
super(`The middleware "${e2}" accepts an async API directly with the form:
export function middleware(request, event) {
return NextResponse.redirect('/new-location')
}
Read more: https://nextjs.org/docs/messages/middleware-new-signature
`);
}
}
class a extends Error {
constructor() {
super(`The request.page has been deprecated in favour of \`URLPattern\`.
Read more: https://nextjs.org/docs/messages/middleware-request-page
`);
}
}
class i extends Error {
constructor() {
super(`The request.ua has been removed in favour of \`userAgent\` function.
Read more: https://nextjs.org/docs/messages/middleware-parse-user-agent
`);
}
}
}, 718: (e, t, r) => {
"use strict";
function n(e2) {
return e2.replace(/\/$/, "") || "/";
}
function a(e2) {
let t2 = e2.indexOf("#"), r2 = e2.indexOf("?"), n2 = r2 > -1 && (t2 < 0 || r2 < t2);
return n2 || t2 > -1 ? { pathname: e2.substring(0, n2 ? r2 : t2), query: n2 ? e2.substring(r2, t2 > -1 ? t2 : void 0) : "", hash: t2 > -1 ? e2.slice(t2) : "" } : { pathname: e2, query: "", hash: "" };
}
function i(e2, t2) {
if (!e2.startsWith("/") || !t2) return e2;
let { pathname: r2, query: n2, hash: i2 } = a(e2);
return "" + t2 + r2 + n2 + i2;
}
function o(e2, t2) {
if (!e2.startsWith("/") || !t2) return e2;
let { pathname: r2, query: n2, hash: i2 } = a(e2);
return "" + r2 + t2 + n2 + i2;
}
function s(e2, t2) {
if ("string" != typeof e2) return false;
let { pathname: r2 } = a(e2);
return r2 === t2 || r2.startsWith(t2 + "/");
}
function c(e2, t2) {
let r2;
let n2 = e2.split("/");
return (t2 || []).some((t3) => !!n2[1] && n2[1].toLowerCase() === t3.toLowerCase() && (r2 = t3, n2.splice(1, 1), e2 = n2.join("/") || "/", true)), { pathname: e2, detectedLocale: r2 };
}
r.d(t, { c: () => p });
let l = /(?!^https?:\/\/)(127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}|\[::1\]|localhost)/;
function d(e2, t2) {
return new URL(String(e2).replace(l, "localhost"), t2 && String(t2).replace(l, "localhost"));
}
let u = Symbol("NextURLInternal");
class p {
constructor(e2, t2, r2) {
let n2, a2;
"object" == typeof t2 && "pathname" in t2 || "string" == typeof t2 ? (n2 = t2, a2 = r2 || {}) : a2 = r2 || t2 || {}, this[u] = { url: d(e2, n2 ?? a2.base), options: a2, basePath: "" }, this.analyze();
}
analyze() {
var e2, t2, r2, n2, a2;
let i2 = function(e3, t3) {
var r3, n3;
let { basePath: a3, i18n: i3, trailingSlash: o3 } = null != (r3 = t3.nextConfig) ? r3 : {}, l3 = { pathname: e3, trailingSlash: "/" !== e3 ? e3.endsWith("/") : o3 };
a3 && s(l3.pathname, a3) && (l3.pathname = function(e4, t4) {
if (!s(e4, t4)) return e4;
let r4 = e4.slice(t4.length);
return r4.startsWith("/") ? r4 : "/" + r4;
}(l3.pathname, a3), l3.basePath = a3);
let d2 = l3.pathname;
if (l3.pathname.startsWith("/_next/data/") && l3.pathname.endsWith(".json")) {
let e4 = l3.pathname.replace(/^\/_next\/data\//, "").replace(/\.json$/, "").split("/"), r4 = e4[0];
l3.buildId = r4, d2 = "index" !== e4[1] ? "/" + e4.slice(1).join("/") : "/", true === t3.parseData && (l3.pathname = d2);
}
if (i3) {
let e4 = t3.i18nProvider ? t3.i18nProvider.analyze(l3.pathname) : c(l3.pathname, i3.locales);
l3.locale = e4.detectedLocale, l3.pathname = null != (n3 = e4.pathname) ? n3 : l3.pathname, !e4.detectedLocale && l3.buildId && (e4 = t3.i18nProvider ? t3.i18nProvider.analyze(d2) : c(d2, i3.locales)).detectedLocale && (l3.locale = e4.detectedLocale);
}
return l3;
}(this[u].url.pathname, { nextConfig: this[u].options.nextConfig, parseData: true, i18nProvider: this[u].options.i18nProvider }), o2 = function(e3, t3) {
let r3;
if ((null == t3 ? void 0 : t3.host) && !Array.isArray(t3.host)) r3 = t3.host.toString().split(":", 1)[0];
else {
if (!e3.hostname) return;
r3 = e3.hostname;
}
return r3.toLowerCase();
}(this[u].url, this[u].options.headers);
this[u].domainLocale = this[u].options.i18nProvider ? this[u].options.i18nProvider.detectDomainLocale(o2) : function(e3, t3, r3) {
if (e3) for (let i3 of (r3 && (r3 = r3.toLowerCase()), e3)) {
var n3, a3;
if (t3 === (null == (n3 = i3.domain) ? void 0 : n3.split(":", 1)[0].toLowerCase()) || r3 === i3.defaultLocale.toLowerCase() || (null == (a3 = i3.locales) ? void 0 : a3.some((e4) => e4.toLowerCase() === r3))) return i3;
}
}(null == (t2 = this[u].options.nextConfig) ? void 0 : null == (e2 = t2.i18n) ? void 0 : e2.domains, o2);
let l2 = (null == (r2 = this[u].domainLocale) ? void 0 : r2.defaultLocale) || (null == (a2 = this[u].options.nextConfig) ? void 0 : null == (n2 = a2.i18n) ? void 0 : n2.defaultLocale);
this[u].url.pathname = i2.pathname, this[u].defaultLocale = l2, this[u].basePath = i2.basePath ?? "", this[u].buildId = i2.buildId, this[u].locale = i2.locale ?? l2, this[u].trailingSlash = i2.trailingSlash;
}
formatPathname() {
var e2;
let t2;
return t2 = function(e3, t3, r2, n2) {
if (!t3 || t3 === r2) return e3;
let a2 = e3.toLowerCase();
return !n2 && (s(a2, "/api") || s(a2, "/" + t3.toLowerCase())) ? e3 : i(e3, "/" + t3);
}((e2 = { basePath: this[u].basePath, buildId: this[u].buildId, defaultLocale: this[u].options.forceLocale ? void 0 : this[u].defaultLocale, locale: this[u].locale, pathname: this[u].url.pathname, trailingSlash: this[u].trailingSlash }).pathname, e2.locale, e2.buildId ? void 0 : e2.defaultLocale, e2.ignorePrefix), (e2.buildId || !e2.trailingSlash) && (t2 = n(t2)), e2.buildId && (t2 = o(i(t2, "/_next/data/" + e2.buildId), "/" === e2.pathname ? "index.json" : ".json")), t2 = i(t2, e2.basePath), !e2.buildId && e2.trailingSlash ? t2.endsWith("/") ? t2 : o(t2, "/") : n(t2);
}
formatSearch() {
return this[u].url.search;
}
get buildId() {
return this[u].buildId;
}
set buildId(e2) {
this[u].buildId = e2;
}
get locale() {
return this[u].locale ?? "";
}
set locale(e2) {
var t2, r2;
if (!this[u].locale || !(null == (r2 = this[u].options.nextConfig) ? void 0 : null == (t2 = r2.i18n) ? void 0 : t2.locales.includes(e2))) throw TypeError(`The NextURL configuration includes no locale "${e2}"`);
this[u].locale = e2;
}
get defaultLocale() {
return this[u].defaultLocale;
}
get domainLocale() {
return this[u].domainLocale;
}
get searchParams() {
return this[u].url.searchParams;
}
get host() {
return this[u].url.host;
}
set host(e2) {
this[u].url.host = e2;
}
get hostname() {
return this[u].url.hostname;
}
set hostname(e2) {
this[u].url.hostname = e2;
}
get port() {
return this[u].url.port;
}
set port(e2) {
this[u].url.port = e2;
}
get protocol() {
return this[u].url.protocol;
}
set protocol(e2) {
this[u].url.protocol = e2;
}
get href() {
let e2 = this.formatPathname(), t2 = this.formatSearch();
return `${this.protocol}//${this.host}${e2}${t2}${this.hash}`;
}
set href(e2) {
this[u].url = d(e2), this.analyze();
}
get origin() {
return this[u].url.origin;
}
get pathname() {
return this[u].url.pathname;
}
set pathname(e2) {
this[u].url.pathname = e2;
}
get hash() {
return this[u].url.hash;
}
set hash(e2) {
this[u].url.hash = e2;
}
get search() {
return this[u].url.search;
}
set search(e2) {
this[u].url.search = e2;
}
get password() {
return this[u].url.password;
}
set password(e2) {
this[u].url.password = e2;
}
get username() {
return this[u].url.username;
}
set username(e2) {
this[u].url.username = e2;
}
get basePath() {
return this[u].basePath;
}
set basePath(e2) {
this[u].basePath = e2.startsWith("/") ? e2 : `/${e2}`;
}
toString() {
return this.href;
}
toJSON() {
return this.href;
}
[Symbol.for("edge-runtime.inspect.custom")]() {
return { href: this.href, origin: this.origin, protocol: this.protocol, username: this.username, password: this.password, host: this.host, hostname: this.hostname, port: this.port, pathname: this.pathname, search: this.search, searchParams: this.searchParams, hash: this.hash };
}
clone() {
return new p(String(this), this[u].options);
}
}
}, 217: (e, t, r) => {
"use strict";
r.d(t, { g: () => n });
class n {
static get(e2, t2, r2) {
let n2 = Reflect.get(e2, t2, r2);
return "function" == typeof n2 ? n2.bind(e2) : n2;
}
static set(e2, t2, r2, n2) {
return Reflect.set(e2, t2, r2, n2);
}
static has(e2, t2) {
return Reflect.has(e2, t2);
}
static deleteProperty(e2, t2) {
return Reflect.deleteProperty(e2, t2);
}
}
}, 938: (e, t, r) => {
"use strict";
r.d(t, { Q7: () => n.stringifyCookie, nV: () => n.ResponseCookies, qC: () => n.RequestCookies });
var n = r(945);
}, 669: (e, t, r) => {
"use strict";
r.d(t, { I: () => c });
var n = r(718), a = r(329), i = r(416), o = r(938);
let s = Symbol("internal request");
class c extends Request {
constructor(e2, t2 = {}) {
let r2 = "string" != typeof e2 && "url" in e2 ? e2.url : String(e2);
(0, a.r4)(r2), e2 instanceof Request ? super(e2, t2) : super(r2, t2);
let i2 = new n.c(r2, { headers: (0, a.lb)(this.headers), nextConfig: t2.nextConfig });
this[s] = { cookies: new o.qC(this.headers), geo: t2.geo || {}, ip: t2.ip, nextUrl: i2, url: i2.toString() };
}
[Symbol.for("edge-runtime.inspect.custom")]() {
return { cookies: this.cookies, geo: this.geo, ip: this.ip, nextUrl: this.nextUrl, url: this.url, bodyUsed: this.bodyUsed, cache: this.cache, credentials: this.credentials, destination: this.destination, headers: Object.fromEntries(this.headers), integrity: this.integrity, keepalive: this.keepalive, method: this.method, mode: this.mode, redirect: this.redirect, referrer: this.referrer, referrerPolicy: this.referrerPolicy, signal: this.signal };
}
get cookies() {
return this[s].cookies;
}
get geo() {
return this[s].geo;
}
get ip() {
return this[s].ip;
}
get nextUrl() {
return this[s].nextUrl;
}
get page() {
throw new i.cR();
}
get ua() {
throw new i.Y5();
}
get url() {
return this[s].url;
}
}
}, 241: (e, t, r) => {
"use strict";
r.d(t, { x: () => d });
var n = r(938), a = r(718), i = r(329), o = r(217);
let s = Symbol("internal response"), c = /* @__PURE__ */ new Set([301, 302, 303, 307, 308]);
function l(e2, t2) {
var r2;
if (null == e2 ? void 0 : null == (r2 = e2.request) ? void 0 : r2.headers) {
if (!(e2.request.headers instanceof Headers)) throw Error("request.headers must be an instance of Headers");
let r3 = [];
for (let [n2, a2] of e2.request.headers) t2.set("x-middleware-request-" + n2, a2), r3.push(n2);
t2.set("x-middleware-override-headers", r3.join(","));
}
}
class d extends Response {
constructor(e2, t2 = {}) {
super(e2, t2);
let r2 = this.headers, c2 = new Proxy(new n.nV(r2), { get(e3, a2, i2) {
switch (a2) {
case "delete":
case "set":
return (...i3) => {
let o2 = Reflect.apply(e3[a2], e3, i3), s2 = new Headers(r2);
return o2 instanceof n.nV && r2.set("x-middleware-set-cookie", o2.getAll().map((e4) => (0, n.Q7)(e4)).join(",")), l(t2, s2), o2;
};
default:
return o.g.get(e3, a2, i2);
}
} });
this[s] = { cookies: c2, url: t2.url ? new a.c(t2.url, { headers: (0, i.lb)(r2), nextConfig: t2.nextConfig }) : void 0 };
}
[Symbol.for("edge-runtime.inspect.custom")]() {
return { cookies: this.cookies, url: this.url, body: this.body, bodyUsed: this.bodyUsed, headers: Object.fromEntries(this.headers), ok: this.ok, redirected: this.redirected, status: this.status, statusText: this.statusText, type: this.type };
}
get cookies() {
return this[s].cookies;
}
static json(e2, t2) {
let r2 = Response.json(e2, t2);
return new d(r2.body, r2);
}
static redirect(e2, t2) {
let r2 = "number" == typeof t2 ? t2 : (null == t2 ? void 0 : t2.status) ?? 307;
if (!c.has(r2)) throw RangeError('Failed to execute "redirect" on "response": Invalid status code');
let n2 = "object" == typeof t2 ? t2 : {}, a2 = new Headers(null == n2 ? void 0 : n2.headers);
return a2.set("Location", (0, i.r4)(e2)), new d(null, { ...n2, headers: a2, status: r2 });
}
static rewrite(e2, t2) {
let r2 = new Headers(null == t2 ? void 0 : t2.headers);
return r2.set("x-middleware-rewrite", (0, i.r4)(e2)), l(t2, r2), new d(null, { ...t2, headers: r2 });
}
static next(e2) {
let t2 = new Headers(null == e2 ? void 0 : e2.headers);
return t2.set("x-middleware-next", "1"), l(e2, t2), new d(null, { ...e2, headers: t2 });
}
}
}, 329: (e, t, r) => {
"use strict";
function n(e2) {
let t2 = new Headers();
for (let [r2, n2] of Object.entries(e2)) for (let e3 of Array.isArray(n2) ? n2 : [n2]) void 0 !== e3 && ("number" == typeof e3 && (e3 = e3.toString()), t2.append(r2, e3));
return t2;
}
function a(e2) {
var t2, r2, n2, a2, i2, o2 = [], s = 0;
function c() {
for (; s < e2.length && /\s/.test(e2.charAt(s)); ) s += 1;
return s < e2.length;
}
for (; s < e2.length; ) {
for (t2 = s, i2 = false; c(); ) if ("," === (r2 = e2.charAt(s))) {
for (n2 = s, s += 1, c(), a2 = s; s < e2.length && "=" !== (r2 = e2.charAt(s)) && ";" !== r2 && "," !== r2; ) s += 1;
s < e2.length && "=" === e2.charAt(s) ? (i2 = true, s = a2, o2.push(e2.substring(t2, n2)), t2 = s) : s = n2 + 1;
} else s += 1;
(!i2 || s >= e2.length) && o2.push(e2.substring(t2, e2.length));
}
return o2;
}
function i(e2) {
let t2 = {}, r2 = [];
if (e2) for (let [n2, i2] of e2.entries()) "set-cookie" === n2.toLowerCase() ? (r2.push(...a(i2)), t2[n2] = 1 === r2.length ? r2[0] : r2) : t2[n2] = i2;
return t2;
}
function o(e2) {
try {
return String(new URL(String(e2)));
} catch (t2) {
throw Error(`URL is malformed "${String(e2)}". Please use only absolute URLs - https://nextjs.org/docs/messages/middleware-relative-urls`, { cause: t2 });
}
}
r.d(t, { EK: () => n, l$: () => a, lb: () => i, r4: () => o });
}, 488: (e, t, r) => {
"use strict";
Object.defineProperty(t, "__esModule", { value: true }), function(e2, t2) {
for (var r2 in t2) Object.defineProperty(e2, r2, { enumerable: true, get: t2[r2] });
}(t, { getTestReqInfo: function() {
return o;
}, withRequest: function() {
return i;
} });
let n = new (r(67)).AsyncLocalStorage();
function a(e2, t2) {
let r2 = t2.header(e2, "next-test-proxy-port");
if (r2) return { url: t2.url(e2), proxyPort: Number(r2), testData: t2.header(e2, "next-test-data") || "" };
}
function i(e2, t2, r2) {
let i2 = a(e2, t2);
return i2 ? n.run(i2, r2) : r2();
}
function o(e2, t2) {
return n.getStore() || (e2 && t2 ? a(e2, t2) : void 0);
}
}, 375: (e, t, r) => {
"use strict";
var n = r(195).Buffer;
Object.defineProperty(t, "__esModule", { value: true }), function(e2, t2) {
for (var r2 in t2) Object.defineProperty(e2, r2, { enumerable: true, get: t2[r2] });
}(t, { handleFetch: function() {
return s;
}, interceptFetch: function() {
return c;
}, reader: function() {
return i;
} });
let a = r(488), i = { url: (e2) => e2.url, header: (e2, t2) => e2.headers.get(t2) };
async function o(e2, t2) {
let { url: r2, method: a2, headers: i2, body: o2, cache: s2, credentials: c2, integrity: l, mode: d, redirect: u, referrer: p, referrerPolicy: h } = t2;
return { testData: e2, api: "fetch", request: { url: r2, method: a2, headers: [...Array.from(i2), ["next-test-stack", function() {
let e3 = (Error().stack ?? "").split("\n");
for (let t3 = 1; t3 < e3.length; t3++) if (e3[t3].length > 0) {
e3 = e3.slice(t3);
break;
}
return (e3 = (e3 = (e3 = e3.filter((e4) => !e4.includes("/next/dist/"))).slice(0, 5)).map((e4) => e4.replace("webpack-internal:///(rsc)/", "").trim())).join(" ");
}()]], body: o2 ? n.from(await t2.arrayBuffer()).toString("base64") : null, cache: s2, credentials: c2, integrity: l, mode: d, redirect: u, referrer: p, referrerPolicy: h } };
}
async function s(e2, t2) {
let r2 = (0, a.getTestReqInfo)(t2, i);
if (!r2) return e2(t2);
let { testData: s2, proxyPort: c2 } = r2, l = await o(s2, t2), d = await e2(`http://localhost:${c2}`, { method: "POST", body: JSON.stringify(l), next: { internal: true } });
if (!d.ok) throw Error(`Proxy request failed: ${d.status}`);
let u = await d.json(), { api: p } = u;
switch (p) {
case "continue":
return e2(t2);
case "abort":
case "unhandled":
throw Error(`Proxy request aborted [${t2.method} ${t2.url}]`);
}
return function(e3) {
let { status: t3, headers: r3, body: a2 } = e3.response;
return new Response(a2 ? n.from(a2, "base64") : null, { status: t3, headers: new Headers(r3) });
}(u);
}
function c(e2) {
return r.g.fetch = function(t2, r2) {
var n2;
return (null == r2 ? void 0 : null == (n2 = r2.next) ? void 0 : n2.internal) ? e2(t2, r2) : s(e2, new Request(t2, r2));
}, () => {
r.g.fetch = e2;
};
}
}, 177: (e, t, r) => {
"use strict";
Object.defineProperty(t, "__esModule", { value: true }), function(e2, t2) {
for (var r2 in t2) Object.defineProperty(e2, r2, { enumerable: true, get: t2[r2] });
}(t, { interceptTestApis: function() {
return i;
}, wrapRequestHandler: function() {
return o;
} });
let n = r(488), a = r(375);
function i() {
return (0, a.interceptFetch)(r.g.fetch);
}
function o(e2) {
return (t2, r2) => (0, n.withRequest)(t2, a.reader, () => e2(t2, r2));
}
}, 476: (e) => {
e.exports = function(e2) {
return e2 && e2.__esModule ? e2 : { default: e2 };
}, e.exports.__esModule = true, e.exports.default = e.exports;
}, 728: (e, t, r) => {
"use strict";
r.r(t), r.d(t, { default: () => o, hkdf: () => o });
let n = () => {
if ("undefined" != typeof globalThis) return globalThis;
if ("undefined" != typeof self) return self;
if ("undefined" != typeof window) return window;
throw Error("unable to locate global object");
}, a = async (e2, t2, r2, a2, i2) => {
let { crypto: { subtle: o2 } } = n();
return new Uint8Array(await o2.deriveBits({ name: "HKDF", hash: `SHA-${e2.substr(3)}`, salt: r2, info: a2 }, await o2.importKey("raw", t2, "HKDF", false, ["deriveBits"]), i2 << 3));
};
function i(e2, t2) {
if ("string" == typeof e2) return new TextEncoder().encode(e2);
if (!(e2 instanceof Uint8Array)) throw TypeError(`"${t2}"" must be an instance of Uint8Array or a string`);
return e2;
}
async function o(e2, t2, r2, n2, o2) {
return a(function(e3) {
switch (e3) {
case "sha256":
case "sha384":
case "sha512":
case "sha1":
return e3;
default:
throw TypeError('unsupported "digest" value');
}
}(e2), function(e3) {
let t3 = i(e3, "ikm");
if (!t3.byteLength) throw TypeError('"ikm" must be at least one byte in length');
return t3;
}(t2), i(r2, "salt"), function(e3) {
let t3 = i(e3, "info");
if (t3.byteLength > 1024) throw TypeError('"info" must not contain more than 1024 bytes');
return t3;
}(n2), function(e3, t3) {
if ("number" != typeof e3 || !Number.isInteger(e3) || e3 < 1) throw TypeError('"keylen" must be a positive integer');
if (e3 > 255 * (parseInt(t3.substr(3), 10) >> 3 || 20)) throw TypeError('"keylen" too large');
return e3;
}(o2, e2));
}
}, 507: (e, t, r) => {
"use strict";
r.r(t), r.d(t, { CompactEncrypt: () => tp, CompactSign: () => tg, EmbeddedJWK: () => tA, EncryptJWT: () => tv, FlattenedEncrypt: () => e3, FlattenedSign: () => tf, GeneralEncrypt: () => e8, GeneralSign: () => tw, SignJWT: () => tb, UnsecuredJWT: () => tN, base64url: () => a, calculateJwkThumbprint: () => tE, calculateJwkThumbprintUri: () => t_, compactDecrypt: () => eY, compactVerify: () => tr, createLocalJWKSet: () => tT, createRemoteJWKSet: () => tI, cryptoRuntime: () => tB, decodeJwt: () => tU, decodeProtectedHeader: () => tD, errors: () => n, exportJWK: () => e2, exportPKCS8: () => e1, exportSPKI: () => e0, flattenedDecrypt: () => eX, flattenedVerify: () => tt, generalDecrypt: () => eZ, generalVerify: () => tn, generateKeyPair: () => tj, generateSecret: () => tJ, importJWK: () => eW, importPKCS8: () => eU, importSPKI: () => eM, importX509: () => eD, jwtDecrypt: () => tu, jwtVerify: () => td });
var n = {};
r.r(n), r.d(n, { JOSEAlgNotAllowed: () => _, JOSEError: () => v, JOSENotSupported: () => A, JWEDecompressionFailed: () => C, JWEDecryptionFailed: () => P, JWEInvalid: () => x, JWKInvalid: () => O, JWKSInvalid: () => k, JWKSMultipleMatchingKeys: () => N, JWKSNoMatchingKey: () => I, JWKSTimeout: () => H, JWSInvalid: () => R, JWSSignatureVerificationFailed: () => M, JWTClaimValidationFailed: () => S, JWTExpired: () => E, JWTInvalid: () => T });
var a = {};
r.r(a), r.d(a, { decode: () => tM, encode: () => tH });
let i = crypto, o = (e10) => e10 instanceof CryptoKey, s = async (e10, t2) => {
let r2 = `SHA-${e10.slice(-3)}`;
return new Uint8Array(await i.subtle.digest(r2, t2));
}, c = new TextEncoder(), l = new TextDecoder();
function d(...e10) {
let t2 = new Uint8Array(e10.reduce((e11, { length: t3 }) => e11 + t3, 0)), r2 = 0;
return e10.forEach((e11) => {
t2.set(e11, r2), r2 += e11.length;
}), t2;
}
function u(e10, t2, r2) {
if (t2 < 0 || t2 >= 4294967296) throw RangeError(`value must be >= 0 and <= ${4294967296 - 1}. Received ${t2}`);
e10.set([t2 >>> 24, t2 >>> 16, t2 >>> 8, 255 & t2], r2);
}
function p(e10) {
let t2 = new Uint8Array(8);
return u(t2, Math.floor(e10 / 4294967296), 0), u(t2, e10 % 4294967296, 4), t2;
}
function h(e10) {
let t2 = new Uint8Array(4);
return u(t2, e10), t2;
}
function f(e10) {
return d(h(e10.length), e10);
}
async function g(e10, t2, r2) {
let n2 = Math.ceil((t2 >> 3) / 32), a2 = new Uint8Array(32 * n2);
for (let t3 = 0; t3 < n2; t3++) {
let n3 = new Uint8Array(4 + e10.length + r2.length);
n3.set(h(t3 + 1)), n3.set(e10, 4), n3.set(r2, 4 + e10.length), a2.set(await s("sha256", n3), 32 * t3);
}
return a2.slice(0, t2 >> 3);
}
let y = (e10) => {
let t2 = e10;
"string" == typeof t2 && (t2 = c.encode(t2));
let r2 = [];
for (let e11 = 0; e11 < t2.length; e11 += 32768) r2.push(String.fromCharCode.apply(null, t2.subarray(e11, e11 + 32768)));
return btoa(r2.join(""));
}, w = (e10) => y(e10).replace(/=/g, "").replace(/\+/g, "-").replace(/\//g, "_"), m = (e10) => {
let t2 = atob(e10), r2 = new Uint8Array(t2.length);
for (let e11 = 0; e11 < t2.length; e11++) r2[e11] = t2.charCodeAt(e11);
return r2;
}, b = (e10) => {
let t2 = e10;
t2 instanceof Uint8Array && (t2 = l.decode(t2)), t2 = t2.replace(/-/g, "+").replace(/_/g, "/").replace(/\s/g, "");
try {
return m(t2);
} catch (e11) {
throw TypeError("The input to be decoded is not correctly encoded.");
}
};
class v extends Error {
static get code() {
return "ERR_JOSE_GENERIC";
}
constructor(e10) {
var t2;
super(e10), this.code = "ERR_JOSE_GENERIC", this.name = this.constructor.name, null === (t2 = Error.captureStackTrace) || void 0 === t2 || t2.call(Error, this, this.constructor);
}
}
class S extends v {
static get code() {
return "ERR_JWT_CLAIM_VALIDATION_FAILED";
}
constructor(e10, t2 = "unspecified", r2 = "unspecified") {
super(e10), this.code = "ERR_JWT_CLAIM_VALIDATION_FAILED", this.claim = t2, this.reason = r2;
}
}
class E extends v {
static get code() {
return "ERR_JWT_EXPIRED";
}
constructor(e10, t2 = "unspecified", r2 = "unspecified") {
super(e10), this.code = "ERR_JWT_EXPIRED", this.claim = t2, this.reason = r2;
}
}
class _ extends v {
constructor() {
super(...arguments), this.code = "ERR_JOSE_ALG_NOT_ALLOWED";
}
static get code() {
return "ERR_JOSE_ALG_NOT_ALLOWED";
}
}
class A extends v {
constructor() {
super(...arguments), this.code = "ERR_JOSE_NOT_SUPPORTED";
}
static get code() {
return "ERR_JOSE_NOT_SUPPORTED";
}
}
class P extends v {
constructor() {
super(...arguments), this.code = "ERR_JWE_DECRYPTION_FAILED", this.message = "decryption operation failed";
}
static get code() {
return "ERR_JWE_DECRYPTION_FAILED";
}
}
class C extends v {
constructor() {
super(...arguments), this.code = "ERR_JWE_DECOMPRESSION_FAILED", this.message = "decompression operation failed";
}
static get code() {
return "ERR_JWE_DECOMPRESSION_FAILED";
}
}
class x extends v {
constructor() {
super(...arguments), this.code = "ERR_JWE_INVALID";
}
static get code() {
return "ERR_JWE_INVALID";
}
}
class R extends v {
constructor() {
super(...arguments), this.code = "ERR_JWS_INVALID";
}
static get code() {
return "ERR_JWS_INVALID";
}
}
class T extends v {
constructor() {
super(...arguments), this.code = "ERR_JWT_INVALID";
}
static get code() {
return "ERR_JWT_INVALID";
}
}
class O extends v {
constructor() {
super(...arguments), this.code = "ERR_JWK_INVALID";
}
static get code() {
return "ERR_JWK_INVALID";
}
}
class k extends v {
constructor() {
super(...arguments), this.code = "ERR_JWKS_INVALID";
}
static get code() {
return "ERR_JWKS_INVALID";
}
}
class I extends v {
constructor() {
super(...arguments), this.code = "ERR_JWKS_NO_MATCHING_KEY", this.message = "no applicable key found in the JSON Web Key Set";
}
static get code() {
return "ERR_JWKS_NO_MATCHING_KEY";
}
}
class N extends v {
constructor() {
super(...arguments), this.code = "ERR_JWKS_MULTIPLE_MATCHING_KEYS", this.message = "multiple matching keys found in the JSON Web Key Set";
}
static get code() {
return "ERR_JWKS_MULTIPLE_MATCHING_KEYS";
}
}
Symbol.asyncIterator;
class H extends v {
constructor() {
super(...arguments), this.code = "ERR_JWKS_TIMEOUT", this.message = "request timed out";
}
static get code() {
return "ERR_JWKS_TIMEOUT";
}
}
class M extends v {
constructor() {
super(...arguments), this.code = "ERR_JWS_SIGNATURE_VERIFICATION_FAILED", this.message = "signature verification failed";
}
static get code() {
return "ERR_JWS_SIGNATURE_VERIFICATION_FAILED";
}
}
let D = i.getRandomValues.bind(i);
function U(e10) {
switch (e10) {
case "A128GCM":
case "A128GCMKW":
case "A192GCM":
case "A192GCMKW":
case "A256GCM":
case "A256GCMKW":
return 96;
case "A128CBC-HS256":
case "A192CBC-HS384":
case "A256CBC-HS512":
return 128;
default:
throw new A(`Unsupported JWE Algorithm: ${e10}`);
}
}
let W = (e10) => D(new Uint8Array(U(e10) >> 3)), L = (e10, t2) => {
if (t2.length << 3 !== U(e10)) throw new x("Invalid Initialization Vector length");
}, K = (e10, t2) => {
let r2 = e10.byteLength << 3;
if (r2 !== t2) throw new x(`Invalid Content Encryption Key length. Expected ${t2} bits, got ${r2} bits`);
}, j = (e10, t2) => {
if (!(e10 instanceof Uint8Array)) throw TypeError("First argument must be a buffer");
if (!(t2 instanceof Uint8Array)) throw TypeError("Second argument must be a buffer");
if (e10.length !== t2.length) throw TypeError("Input buffers must have the same length");
let r2 = e10.length, n2 = 0, a2 = -1;
for (; ++a2 < r2; ) n2 |= e10[a2] ^ t2[a2];
return 0 === n2;
};
function J(e10, t2 = "algorithm.name") {
return TypeError(`CryptoKey does not support this operation, its ${t2} must be ${e10}`);
}
function B(e10, t2) {
return e10.name === t2;
}
function $(e10) {
return parseInt(e10.name.slice(4), 10);
}
function V(e10, t2) {
if (t2.length && !t2.some((t3) => e10.usages.includes(t3))) {
let e11 = "CryptoKey does not support this operation, its usages must include ";
if (t2.length > 2) {
let r2 = t2.pop();
e11 += `one of ${t2.join(", ")}, or ${r2}.`;
} else 2 === t2.length ? e11 += `one of ${t2[0]} or ${t2[1]}.` : e11 += `${t2[0]}.`;
throw TypeError(e11);
}
}
function G(e10, t2, ...r2) {
switch (t2) {
case "A128GCM":
case "A192GCM":
case "A256GCM": {
if (!B(e10.algorithm, "AES-GCM")) throw J("AES-GCM");
let r3 = parseInt(t2.slice(1, 4), 10);
if (e10.algorithm.length !== r3) throw J(r3, "algorithm.length");
break;
}
case "A128KW":
case "A192KW":
case "A256KW": {
if (!B(e10.algorithm, "AES-KW")) throw J("AES-KW");
let r3 = parseInt(t2.slice(1, 4), 10);
if (e10.algorithm.length !== r3) throw J(r3, "algorithm.length");
break;
}
case "ECDH":
switch (e10.algorithm.name) {
case "ECDH":
case "X25519":
case "X448":
break;
default:
throw J("ECDH, X25519, or X448");
}
break;
case "PBES2-HS256+A128KW":
case "PBES2-HS384+A192KW":
case "PBES2-HS512+A256KW":
if (!B(e10.algorithm, "PBKDF2")) throw J("PBKDF2");
break;
case "RSA-OAEP":
case "RSA-OAEP-256":
case "RSA-OAEP-384":
case "RSA-OAEP-512": {
if (!B(e10.algorithm, "RSA-OAEP")) throw J("RSA-OAEP");
let r3 = parseInt(t2.slice(9), 10) || 1;
if ($(e10.algorithm.hash) !== r3) throw J(`SHA-${r3}`, "algorithm.hash");
break;
}
default:
throw TypeError("CryptoKey does not support this operation");
}
V(e10, r2);
}
function q(e10, t2, ...r2) {
if (r2.length > 2) {
let t3 = r2.pop();
e10 += `one of type ${r2.join(", ")}, or ${t3}.`;
} else 2 === r2.length ? e10 += `one of type ${r2[0]} or ${r2[1]}.` : e10 += `of type ${r2[0]}.`;
return null == t2 ? e10 += ` Received ${t2}` : "function" == typeof t2 && t2.name ? e10 += ` Received function ${t2.name}` : "object" == typeof t2 && null != t2 && t2.constructor && t2.constructor.name && (e10 += ` Received an instance of ${t2.constructor.name}`), e10;
}
let F = (e10, ...t2) => q("Key must be ", e10, ...t2);
function z(e10, t2, ...r2) {
return q(`Key for the ${e10} algorithm must be `, t2, ...r2);
}
let X = (e10) => o(e10), Y = ["CryptoKey"];
async function Z(e10, t2, r2, n2, a2, o2) {
let s2, c2;
if (!(t2 instanceof Uint8Array)) throw TypeError(F(t2, "Uint8Array"));
let l2 = parseInt(e10.slice(1, 4), 10), u2 = await i.subtle.importKey("raw", t2.subarray(l2 >> 3), "AES-CBC", false, ["decrypt"]), h2 = await i.subtle.importKey("raw", t2.subarray(0, l2 >> 3), { hash: `SHA-${l2 << 1}`, name: "HMAC" }, false, ["sign"]), f2 = d(o2, n2, r2, p(o2.length << 3)), g2 = new Uint8Array((await i.subtle.sign("HMAC", h2, f2)).slice(0, l2 >> 3));
try {
s2 = j(a2, g2);
} catch (e11) {
}
if (!s2) throw new P();
try {
c2 = new Uint8Array(await i.subtle.decrypt({ iv: n2, name: "AES-CBC" }, u2, r2));
} catch (e11) {
}
if (!c2) throw new P();
return c2;
}
async function Q(e10, t2, r2, n2, a2, o2) {
let s2;
t2 instanceof Uint8Array ? s2 = await i.subtle.importKey("raw", t2, "AES-GCM", false, ["decrypt"]) : (G(t2, e10, "decrypt"), s2 = t2);
try {
return new Uint8Array(await i.subtle.decrypt({ additionalData: o2, iv: n2, name: "AES-GCM", tagLength: 128 }, s2, d(r2, a2)));
} catch (e11) {
throw new P();
}
}
let ee = async (e10, t2, r2, n2, a2, i2) => {
if (!o(t2) && !(t2 instanceof Uint8Array)) throw TypeError(F(t2, ...Y, "Uint8Array"));
switch (L(e10, n2), e10) {
case "A128CBC-HS256":
case "A192CBC-HS384":
case "A256CBC-HS512":
return t2 instanceof Uint8Array && K(t2, parseInt(e10.slice(-3), 10)), Z(e10, t2, r2, n2, a2, i2);
case "A128GCM":
case "A192GCM":
case "A256GCM":
return t2 instanceof Uint8Array && K(t2, parseInt(e10.slice(1, 4), 10)), Q(e10, t2, r2, n2, a2, i2);
default:
throw new A("Unsupported JWE Content Encryption Algorithm");
}
}, et = async () => {
throw new A('JWE "zip" (Compression Algorithm) Header Parameter is not supported by your javascript runtime. You need to use the `inflateRaw` decrypt option to provide Inflate Raw implementation.');
}, er = async () => {
throw new A('JWE "zip" (Compression Algorithm) Header Parameter is not supported by your javascript runtime. You need to use the `deflateRaw` encrypt option to provide Deflate Raw implementation.');
}, en = (...e10) => {
let t2;
let r2 = e10.filter(Boolean);
if (0 === r2.length || 1 === r2.length) return true;
for (let e11 of r2) {
let r3 = Object.keys(e11);
if (!t2 || 0 === t2.size) {
t2 = new Set(r3);
continue;
}
for (let e12 of r3) {
if (t2.has(e12)) return false;
t2.add(e12);
}
}
return true;
};
function ea(e10) {
if (!("object" == typeof e10 && null !== e10) || "[object Object]" !== Object.prototype.toString.call(e10)) return false;
if (null === Object.getPrototypeOf(e10)) return true;
let t2 = e10;
for (; null !== Object.getPrototypeOf(t2); ) t2 = Object.getPrototypeOf(t2);
return Object.getPrototypeOf(e10) === t2;
}
let ei = [{ hash: "SHA-256", name: "HMAC" }, true, ["sign"]];
function eo(e10, t2) {
if (e10.algorithm.length !== parseInt(t2.slice(1, 4), 10)) throw TypeError(`Invalid key size for alg: ${t2}`);
}
function es(e10, t2, r2) {
if (o(e10)) return G(e10, t2, r2), e10;
if (e10 instanceof Uint8Array) return i.subtle.importKey("raw", e10, "AES-KW", true, [r2]);
throw TypeError(F(e10, ...Y, "Uint8Array"));
}
let ec = async (e10, t2, r2) => {
let n2 = await es(t2, e10, "wrapKey");
eo(n2, e10);
let a2 = await i.subtle.importKey("raw", r2, ...ei);
return new Uint8Array(await i.subtle.wrapKey("raw", a2, n2, "AES-KW"));
}, el = async (e10, t2, r2) => {
let n2 = await es(t2, e10, "unwrapKey");
eo(n2, e10);
let a2 = await i.subtle.unwrapKey("raw", r2, n2, "AES-KW", ...ei);
return new Uint8Array(await i.subtle.exportKey("raw", a2));
};
async function ed(e10, t2, r2, n2, a2 = new Uint8Array(0), s2 = new Uint8Array(0)) {
let l2;
if (!o(e10)) throw TypeError(F(e10, ...Y));
if (G(e10, "ECDH"), !o(t2)) throw TypeError(F(t2, ...Y));
G(t2, "ECDH", "deriveBits");
let u2 = d(f(c.encode(r2)), f(a2), f(s2), h(n2));
return l2 = "X25519" === e10.algorithm.name ? 256 : "X448" === e10.algorithm.name ? 448 : Math.ceil(parseInt(e10.algorithm.namedCurve.substr(-3), 10) / 8) << 3, g(new Uint8Array(await i.subtle.deriveBits({ name: e10.algorithm.name, public: e10 }, t2, l2)), n2, u2);
}
async function eu(e10) {
if (!o(e10)) throw TypeError(F(e10, ...Y));
return i.subtle.generateKey(e10.algorithm, true, ["deriveBits"]);
}
function ep(e10) {
if (!o(e10)) throw TypeError(F(e10, ...Y));
return ["P-256", "P-384", "P-521"].includes(e10.algorithm.namedCurve) || "X25519" === e10.algorithm.name || "X448" === e10.algorithm.name;
}
async function eh(e10, t2, r2, n2) {
!function(e11) {
if (!(e11 instanceof Uint8Array) || e11.length < 8) throw new x("PBES2 Salt Input must be 8 or more octets");
}(e10);
let a2 = d(c.encode(t2), new Uint8Array([0]), e10), s2 = parseInt(t2.slice(13, 16), 10), l2 = { hash: `SHA-${t2.slice(8, 11)}`, iterations: r2, name: "PBKDF2", salt: a2 }, u2 = await function(e11, t3) {
if (e11 instanceof Uint8Array) return i.subtle.importKey("raw", e11, "PBKDF2", false, ["deriveBits"]);
if (o(e11)) return G(e11, t3, "deriveBits", "deriveKey"), e11;
throw TypeError(F(e11, ...Y, "Uint8Array"));
}(n2, t2);
if (u2.usages.includes("deriveBits")) return new Uint8Array(await i.subtle.deriveBits(l2, u2, s2));
if (u2.usages.includes("deriveKey")) return i.subtle.deriveKey(l2, u2, { length: s2, name: "AES-KW" }, false, ["wrapKey", "unwrapKey"]);
throw TypeError('PBKDF2 key "usages" must include "deriveBits" or "deriveKey"');
}
let ef = async (e10, t2, r2, n2 = 2048, a2 = D(new Uint8Array(16))) => {
let i2 = await eh(a2, e10, n2, t2);
return { encryptedKey: await ec(e10.slice(-6), i2, r2), p2c: n2, p2s: w(a2) };
}, eg = async (e10, t2, r2, n2, a2) => {
let i2 = await eh(a2, e10, n2, t2);
return el(e10.slice(-6), i2, r2);
};
function ey(e10) {
switch (e10) {
case "RSA-OAEP":
case "RSA-OAEP-256":
case "RSA-OAEP-384":
case "RSA-OAEP-512":
return "RSA-OAEP";
default:
throw new A(`alg ${e10} is not supported either by JOSE or your javascript runtime`);
}
}
let ew = (e10, t2) => {
if (e10.startsWith("RS") || e10.startsWith("PS")) {
let { modulusLength: r2 } = t2.algorithm;
if ("number" != typeof r2 || r2 < 2048) throw TypeError(`${e10} requires key modulusLength to be 2048 bits or larger`);
}
}, em = async (e10, t2, r2) => {
if (!o(t2)) throw TypeError(F(t2, ...Y));
if (G(t2, e10, "encrypt", "wrapKey"), ew(e10, t2), t2.usages.includes("encrypt")) return new Uint8Array(await i.subtle.encrypt(ey(e10), t2, r2));
if (t2.usages.includes("wrapKey")) {
let n2 = await i.subtle.importKey("raw", r2, ...ei);
return new Uint8Array(await i.subtle.wrapKey("raw", n2, t2, ey(e10)));
}
throw TypeError('RSA-OAEP key "usages" must include "encrypt" or "wrapKey" for this operation');
}, eb = async (e10, t2, r2) => {
if (!o(t2)) throw TypeError(F(t2, ...Y));
if (G(t2, e10, "decrypt", "unwrapKey"), ew(e10, t2), t2.usages.includes("decrypt")) return new Uint8Array(await i.subtle.decrypt(ey(e10), t2, r2));
if (t2.usages.includes("unwrapKey")) {
let n2 = await i.subtle.unwrapKey("raw", r2, t2, ey(e10), ...ei);
return new Uint8Array(await i.subtle.exportKey("raw", n2));
}
throw TypeError('RSA-OAEP key "usages" must include "decrypt" or "unwrapKey" for this operation');
};
function ev(e10) {
switch (e10) {
case "A128GCM":
return 128;
case "A192GCM":
return 192;
case "A256GCM":
case "A128CBC-HS256":
return 256;
case "A192CBC-HS384":
return 384;
case "A256CBC-HS512":
return 512;
default:
throw new A(`Unsupported JWE Algorithm: ${e10}`);
}
}
let eS = (e10) => D(new Uint8Array(ev(e10) >> 3)), eE = (e10, t2) => {
let r2 = (e10.match(/.{1,64}/g) || []).join("\n");
return `-----BEGIN ${t2}-----
${r2}
-----END ${t2}-----`;
}, e_ = async (e10, t2, r2) => {
if (!o(r2)) throw TypeError(F(r2, ...Y));
if (!r2.extractable) throw TypeError("CryptoKey is not extractable");
if (r2.type !== e10) throw TypeError(`key is not a ${e10} key`);
return eE(y(new Uint8Array(await i.subtle.exportKey(t2, r2))), `${e10.toUpperCase()} KEY`);
}, eA = (e10) => e_("public", "spki", e10), eP = (e10) => e_("private", "pkcs8", e10), eC = (e10, t2, r2 = 0) => {
0 === r2 && (t2.unshift(t2.length), t2.unshift(6));
let n2 = e10.indexOf(t2[0], r2);
if (-1 === n2) return false;
let a2 = e10.subarray(n2, n2 + t2.length);
return a2.length === t2.length && (a2.every((e11, r3) => e11 === t2[r3]) || eC(e10, t2, n2 + 1));
}, ex = (e10) => {
switch (true) {
case eC(e10, [42, 134, 72, 206, 61, 3, 1, 7]):
return "P-256";
case eC(e10, [43, 129, 4, 0, 34]):
return "P-384";
case eC(e10, [43, 129, 4, 0, 35]):
return "P-521";
case eC(e10, [43, 101, 110]):
return "X25519";
case eC(e10, [43, 101, 111]):
return "X448";
case eC(e10, [43, 101, 112]):
return "Ed25519";
case eC(e10, [43, 101, 113]):
return "Ed448";
default:
throw new A("Invalid or unsupported EC Key Curve or OKP Key Sub Type");
}
}, eR = async (e10, t2, r2, n2, a2) => {
var o2;
let s2, c2;
let l2 = new Uint8Array(atob(r2.replace(e10, "")).split("").map((e11) => e11.charCodeAt(0))), d2 = "spki" === t2;
switch (n2) {
case "PS256":
case "PS384":
case "PS512":
s2 = { name: "RSA-PSS", hash: `SHA-${n2.slice(-3)}` }, c2 = d2 ? ["verify"] : ["sign"];
break;
case "RS256":
case "RS384":
case "RS512":
s2 = { name: "RSASSA-PKCS1-v1_5", hash: `SHA-${n2.slice(-3)}` }, c2 = d2 ? ["verify"] : ["sign"];
break;
case "RSA-OAEP":
case "RSA-OAEP-256":
case "RSA-OAEP-384":
case "RSA-OAEP-512":
s2 = { name: "RSA-OAEP", hash: `SHA-${parseInt(n2.slice(-3), 10) || 1}` }, c2 = d2 ? ["encrypt", "wrapKey"] : ["decrypt", "unwrapKey"];
break;
case "ES256":
s2 = { name: "ECDSA", namedCurve: "P-256" }, c2 = d2 ? ["verify"] : ["sign"];
break;
case "ES384":
s2 = { name: "ECDSA", namedCurve: "P-384" }, c2 = d2 ? ["verify"] : ["sign"];
break;
case "ES512":
s2 = { name: "ECDSA", namedCurve: "P-521" }, c2 = d2 ? ["verify"] : ["sign"];
break;
case "ECDH-ES":
case "ECDH-ES+A128KW":
case "ECDH-ES+A192KW":
case "ECDH-ES+A256KW": {
let e11 = ex(l2);
s2 = e11.startsWith("P-") ? { name: "ECDH", namedCurve: e11 } : { name: e11 }, c2 = d2 ? [] : ["deriveBits"];
break;
}
case "EdDSA":
s2 = { name: ex(l2) }, c2 = d2 ? ["verify"] : ["sign"];
break;
default:
throw new A('Invalid or unsupported "alg" (Algorithm) value');
}
return i.subtle.importKey(t2, l2, s2, null !== (o2 = null == a2 ? void 0 : a2.extractable) && void 0 !== o2 && o2, c2);
}, eT = (e10, t2, r2) => eR(/(?:-----(?:BEGIN|END) PRIVATE KEY-----|\s)/g, "pkcs8", e10, t2, r2), eO = (e10, t2, r2) => eR(/(?:-----(?:BEGIN|END) PUBLIC KEY-----|\s)/g, "spki", e10, t2, r2);
function ek(e10) {
let t2 = [], r2 = 0;
for (; r2 < e10.length; ) {
let n2 = eI(e10.subarray(r2));
t2.push(n2), r2 += n2.byteLength;
}
return t2;
}
function eI(e10) {
let t2 = 0, r2 = 31 & e10[0];
if (t2++, 31 === r2) {
for (r2 = 0; e10[t2] >= 128; ) r2 = 128 * r2 + e10[t2] - 128, t2++;
r2 = 128 * r2 + e10[t2] - 128, t2++;
}
let n2 = 0;
if (e10[t2] < 128) n2 = e10[t2], t2++;
else if (128 === n2) {
for (n2 = 0; 0 !== e10[t2 + n2] || 0 !== e10[t2 + n2 + 1]; ) {
if (n2 > e10.byteLength) throw TypeError("invalid indefinite form length");
n2++;
}
let r3 = t2 + n2 + 2;
return { byteLength: r3, contents: e10.subarray(t2, t2 + n2), raw: e10.subarray(0, r3) };
} else {
let r3 = 127 & e10[t2];
t2++, n2 = 0;
for (let a3 = 0; a3 < r3; a3++) n2 = 256 * n2 + e10[t2], t2++;
}
let a2 = t2 + n2;
return { byteLength: a2, contents: e10.subarray(t2, a2), raw: e10.subarray(0, a2) };
}
let eN = (e10, t2, r2) => {
let n2;
try {
n2 = eE(function(e11) {
let t3 = ek(ek(eI(e11).contents)[0].contents);
return y(t3[160 === t3[0].raw[0] ? 6 : 5].raw);
}(m(e10.replace(/(?:-----(?:BEGIN|END) CERTIFICATE-----|\s)/g, ""))), "PUBLIC KEY");
} catch (e11) {
throw TypeError("Failed to parse the X.509 certificate", { cause: e11 });
}
return eO(n2, t2, r2);
}, eH = async (e10) => {
var t2, r2;
if (!e10.alg) throw TypeError('"alg" argument is required when "jwk.alg" is not present');
let { algorithm: n2, keyUsages: a2 } = function(e11) {
let t3, r3;
switch (e11.kty) {
case "oct":
switch (e11.alg) {
case "HS256":
case "HS384":
case "HS512":
t3 = { name: "HMAC", hash: `SHA-${e11.alg.slice(-3)}` }, r3 = ["sign", "verify"];
break;
case "A128CBC-HS256":
case "A192CBC-HS384":
case "A256CBC-HS512":
throw new A(`${e11.alg} keys cannot be imported as CryptoKey instances`);
case "A128GCM":
case "A192GCM":
case "A256GCM":
case "A128GCMKW":
case "A192GCMKW":
case "A256GCMKW":
t3 = { name: "AES-GCM" }, r3 = ["encrypt", "decrypt"];
break;
case "A128KW":
case "A192KW":
case "A256KW":
t3 = { name: "AES-KW" }, r3 = ["wrapKey", "unwrapKey"];
break;
case "PBES2-HS256+A128KW":
case "PBES2-HS384+A192KW":
case "PBES2-HS512+A256KW":
t3 = { name: "PBKDF2" }, r3 = ["deriveBits"];
break;
default:
throw new A('Invalid or unsupported JWK "alg" (Algorithm) Parameter value');
}
break;
case "RSA":
switch (e11.alg) {
case "PS256":
case "PS384":
case "PS512":
t3 = { name: "RSA-PSS", hash: `SHA-${e11.alg.slice(-3)}` }, r3 = e11.d ? ["sign"] : ["verify"];
break;
case "RS256":
case "RS384":
case "RS512":
t3 = { name: "RSASSA-PKCS1-v1_5", hash: `SHA-${e11.alg.slice(-3)}` }, r3 = e11.d ? ["sign"] : ["verify"];
break;
case "RSA-OAEP":
case "RSA-OAEP-256":
case "RSA-OAEP-384":
case "RSA-OAEP-512":
t3 = { name: "RSA-OAEP", hash: `SHA-${parseInt(e11.alg.slice(-3), 10) || 1}` }, r3 = e11.d ? ["decrypt", "unwrapKey"] : ["encrypt", "wrapKey"];
break;
default:
throw new A('Invalid or unsupported JWK "alg" (Algorithm) Parameter value');
}
break;
case "EC":
switch (e11.alg) {
case "ES256":
t3 = { name: "ECDSA", namedCurve: "P-256" }, r3 = e11.d ? ["sign"] : ["verify"];
break;
case "ES384":
t3 = { name: "ECDSA", namedCurve: "P-384" }, r3 = e11.d ? ["sign"] : ["verify"];
break;
case "ES512":
t3 = { name: "ECDSA", namedCurve: "P-521" }, r3 = e11.d ? ["sign"] : ["verify"];
break;
case "ECDH-ES":
case "ECDH-ES+A128KW":
case "ECDH-ES+A192KW":
case "ECDH-ES+A256KW":
t3 = { name: "ECDH", namedCurve: e11.crv }, r3 = e11.d ? ["deriveBits"] : [];
break;
default:
throw new A('Invalid or unsupported JWK "alg" (Algorithm) Parameter value');
}
break;
case "OKP":
switch (e11.alg) {
case "EdDSA":
t3 = { name: e11.crv }, r3 = e11.d ? ["sign"] : ["verify"];
break;
case "ECDH-ES":
case "ECDH-ES+A128KW":
case "ECDH-ES+A192KW":
case "ECDH-ES+A256KW":
t3 = { name: e11.crv }, r3 = e11.d ? ["deriveBits"] : [];
break;
default:
throw new A('Invalid or unsupported JWK "alg" (Algorithm) Parameter value');
}
break;
default:
throw new A('Invalid or unsupported JWK "kty" (Key Type) Parameter value');
}
return { algorithm: t3, keyUsages: r3 };
}(e10), o2 = [n2, null !== (t2 = e10.ext) && void 0 !== t2 && t2, null !== (r2 = e10.key_ops) && void 0 !== r2 ? r2 : a2];
if ("PBKDF2" === n2.name) return i.subtle.importKey("raw", b(e10.k), ...o2);
let s2 = { ...e10 };
return delete s2.alg, delete s2.use, i.subtle.importKey("jwk", s2, ...o2);
};
async function eM(e10, t2, r2) {
if ("string" != typeof e10 || 0 !== e10.indexOf("-----BEGIN PUBLIC KEY-----")) throw TypeError('"spki" must be SPKI formatted string');
return eO(e10, t2, r2);
}
async function eD(e10, t2, r2) {
if ("string" != typeof e10 || 0 !== e10.indexOf("-----BEGIN CERTIFICATE-----")) throw TypeError('"x509" must be X.509 formatted string');
return eN(e10, t2, r2);
}
async function eU(e10, t2, r2) {
if ("string" != typeof e10 || 0 !== e10.indexOf("-----BEGIN PRIVATE KEY-----")) throw TypeError('"pkcs8" must be PKCS#8 formatted string');
return eT(e10, t2, r2);
}
async function eW(e10, t2, r2) {
var n2;
if (!ea(e10)) throw TypeError("JWK must be an object");
switch (t2 || (t2 = e10.alg), e10.kty) {
case "oct":
if ("string" != typeof e10.k || !e10.k) throw TypeError('missing "k" (Key Value) Parameter value');
if (null != r2 || (r2 = true !== e10.ext), r2) return eH({ ...e10, alg: t2, ext: null !== (n2 = e10.ext) && void 0 !== n2 && n2 });
return b(e10.k);
case "RSA":
if (void 0 !== e10.oth) throw new A('RSA JWK "oth" (Other Primes Info) Parameter value is not supported');
case "EC":
case "OKP":
return eH({ ...e10, alg: t2 });
default:
throw new A('Unsupported "kty" (Key Type) Parameter value');
}
}
let eL = (e10, t2) => {
if (!(t2 instanceof Uint8Array)) {
if (!X(t2)) throw TypeError(z(e10, t2, ...Y, "Uint8Array"));
if ("secret" !== t2.type) throw TypeError(`${Y.join(" or ")} instances for symmetric algorithms must be of type "secret"`);
}
}, eK = (e10, t2, r2) => {
if (!X(t2)) throw TypeError(z(e10, t2, ...Y));
if ("secret" === t2.type) throw TypeError(`${Y.join(" or ")} instances for asymmetric algorithms must not be of type "secret"`);
if ("sign" === r2 && "public" === t2.type) throw TypeError(`${Y.join(" or ")} instances for asymmetric algorithm signing must be of type "private"`);
if ("decrypt" === r2 && "public" === t2.type) throw TypeError(`${Y.join(" or ")} instances for asymmetric algorithm decryption must be of type "private"`);
if (t2.algorithm && "verify" === r2 && "private" === t2.type) throw TypeError(`${Y.join(" or ")} instances for asymmetric algorithm verifying must be of type "public"`);
if (t2.algorithm && "encrypt" === r2 && "private" === t2.type) throw TypeError(`${Y.join(" or ")} instances for asymmetric algorithm encryption must be of type "public"`);
}, ej = (e10, t2, r2) => {
e10.startsWith("HS") || "dir" === e10 || e10.startsWith("PBES2") || /^A\d{3}(?:GCM)?KW$/.test(e10) ? eL(e10, t2) : eK(e10, t2, r2);
};
async function eJ(e10, t2, r2, n2, a2) {
if (!(r2 instanceof Uint8Array)) throw TypeError(F(r2, "Uint8Array"));
let o2 = parseInt(e10.slice(1, 4), 10), s2 = await i.subtle.importKey("raw", r2.subarray(o2 >> 3), "AES-CBC", false, ["encrypt"]), c2 = await i.subtle.importKey("raw", r2.subarray(0, o2 >> 3), { hash: `SHA-${o2 << 1}`, name: "HMAC" }, false, ["sign"]), l2 = new Uint8Array(await i.subtle.encrypt({ iv: n2, name: "AES-CBC" }, s2, t2)), u2 = d(a2, n2, l2, p(a2.length << 3));
return { ciphertext: l2, tag: new Uint8Array((await i.subtle.sign("HMAC", c2, u2)).slice(0, o2 >> 3)) };
}
async function eB(e10, t2, r2, n2, a2) {
let o2;
r2 instanceof Uint8Array ? o2 = await i.subtle.importKey("raw", r2, "AES-GCM", false, ["encrypt"]) : (G(r2, e10, "encrypt"), o2 = r2);
let s2 = new Uint8Array(await i.subtle.encrypt({ additionalData: a2, iv: n2, name: "AES-GCM", tagLength: 128 }, o2, t2)), c2 = s2.slice(-16);
return { ciphertext: s2.slice(0, -16), tag: c2 };
}
let e$ = async (e10, t2, r2, n2, a2) => {
if (!o(r2) && !(r2 instanceof Uint8Array)) throw TypeError(F(r2, ...Y, "Uint8Array"));
switch (L(e10, n2), e10) {
case "A128CBC-HS256":
case "A192CBC-HS384":
case "A256CBC-HS512":
return r2 instanceof Uint8Array && K(r2, parseInt(e10.slice(-3), 10)), eJ(e10, t2, r2, n2, a2);
case "A128GCM":
case "A192GCM":
case "A256GCM":
return r2 instanceof Uint8Array && K(r2, parseInt(e10.slice(1, 4), 10)), eB(e10, t2, r2, n2, a2);
default:
throw new A("Unsupported JWE Content Encryption Algorithm");
}
};
async function eV(e10, t2, r2, n2) {
let a2 = e10.slice(0, 7);
n2 || (n2 = W(a2));
let { ciphertext: i2, tag: o2 } = await e$(a2, r2, t2, n2, new Uint8Array(0));
return { encryptedKey: i2, iv: w(n2), tag: w(o2) };
}
async function eG(e10, t2, r2, n2, a2) {
return ee(e10.slice(0, 7), t2, r2, n2, a2, new Uint8Array(0));
}
async function eq(e10, t2, r2, n2, a2) {
switch (ej(e10, t2, "decrypt"), e10) {
case "dir":
if (void 0 !== r2) throw new x("Encountered unexpected JWE Encrypted Key");
return t2;
case "ECDH-ES":
if (void 0 !== r2) throw new x("Encountered unexpected JWE Encrypted Key");
case "ECDH-ES+A128KW":
case "ECDH-ES+A192KW":
case "ECDH-ES+A256KW": {
let a3, i2;
if (!ea(n2.epk)) throw new x('JOSE Header "epk" (Ephemeral Public Key) missing or invalid');
if (!ep(t2)) throw new A("ECDH with the provided key is not allowed or not supported by your javascript runtime");
let o2 = await eW(n2.epk, e10);
if (void 0 !== n2.apu) {
if ("string" != typeof n2.apu) throw new x('JOSE Header "apu" (Agreement PartyUInfo) invalid');
try {
a3 = b(n2.apu);
} catch (e11) {
throw new x("Failed to base64url decode the apu");
}
}
if (void 0 !== n2.apv) {
if ("string" != typeof n2.apv) throw new x('JOSE Header "apv" (Agreement PartyVInfo) invalid');
try {
i2 = b(n2.apv);
} catch (e11) {
throw new x("Failed to base64url decode the apv");
}
}
let s2 = await ed(o2, t2, "ECDH-ES" === e10 ? n2.enc : e10, "ECDH-ES" === e10 ? ev(n2.enc) : parseInt(e10.slice(-5, -2), 10), a3, i2);
if ("ECDH-ES" === e10) return s2;
if (void 0 === r2) throw new x("JWE Encrypted Key missing");
return el(e10.slice(-6), s2, r2);
}
case "RSA1_5":
case "RSA-OAEP":
case "RSA-OAEP-256":
case "RSA-OAEP-384":
case "RSA-OAEP-512":
if (void 0 === r2) throw new x("JWE Encrypted Key missing");
return eb(e10, t2, r2);
case "PBES2-HS256+A128KW":
case "PBES2-HS384+A192KW":
case "PBES2-HS512+A256KW": {
let i2;
if (void 0 === r2) throw new x("JWE Encrypted Key missing");
if ("number" != typeof n2.p2c) throw new x('JOSE Header "p2c" (PBES2 Count) missing or invalid');
let o2 = (null == a2 ? void 0 : a2.maxPBES2Count) || 1e4;
if (n2.p2c > o2) throw new x('JOSE Header "p2c" (PBES2 Count) out is of acceptable bounds');
if ("string" != typeof n2.p2s) throw new x('JOSE Header "p2s" (PBES2 Salt) missing or invalid');
try {
i2 = b(n2.p2s);
} catch (e11) {
throw new x("Failed to base64url decode the p2s");
}
return eg(e10, t2, r2, n2.p2c, i2);
}
case "A128KW":
case "A192KW":
case "A256KW":
if (void 0 === r2) throw new x("JWE Encrypted Key missing");
return el(e10, t2, r2);
case "A128GCMKW":
case "A192GCMKW":
case "A256GCMKW": {
let a3, i2;
if (void 0 === r2) throw new x("JWE Encrypted Key missing");
if ("string" != typeof n2.iv) throw new x('JOSE Header "iv" (Initialization Vector) missing or invalid');
if ("string" != typeof n2.tag) throw new x('JOSE Header "tag" (Authentication Tag) missing or invalid');
try {
a3 = b(n2.iv);
} catch (e11) {
throw new x("Failed to base64url decode the iv");
}
try {
i2 = b(n2.tag);
} catch (e11) {
throw new x("Failed to base64url decode the tag");
}
return eG(e10, t2, r2, a3, i2);
}
default:
throw new A('Invalid or unsupported "alg" (JWE Algorithm) header value');
}
}
let eF = function(e10, t2, r2, n2, a2) {
let i2;
if (void 0 !== a2.crit && void 0 === n2.crit) throw new e10('"crit" (Critical) Header Parameter MUST be integrity protected');
if (!n2 || void 0 === n2.crit) return /* @__PURE__ */ new Set();
if (!Array.isArray(n2.crit) || 0 === n2.crit.length || n2.crit.some((e11) => "string" != typeof e11 || 0 === e11.length)) throw new e10('"crit" (Critical) Header Parameter MUST be an array of non-empty strings when present');
for (let o2 of (i2 = void 0 !== r2 ? new Map([...Object.entries(r2), ...t2.entries()]) : t2, n2.crit)) {
if (!i2.has(o2)) throw new A(`Extension Header Parameter "${o2}" is not recognized`);
if (void 0 === a2[o2]) throw new e10(`Extension Header Parameter "${o2}" is missing`);
if (i2.get(o2) && void 0 === n2[o2]) throw new e10(`Extension Header Parameter "${o2}" MUST be integrity protected`);
}
return new Set(n2.crit);
}, ez = (e10, t2) => {
if (void 0 !== t2 && (!Array.isArray(t2) || t2.some((e11) => "string" != typeof e11))) throw TypeError(`"${e10}" option must be an array of strings`);
if (t2) return new Set(t2);
};
async function eX(e10, t2, r2) {
var n2;
let a2, i2, o2, s2, u2, p2, h2;
if (!ea(e10)) throw new x("Flattened JWE must be an object");
if (void 0 === e10.protected && void 0 === e10.header && void 0 === e10.unprotected) throw new x("JOSE Header missing");
if ("string" != typeof e10.iv) throw new x("JWE Initialization Vector missing or incorrect type");
if ("string" != typeof e10.ciphertext) throw new x("JWE Ciphertext missing or incorrect type");
if ("string" != typeof e10.tag) throw new x("JWE Authentication Tag missing or incorrect type");
if (void 0 !== e10.protected && "string" != typeof e10.protected) throw new x("JWE Protected Header incorrect type");
if (void 0 !== e10.encrypted_key && "string" != typeof e10.encrypted_key) throw new x("JWE Encrypted Key incorrect type");
if (void 0 !== e10.aad && "string" != typeof e10.aad) throw new x("JWE AAD incorrect type");
if (void 0 !== e10.header && !ea(e10.header)) throw new x("JWE Shared Unprotected Header incorrect type");
if (void 0 !== e10.unprotected && !ea(e10.unprotected)) throw new x("JWE Per-Recipient Unprotected Header incorrect type");
if (e10.protected) try {
let t3 = b(e10.protected);
a2 = JSON.parse(l.decode(t3));
} catch (e11) {
throw new x("JWE Protected Header is invalid");
}
if (!en(a2, e10.header, e10.unprotected)) throw new x("JWE Protected, JWE Unprotected Header, and JWE Per-Recipient Unprotected Header Parameter names must be disjoint");
let f2 = { ...a2, ...e10.header, ...e10.unprotected };
if (eF(x, /* @__PURE__ */ new Map(), null == r2 ? void 0 : r2.crit, a2, f2), void 0 !== f2.zip) {
if (!a2 || !a2.zip) throw new x('JWE "zip" (Compression Algorithm) Header MUST be integrity protected');
if ("DEF" !== f2.zip) throw new A('Unsupported JWE "zip" (Compression Algorithm) Header Parameter value');
}
let { alg: g2, enc: y2 } = f2;
if ("string" != typeof g2 || !g2) throw new x("missing JWE Algorithm (alg) in JWE Header");
if ("string" != typeof y2 || !y2) throw new x("missing JWE Encryption Algorithm (enc) in JWE Header");
let w2 = r2 && ez("keyManagementAlgorithms", r2.keyManagementAlgorithms), m2 = r2 && ez("contentEncryptionAlgorithms", r2.contentEncryptionAlgorithms);
if (w2 && !w2.has(g2)) throw new _('"alg" (Algorithm) Header Parameter not allowed');
if (m2 && !m2.has(y2)) throw new _('"enc" (Encryption Algorithm) Header Parameter not allowed');
if (void 0 !== e10.encrypted_key) try {
i2 = b(e10.encrypted_key);
} catch (e11) {
throw new x("Failed to base64url decode the encrypted_key");
}
let v2 = false;
"function" == typeof t2 && (t2 = await t2(a2, e10), v2 = true);
try {
o2 = await eq(g2, t2, i2, f2, r2);
} catch (e11) {
if (e11 instanceof TypeError || e11 instanceof x || e11 instanceof A) throw e11;
o2 = eS(y2);
}
try {
s2 = b(e10.iv);
} catch (e11) {
throw new x("Failed to base64url decode the iv");
}
try {
u2 = b(e10.tag);
} catch (e11) {
throw new x("Failed to base64url decode the tag");
}
let S2 = c.encode(null !== (n2 = e10.protected) && void 0 !== n2 ? n2 : "");
p2 = void 0 !== e10.aad ? d(S2, c.encode("."), c.encode(e10.aad)) : S2;
try {
h2 = b(e10.ciphertext);
} catch (e11) {
throw new x("Failed to base64url decode the ciphertext");
}
let E2 = await ee(y2, o2, h2, s2, u2, p2);
"DEF" === f2.zip && (E2 = await ((null == r2 ? void 0 : r2.inflateRaw) || et)(E2));
let P2 = { plaintext: E2 };
if (void 0 !== e10.protected && (P2.protectedHeader = a2), void 0 !== e10.aad) try {
P2.additionalAuthenticatedData = b(e10.aad);
} catch (e11) {
throw new x("Failed to base64url decode the aad");
}
return (void 0 !== e10.unprotected && (P2.sharedUnprotectedHeader = e10.unprotected), void 0 !== e10.header && (P2.unprotectedHeader = e10.header), v2) ? { ...P2, key: t2 } : P2;
}
async function eY(e10, t2, r2) {
if (e10 instanceof Uint8Array && (e10 = l.decode(e10)), "string" != typeof e10) throw new x("Compact JWE must be a string or Uint8Array");
let { 0: n2, 1: a2, 2: i2, 3: o2, 4: s2, length: c2 } = e10.split(".");
if (5 !== c2) throw new x("Invalid Compact JWE");
let d2 = await eX({ ciphertext: o2, iv: i2 || void 0, protected: n2 || void 0, tag: s2 || void 0, encrypted_key: a2 || void 0 }, t2, r2), u2 = { plaintext: d2.plaintext, protectedHeader: d2.protectedHeader };
return "function" == typeof t2 ? { ...u2, key: d2.key } : u2;
}
async function eZ(e10, t2, r2) {
if (!ea(e10)) throw new x("General JWE must be an object");
if (!Array.isArray(e10.recipients) || !e10.recipients.every(ea)) throw new x("JWE Recipients missing or incorrect type");
if (!e10.recipients.length) throw new x("JWE Recipients has no members");
for (let n2 of e10.recipients) try {
return await eX({ aad: e10.aad, ciphertext: e10.ciphertext, encrypted_key: n2.encrypted_key, header: n2.header, iv: e10.iv, protected: e10.protected, tag: e10.tag, unprotected: e10.unprotected }, t2, r2);
} catch (e11) {
}
throw new P();
}
let eQ = async (e10) => {
if (e10 instanceof Uint8Array) return { kty: "oct", k: w(e10) };
if (!o(e10)) throw TypeError(F(e10, ...Y, "Uint8Array"));
if (!e10.extractable) throw TypeError("non-extractable CryptoKey cannot be exported as a JWK");
let { ext: t2, key_ops: r2, alg: n2, use: a2, ...s2 } = await i.subtle.exportKey("jwk", e10);
return s2;
};
async function e0(e10) {
return eA(e10);
}
async function e1(e10) {
return eP(e10);
}
async function e2(e10) {
return eQ(e10);
}
async function e5(e10, t2, r2, n2, a2 = {}) {
let i2, o2, s2;
switch (ej(e10, r2, "encrypt"), e10) {
case "dir":
s2 = r2;
break;
case "ECDH-ES":
case "ECDH-ES+A128KW":
case "ECDH-ES+A192KW":
case "ECDH-ES+A256KW": {
if (!ep(r2)) throw new A("ECDH with the provided key is not allowed or not supported by your javascript runtime");
let { apu: c2, apv: l2 } = a2, { epk: d2 } = a2;
d2 || (d2 = (await eu(r2)).privateKey);
let { x: u2, y: p2, crv: h2, kty: f2 } = await e2(d2), g2 = await ed(r2, d2, "ECDH-ES" === e10 ? t2 : e10, "ECDH-ES" === e10 ? ev(t2) : parseInt(e10.slice(-5, -2), 10), c2, l2);
if (o2 = { epk: { x: u2, crv: h2, kty: f2 } }, "EC" === f2 && (o2.epk.y = p2), c2 && (o2.apu = w(c2)), l2 && (o2.apv = w(l2)), "ECDH-ES" === e10) {
s2 = g2;
break;
}
s2 = n2 || eS(t2);
let y2 = e10.slice(-6);
i2 = await ec(y2, g2, s2);
break;
}
case "RSA1_5":
case "RSA-OAEP":
case "RSA-OAEP-256":
case "RSA-OAEP-384":
case "RSA-OAEP-512":
s2 = n2 || eS(t2), i2 = await em(e10, r2, s2);
break;
case "PBES2-HS256+A128KW":
case "PBES2-HS384+A192KW":
case "PBES2-HS512+A256KW": {
s2 = n2 || eS(t2);
let { p2c: c2, p2s: l2 } = a2;
({ encryptedKey: i2, ...o2 } = await ef(e10, r2, s2, c2, l2));
break;
}
case "A128KW":
case "A192KW":
case "A256KW":
s2 = n2 || eS(t2), i2 = await ec(e10, r2, s2);
break;
case "A128GCMKW":
case "A192GCMKW":
case "A256GCMKW": {
s2 = n2 || eS(t2);
let { iv: c2 } = a2;
({ encryptedKey: i2, ...o2 } = await eV(e10, r2, s2, c2));
break;
}
default:
throw new A('Invalid or unsupported "alg" (JWE Algorithm) header value');
}
return { cek: s2, encryptedKey: i2, parameters: o2 };
}
let e4 = Symbol();
class e3 {
constructor(e10) {
if (!(e10 instanceof Uint8Array)) throw TypeError("plaintext must be an instance of Uint8Array");
this._plaintext = e10;
}
setKeyManagementParameters(e10) {
if (this._keyManagementParameters) throw TypeError("setKeyManagementParameters can only be called once");
return this._keyManagementParameters = e10, this;
}
setProtectedHeader(e10) {
if (this._protectedHeader) throw TypeError("setProtectedHeader can only be called once");
return this._protectedHeader = e10, this;
}
setSharedUnprotectedHeader(e10) {
if (this._sharedUnprotectedHeader) throw TypeError("setSharedUnprotectedHeader can only be called once");
return this._sharedUnprotectedHeader = e10, this;
}
setUnprotectedHeader(e10) {
if (this._unprotectedHeader) throw TypeError("setUnprotectedHeader can only be called once");
return this._unprotectedHeader = e10, this;
}
setAdditionalAuthenticatedData(e10) {
return this._aad = e10, this;
}
setContentEncryptionKey(e10) {
if (this._cek) throw TypeError("setContentEncryptionKey can only be called once");
return this._cek = e10, this;
}
setInitializationVector(e10) {
if (this._iv) throw TypeError("setInitializationVector can only be called once");
return this._iv = e10, this;
}
async encrypt(e10, t2) {
let r2, n2, a2, i2, o2, s2, u2;
if (!this._protectedHeader && !this._unprotectedHeader && !this._sharedUnprotectedHeader) throw new x("either setProtectedHeader, setUnprotectedHeader, or sharedUnprotectedHeader must be called before #encrypt()");
if (!en(this._protectedHeader, this._unprotectedHeader, this._sharedUnprotectedHeader)) throw new x("JWE Protected, JWE Shared Unprotected and JWE Per-Recipient Header Parameter names must be disjoint");
let p2 = { ...this._protectedHeader, ...this._unprotectedHeader, ...this._sharedUnprotectedHeader };
if (eF(x, /* @__PURE__ */ new Map(), null == t2 ? void 0 : t2.crit, this._protectedHeader, p2), void 0 !== p2.zip) {
if (!this._protectedHeader || !this._protectedHeader.zip) throw new x('JWE "zip" (Compression Algorithm) Header MUST be integrity protected');
if ("DEF" !== p2.zip) throw new A('Unsupported JWE "zip" (Compression Algorithm) Header Parameter value');
}
let { alg: h2, enc: f2 } = p2;
if ("string" != typeof h2 || !h2) throw new x('JWE "alg" (Algorithm) Header Parameter missing or invalid');
if ("string" != typeof f2 || !f2) throw new x('JWE "enc" (Encryption Algorithm) Header Parameter missing or invalid');
if ("dir" === h2) {
if (this._cek) throw TypeError("setContentEncryptionKey cannot be called when using Direct Encryption");
} else if ("ECDH-ES" === h2 && this._cek) throw TypeError("setContentEncryptionKey cannot be called when using Direct Key Agreement");
{
let a3;
({ cek: n2, encryptedKey: r2, parameters: a3 } = await e5(h2, f2, e10, this._cek, this._keyManagementParameters)), a3 && (t2 && e4 in t2 ? this._unprotectedHeader ? this._unprotectedHeader = { ...this._unprotectedHeader, ...a3 } : this.setUnprotectedHeader(a3) : this._protectedHeader ? this._protectedHeader = { ...this._protectedHeader, ...a3 } : this.setProtectedHeader(a3));
}
if (this._iv || (this._iv = W(f2)), i2 = this._protectedHeader ? c.encode(w(JSON.stringify(this._protectedHeader))) : c.encode(""), this._aad ? (o2 = w(this._aad), a2 = d(i2, c.encode("."), c.encode(o2))) : a2 = i2, "DEF" === p2.zip) {
let e11 = await ((null == t2 ? void 0 : t2.deflateRaw) || er)(this._plaintext);
({ ciphertext: s2, tag: u2 } = await e$(f2, e11, n2, this._iv, a2));
} else ({ ciphertext: s2, tag: u2 } = await e$(f2, this._plaintext, n2, this._iv, a2));
let g2 = { ciphertext: w(s2), iv: w(this._iv), tag: w(u2) };
return r2 && (g2.encrypted_key = w(r2)), o2 && (g2.aad = o2), this._protectedHeader && (g2.protected = l.decode(i2)), this._sharedUnprotectedHeader && (g2.unprotected = this._sharedUnprotectedHeader), this._unprotectedHeader && (g2.header = this._unprotectedHeader), g2;
}
}
class e6 {
constructor(e10, t2, r2) {
this.parent = e10, this.key = t2, this.options = r2;
}
setUnprotectedHeader(e10) {
if (this.unprotectedHeader) throw TypeError("setUnprotectedHeader can only be called once");
return this.unprotectedHeader = e10, this;
}
addRecipient(...e10) {
return this.parent.addRecipient(...e10);
}
encrypt(...e10) {
return this.parent.encrypt(...e10);
}
done() {
return this.parent;
}
}
class e8 {
constructor(e10) {
this._recipients = [], this._plaintext = e10;
}
addRecipient(e10, t2) {
let r2 = new e6(this, e10, { crit: null == t2 ? void 0 : t2.crit });
return this._recipients.push(r2), r2;
}
setProtectedHeader(e10) {
if (this._protectedHeader) throw TypeError("setProtectedHeader can only be called once");
return this._protectedHeader = e10, this;
}
setSharedUnprotectedHeader(e10) {
if (this._unprotectedHeader) throw TypeError("setSharedUnprotectedHeader can only be called once");
return this._unprotectedHeader = e10, this;
}
setAdditionalAuthenticatedData(e10) {
return this._aad = e10, this;
}
async encrypt(e10) {
var t2, r2, n2;
let a2;
if (!this._recipients.length) throw new x("at least one recipient must be added");
if (e10 = { deflateRaw: null == e10 ? void 0 : e10.deflateRaw }, 1 === this._recipients.length) {
let [t3] = this._recipients, r3 = await new e3(this._plaintext).setAdditionalAuthenticatedData(this._aad).setProtectedHeader(this._protectedHeader).setSharedUnprotectedHeader(this._unprotectedHeader).setUnprotectedHeader(t3.unprotectedHeader).encrypt(t3.key, { ...t3.options, ...e10 }), n3 = { ciphertext: r3.ciphertext, iv: r3.iv, recipients: [{}], tag: r3.tag };
return r3.aad && (n3.aad = r3.aad), r3.protected && (n3.protected = r3.protected), r3.unprotected && (n3.unprotected = r3.unprotected), r3.encrypted_key && (n3.recipients[0].encrypted_key = r3.encrypted_key), r3.header && (n3.recipients[0].header = r3.header), n3;
}
for (let e11 = 0; e11 < this._recipients.length; e11++) {
let t3 = this._recipients[e11];
if (!en(this._protectedHeader, this._unprotectedHeader, t3.unprotectedHeader)) throw new x("JWE Protected, JWE Shared Unprotected and JWE Per-Recipient Header Parameter names must be disjoint");
let r3 = { ...this._protectedHeader, ...this._unprotectedHeader, ...t3.unprotectedHeader }, { alg: n3 } = r3;
if ("string" != typeof n3 || !n3) throw new x('JWE "alg" (Algorithm) Header Parameter missing or invalid');
if ("dir" === n3 || "ECDH-ES" === n3) throw new x('"dir" and "ECDH-ES" alg may only be used with a single recipient');
if ("string" != typeof r3.enc || !r3.enc) throw new x('JWE "enc" (Encryption Algorithm) Header Parameter missing or invalid');
if (a2) {
if (a2 !== r3.enc) throw new x('JWE "enc" (Encryption Algorithm) Header Parameter must be the same for all recipients');
} else a2 = r3.enc;
if (eF(x, /* @__PURE__ */ new Map(), t3.options.crit, this._protectedHeader, r3), void 0 !== r3.zip && (!this._protectedHeader || !this._protectedHeader.zip)) throw new x('JWE "zip" (Compression Algorithm) Header MUST be integrity protected');
}
let i2 = eS(a2), o2 = { ciphertext: "", iv: "", recipients: [], tag: "" };
for (let s2 = 0; s2 < this._recipients.length; s2++) {
let c2 = this._recipients[s2], l2 = {};
o2.recipients.push(l2);
let d2 = { ...this._protectedHeader, ...this._unprotectedHeader, ...c2.unprotectedHeader }.alg.startsWith("PBES2") ? 2048 + s2 : void 0;
if (0 === s2) {
let t3 = await new e3(this._plaintext).setAdditionalAuthenticatedData(this._aad).setContentEncryptionKey(i2).setProtectedHeader(this._protectedHeader).setSharedUnprotectedHeader(this._unprotectedHeader).setUnprotectedHeader(c2.unprotectedHeader).setKeyManagementParameters({ p2c: d2 }).encrypt(c2.key, { ...c2.options, ...e10, [e4]: true });
o2.ciphertext = t3.ciphertext, o2.iv = t3.iv, o2.tag = t3.tag, t3.aad && (o2.aad = t3.aad), t3.protected && (o2.protected = t3.protected), t3.unprotected && (o2.unprotected = t3.unprotected), l2.encrypted_key = t3.encrypted_key, t3.header && (l2.header = t3.header);
continue;
}
let { encryptedKey: u2, parameters: p2 } = await e5((null === (t2 = c2.unprotectedHeader) || void 0 === t2 ? void 0 : t2.alg) || (null === (r2 = this._protectedHeader) || void 0 === r2 ? void 0 : r2.alg) || (null === (n2 = this._unprotectedHeader) || void 0 === n2 ? void 0 : n2.alg), a2, c2.key, i2, { p2c: d2 });
l2.encrypted_key = w(u2), (c2.unprotectedHeader || p2) && (l2.header = { ...c2.unprotectedHeader, ...p2 });
}
return o2;
}
}
function e9(e10, t2) {
let r2 = `SHA-${e10.slice(-3)}`;
switch (e10) {
case "HS256":
case "HS384":
case "HS512":
return { hash: r2, name: "HMAC" };
case "PS256":
case "PS384":
case "PS512":
return { hash: r2, name: "RSA-PSS", saltLength: e10.slice(-3) >> 3 };
case "RS256":
case "RS384":
case "RS512":
return { hash: r2, name: "RSASSA-PKCS1-v1_5" };
case "ES256":
case "ES384":
case "ES512":
return { hash: r2, name: "ECDSA", namedCurve: t2.namedCurve };
case "EdDSA":
return { name: t2.name };
default:
throw new A(`alg ${e10} is not supported either by JOSE or your javascript runtime`);
}
}
function e7(e10, t2, r2) {
if (o(t2)) return !function(e11, t3, ...r3) {
switch (t3) {
case "HS256":
case "HS384":
case "HS512": {
if (!B(e11.algorithm, "HMAC")) throw J("HMAC");
let r4 = parseInt(t3.slice(2), 10);
if ($(e11.algorithm.hash) !== r4) throw J(`SHA-${r4}`, "algorithm.hash");
break;
}
case "RS256":
case "RS384":
case "RS512": {
if (!B(e11.algorithm, "RSASSA-PKCS1-v1_5")) throw J("RSASSA-PKCS1-v1_5");
let r4 = parseInt(t3.slice(2), 10);
if ($(e11.algorithm.hash) !== r4) throw J(`SHA-${r4}`, "algorithm.hash");
break;
}
case "PS256":
case "PS384":
case "PS512": {
if (!B(e11.algorithm, "RSA-PSS")) throw J("RSA-PSS");
let r4 = parseInt(t3.slice(2), 10);
if ($(e11.algorithm.hash) !== r4) throw J(`SHA-${r4}`, "algorithm.hash");
break;
}
case "EdDSA":
if ("Ed25519" !== e11.algorithm.name && "Ed448" !== e11.algorithm.name) throw J("Ed25519 or Ed448");
break;
case "ES256":
case "ES384":
case "ES512": {
if (!B(e11.algorithm, "ECDSA")) throw J("ECDSA");
let r4 = function(e12) {
switch (e12) {
case "ES256":
return "P-256";
case "ES384":
return "P-384";
case "ES512":
return "P-521";
default:
throw Error("unreachable");
}
}(t3);
if (e11.algorithm.namedCurve !== r4) throw J(r4, "algorithm.namedCurve");
break;
}
default:
throw TypeError("CryptoKey does not support this operation");
}
V(e11, r3);
}(t2, e10, r2), t2;
if (t2 instanceof Uint8Array) {
if (!e10.startsWith("HS")) throw TypeError(F(t2, ...Y));
return i.subtle.importKey("raw", t2, { hash: `SHA-${e10.slice(-3)}`, name: "HMAC" }, false, [r2]);
}
throw TypeError(F(t2, ...Y, "Uint8Array"));
}
let te = async (e10, t2, r2, n2) => {
let a2 = await e7(e10, t2, "verify");
ew(e10, a2);
let o2 = e9(e10, a2.algorithm);
try {
return await i.subtle.verify(o2, a2, r2, n2);
} catch (e11) {
return false;
}
};
async function tt(e10, t2, r2) {
var n2;
let a2, i2;
if (!ea(e10)) throw new R("Flattened JWS must be an object");
if (void 0 === e10.protected && void 0 === e10.header) throw new R('Flattened JWS must have either of the "protected" or "header" members');
if (void 0 !== e10.protected && "string" != typeof e10.protected) throw new R("JWS Protected Header incorrect type");
if (void 0 === e10.payload) throw new R("JWS Payload missing");
if ("string" != typeof e10.signature) throw new R("JWS Signature missing or incorrect type");
if (void 0 !== e10.header && !ea(e10.header)) throw new R("JWS Unprotected Header incorrect type");
let o2 = {};
if (e10.protected) try {
let t3 = b(e10.protected);
o2 = JSON.parse(l.decode(t3));
} catch (e11) {
throw new R("JWS Protected Header is invalid");
}
if (!en(o2, e10.header)) throw new R("JWS Protected and JWS Unprotected Header Parameter names must be disjoint");
let s2 = { ...o2, ...e10.header }, u2 = eF(R, /* @__PURE__ */ new Map([["b64", true]]), null == r2 ? void 0 : r2.crit, o2, s2), p2 = true;
if (u2.has("b64") && "boolean" != typeof (p2 = o2.b64)) throw new R('The "b64" (base64url-encode payload) Header Parameter must be a boolean');
let { alg: h2 } = s2;
if ("string" != typeof h2 || !h2) throw new R('JWS "alg" (Algorithm) Header Parameter missing or invalid');
let f2 = r2 && ez("algorithms", r2.algorithms);
if (f2 && !f2.has(h2)) throw new _('"alg" (Algorithm) Header Parameter not allowed');
if (p2) {
if ("string" != typeof e10.payload) throw new R("JWS Payload must be a string");
} else if ("string" != typeof e10.payload && !(e10.payload instanceof Uint8Array)) throw new R("JWS Payload must be a string or an Uint8Array instance");
let g2 = false;
"function" == typeof t2 && (t2 = await t2(o2, e10), g2 = true), ej(h2, t2, "verify");
let y2 = d(c.encode(null !== (n2 = e10.protected) && void 0 !== n2 ? n2 : ""), c.encode("."), "string" == typeof e10.payload ? c.encode(e10.payload) : e10.payload);
try {
a2 = b(e10.signature);
} catch (e11) {
throw new R("Failed to base64url decode the signature");
}
if (!await te(h2, t2, a2, y2)) throw new M();
if (p2) try {
i2 = b(e10.payload);
} catch (e11) {
throw new R("Failed to base64url decode the payload");
}
else i2 = "string" == typeof e10.payload ? c.encode(e10.payload) : e10.payload;
let w2 = { payload: i2 };
return (void 0 !== e10.protected && (w2.protectedHeader = o2), void 0 !== e10.header && (w2.unprotectedHeader = e10.header), g2) ? { ...w2, key: t2 } : w2;
}
async function tr(e10, t2, r2) {
if (e10 instanceof Uint8Array && (e10 = l.decode(e10)), "string" != typeof e10) throw new R("Compact JWS must be a string or Uint8Array");
let { 0: n2, 1: a2, 2: i2, length: o2 } = e10.split(".");
if (3 !== o2) throw new R("Invalid Compact JWS");
let s2 = await tt({ payload: a2, protected: n2, signature: i2 }, t2, r2), c2 = { payload: s2.payload, protectedHeader: s2.protectedHeader };
return "function" == typeof t2 ? { ...c2, key: s2.key } : c2;
}
async function tn(e10, t2, r2) {
if (!ea(e10)) throw new R("General JWS must be an object");
if (!Array.isArray(e10.signatures) || !e10.signatures.every(ea)) throw new R("JWS Signatures missing or incorrect type");
for (let n2 of e10.signatures) try {
return await tt({ header: n2.header, payload: e10.payload, protected: n2.protected, signature: n2.signature }, t2, r2);
} catch (e11) {
}
throw new M();
}
let ta = (e10) => Math.floor(e10.getTime() / 1e3), ti = /^(\d+|\d+\.\d+) ?(seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)$/i, to = (e10) => {
let t2 = ti.exec(e10);
if (!t2) throw TypeError("Invalid time period format");
let r2 = parseFloat(t2[1]);
switch (t2[2].toLowerCase()) {
case "sec":
case "secs":
case "second":
case "seconds":
case "s":
return Math.round(r2);
case "minute":
case "minutes":
case "min":
case "mins":
case "m":
return Math.round(60 * r2);
case "hour":
case "hours":
case "hr":
case "hrs":
case "h":
return Math.round(3600 * r2);
case "day":
case "days":
case "d":
return Math.round(86400 * r2);
case "week":
case "weeks":
case "w":
return Math.round(604800 * r2);
default:
return Math.round(31557600 * r2);
}
}, ts = (e10) => e10.toLowerCase().replace(/^application\//, ""), tc = (e10, t2) => "string" == typeof e10 ? t2.includes(e10) : !!Array.isArray(e10) && t2.some(Set.prototype.has.bind(new Set(e10))), tl = (e10, t2, r2 = {}) => {
let n2, a2;
let { typ: i2 } = r2;
if (i2 && ("string" != typeof e10.typ || ts(e10.typ) !== ts(i2))) throw new S('unexpected "typ" JWT header value', "typ", "check_failed");
try {
n2 = JSON.parse(l.decode(t2));
} catch (e11) {
}
if (!ea(n2)) throw new T("JWT Claims Set must be a top-level JSON object");
let { requiredClaims: o2 = [], issuer: s2, subject: c2, audience: d2, maxTokenAge: u2 } = r2;
for (let e11 of (void 0 !== u2 && o2.push("iat"), void 0 !== d2 && o2.push("aud"), void 0 !== c2 && o2.push("sub"), void 0 !== s2 && o2.push("iss"), new Set(o2.reverse()))) if (!(e11 in n2)) throw new S(`missing required "${e11}" claim`, e11, "missing");
if (s2 && !(Array.isArray(s2) ? s2 : [s2]).includes(n2.iss)) throw new S('unexpected "iss" claim value', "iss", "check_failed");
if (c2 && n2.sub !== c2) throw new S('unexpected "sub" claim value', "sub", "check_failed");
if (d2 && !tc(n2.aud, "string" == typeof d2 ? [d2] : d2)) throw new S('unexpected "aud" claim value', "aud", "check_failed");
switch (typeof r2.clockTolerance) {
case "string":
a2 = to(r2.clockTolerance);
break;
case "number":
a2 = r2.clockTolerance;
break;
case "undefined":
a2 = 0;
break;
default:
throw TypeError("Invalid clockTolerance option type");
}
let { currentDate: p2 } = r2, h2 = ta(p2 || /* @__PURE__ */ new Date());
if ((void 0 !== n2.iat || u2) && "number" != typeof n2.iat) throw new S('"iat" claim must be a number', "iat", "invalid");
if (void 0 !== n2.nbf) {
if ("number" != typeof n2.nbf) throw new S('"nbf" claim must be a number', "nbf", "invalid");
if (n2.nbf > h2 + a2) throw new S('"nbf" claim timestamp check failed', "nbf", "check_failed");
}
if (void 0 !== n2.exp) {
if ("number" != typeof n2.exp) throw new S('"exp" claim must be a number', "exp", "invalid");
if (n2.exp <= h2 - a2) throw new E('"exp" claim timestamp check failed', "exp", "check_failed");
}
if (u2) {
let e11 = h2 - n2.iat;
if (e11 - a2 > ("number" == typeof u2 ? u2 : to(u2))) throw new E('"iat" claim timestamp check failed (too far in the past)', "iat", "check_failed");
if (e11 < 0 - a2) throw new S('"iat" claim timestamp check failed (it should be in the past)', "iat", "check_failed");
}
return n2;
};
async function td(e10, t2, r2) {
var n2;
let a2 = await tr(e10, t2, r2);
if ((null === (n2 = a2.protectedHeader.crit) || void 0 === n2 ? void 0 : n2.includes("b64")) && false === a2.protectedHeader.b64) throw new T("JWTs MUST NOT use unencoded payload");
let i2 = { payload: tl(a2.protectedHeader, a2.payload, r2), protectedHeader: a2.protectedHeader };
return "function" == typeof t2 ? { ...i2, key: a2.key } : i2;
}
async function tu(e10, t2, r2) {
let n2 = await eY(e10, t2, r2), a2 = tl(n2.protectedHeader, n2.plaintext, r2), { protectedHeader: i2 } = n2;
if (void 0 !== i2.iss && i2.iss !== a2.iss) throw new S('replicated "iss" claim header parameter mismatch', "iss", "mismatch");
if (void 0 !== i2.sub && i2.sub !== a2.sub) throw new S('replicated "sub" claim header parameter mismatch', "sub", "mismatch");
if (void 0 !== i2.aud && JSON.stringify(i2.aud) !== JSON.stringify(a2.aud)) throw new S('replicated "aud" claim header parameter mismatch', "aud", "mismatch");
let o2 = { payload: a2, protectedHeader: i2 };
return "function" == typeof t2 ? { ...o2, key: n2.key } : o2;
}
class tp {
constructor(e10) {
this._flattened = new e3(e10);
}
setContentEncryptionKey(e10) {
return this._flattened.setContentEncryptionKey(e10), this;
}
setInitializationVector(e10) {
return this._flattened.setInitializationVector(e10), this;
}
setProtectedHeader(e10) {
return this._flattened.setProtectedHeader(e10), this;
}
setKeyManagementParameters(e10) {
return this._flattened.setKeyManagementParameters(e10), this;
}
async encrypt(e10, t2) {
let r2 = await this._flattened.encrypt(e10, t2);
return [r2.protected, r2.encrypted_key, r2.iv, r2.ciphertext, r2.tag].join(".");
}
}
let th = async (e10, t2, r2) => {
let n2 = await e7(e10, t2, "sign");
return ew(e10, n2), new Uint8Array(await i.subtle.sign(e9(e10, n2.algorithm), n2, r2));
};
class tf {
constructor(e10) {
if (!(e10 instanceof Uint8Array)) throw TypeError("payload must be an instance of Uint8Array");
this._payload = e10;
}
setProtectedHeader(e10) {
if (this._protectedHeader) throw TypeError("setProtectedHeader can only be called once");
return this._protectedHeader = e10, this;
}
setUnprotectedHeader(e10) {
if (this._unprotectedHeader) throw TypeError("setUnprotectedHeader can only be called once");
return this._unprotectedHeader = e10, this;
}
async sign(e10, t2) {
let r2;
if (!this._protectedHeader && !this._unprotectedHeader) throw new R("either setProtectedHeader or setUnprotectedHeader must be called before #sign()");
if (!en(this._protectedHeader, this._unprotectedHeader)) throw new R("JWS Protected and JWS Unprotected Header Parameter names must be disjoint");
let n2 = { ...this._protectedHeader, ...this._unprotectedHeader }, a2 = eF(R, /* @__PURE__ */ new Map([["b64", true]]), null == t2 ? void 0 : t2.crit, this._protectedHeader, n2), i2 = true;
if (a2.has("b64") && "boolean" != typeof (i2 = this._protectedHeader.b64)) throw new R('The "b64" (base64url-encode payload) Header Parameter must be a boolean');
let { alg: o2 } = n2;
if ("string" != typeof o2 || !o2) throw new R('JWS "alg" (Algorithm) Header Parameter missing or invalid');
ej(o2, e10, "sign");
let s2 = this._payload;
i2 && (s2 = c.encode(w(s2)));
let u2 = d(r2 = this._protectedHeader ? c.encode(w(JSON.stringify(this._protectedHeader))) : c.encode(""), c.encode("."), s2), p2 = { signature: w(await th(o2, e10, u2)), payload: "" };
return i2 && (p2.payload = l.decode(s2)), this._unprotectedHeader && (p2.header = this._unprotectedHeader), this._protectedHeader && (p2.protected = l.decode(r2)), p2;
}
}
class tg {
constructor(e10) {
this._flattened = new tf(e10);
}
setProtectedHeader(e10) {
return this._flattened.setProtectedHeader(e10), this;
}
async sign(e10, t2) {
let r2 = await this._flattened.sign(e10, t2);
if (void 0 === r2.payload) throw TypeError("use the flattened module for creating JWS with b64: false");
return `${r2.protected}.${r2.payload}.${r2.signature}`;
}
}
class ty {
constructor(e10, t2, r2) {
this.parent = e10, this.key = t2, this.options = r2;
}
setProtectedHeader(e10) {
if (this.protectedHeader) throw TypeError("setProtectedHeader can only be called once");
return this.protectedHeader = e10, this;
}
setUnprotectedHeader(e10) {
if (this.unprotectedHeader) throw TypeError("setUnprotectedHeader can only be called once");
return this.unprotectedHeader = e10, this;
}
addSignature(...e10) {
return this.parent.addSignature(...e10);
}
sign(...e10) {
return this.parent.sign(...e10);
}
done() {
return this.parent;
}
}
class tw {
constructor(e10) {
this._signatures = [], this._payload = e10;
}
addSignature(e10, t2) {
let r2 = new ty(this, e10, t2);
return this._signatures.push(r2), r2;
}
async sign() {
if (!this._signatures.length) throw new R("at least one signature must be added");
let e10 = { signatures: [], payload: "" };
for (let t2 = 0; t2 < this._signatures.length; t2++) {
let r2 = this._signatures[t2], n2 = new tf(this._payload);
n2.setProtectedHeader(r2.protectedHeader), n2.setUnprotectedHeader(r2.unprotectedHeader);
let { payload: a2, ...i2 } = await n2.sign(r2.key, r2.options);
if (0 === t2) e10.payload = a2;
else if (e10.payload !== a2) throw new R("inconsistent use of JWS Unencoded Payload (RFC7797)");
e10.signatures.push(i2);
}
return e10;
}
}
class tm {
constructor(e10) {
if (!ea(e10)) throw TypeError("JWT Claims Set MUST be an object");
this._payload = e10;
}
setIssuer(e10) {
return this._payload = { ...this._payload, iss: e10 }, this;
}
setSubject(e10) {
return this._payload = { ...this._payload, sub: e10 }, this;
}
setAudience(e10) {
return this._payload = { ...this._payload, aud: e10 }, this;
}
setJti(e10) {
return this._payload = { ...this._payload, jti: e10 }, this;
}
setNotBefore(e10) {
return "number" == typeof e10 ? this._payload = { ...this._payload, nbf: e10 } : this._payload = { ...this._payload, nbf: ta(/* @__PURE__ */ new Date()) + to(e10) }, this;
}
setExpirationTime(e10) {
return "number" == typeof e10 ? this._payload = { ...this._payload, exp: e10 } : this._payload = { ...this._payload, exp: ta(/* @__PURE__ */ new Date()) + to(e10) }, this;
}
setIssuedAt(e10) {
return void 0 === e10 ? this._payload = { ...this._payload, iat: ta(/* @__PURE__ */ new Date()) } : this._payload = { ...this._payload, iat: e10 }, this;
}
}
class tb extends tm {
setProtectedHeader(e10) {
return this._protectedHeader = e10, this;
}
async sign(e10, t2) {
var r2;
let n2 = new tg(c.encode(JSON.stringify(this._payload)));
if (n2.setProtectedHeader(this._protectedHeader), Array.isArray(null === (r2 = this._protectedHeader) || void 0 === r2 ? void 0 : r2.crit) && this._protectedHeader.crit.includes("b64") && false === this._protectedHeader.b64) throw new T("JWTs MUST NOT use unencoded payload");
return n2.sign(e10, t2);
}
}
class tv extends tm {
setProtectedHeader(e10) {
if (this._protectedHeader) throw TypeError("setProtectedHeader can only be called once");
return this._protectedHeader = e10, this;
}
setKeyManagementParameters(e10) {
if (this._keyManagementParameters) throw TypeError("setKeyManagementParameters can only be called once");
return this._keyManagementParameters = e10, this;
}
setContentEncryptionKey(e10) {
if (this._cek) throw TypeError("setContentEncryptionKey can only be called once");
return this._cek = e10, this;
}
setInitializationVector(e10) {
if (this._iv) throw TypeError("setInitializationVector can only be called once");
return this._iv = e10, this;
}
replicateIssuerAsHeader() {
return this._replicateIssuerAsHeader = true, this;
}
replicateSubjectAsHeader() {
return this._replicateSubjectAsHeader = true, this;
}
replicateAudienceAsHeader() {
return this._replicateAudienceAsHeader = true, this;
}
async encrypt(e10, t2) {
let r2 = new tp(c.encode(JSON.stringify(this._payload)));
return this._replicateIssuerAsHeader && (this._protectedHeader = { ...this._protectedHeader, iss: this._payload.iss }), this._replicateSubjectAsHeader && (this._protectedHeader = { ...this._protectedHeader, sub: this._payload.sub }), this._replicateAudienceAsHeader && (this._protectedHeader = { ...this._protectedHeader, aud: this._payload.aud }), r2.setProtectedHeader(this._protectedHeader), this._iv && r2.setInitializationVector(this._iv), this._cek && r2.setContentEncryptionKey(this._cek), this._keyManagementParameters && r2.setKeyManagementParameters(this._keyManagementParameters), r2.encrypt(e10, t2);
}
}
let tS = (e10, t2) => {
if ("string" != typeof e10 || !e10) throw new O(`${t2} missing or invalid`);
};
async function tE(e10, t2) {
let r2;
if (!ea(e10)) throw TypeError("JWK must be an object");
if (null != t2 || (t2 = "sha256"), "sha256" !== t2 && "sha384" !== t2 && "sha512" !== t2) throw TypeError('digestAlgorithm must one of "sha256", "sha384", or "sha512"');
switch (e10.kty) {
case "EC":
tS(e10.crv, '"crv" (Curve) Parameter'), tS(e10.x, '"x" (X Coordinate) Parameter'), tS(e10.y, '"y" (Y Coordinate) Parameter'), r2 = { crv: e10.crv, kty: e10.kty, x: e10.x, y: e10.y };
break;
case "OKP":
tS(e10.crv, '"crv" (Subtype of Key Pair) Parameter'), tS(e10.x, '"x" (Public Key) Parameter'), r2 = { crv: e10.crv, kty: e10.kty, x: e10.x };
break;
case "RSA":
tS(e10.e, '"e" (Exponent) Parameter'), tS(e10.n, '"n" (Modulus) Parameter'), r2 = { e: e10.e, kty: e10.kty, n: e10.n };
break;
case "oct":
tS(e10.k, '"k" (Key Value) Parameter'), r2 = { k: e10.k, kty: e10.kty };
break;
default:
throw new A('"kty" (Key Type) Parameter missing or unsupported');
}
let n2 = c.encode(JSON.stringify(r2));
return w(await s(t2, n2));
}
async function t_(e10, t2) {
null != t2 || (t2 = "sha256");
let r2 = await tE(e10, t2);
return `urn:ietf:params:oauth:jwk-thumbprint:sha-${t2.slice(-3)}:${r2}`;
}
async function tA(e10, t2) {
let r2 = { ...e10, ...null == t2 ? void 0 : t2.header };
if (!ea(r2.jwk)) throw new R('"jwk" (JSON Web Key) Header Parameter must be a JSON object');
let n2 = await eW({ ...r2.jwk, ext: true }, r2.alg, true);
if (n2 instanceof Uint8Array || "public" !== n2.type) throw new R('"jwk" (JSON Web Key) Header Parameter must be a public key');
return n2;
}
function tP(e10) {
return e10 && "object" == typeof e10 && Array.isArray(e10.keys) && e10.keys.every(tC);
}
function tC(e10) {
return ea(e10);
}
class tx {
constructor(e10) {
if (this._cached = /* @__PURE__ */ new WeakMap(), !tP(e10)) throw new k("JSON Web Key Set malformed");
this._jwks = function(e11) {
return "function" == typeof structuredClone ? structuredClone(e11) : JSON.parse(JSON.stringify(e11));
}(e10);
}
async getKey(e10, t2) {
let { alg: r2, kid: n2 } = { ...e10, ...null == t2 ? void 0 : t2.header }, a2 = function(e11) {
switch ("string" == typeof e11 && e11.slice(0, 2)) {
case "RS":
case "PS":
return "RSA";
case "ES":
return "EC";
case "Ed":
return "OKP";
default:
throw new A('Unsupported "alg" value for a JSON Web Key Set');
}
}(r2), i2 = this._jwks.keys.filter((e11) => {
let t3 = a2 === e11.kty;
if (t3 && "string" == typeof n2 && (t3 = n2 === e11.kid), t3 && "string" == typeof e11.alg && (t3 = r2 === e11.alg), t3 && "string" == typeof e11.use && (t3 = "sig" === e11.use), t3 && Array.isArray(e11.key_ops) && (t3 = e11.key_ops.includes("verify")), t3 && "EdDSA" === r2 && (t3 = "Ed25519" === e11.crv || "Ed448" === e11.crv), t3) switch (r2) {
case "ES256":
t3 = "P-256" === e11.crv;
break;
case "ES256K":
t3 = "secp256k1" === e11.crv;
break;
case "ES384":
t3 = "P-384" === e11.crv;
break;
case "ES512":
t3 = "P-521" === e11.crv;
}
return t3;
}), { 0: o2, length: s2 } = i2;
if (0 === s2) throw new I();
if (1 !== s2) {
let e11 = new N(), { _cached: t3 } = this;
throw e11[Symbol.asyncIterator] = async function* () {
for (let e12 of i2) try {
yield await tR(t3, e12, r2);
} catch (e13) {
continue;
}
}, e11;
}
return tR(this._cached, o2, r2);
}
}
async function tR(e10, t2, r2) {
let n2 = e10.get(t2) || e10.set(t2, {}).get(t2);
if (void 0 === n2[r2]) {
let e11 = await eW({ ...t2, ext: true }, r2);
if (e11 instanceof Uint8Array || "public" !== e11.type) throw new k("JSON Web Key Set members must be public keys");
n2[r2] = e11;
}
return n2[r2];
}
function tT(e10) {
let t2 = new tx(e10);
return async function(e11, r2) {
return t2.getKey(e11, r2);
};
}
let tO = async (e10, t2, r2) => {
let n2, a2;
let i2 = false;
"function" == typeof AbortController && (n2 = new AbortController(), a2 = setTimeout(() => {
i2 = true, n2.abort();
}, t2));
let o2 = await fetch(e10.href, { signal: n2 ? n2.signal : void 0, redirect: "manual", headers: r2.headers }).catch((e11) => {
if (i2) throw new H();
throw e11;
});
if (void 0 !== a2 && clearTimeout(a2), 200 !== o2.status) throw new v("Expected 200 OK from the JSON Web Key Set HTTP response");
try {
return await o2.json();
} catch (e11) {
throw new v("Failed to parse the JSON Web Key Set HTTP response as JSON");
}
};
class tk extends tx {
constructor(e10, t2) {
if (super({ keys: [] }), this._jwks = void 0, !(e10 instanceof URL)) throw TypeError("url must be an instance of URL");
this._url = new URL(e10.href), this._options = { agent: null == t2 ? void 0 : t2.agent, headers: null == t2 ? void 0 : t2.headers }, this._timeoutDuration = "number" == typeof (null == t2 ? void 0 : t2.timeoutDuration) ? null == t2 ? void 0 : t2.timeoutDuration : 5e3, this._cooldownDuration = "number" == typeof (null == t2 ? void 0 : t2.cooldownDuration) ? null == t2 ? void 0 : t2.cooldownDuration : 3e4, this._cacheMaxAge = "number" == typeof (null == t2 ? void 0 : t2.cacheMaxAge) ? null == t2 ? void 0 : t2.cacheMaxAge : 6e5;
}
coolingDown() {
return "number" == typeof this._jwksTimestamp && Date.now() < this._jwksTimestamp + this._cooldownDuration;
}
fresh() {
return "number" == typeof this._jwksTimestamp && Date.now() < this._jwksTimestamp + this._cacheMaxAge;
}
async getKey(e10, t2) {
this._jwks && this.fresh() || await this.reload();
try {
return await super.getKey(e10, t2);
} catch (r2) {
if (r2 instanceof I && false === this.coolingDown()) return await this.reload(), super.getKey(e10, t2);
throw r2;
}
}
async reload() {
this._pendingFetch && ("undefined" != typeof WebSocketPair || "undefined" != typeof navigator && "Cloudflare-Workers" === navigator.userAgent) && (this._pendingFetch = void 0), this._pendingFetch || (this._pendingFetch = tO(this._url, this._timeoutDuration, this._options).then((e10) => {
if (!tP(e10)) throw new k("JSON Web Key Set malformed");
this._jwks = { keys: e10.keys }, this._jwksTimestamp = Date.now(), this._pendingFetch = void 0;
}).catch((e10) => {
throw this._pendingFetch = void 0, e10;
})), await this._pendingFetch;
}
}
function tI(e10, t2) {
let r2 = new tk(e10, t2);
return async function(e11, t3) {
return r2.getKey(e11, t3);
};
}
class tN extends tm {
encode() {
let e10 = w(JSON.stringify({ alg: "none" })), t2 = w(JSON.stringify(this._payload));
return `${e10}.${t2}.`;
}
static decode(e10, t2) {
let r2;
if ("string" != typeof e10) throw new T("Unsecured JWT must be a string");
let { 0: n2, 1: a2, 2: i2, length: o2 } = e10.split(".");
if (3 !== o2 || "" !== i2) throw new T("Invalid Unsecured JWT");
try {
if (r2 = JSON.parse(l.decode(b(n2))), "none" !== r2.alg) throw Error();
} catch (e11) {
throw new T("Invalid Unsecured JWT");
}
return { payload: tl(r2, b(a2), t2), header: r2 };
}
}
let tH = w, tM = b;
function tD(e10) {
let t2;
if ("string" == typeof e10) {
let r2 = e10.split(".");
(3 === r2.length || 5 === r2.length) && ([t2] = r2);
} else if ("object" == typeof e10 && e10) {
if ("protected" in e10) t2 = e10.protected;
else throw TypeError("Token does not contain a Protected Header");
}
try {
if ("string" != typeof t2 || !t2) throw Error();
let e11 = JSON.parse(l.decode(tM(t2)));
if (!ea(e11)) throw Error();
return e11;
} catch (e11) {
throw TypeError("Invalid Token or Protected Header formatting");
}
}
function tU(e10) {
let t2, r2;
if ("string" != typeof e10) throw new T("JWTs must use Compact JWS serialization, JWT must be a string");
let { 1: n2, length: a2 } = e10.split(".");
if (5 === a2) throw new T("Only JWTs using Compact JWS serialization can be decoded");
if (3 !== a2) throw new T("Invalid JWT");
if (!n2) throw new T("JWTs must contain a payload");
try {
t2 = tM(n2);
} catch (e11) {
throw new T("Failed to base64url decode the payload");
}
try {
r2 = JSON.parse(l.decode(t2));
} catch (e11) {
throw new T("Failed to parse the decoded payload as JSON");
}
if (!ea(r2)) throw new T("Invalid JWT Claims Set");
return r2;
}
async function tW(e10, t2) {
var r2;
let n2, a2, o2;
switch (e10) {
case "HS256":
case "HS384":
case "HS512":
n2 = parseInt(e10.slice(-3), 10), a2 = { name: "HMAC", hash: `SHA-${n2}`, length: n2 }, o2 = ["sign", "verify"];
break;
case "A128CBC-HS256":
case "A192CBC-HS384":
case "A256CBC-HS512":
return D(new Uint8Array((n2 = parseInt(e10.slice(-3), 10)) >> 3));
case "A128KW":
case "A192KW":
case "A256KW":
a2 = { name: "AES-KW", length: n2 = parseInt(e10.slice(1, 4), 10) }, o2 = ["wrapKey", "unwrapKey"];
break;
case "A128GCMKW":
case "A192GCMKW":
case "A256GCMKW":
case "A128GCM":
case "A192GCM":
case "A256GCM":
a2 = { name: "AES-GCM", length: n2 = parseInt(e10.slice(1, 4), 10) }, o2 = ["encrypt", "decrypt"];
break;
default:
throw new A('Invalid or unsupported JWK "alg" (Algorithm) Parameter value');
}
return i.subtle.generateKey(a2, null !== (r2 = null == t2 ? void 0 : t2.extractable) && void 0 !== r2 && r2, o2);
}
function tL(e10) {
var t2;
let r2 = null !== (t2 = null == e10 ? void 0 : e10.modulusLength) && void 0 !== t2 ? t2 : 2048;
if ("number" != typeof r2 || r2 < 2048) throw new A("Invalid or unsupported modulusLength option provided, 2048 bits or larger keys must be used");
return r2;
}
async function tK(e10, t2) {
var r2, n2, a2;
let o2, s2;
switch (e10) {
case "PS256":
case "PS384":
case "PS512":
o2 = { name: "RSA-PSS", hash: `SHA-${e10.slice(-3)}`, publicExponent: new Uint8Array([1, 0, 1]), modulusLength: tL(t2) }, s2 = ["sign", "verify"];
break;
case "RS256":
case "RS384":
case "RS512":
o2 = { name: "RSASSA-PKCS1-v1_5", hash: `SHA-${e10.slice(-3)}`, publicExponent: new Uint8Array([1, 0, 1]), modulusLength: tL(t2) }, s2 = ["sign", "verify"];
break;
case "RSA-OAEP":
case "RSA-OAEP-256":
case "RSA-OAEP-384":
case "RSA-OAEP-512":
o2 = { name: "RSA-OAEP", hash: `SHA-${parseInt(e10.slice(-3), 10) || 1}`, publicExponent: new Uint8Array([1, 0, 1]), modulusLength: tL(t2) }, s2 = ["decrypt", "unwrapKey", "encrypt", "wrapKey"];
break;
case "ES256":
o2 = { name: "ECDSA", namedCurve: "P-256" }, s2 = ["sign", "verify"];
break;
case "ES384":
o2 = { name: "ECDSA", namedCurve: "P-384" }, s2 = ["sign", "verify"];
break;
case "ES512":
o2 = { name: "ECDSA", namedCurve: "P-521" }, s2 = ["sign", "verify"];
break;
case "EdDSA":
s2 = ["sign", "verify"];
let c2 = null !== (r2 = null == t2 ? void 0 : t2.crv) && void 0 !== r2 ? r2 : "Ed25519";
switch (c2) {
case "Ed25519":
case "Ed448":
o2 = { name: c2 };
break;
default:
throw new A("Invalid or unsupported crv option provided");
}
break;
case "ECDH-ES":
case "ECDH-ES+A128KW":
case "ECDH-ES+A192KW":
case "ECDH-ES+A256KW": {
s2 = ["deriveKey", "deriveBits"];
let e11 = null !== (n2 = null == t2 ? void 0 : t2.crv) && void 0 !== n2 ? n2 : "P-256";
switch (e11) {
case "P-256":
case "P-384":
case "P-521":
o2 = { name: "ECDH", namedCurve: e11 };
break;
case "X25519":
case "X448":
o2 = { name: e11 };
break;
default:
throw new A("Invalid or unsupported crv option provided, supported values are P-256, P-384, P-521, X25519, and X448");
}
break;
}
default:
throw new A('Invalid or unsupported JWK "alg" (Algorithm) Parameter value');
}
return i.subtle.generateKey(o2, null !== (a2 = null == t2 ? void 0 : t2.extractable) && void 0 !== a2 && a2, s2);
}
async function tj(e10, t2) {
return tK(e10, t2);
}
async function tJ(e10, t2) {
return tW(e10, t2);
}
let tB = "WebCryptoAPI";
} }, (e) => {
var t = e(e.s = 441);
(_ENTRIES = "undefined" == typeof _ENTRIES ? {} : _ENTRIES).middleware_middleware = t;
}]);
}
});
// node_modules/@opennextjs/aws/dist/core/edgeFunctionHandler.js
var edgeFunctionHandler_exports = {};
__export(edgeFunctionHandler_exports, {
default: () => edgeFunctionHandler
});
async function edgeFunctionHandler(request) {
const path3 = new URL(request.url).pathname;
const routes = globalThis._ROUTES;
const correspondingRoute = routes.find((route) => route.regex.some((r) => new RegExp(r).test(path3)));
if (!correspondingRoute) {
throw new Error(`No route found for ${request.url}`);
}
const entry = await self._ENTRIES[`middleware_${correspondingRoute.name}`];
const result = await entry.default({
page: correspondingRoute.page,
request: {
...request,
page: {
name: correspondingRoute.name
}
}
});
globalThis.__openNextAls.getStore()?.pendingPromiseRunner.add(result.waitUntil);
const response = result.response;
return response;
}
var init_edgeFunctionHandler = __esm({
"node_modules/@opennextjs/aws/dist/core/edgeFunctionHandler.js"() {
globalThis._ENTRIES = {};
globalThis.self = globalThis;
globalThis._ROUTES = [{ "name": "middleware", "page": "/", "regex": ["^(?:\\/(_next\\/data\\/[^/]{1,}))?(?:\\/((?!_next\\/static|_next\\/image|favicon.ico|public|.*\\.png$|.*\\.jpg$|.*\\.jpeg$|.*\\.gif$|.*\\.svg$).*))(.json)?[\\/#\\?]?$"] }];
require_edge_runtime_webpack();
require_middleware();
}
});
// node_modules/@opennextjs/aws/dist/utils/promise.js
init_logger();
var DetachedPromise = class {
resolve;
reject;
promise;
constructor() {
let resolve;
let reject;
this.promise = new Promise((res, rej) => {
resolve = res;
reject = rej;
});
this.resolve = resolve;
this.reject = reject;
}
};
var DetachedPromiseRunner = class {
promises = [];
withResolvers() {
const detachedPromise = new DetachedPromise();
this.promises.push(detachedPromise);
return detachedPromise;
}
add(promise) {
const detachedPromise = new DetachedPromise();
this.promises.push(detachedPromise);
promise.then(detachedPromise.resolve, detachedPromise.reject);
}
async await() {
debug(`Awaiting ${this.promises.length} detached promises`);
const results = await Promise.allSettled(this.promises.map((p) => p.promise));
const rejectedPromises = results.filter((r) => r.status === "rejected");
rejectedPromises.forEach((r) => {
error(r.reason);
});
}
};
async function awaitAllDetachedPromise() {
const store = globalThis.__openNextAls.getStore();
const promisesToAwait = store?.pendingPromiseRunner.await() ?? Promise.resolve();
if (store?.waitUntil) {
store.waitUntil(promisesToAwait);
return;
}
await promisesToAwait;
}
function provideNextAfterProvider() {
const NEXT_REQUEST_CONTEXT_SYMBOL = Symbol.for("@next/request-context");
const VERCEL_REQUEST_CONTEXT_SYMBOL = Symbol.for("@vercel/request-context");
const store = globalThis.__openNextAls.getStore();
const waitUntil = store?.waitUntil ?? ((promise) => store?.pendingPromiseRunner.add(promise));
const nextAfterContext = {
get: () => ({
waitUntil
})
};
globalThis[NEXT_REQUEST_CONTEXT_SYMBOL] = nextAfterContext;
if (process.env.EMULATE_VERCEL_REQUEST_CONTEXT) {
globalThis[VERCEL_REQUEST_CONTEXT_SYMBOL] = nextAfterContext;
}
}
function runWithOpenNextRequestContext({ isISRRevalidation, waitUntil, requestId = Math.random().toString(36) }, fn) {
return globalThis.__openNextAls.run({
requestId,
pendingPromiseRunner: new DetachedPromiseRunner(),
isISRRevalidation,
waitUntil,
writtenTags: /* @__PURE__ */ new Set()
}, async () => {
provideNextAfterProvider();
let result;
try {
result = await fn();
} finally {
await awaitAllDetachedPromise();
}
return result;
});
}
// node_modules/@opennextjs/aws/dist/adapters/middleware.js
init_logger();
// node_modules/@opennextjs/aws/dist/core/createGenericHandler.js
init_logger();
// node_modules/@opennextjs/aws/dist/core/resolve.js
async function resolveConverter(converter2) {
if (typeof converter2 === "function") {
return converter2();
}
const m_1 = await Promise.resolve().then(() => (init_edge(), edge_exports));
return m_1.default;
}
async function resolveWrapper(wrapper) {
if (typeof wrapper === "function") {
return wrapper();
}
const m_1 = await Promise.resolve().then(() => (init_cloudflare_edge(), cloudflare_edge_exports));
return m_1.default;
}
async function resolveOriginResolver(originResolver) {
if (typeof originResolver === "function") {
return originResolver();
}
const m_1 = await Promise.resolve().then(() => (init_pattern_env(), pattern_env_exports));
return m_1.default;
}
async function resolveAssetResolver(assetResolver) {
if (typeof assetResolver === "function") {
return assetResolver();
}
const m_1 = await Promise.resolve().then(() => (init_dummy(), dummy_exports));
return m_1.default;
}
async function resolveProxyRequest(proxyRequest) {
if (typeof proxyRequest === "function") {
return proxyRequest();
}
const m_1 = await Promise.resolve().then(() => (init_fetch(), fetch_exports));
return m_1.default;
}
// node_modules/@opennextjs/aws/dist/core/createGenericHandler.js
async function createGenericHandler(handler3) {
const config = await import("./open-next.config.mjs").then((m) => m.default);
globalThis.openNextConfig = config;
const handlerConfig = config[handler3.type];
const override = handlerConfig && "override" in handlerConfig ? handlerConfig.override : void 0;
const converter2 = await resolveConverter(override?.converter);
const { name, wrapper } = await resolveWrapper(override?.wrapper);
debug("Using wrapper", name);
return wrapper(handler3.handler, converter2);
}
// node_modules/@opennextjs/aws/dist/core/routing/util.js
import crypto2 from "node:crypto";
import { parse as parseQs, stringify as stringifyQs } from "node:querystring";
import { Readable as Readable2 } from "node:stream";
// node_modules/@opennextjs/aws/dist/adapters/config/index.js
init_logger();
import path from "node:path";
globalThis.__dirname ??= "";
var NEXT_DIR = path.join(__dirname, ".next");
var OPEN_NEXT_DIR = path.join(__dirname, ".open-next");
debug({ NEXT_DIR, OPEN_NEXT_DIR });
var NextConfig = { "env": {}, "webpack": null, "eslint": { "ignoreDuringBuilds": true }, "typescript": { "ignoreBuildErrors": true, "tsconfigPath": "tsconfig.json" }, "distDir": ".next", "cleanDistDir": true, "assetPrefix": "", "cacheMaxMemorySize": 52428800, "configOrigin": "next.config.mjs", "useFileSystemPublicRoutes": true, "generateEtags": true, "pageExtensions": ["tsx", "ts", "jsx", "js"], "poweredByHeader": true, "compress": true, "analyticsId": "", "images": { "deviceSizes": [640, 750, 828, 1080, 1200, 1920, 2048, 3840], "imageSizes": [16, 32, 48, 64, 96, 128, 256, 384], "path": "/_next/image", "loader": "default", "loaderFile": "", "domains": [], "disableStaticImages": false, "minimumCacheTTL": 60, "formats": ["image/webp"], "dangerouslyAllowSVG": false, "contentSecurityPolicy": "script-src 'none'; frame-src 'none'; sandbox;", "contentDispositionType": "inline", "remotePatterns": [], "unoptimized": true }, "devIndicators": { "buildActivity": true, "buildActivityPosition": "bottom-right" }, "onDemandEntries": { "maxInactiveAge": 6e4, "pagesBufferLength": 5 }, "amp": { "canonicalBase": "" }, "basePath": "", "sassOptions": {}, "trailingSlash": false, "i18n": null, "productionBrowserSourceMaps": false, "optimizeFonts": true, "excludeDefaultMomentLocales": true, "serverRuntimeConfig": {}, "publicRuntimeConfig": {}, "reactProductionProfiling": false, "reactStrictMode": null, "httpAgentOptions": { "keepAlive": true }, "outputFileTracing": true, "staticPageGenerationTimeout": 60, "swcMinify": true, "output": "standalone", "modularizeImports": { "@mui/icons-material": { "transform": "@mui/icons-material/{{member}}" }, "lodash": { "transform": "lodash/{{member}}" } }, "experimental": { "multiZoneDraftMode": false, "prerenderEarlyExit": false, "serverMinification": true, "serverSourceMaps": false, "linkNoTouchStart": false, "caseSensitiveRoutes": false, "clientRouterFilter": true, "clientRouterFilterRedirects": false, "fetchCacheKeyPrefix": "", "middlewarePrefetch": "flexible", "optimisticClientCache": true, "manualClientBasePath": false, "cpus": 11, "memoryBasedWorkersCount": false, "isrFlushToDisk": true, "workerThreads": false, "optimizeCss": false, "nextScriptWorkers": false, "scrollRestoration": false, "externalDir": false, "disableOptimizedLoading": false, "gzipSize": true, "craCompat": false, "esmExternals": true, "fullySpecified": false, "outputFileTracingRoot": "/home/Nicholai/Documents/Dev/united_v03/united-tattoo/united-tattoo", "swcTraceProfiling": false, "forceSwcTransforms": false, "largePageDataBytes": 128e3, "adjustFontFallbacks": false, "adjustFontFallbacksWithSizeAdjust": false, "typedRoutes": false, "instrumentationHook": false, "bundlePagesExternals": false, "parallelServerCompiles": false, "parallelServerBuildTraces": false, "ppr": false, "missingSuspenseWithCSRBailout": true, "optimizeServerReact": true, "useEarlyImport": false, "staleTimes": { "dynamic": 30, "static": 300 }, "optimizePackageImports": ["lucide-react", "date-fns", "lodash-es", "ramda", "antd", "react-bootstrap", "ahooks", "@ant-design/icons", "@headlessui/react", "@headlessui-float/react", "@heroicons/react/20/solid", "@heroicons/react/24/solid", "@heroicons/react/24/outline", "@visx/visx", "@tremor/react", "rxjs", "@mui/material", "@mui/icons-material", "recharts", "react-use", "@material-ui/core", "@material-ui/icons", "@tabler/icons-react", "mui-core", "react-icons/ai", "react-icons/bi", "react-icons/bs", "react-icons/cg", "react-icons/ci", "react-icons/di", "react-icons/fa", "react-icons/fa6", "react-icons/fc", "react-icons/fi", "react-icons/gi", "react-icons/go", "react-icons/gr", "react-icons/hi", "react-icons/hi2", "react-icons/im", "react-icons/io", "react-icons/io5", "react-icons/lia", "react-icons/lib", "react-icons/lu", "react-icons/md", "react-icons/pi", "react-icons/ri", "react-icons/rx", "react-icons/si", "react-icons/sl", "react-icons/tb", "react-icons/tfi", "react-icons/ti", "react-icons/vsc", "react-icons/wi"], "trustHostHeader": false, "isExperimentalCompile": false }, "configFileName": "next.config.mjs" };
var BuildId = "F6aO6BhuBPmj4J83dM9ke";
var RoutesManifest = { "basePath": "", "rewrites": { "beforeFiles": [], "afterFiles": [], "fallback": [] }, "redirects": [{ "source": "/:path+/", "destination": "/:path+", "internal": true, "statusCode": 308, "regex": "^(?:/((?:[^/]+?)(?:/(?:[^/]+?))*))/$" }], "routes": { "static": [{ "page": "/", "regex": "^/(?:/)?$", "routeKeys": {}, "namedRegex": "^/(?:/)?$" }, { "page": "/_not-found", "regex": "^/_not\\-found(?:/)?$", "routeKeys": {}, "namedRegex": "^/_not\\-found(?:/)?$" }, { "page": "/admin", "regex": "^/admin(?:/)?$", "routeKeys": {}, "namedRegex": "^/admin(?:/)?$" }, { "page": "/admin/analytics", "regex": "^/admin/analytics(?:/)?$", "routeKeys": {}, "namedRegex": "^/admin/analytics(?:/)?$" }, { "page": "/admin/artists", "regex": "^/admin/artists(?:/)?$", "routeKeys": {}, "namedRegex": "^/admin/artists(?:/)?$" }, { "page": "/admin/artists/new", "regex": "^/admin/artists/new(?:/)?$", "routeKeys": {}, "namedRegex": "^/admin/artists/new(?:/)?$" }, { "page": "/admin/calendar", "regex": "^/admin/calendar(?:/)?$", "routeKeys": {}, "namedRegex": "^/admin/calendar(?:/)?$" }, { "page": "/admin/portfolio", "regex": "^/admin/portfolio(?:/)?$", "routeKeys": {}, "namedRegex": "^/admin/portfolio(?:/)?$" }, { "page": "/admin/settings", "regex": "^/admin/settings(?:/)?$", "routeKeys": {}, "namedRegex": "^/admin/settings(?:/)?$" }, { "page": "/admin/uploads", "regex": "^/admin/uploads(?:/)?$", "routeKeys": {}, "namedRegex": "^/admin/uploads(?:/)?$" }, { "page": "/aftercare", "regex": "^/aftercare(?:/)?$", "routeKeys": {}, "namedRegex": "^/aftercare(?:/)?$" }, { "page": "/artists", "regex": "^/artists(?:/)?$", "routeKeys": {}, "namedRegex": "^/artists(?:/)?$" }, { "page": "/auth/error", "regex": "^/auth/error(?:/)?$", "routeKeys": {}, "namedRegex": "^/auth/error(?:/)?$" }, { "page": "/auth/signin", "regex": "^/auth/signin(?:/)?$", "routeKeys": {}, "namedRegex": "^/auth/signin(?:/)?$" }, { "page": "/book", "regex": "^/book(?:/)?$", "routeKeys": {}, "namedRegex": "^/book(?:/)?$" }, { "page": "/contact", "regex": "^/contact(?:/)?$", "routeKeys": {}, "namedRegex": "^/contact(?:/)?$" }, { "page": "/deposit", "regex": "^/deposit(?:/)?$", "routeKeys": {}, "namedRegex": "^/deposit(?:/)?$" }, { "page": "/favicon.ico", "regex": "^/favicon\\.ico(?:/)?$", "routeKeys": {}, "namedRegex": "^/favicon\\.ico(?:/)?$" }, { "page": "/gift-cards", "regex": "^/gift\\-cards(?:/)?$", "routeKeys": {}, "namedRegex": "^/gift\\-cards(?:/)?$" }, { "page": "/privacy", "regex": "^/privacy(?:/)?$", "routeKeys": {}, "namedRegex": "^/privacy(?:/)?$" }, { "page": "/specials", "regex": "^/specials(?:/)?$", "routeKeys": {}, "namedRegex": "^/specials(?:/)?$" }, { "page": "/terms", "regex": "^/terms(?:/)?$", "routeKeys": {}, "namedRegex": "^/terms(?:/)?$" }], "dynamic": [{ "page": "/admin/artists/[id]", "regex": "^/admin/artists/([^/]+?)(?:/)?$", "routeKeys": { "nxtPid": "nxtPid" }, "namedRegex": "^/admin/artists/(?<nxtPid>[^/]+?)(?:/)?$" }, { "page": "/api/artists/[id]", "regex": "^/api/artists/([^/]+?)(?:/)?$", "routeKeys": { "nxtPid": "nxtPid" }, "namedRegex": "^/api/artists/(?<nxtPid>[^/]+?)(?:/)?$" }, { "page": "/api/auth/[...nextauth]", "regex": "^/api/auth/(.+?)(?:/)?$", "routeKeys": { "nxtPnextauth": "nxtPnextauth" }, "namedRegex": "^/api/auth/(?<nxtPnextauth>.+?)(?:/)?$" }, { "page": "/api/portfolio/[id]", "regex": "^/api/portfolio/([^/]+?)(?:/)?$", "routeKeys": { "nxtPid": "nxtPid" }, "namedRegex": "^/api/portfolio/(?<nxtPid>[^/]+?)(?:/)?$" }, { "page": "/artists/[id]", "regex": "^/artists/([^/]+?)(?:/)?$", "routeKeys": { "nxtPid": "nxtPid" }, "namedRegex": "^/artists/(?<nxtPid>[^/]+?)(?:/)?$" }, { "page": "/artists/[id]/book", "regex": "^/artists/([^/]+?)/book(?:/)?$", "routeKeys": { "nxtPid": "nxtPid" }, "namedRegex": "^/artists/(?<nxtPid>[^/]+?)/book(?:/)?$" }], "data": { "static": [], "dynamic": [] } }, "locales": [] };
var ConfigHeaders = [];
var PrerenderManifest = { "version": 4, "routes": { "/favicon.ico": { "initialHeaders": { "cache-control": "public, max-age=0, must-revalidate", "content-type": "image/x-icon", "x-next-cache-tags": "_N_T_/layout,_N_T_/favicon.ico/layout,_N_T_/favicon.ico/route,_N_T_/favicon.ico" }, "experimentalBypassFor": [{ "type": "header", "key": "Next-Action" }, { "type": "header", "key": "content-type", "value": "multipart/form-data;.*" }], "initialRevalidateSeconds": false, "srcRoute": "/favicon.ico", "dataRoute": null } }, "dynamicRoutes": {}, "notFoundRoutes": [], "preview": { "previewModeId": "e1d6f060a573b1128bd660ac6a801640", "previewModeSigningKey": "6529a939a6962df65702a577c8d801697a8647034018ce4b446478968fd37c19", "previewModeEncryptionKey": "5fc6f8557c9699472f000e470a0129e1864fa8649eaa81555032fc478390948d" } };
var MiddlewareManifest = { "version": 3, "middleware": { "/": { "files": ["server/edge-runtime-webpack.js", "server/middleware.js"], "name": "middleware", "page": "/", "matchers": [{ "regexp": "^(?:\\/(_next\\/data\\/[^/]{1,}))?(?:\\/((?!_next\\/static|_next\\/image|favicon.ico|public|.*\\.png$|.*\\.jpg$|.*\\.jpeg$|.*\\.gif$|.*\\.svg$).*))(.json)?[\\/#\\?]?$", "originalSource": "/((?!_next/static|_next/image|favicon.ico|public|.*\\.png$|.*\\.jpg$|.*\\.jpeg$|.*\\.gif$|.*\\.svg$).*)" }], "wasm": [], "assets": [], "env": { "__NEXT_BUILD_ID": "F6aO6BhuBPmj4J83dM9ke", "NEXT_SERVER_ACTIONS_ENCRYPTION_KEY": "rCfm385dPDL4bBkrdmiZyXQOVYJCxYPMmTMMA85CDaU=", "__NEXT_PREVIEW_MODE_ID": "e1d6f060a573b1128bd660ac6a801640", "__NEXT_PREVIEW_MODE_ENCRYPTION_KEY": "5fc6f8557c9699472f000e470a0129e1864fa8649eaa81555032fc478390948d", "__NEXT_PREVIEW_MODE_SIGNING_KEY": "6529a939a6962df65702a577c8d801697a8647034018ce4b446478968fd37c19" } } }, "functions": {}, "sortedMiddleware": ["/"] };
var AppPathRoutesManifest = { "/_not-found/page": "/_not-found", "/aftercare/page": "/aftercare", "/api/admin/migrate/route": "/api/admin/migrate", "/api/artists/[id]/route": "/api/artists/[id]", "/api/auth/[...nextauth]/route": "/api/auth/[...nextauth]", "/artists/[id]/book/page": "/artists/[id]/book", "/artists/[id]/page": "/artists/[id]", "/artists/page": "/artists", "/auth/error/page": "/auth/error", "/auth/signin/page": "/auth/signin", "/book/page": "/book", "/contact/page": "/contact", "/deposit/page": "/deposit", "/favicon.ico/route": "/favicon.ico", "/gift-cards/page": "/gift-cards", "/page": "/", "/privacy/page": "/privacy", "/specials/page": "/specials", "/terms/page": "/terms", "/api/admin/stats/route": "/api/admin/stats", "/api/files/bulk-delete/route": "/api/files/bulk-delete", "/api/artists/route": "/api/artists", "/api/files/folder/route": "/api/files/folder", "/api/files/route": "/api/files", "/api/files/stats/route": "/api/files/stats", "/api/portfolio/[id]/route": "/api/portfolio/[id]", "/api/portfolio/stats/route": "/api/portfolio/stats", "/api/portfolio/bulk-delete/route": "/api/portfolio/bulk-delete", "/api/appointments/route": "/api/appointments", "/api/portfolio/route": "/api/portfolio", "/api/settings/route": "/api/settings", "/api/upload/route": "/api/upload", "/api/users/route": "/api/users", "/admin/artists/[id]/page": "/admin/artists/[id]", "/admin/artists/new/page": "/admin/artists/new", "/admin/artists/page": "/admin/artists", "/admin/calendar/page": "/admin/calendar", "/admin/page": "/admin", "/admin/portfolio/page": "/admin/portfolio", "/admin/settings/page": "/admin/settings", "/admin/uploads/page": "/admin/uploads", "/admin/analytics/page": "/admin/analytics" };
var FunctionsConfigManifest = { "version": 1, "functions": { "/api/admin/stats": {}, "/api/artists": {}, "/api/files/folder": {}, "/api/files/bulk-delete": {}, "/api/files": {}, "/api/files/stats": {}, "/api/appointments": {}, "/api/portfolio/bulk-delete": {}, "/api/portfolio/stats": {}, "/api/portfolio/[id]": {}, "/api/portfolio": {}, "/api/settings": {}, "/api/users": {}, "/api/upload": {}, "/admin/analytics": {}, "/admin/portfolio": {}, "/admin/settings": {}, "/admin/uploads": {} } };
var PagesManifest = { "/_app": "pages/_app.js", "/_error": "pages/_error.js", "/_document": "pages/_document.js" };
process.env.NEXT_BUILD_ID = BuildId;
// node_modules/@opennextjs/aws/dist/http/openNextResponse.js
init_logger();
init_util();
import { Transform } from "node:stream";
// node_modules/@opennextjs/aws/dist/core/routing/util.js
init_util();
init_logger();
// node_modules/@opennextjs/aws/dist/utils/binary.js
var commonBinaryMimeTypes = /* @__PURE__ */ new Set([
"application/octet-stream",
// Docs
"application/epub+zip",
"application/msword",
"application/pdf",
"application/rtf",
"application/vnd.amazon.ebook",
"application/vnd.ms-excel",
"application/vnd.ms-powerpoint",
"application/vnd.openxmlformats-officedocument.presentationml.presentation",
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
"application/vnd.openxmlformats-officedocument.wordprocessingml.document",
// Fonts
"font/otf",
"font/woff",
"font/woff2",
// Images
"image/bmp",
"image/gif",
"image/jpeg",
"image/png",
"image/tiff",
"image/vnd.microsoft.icon",
"image/webp",
// Audio
"audio/3gpp",
"audio/aac",
"audio/basic",
"audio/flac",
"audio/mpeg",
"audio/ogg",
"audio/wavaudio/webm",
"audio/x-aiff",
"audio/x-midi",
"audio/x-wav",
// Video
"video/3gpp",
"video/mp2t",
"video/mpeg",
"video/ogg",
"video/quicktime",
"video/webm",
"video/x-msvideo",
// Archives
"application/java-archive",
"application/vnd.apple.installer+xml",
"application/x-7z-compressed",
"application/x-apple-diskimage",
"application/x-bzip",
"application/x-bzip2",
"application/x-gzip",
"application/x-java-archive",
"application/x-rar-compressed",
"application/x-tar",
"application/x-zip",
"application/zip",
// Serialized data
"application/x-protobuf"
]);
function isBinaryContentType(contentType) {
if (!contentType)
return false;
const value = contentType?.split(";")[0] ?? "";
return commonBinaryMimeTypes.has(value);
}
// node_modules/@opennextjs/aws/dist/core/routing/i18n/index.js
init_stream();
init_logger();
// node_modules/@opennextjs/aws/dist/core/routing/i18n/accept-header.js
function parse(raw, preferences, options) {
const lowers = /* @__PURE__ */ new Map();
const header = raw.replace(/[ \t]/g, "");
if (preferences) {
let pos = 0;
for (const preference of preferences) {
const lower = preference.toLowerCase();
lowers.set(lower, { orig: preference, pos: pos++ });
if (options.prefixMatch) {
const parts2 = lower.split("-");
while (parts2.pop(), parts2.length > 0) {
const joined = parts2.join("-");
if (!lowers.has(joined)) {
lowers.set(joined, { orig: preference, pos: pos++ });
}
}
}
}
}
const parts = header.split(",");
const selections = [];
const map = /* @__PURE__ */ new Set();
for (let i = 0; i < parts.length; ++i) {
const part = parts[i];
if (!part) {
continue;
}
const params = part.split(";");
if (params.length > 2) {
throw new Error(`Invalid ${options.type} header`);
}
const token = params[0].toLowerCase();
if (!token) {
throw new Error(`Invalid ${options.type} header`);
}
const selection = { token, pos: i, q: 1 };
if (preferences && lowers.has(token)) {
selection.pref = lowers.get(token).pos;
}
map.add(selection.token);
if (params.length === 2) {
const q = params[1];
const [key, value] = q.split("=");
if (!value || key !== "q" && key !== "Q") {
throw new Error(`Invalid ${options.type} header`);
}
const score = Number.parseFloat(value);
if (score === 0) {
continue;
}
if (Number.isFinite(score) && score <= 1 && score >= 1e-3) {
selection.q = score;
}
}
selections.push(selection);
}
selections.sort((a, b) => {
if (b.q !== a.q) {
return b.q - a.q;
}
if (b.pref !== a.pref) {
if (a.pref === void 0) {
return 1;
}
if (b.pref === void 0) {
return -1;
}
return a.pref - b.pref;
}
return a.pos - b.pos;
});
const values = selections.map((selection) => selection.token);
if (!preferences || !preferences.length) {
return values;
}
const preferred = [];
for (const selection of values) {
if (selection === "*") {
for (const [preference, value] of lowers) {
if (!map.has(preference)) {
preferred.push(value.orig);
}
}
} else {
const lower = selection.toLowerCase();
if (lowers.has(lower)) {
preferred.push(lowers.get(lower).orig);
}
}
}
return preferred;
}
function acceptLanguage(header = "", preferences) {
return parse(header, preferences, {
type: "accept-language",
prefixMatch: true
})[0] || void 0;
}
// node_modules/@opennextjs/aws/dist/core/routing/i18n/index.js
function isLocalizedPath(path3) {
return NextConfig.i18n?.locales.includes(path3.split("/")[1].toLowerCase()) ?? false;
}
function getLocaleFromCookie(cookies) {
const i18n = NextConfig.i18n;
const nextLocale = cookies.NEXT_LOCALE?.toLowerCase();
return nextLocale ? i18n?.locales.find((locale) => nextLocale === locale.toLowerCase()) : void 0;
}
function detectDomainLocale({ hostname, detectedLocale }) {
const i18n = NextConfig.i18n;
const domains = i18n?.domains;
if (!domains) {
return;
}
const lowercasedLocale = detectedLocale?.toLowerCase();
for (const domain of domains) {
const domainHostname = domain.domain.split(":", 1)[0].toLowerCase();
if (hostname === domainHostname || lowercasedLocale === domain.defaultLocale.toLowerCase() || domain.locales?.some((locale) => lowercasedLocale === locale.toLowerCase())) {
return domain;
}
}
}
function detectLocale(internalEvent, i18n) {
const domainLocale = detectDomainLocale({
hostname: internalEvent.headers.host
});
if (i18n.localeDetection === false) {
return domainLocale?.defaultLocale ?? i18n.defaultLocale;
}
const cookiesLocale = getLocaleFromCookie(internalEvent.cookies);
const preferredLocale = acceptLanguage(internalEvent.headers["accept-language"], i18n?.locales);
debug({
cookiesLocale,
preferredLocale,
defaultLocale: i18n.defaultLocale,
domainLocale
});
return domainLocale?.defaultLocale ?? cookiesLocale ?? preferredLocale ?? i18n.defaultLocale;
}
function localizePath(internalEvent) {
const i18n = NextConfig.i18n;
if (!i18n) {
return internalEvent.rawPath;
}
if (isLocalizedPath(internalEvent.rawPath)) {
return internalEvent.rawPath;
}
const detectedLocale = detectLocale(internalEvent, i18n);
return `/${detectedLocale}${internalEvent.rawPath}`;
}
function handleLocaleRedirect(internalEvent) {
const i18n = NextConfig.i18n;
if (!i18n || i18n.localeDetection === false || internalEvent.rawPath !== "/") {
return false;
}
const preferredLocale = acceptLanguage(internalEvent.headers["accept-language"], i18n?.locales);
const detectedLocale = detectLocale(internalEvent, i18n);
const domainLocale = detectDomainLocale({
hostname: internalEvent.headers.host
});
const preferredDomain = detectDomainLocale({
detectedLocale: preferredLocale
});
if (domainLocale && preferredDomain) {
const isPDomain = preferredDomain.domain === domainLocale.domain;
const isPLocale = preferredDomain.defaultLocale === preferredLocale;
if (!isPDomain || !isPLocale) {
const scheme = `http${preferredDomain.http ? "" : "s"}`;
const rlocale = isPLocale ? "" : preferredLocale;
return {
type: "core",
statusCode: 307,
headers: {
Location: `${scheme}://${preferredDomain.domain}/${rlocale}`
},
body: emptyReadableStream(),
isBase64Encoded: false
};
}
}
const defaultLocale = domainLocale?.defaultLocale ?? i18n.defaultLocale;
if (detectedLocale.toLowerCase() !== defaultLocale.toLowerCase()) {
return {
type: "core",
statusCode: 307,
headers: {
Location: constructNextUrl(internalEvent.url, `/${detectedLocale}`)
},
body: emptyReadableStream(),
isBase64Encoded: false
};
}
return false;
}
// node_modules/@opennextjs/aws/dist/core/routing/queue.js
function generateShardId(rawPath, maxConcurrency, prefix) {
let a = cyrb128(rawPath);
let t = a += 1831565813;
t = Math.imul(t ^ t >>> 15, t | 1);
t ^= t + Math.imul(t ^ t >>> 7, t | 61);
const randomFloat = ((t ^ t >>> 14) >>> 0) / 4294967296;
const randomInt = Math.floor(randomFloat * maxConcurrency);
return `${prefix}-${randomInt}`;
}
function generateMessageGroupId(rawPath) {
const maxConcurrency = Number.parseInt(process.env.MAX_REVALIDATE_CONCURRENCY ?? "10");
return generateShardId(rawPath, maxConcurrency, "revalidate");
}
function cyrb128(str) {
let h1 = 1779033703;
let h2 = 3144134277;
let h3 = 1013904242;
let h4 = 2773480762;
for (let i = 0, k; i < str.length; i++) {
k = str.charCodeAt(i);
h1 = h2 ^ Math.imul(h1 ^ k, 597399067);
h2 = h3 ^ Math.imul(h2 ^ k, 2869860233);
h3 = h4 ^ Math.imul(h3 ^ k, 951274213);
h4 = h1 ^ Math.imul(h4 ^ k, 2716044179);
}
h1 = Math.imul(h3 ^ h1 >>> 18, 597399067);
h2 = Math.imul(h4 ^ h2 >>> 22, 2869860233);
h3 = Math.imul(h1 ^ h3 >>> 17, 951274213);
h4 = Math.imul(h2 ^ h4 >>> 19, 2716044179);
h1 ^= h2 ^ h3 ^ h4, h2 ^= h1, h3 ^= h1, h4 ^= h1;
return h1 >>> 0;
}
// node_modules/@opennextjs/aws/dist/core/routing/util.js
function isExternal(url, host) {
if (!url)
return false;
const pattern = /^https?:\/\//;
if (host) {
return pattern.test(url) && !url.includes(host);
}
return pattern.test(url);
}
function convertFromQueryString(query) {
if (query === "")
return {};
const queryParts = query.split("&");
return getQueryFromIterator(queryParts.map((p) => {
const [key, value] = p.split("=");
return [key, value];
}));
}
function getUrlParts(url, isExternal2) {
if (!isExternal2) {
const regex2 = /\/([^?]*)\??(.*)/;
const match3 = url.match(regex2);
return {
hostname: "",
pathname: match3?.[1] ? `/${match3[1]}` : url,
protocol: "",
queryString: match3?.[2] ?? ""
};
}
const regex = /^(https?:)\/\/?([^\/\s]+)(\/[^?]*)?(\?.*)?/;
const match2 = url.match(regex);
if (!match2) {
throw new Error(`Invalid external URL: ${url}`);
}
return {
protocol: match2[1] ?? "https:",
hostname: match2[2],
pathname: match2[3] ?? "",
queryString: match2[4]?.slice(1) ?? ""
};
}
function constructNextUrl(baseUrl, path3) {
const nextBasePath = NextConfig.basePath ?? "";
const url = new URL(`${nextBasePath}${path3}`, baseUrl);
return url.href;
}
function convertToQueryString(query) {
const queryStrings = [];
Object.entries(query).forEach(([key, value]) => {
if (Array.isArray(value)) {
value.forEach((entry) => queryStrings.push(`${key}=${entry}`));
} else {
queryStrings.push(`${key}=${value}`);
}
});
return queryStrings.length > 0 ? `?${queryStrings.join("&")}` : "";
}
function getMiddlewareMatch(middlewareManifest2, functionsManifest) {
if (functionsManifest?.functions?.["/_middleware"]) {
return functionsManifest.functions["/_middleware"].matchers?.map(({ regexp }) => new RegExp(regexp)) ?? [/.*/];
}
const rootMiddleware = middlewareManifest2.middleware["/"];
if (!rootMiddleware?.matchers)
return [];
return rootMiddleware.matchers.map(({ regexp }) => new RegExp(regexp));
}
function escapeRegex(str, { isPath } = {}) {
const result = str.replaceAll("(.)", "_\xB51_").replaceAll("(..)", "_\xB52_").replaceAll("(...)", "_\xB53_");
return isPath ? result : result.replaceAll("+", "_\xB54_");
}
function unescapeRegex(str) {
return str.replaceAll("_\xB51_", "(.)").replaceAll("_\xB52_", "(..)").replaceAll("_\xB53_", "(...)").replaceAll("_\xB54_", "+");
}
function convertBodyToReadableStream(method, body) {
if (method === "GET" || method === "HEAD")
return void 0;
if (!body)
return void 0;
const readable = new ReadableStream({
start(controller) {
controller.enqueue(body);
controller.close();
}
});
return readable;
}
var CommonHeaders;
(function(CommonHeaders2) {
CommonHeaders2["CACHE_CONTROL"] = "cache-control";
CommonHeaders2["NEXT_CACHE"] = "x-nextjs-cache";
})(CommonHeaders || (CommonHeaders = {}));
function normalizeLocationHeader(location, baseUrl, encodeQuery = false) {
if (!URL.canParse(location)) {
return location;
}
const locationURL = new URL(location);
const origin = new URL(baseUrl).origin;
let search = locationURL.search;
if (encodeQuery && search) {
search = `?${stringifyQs(parseQs(search.slice(1)))}`;
}
const href = `${locationURL.origin}${locationURL.pathname}${search}${locationURL.hash}`;
if (locationURL.origin === origin) {
return href.slice(origin.length);
}
return href;
}
// node_modules/@opennextjs/aws/dist/core/routingHandler.js
init_logger();
// node_modules/@opennextjs/aws/dist/core/routing/cacheInterceptor.js
import { createHash } from "node:crypto";
init_stream();
// node_modules/@opennextjs/aws/dist/utils/cache.js
init_logger();
async function hasBeenRevalidated(key, tags, cacheEntry) {
if (globalThis.openNextConfig.dangerous?.disableTagCache) {
return false;
}
const value = cacheEntry.value;
if (!value) {
return true;
}
if ("type" in cacheEntry && cacheEntry.type === "page") {
return false;
}
const lastModified = cacheEntry.lastModified ?? Date.now();
if (globalThis.tagCache.mode === "nextMode") {
return await globalThis.tagCache.hasBeenRevalidated(tags, lastModified);
}
const _lastModified = await globalThis.tagCache.getLastModified(key, lastModified);
return _lastModified === -1;
}
function getTagsFromValue(value) {
if (!value) {
return [];
}
try {
return value.meta?.headers?.["x-next-cache-tags"]?.split(",") ?? [];
} catch (e) {
return [];
}
}
// node_modules/@opennextjs/aws/dist/core/routing/cacheInterceptor.js
init_logger();
var CACHE_ONE_YEAR = 60 * 60 * 24 * 365;
var CACHE_ONE_MONTH = 60 * 60 * 24 * 30;
var VARY_HEADER = "RSC, Next-Router-State-Tree, Next-Router-Prefetch, Next-Router-Segment-Prefetch, Next-Url";
async function computeCacheControl(path3, body, host, revalidate, lastModified) {
let finalRevalidate = CACHE_ONE_YEAR;
const existingRoute = Object.entries(PrerenderManifest.routes).find((p) => p[0] === path3)?.[1];
if (revalidate === void 0 && existingRoute) {
finalRevalidate = existingRoute.initialRevalidateSeconds === false ? CACHE_ONE_YEAR : existingRoute.initialRevalidateSeconds;
} else if (revalidate !== void 0) {
finalRevalidate = revalidate === false ? CACHE_ONE_YEAR : revalidate;
}
const age = Math.round((Date.now() - (lastModified ?? 0)) / 1e3);
const hash = (str) => createHash("md5").update(str).digest("hex");
const etag = hash(body);
if (revalidate === 0) {
return {
"cache-control": "private, no-cache, no-store, max-age=0, must-revalidate",
"x-opennext-cache": "ERROR",
etag
};
}
if (finalRevalidate !== CACHE_ONE_YEAR) {
const sMaxAge = Math.max(finalRevalidate - age, 1);
debug("sMaxAge", {
finalRevalidate,
age,
lastModified,
revalidate
});
const isStale = sMaxAge === 1;
if (isStale) {
let url = NextConfig.trailingSlash ? `${path3}/` : path3;
if (NextConfig.basePath) {
url = `${NextConfig.basePath}${url}`;
}
await globalThis.queue.send({
MessageBody: {
host,
url,
eTag: etag,
lastModified: lastModified ?? Date.now()
},
MessageDeduplicationId: hash(`${path3}-${lastModified}-${etag}`),
MessageGroupId: generateMessageGroupId(path3)
});
}
return {
"cache-control": `s-maxage=${sMaxAge}, stale-while-revalidate=${CACHE_ONE_MONTH}`,
"x-opennext-cache": isStale ? "STALE" : "HIT",
etag
};
}
return {
"cache-control": `s-maxage=${CACHE_ONE_YEAR}, stale-while-revalidate=${CACHE_ONE_MONTH}`,
"x-opennext-cache": "HIT",
etag
};
}
async function generateResult(event, localizedPath, cachedValue, lastModified) {
debug("Returning result from experimental cache");
let body = "";
let type = "application/octet-stream";
let isDataRequest = false;
switch (cachedValue.type) {
case "app":
isDataRequest = Boolean(event.headers.rsc);
body = isDataRequest ? cachedValue.rsc : cachedValue.html;
type = isDataRequest ? "text/x-component" : "text/html; charset=utf-8";
break;
case "page":
isDataRequest = Boolean(event.query.__nextDataReq);
body = isDataRequest ? JSON.stringify(cachedValue.json) : cachedValue.html;
type = isDataRequest ? "application/json" : "text/html; charset=utf-8";
break;
}
const cacheControl = await computeCacheControl(localizedPath, body, event.headers.host, cachedValue.revalidate, lastModified);
return {
type: "core",
// sometimes other status codes can be cached, like 404. For these cases, we should return the correct status code
statusCode: cachedValue.meta?.status ?? 200,
body: toReadableStream(body, false),
isBase64Encoded: false,
headers: {
...cacheControl,
"content-type": type,
...cachedValue.meta?.headers,
vary: VARY_HEADER
}
};
}
function escapePathDelimiters(segment, escapeEncoded) {
return segment.replace(new RegExp(`([/#?]${escapeEncoded ? "|%(2f|23|3f|5c)" : ""})`, "gi"), (char) => encodeURIComponent(char));
}
function decodePathParams(pathname) {
return pathname.split("/").map((segment) => {
try {
return escapePathDelimiters(decodeURIComponent(segment), true);
} catch (e) {
return segment;
}
}).join("/");
}
async function cacheInterceptor(event) {
if (Boolean(event.headers["next-action"]) || Boolean(event.headers["x-prerender-revalidate"]))
return event;
const cookies = event.headers.cookie || "";
const hasPreviewData = cookies.includes("__prerender_bypass") || cookies.includes("__next_preview_data");
if (hasPreviewData) {
debug("Preview mode detected, passing through to handler");
return event;
}
let localizedPath = localizePath(event);
if (NextConfig.basePath) {
localizedPath = localizedPath.replace(NextConfig.basePath, "");
}
localizedPath = localizedPath.replace(/\/$/, "");
localizedPath = decodePathParams(localizedPath);
debug("Checking cache for", localizedPath, PrerenderManifest);
const isISR = Object.keys(PrerenderManifest.routes).includes(localizedPath ?? "/") || Object.values(PrerenderManifest.dynamicRoutes).some((dr) => new RegExp(dr.routeRegex).test(localizedPath));
debug("isISR", isISR);
if (isISR) {
try {
const cachedData = await globalThis.incrementalCache.get(localizedPath ?? "/index");
debug("cached data in interceptor", cachedData);
if (!cachedData?.value) {
return event;
}
if (cachedData.value?.type === "app" || cachedData.value?.type === "route") {
const tags = getTagsFromValue(cachedData.value);
const _hasBeenRevalidated = await hasBeenRevalidated(localizedPath, tags, cachedData);
if (_hasBeenRevalidated) {
return event;
}
}
const host = event.headers.host;
switch (cachedData?.value?.type) {
case "app":
case "page":
return generateResult(event, localizedPath, cachedData.value, cachedData.lastModified);
case "redirect": {
const cacheControl = await computeCacheControl(localizedPath, "", host, cachedData.value.revalidate, cachedData.lastModified);
return {
type: "core",
statusCode: cachedData.value.meta?.status ?? 307,
body: emptyReadableStream(),
headers: {
...cachedData.value.meta?.headers ?? {},
...cacheControl
},
isBase64Encoded: false
};
}
case "route": {
const cacheControl = await computeCacheControl(localizedPath, cachedData.value.body, host, cachedData.value.revalidate, cachedData.lastModified);
const isBinary = isBinaryContentType(String(cachedData.value.meta?.headers?.["content-type"]));
return {
type: "core",
statusCode: cachedData.value.meta?.status ?? 200,
body: toReadableStream(cachedData.value.body, isBinary),
headers: {
...cacheControl,
...cachedData.value.meta?.headers,
vary: VARY_HEADER
},
isBase64Encoded: isBinary
};
}
default:
return event;
}
} catch (e) {
debug("Error while fetching cache", e);
return event;
}
}
return event;
}
// node_modules/path-to-regexp/dist.es2015/index.js
function lexer(str) {
var tokens = [];
var i = 0;
while (i < str.length) {
var char = str[i];
if (char === "*" || char === "+" || char === "?") {
tokens.push({ type: "MODIFIER", index: i, value: str[i++] });
continue;
}
if (char === "\\") {
tokens.push({ type: "ESCAPED_CHAR", index: i++, value: str[i++] });
continue;
}
if (char === "{") {
tokens.push({ type: "OPEN", index: i, value: str[i++] });
continue;
}
if (char === "}") {
tokens.push({ type: "CLOSE", index: i, value: str[i++] });
continue;
}
if (char === ":") {
var name = "";
var j = i + 1;
while (j < str.length) {
var code = str.charCodeAt(j);
if (
// `0-9`
code >= 48 && code <= 57 || // `A-Z`
code >= 65 && code <= 90 || // `a-z`
code >= 97 && code <= 122 || // `_`
code === 95
) {
name += str[j++];
continue;
}
break;
}
if (!name)
throw new TypeError("Missing parameter name at ".concat(i));
tokens.push({ type: "NAME", index: i, value: name });
i = j;
continue;
}
if (char === "(") {
var count = 1;
var pattern = "";
var j = i + 1;
if (str[j] === "?") {
throw new TypeError('Pattern cannot start with "?" at '.concat(j));
}
while (j < str.length) {
if (str[j] === "\\") {
pattern += str[j++] + str[j++];
continue;
}
if (str[j] === ")") {
count--;
if (count === 0) {
j++;
break;
}
} else if (str[j] === "(") {
count++;
if (str[j + 1] !== "?") {
throw new TypeError("Capturing groups are not allowed at ".concat(j));
}
}
pattern += str[j++];
}
if (count)
throw new TypeError("Unbalanced pattern at ".concat(i));
if (!pattern)
throw new TypeError("Missing pattern at ".concat(i));
tokens.push({ type: "PATTERN", index: i, value: pattern });
i = j;
continue;
}
tokens.push({ type: "CHAR", index: i, value: str[i++] });
}
tokens.push({ type: "END", index: i, value: "" });
return tokens;
}
function parse2(str, options) {
if (options === void 0) {
options = {};
}
var tokens = lexer(str);
var _a = options.prefixes, prefixes = _a === void 0 ? "./" : _a, _b = options.delimiter, delimiter = _b === void 0 ? "/#?" : _b;
var result = [];
var key = 0;
var i = 0;
var path3 = "";
var tryConsume = function(type) {
if (i < tokens.length && tokens[i].type === type)
return tokens[i++].value;
};
var mustConsume = function(type) {
var value2 = tryConsume(type);
if (value2 !== void 0)
return value2;
var _a2 = tokens[i], nextType = _a2.type, index = _a2.index;
throw new TypeError("Unexpected ".concat(nextType, " at ").concat(index, ", expected ").concat(type));
};
var consumeText = function() {
var result2 = "";
var value2;
while (value2 = tryConsume("CHAR") || tryConsume("ESCAPED_CHAR")) {
result2 += value2;
}
return result2;
};
var isSafe = function(value2) {
for (var _i = 0, delimiter_1 = delimiter; _i < delimiter_1.length; _i++) {
var char2 = delimiter_1[_i];
if (value2.indexOf(char2) > -1)
return true;
}
return false;
};
var safePattern = function(prefix2) {
var prev = result[result.length - 1];
var prevText = prefix2 || (prev && typeof prev === "string" ? prev : "");
if (prev && !prevText) {
throw new TypeError('Must have text between two parameters, missing text after "'.concat(prev.name, '"'));
}
if (!prevText || isSafe(prevText))
return "[^".concat(escapeString(delimiter), "]+?");
return "(?:(?!".concat(escapeString(prevText), ")[^").concat(escapeString(delimiter), "])+?");
};
while (i < tokens.length) {
var char = tryConsume("CHAR");
var name = tryConsume("NAME");
var pattern = tryConsume("PATTERN");
if (name || pattern) {
var prefix = char || "";
if (prefixes.indexOf(prefix) === -1) {
path3 += prefix;
prefix = "";
}
if (path3) {
result.push(path3);
path3 = "";
}
result.push({
name: name || key++,
prefix,
suffix: "",
pattern: pattern || safePattern(prefix),
modifier: tryConsume("MODIFIER") || ""
});
continue;
}
var value = char || tryConsume("ESCAPED_CHAR");
if (value) {
path3 += value;
continue;
}
if (path3) {
result.push(path3);
path3 = "";
}
var open = tryConsume("OPEN");
if (open) {
var prefix = consumeText();
var name_1 = tryConsume("NAME") || "";
var pattern_1 = tryConsume("PATTERN") || "";
var suffix = consumeText();
mustConsume("CLOSE");
result.push({
name: name_1 || (pattern_1 ? key++ : ""),
pattern: name_1 && !pattern_1 ? safePattern(prefix) : pattern_1,
prefix,
suffix,
modifier: tryConsume("MODIFIER") || ""
});
continue;
}
mustConsume("END");
}
return result;
}
function compile(str, options) {
return tokensToFunction(parse2(str, options), options);
}
function tokensToFunction(tokens, options) {
if (options === void 0) {
options = {};
}
var reFlags = flags(options);
var _a = options.encode, encode = _a === void 0 ? function(x) {
return x;
} : _a, _b = options.validate, validate = _b === void 0 ? true : _b;
var matches = tokens.map(function(token) {
if (typeof token === "object") {
return new RegExp("^(?:".concat(token.pattern, ")$"), reFlags);
}
});
return function(data) {
var path3 = "";
for (var i = 0; i < tokens.length; i++) {
var token = tokens[i];
if (typeof token === "string") {
path3 += token;
continue;
}
var value = data ? data[token.name] : void 0;
var optional = token.modifier === "?" || token.modifier === "*";
var repeat = token.modifier === "*" || token.modifier === "+";
if (Array.isArray(value)) {
if (!repeat) {
throw new TypeError('Expected "'.concat(token.name, '" to not repeat, but got an array'));
}
if (value.length === 0) {
if (optional)
continue;
throw new TypeError('Expected "'.concat(token.name, '" to not be empty'));
}
for (var j = 0; j < value.length; j++) {
var segment = encode(value[j], token);
if (validate && !matches[i].test(segment)) {
throw new TypeError('Expected all "'.concat(token.name, '" to match "').concat(token.pattern, '", but got "').concat(segment, '"'));
}
path3 += token.prefix + segment + token.suffix;
}
continue;
}
if (typeof value === "string" || typeof value === "number") {
var segment = encode(String(value), token);
if (validate && !matches[i].test(segment)) {
throw new TypeError('Expected "'.concat(token.name, '" to match "').concat(token.pattern, '", but got "').concat(segment, '"'));
}
path3 += token.prefix + segment + token.suffix;
continue;
}
if (optional)
continue;
var typeOfMessage = repeat ? "an array" : "a string";
throw new TypeError('Expected "'.concat(token.name, '" to be ').concat(typeOfMessage));
}
return path3;
};
}
function match(str, options) {
var keys = [];
var re = pathToRegexp(str, keys, options);
return regexpToFunction(re, keys, options);
}
function regexpToFunction(re, keys, options) {
if (options === void 0) {
options = {};
}
var _a = options.decode, decode = _a === void 0 ? function(x) {
return x;
} : _a;
return function(pathname) {
var m = re.exec(pathname);
if (!m)
return false;
var path3 = m[0], index = m.index;
var params = /* @__PURE__ */ Object.create(null);
var _loop_1 = function(i2) {
if (m[i2] === void 0)
return "continue";
var key = keys[i2 - 1];
if (key.modifier === "*" || key.modifier === "+") {
params[key.name] = m[i2].split(key.prefix + key.suffix).map(function(value) {
return decode(value, key);
});
} else {
params[key.name] = decode(m[i2], key);
}
};
for (var i = 1; i < m.length; i++) {
_loop_1(i);
}
return { path: path3, index, params };
};
}
function escapeString(str) {
return str.replace(/([.+*?=^!:${}()[\]|/\\])/g, "\\$1");
}
function flags(options) {
return options && options.sensitive ? "" : "i";
}
function regexpToRegexp(path3, keys) {
if (!keys)
return path3;
var groupsRegex = /\((?:\?<(.*?)>)?(?!\?)/g;
var index = 0;
var execResult = groupsRegex.exec(path3.source);
while (execResult) {
keys.push({
// Use parenthesized substring match if available, index otherwise
name: execResult[1] || index++,
prefix: "",
suffix: "",
modifier: "",
pattern: ""
});
execResult = groupsRegex.exec(path3.source);
}
return path3;
}
function arrayToRegexp(paths, keys, options) {
var parts = paths.map(function(path3) {
return pathToRegexp(path3, keys, options).source;
});
return new RegExp("(?:".concat(parts.join("|"), ")"), flags(options));
}
function stringToRegexp(path3, keys, options) {
return tokensToRegexp(parse2(path3, options), keys, options);
}
function tokensToRegexp(tokens, keys, options) {
if (options === void 0) {
options = {};
}
var _a = options.strict, strict = _a === void 0 ? false : _a, _b = options.start, start = _b === void 0 ? true : _b, _c = options.end, end = _c === void 0 ? true : _c, _d = options.encode, encode = _d === void 0 ? function(x) {
return x;
} : _d, _e = options.delimiter, delimiter = _e === void 0 ? "/#?" : _e, _f = options.endsWith, endsWith = _f === void 0 ? "" : _f;
var endsWithRe = "[".concat(escapeString(endsWith), "]|$");
var delimiterRe = "[".concat(escapeString(delimiter), "]");
var route = start ? "^" : "";
for (var _i = 0, tokens_1 = tokens; _i < tokens_1.length; _i++) {
var token = tokens_1[_i];
if (typeof token === "string") {
route += escapeString(encode(token));
} else {
var prefix = escapeString(encode(token.prefix));
var suffix = escapeString(encode(token.suffix));
if (token.pattern) {
if (keys)
keys.push(token);
if (prefix || suffix) {
if (token.modifier === "+" || token.modifier === "*") {
var mod = token.modifier === "*" ? "?" : "";
route += "(?:".concat(prefix, "((?:").concat(token.pattern, ")(?:").concat(suffix).concat(prefix, "(?:").concat(token.pattern, "))*)").concat(suffix, ")").concat(mod);
} else {
route += "(?:".concat(prefix, "(").concat(token.pattern, ")").concat(suffix, ")").concat(token.modifier);
}
} else {
if (token.modifier === "+" || token.modifier === "*") {
throw new TypeError('Can not repeat "'.concat(token.name, '" without a prefix and suffix'));
}
route += "(".concat(token.pattern, ")").concat(token.modifier);
}
} else {
route += "(?:".concat(prefix).concat(suffix, ")").concat(token.modifier);
}
}
}
if (end) {
if (!strict)
route += "".concat(delimiterRe, "?");
route += !options.endsWith ? "$" : "(?=".concat(endsWithRe, ")");
} else {
var endToken = tokens[tokens.length - 1];
var isEndDelimited = typeof endToken === "string" ? delimiterRe.indexOf(endToken[endToken.length - 1]) > -1 : endToken === void 0;
if (!strict) {
route += "(?:".concat(delimiterRe, "(?=").concat(endsWithRe, "))?");
}
if (!isEndDelimited) {
route += "(?=".concat(delimiterRe, "|").concat(endsWithRe, ")");
}
}
return new RegExp(route, flags(options));
}
function pathToRegexp(path3, keys, options) {
if (path3 instanceof RegExp)
return regexpToRegexp(path3, keys);
if (Array.isArray(path3))
return arrayToRegexp(path3, keys, options);
return stringToRegexp(path3, keys, options);
}
// node_modules/@opennextjs/aws/dist/utils/normalize-path.js
import path2 from "node:path";
function normalizeRepeatedSlashes(url) {
const urlNoQuery = url.host + url.pathname;
return `${url.protocol}//${urlNoQuery.replace(/\\/g, "/").replace(/\/\/+/g, "/")}${url.search}`;
}
// node_modules/@opennextjs/aws/dist/core/routing/matcher.js
init_stream();
init_logger();
// node_modules/@opennextjs/aws/dist/core/routing/routeMatcher.js
var optionalLocalePrefixRegex = `^/(?:${RoutesManifest.locales.map((locale) => `${locale}/?`).join("|")})?`;
var optionalBasepathPrefixRegex = RoutesManifest.basePath ? `^${RoutesManifest.basePath}/?` : "^/";
var optionalPrefix = optionalLocalePrefixRegex.replace("^/", optionalBasepathPrefixRegex);
function routeMatcher(routeDefinitions) {
const regexp = routeDefinitions.map((route) => ({
page: route.page,
regexp: new RegExp(route.regex.replace("^/", optionalPrefix))
}));
const appPathsSet = /* @__PURE__ */ new Set();
const routePathsSet = /* @__PURE__ */ new Set();
for (const [k, v] of Object.entries(AppPathRoutesManifest)) {
if (k.endsWith("page")) {
appPathsSet.add(v);
} else if (k.endsWith("route")) {
routePathsSet.add(v);
}
}
return function matchRoute(path3) {
const foundRoutes = regexp.filter((route) => route.regexp.test(path3));
return foundRoutes.map((foundRoute) => {
let routeType = "page";
if (appPathsSet.has(foundRoute.page)) {
routeType = "app";
} else if (routePathsSet.has(foundRoute.page)) {
routeType = "route";
}
return {
route: foundRoute.page,
type: routeType
};
});
};
}
var staticRouteMatcher = routeMatcher([
...RoutesManifest.routes.static,
...getStaticAPIRoutes()
]);
var dynamicRouteMatcher = routeMatcher(RoutesManifest.routes.dynamic);
function getStaticAPIRoutes() {
const createRouteDefinition = (route) => ({
page: route,
regex: `^${route}(?:/)?$`
});
const dynamicRoutePages = new Set(RoutesManifest.routes.dynamic.map(({ page }) => page));
const pagesStaticAPIRoutes = Object.keys(PagesManifest).filter((route) => route.startsWith("/api/") && !dynamicRoutePages.has(route)).map(createRouteDefinition);
const appPathsStaticAPIRoutes = Object.values(AppPathRoutesManifest).filter((route) => route.startsWith("/api/") || route === "/api" && !dynamicRoutePages.has(route)).map(createRouteDefinition);
return [...pagesStaticAPIRoutes, ...appPathsStaticAPIRoutes];
}
// node_modules/@opennextjs/aws/dist/core/routing/matcher.js
var routeHasMatcher = (headers, cookies, query) => (redirect) => {
switch (redirect.type) {
case "header":
return !!headers?.[redirect.key.toLowerCase()] && new RegExp(redirect.value ?? "").test(headers[redirect.key.toLowerCase()] ?? "");
case "cookie":
return !!cookies?.[redirect.key] && new RegExp(redirect.value ?? "").test(cookies[redirect.key] ?? "");
case "query":
return query[redirect.key] && Array.isArray(redirect.value) ? redirect.value.reduce((prev, current) => prev || new RegExp(current).test(query[redirect.key]), false) : new RegExp(redirect.value ?? "").test(query[redirect.key] ?? "");
case "host":
return headers?.host !== "" && new RegExp(redirect.value ?? "").test(headers.host);
default:
return false;
}
};
function checkHas(matcher, has, inverted = false) {
return has ? has.reduce((acc, cur) => {
if (acc === false)
return false;
return inverted ? !matcher(cur) : matcher(cur);
}, true) : true;
}
var getParamsFromSource = (source) => (value) => {
debug("value", value);
const _match = source(value);
return _match ? _match.params : {};
};
var computeParamHas = (headers, cookies, query) => (has) => {
if (!has.value)
return {};
const matcher = new RegExp(`^${has.value}$`);
const fromSource = (value) => {
const matches = value.match(matcher);
return matches?.groups ?? {};
};
switch (has.type) {
case "header":
return fromSource(headers[has.key.toLowerCase()] ?? "");
case "cookie":
return fromSource(cookies[has.key] ?? "");
case "query":
return Array.isArray(query[has.key]) ? fromSource(query[has.key].join(",")) : fromSource(query[has.key] ?? "");
case "host":
return fromSource(headers.host ?? "");
}
};
function convertMatch(match2, toDestination, destination) {
if (!match2) {
return destination;
}
const { params } = match2;
const isUsingParams = Object.keys(params).length > 0;
return isUsingParams ? toDestination(params) : destination;
}
function getNextConfigHeaders(event, configHeaders) {
if (!configHeaders) {
return {};
}
const matcher = routeHasMatcher(event.headers, event.cookies, event.query);
const requestHeaders = {};
const localizedRawPath = localizePath(event);
for (const { headers, has, missing, regex, source, locale } of configHeaders) {
const path3 = locale === false ? event.rawPath : localizedRawPath;
if (new RegExp(regex).test(path3) && checkHas(matcher, has) && checkHas(matcher, missing, true)) {
const fromSource = match(source);
const _match = fromSource(path3);
headers.forEach((h) => {
try {
const key = convertMatch(_match, compile(h.key), h.key);
const value = convertMatch(_match, compile(h.value), h.value);
requestHeaders[key] = value;
} catch {
debug(`Error matching header ${h.key} with value ${h.value}`);
requestHeaders[h.key] = h.value;
}
});
}
}
return requestHeaders;
}
function handleRewrites(event, rewrites) {
const { rawPath, headers, query, cookies, url } = event;
const localizedRawPath = localizePath(event);
const matcher = routeHasMatcher(headers, cookies, query);
const computeHas = computeParamHas(headers, cookies, query);
const rewrite = rewrites.find((route) => {
const path3 = route.locale === false ? rawPath : localizedRawPath;
return new RegExp(route.regex).test(path3) && checkHas(matcher, route.has) && checkHas(matcher, route.missing, true);
});
let finalQuery = query;
let rewrittenUrl = url;
const isExternalRewrite = isExternal(rewrite?.destination);
debug("isExternalRewrite", isExternalRewrite);
if (rewrite) {
const { pathname, protocol, hostname, queryString } = getUrlParts(rewrite.destination, isExternalRewrite);
const pathToUse = rewrite.locale === false ? rawPath : localizedRawPath;
debug("urlParts", { pathname, protocol, hostname, queryString });
const toDestinationPath = compile(escapeRegex(pathname, { isPath: true }));
const toDestinationHost = compile(escapeRegex(hostname));
const toDestinationQuery = compile(escapeRegex(queryString));
const params = {
// params for the source
...getParamsFromSource(match(escapeRegex(rewrite.source, { isPath: true })))(pathToUse),
// params for the has
...rewrite.has?.reduce((acc, cur) => {
return Object.assign(acc, computeHas(cur));
}, {}),
// params for the missing
...rewrite.missing?.reduce((acc, cur) => {
return Object.assign(acc, computeHas(cur));
}, {})
};
const isUsingParams = Object.keys(params).length > 0;
let rewrittenQuery = queryString;
let rewrittenHost = hostname;
let rewrittenPath = pathname;
if (isUsingParams) {
rewrittenPath = unescapeRegex(toDestinationPath(params));
rewrittenHost = unescapeRegex(toDestinationHost(params));
rewrittenQuery = unescapeRegex(toDestinationQuery(params));
}
if (NextConfig.i18n && !isExternalRewrite) {
const strippedPathLocale = rewrittenPath.replace(new RegExp(`^/(${NextConfig.i18n.locales.join("|")})`), "");
if (strippedPathLocale.startsWith("/api/")) {
rewrittenPath = strippedPathLocale;
}
}
rewrittenUrl = isExternalRewrite ? `${protocol}//${rewrittenHost}${rewrittenPath}` : new URL(rewrittenPath, event.url).href;
finalQuery = {
...query,
...convertFromQueryString(rewrittenQuery)
};
rewrittenUrl += convertToQueryString(finalQuery);
debug("rewrittenUrl", { rewrittenUrl, finalQuery, isUsingParams });
}
return {
internalEvent: {
...event,
query: finalQuery,
rawPath: new URL(rewrittenUrl).pathname,
url: rewrittenUrl
},
__rewrite: rewrite,
isExternalRewrite
};
}
function handleRepeatedSlashRedirect(event) {
if (event.rawPath.match(/(\\|\/\/)/)) {
return {
type: event.type,
statusCode: 308,
headers: {
Location: normalizeRepeatedSlashes(new URL(event.url))
},
body: emptyReadableStream(),
isBase64Encoded: false
};
}
return false;
}
function handleTrailingSlashRedirect(event) {
const url = new URL(event.rawPath, "http://localhost");
if (
// Someone is trying to redirect to a different origin, let's not do that
url.host !== "localhost" || NextConfig.skipTrailingSlashRedirect || // We should not apply trailing slash redirect to API routes
event.rawPath.startsWith("/api/")
) {
return false;
}
const emptyBody = emptyReadableStream();
if (NextConfig.trailingSlash && !event.headers["x-nextjs-data"] && !event.rawPath.endsWith("/") && !event.rawPath.match(/[\w-]+\.[\w]+$/g)) {
const headersLocation = event.url.split("?");
return {
type: event.type,
statusCode: 308,
headers: {
Location: `${headersLocation[0]}/${headersLocation[1] ? `?${headersLocation[1]}` : ""}`
},
body: emptyBody,
isBase64Encoded: false
};
}
if (!NextConfig.trailingSlash && event.rawPath.endsWith("/") && event.rawPath !== "/") {
const headersLocation = event.url.split("?");
return {
type: event.type,
statusCode: 308,
headers: {
Location: `${headersLocation[0].replace(/\/$/, "")}${headersLocation[1] ? `?${headersLocation[1]}` : ""}`
},
body: emptyBody,
isBase64Encoded: false
};
}
return false;
}
function handleRedirects(event, redirects) {
const repeatedSlashRedirect = handleRepeatedSlashRedirect(event);
if (repeatedSlashRedirect)
return repeatedSlashRedirect;
const trailingSlashRedirect = handleTrailingSlashRedirect(event);
if (trailingSlashRedirect)
return trailingSlashRedirect;
const localeRedirect = handleLocaleRedirect(event);
if (localeRedirect)
return localeRedirect;
const { internalEvent, __rewrite } = handleRewrites(event, redirects.filter((r) => !r.internal));
if (__rewrite && !__rewrite.internal) {
return {
type: event.type,
statusCode: __rewrite.statusCode ?? 308,
headers: {
Location: internalEvent.url
},
body: emptyReadableStream(),
isBase64Encoded: false
};
}
}
function fixDataPage(internalEvent, buildId) {
const { rawPath, query } = internalEvent;
const basePath = NextConfig.basePath ?? "";
const dataPattern = `${basePath}/_next/data/${buildId}`;
if (rawPath.startsWith("/_next/data") && !rawPath.startsWith(dataPattern)) {
return {
type: internalEvent.type,
statusCode: 404,
body: toReadableStream("{}"),
headers: {
"Content-Type": "application/json"
},
isBase64Encoded: false
};
}
if (rawPath.startsWith(dataPattern) && rawPath.endsWith(".json")) {
const newPath = `${basePath}${rawPath.slice(dataPattern.length, -".json".length).replace(/^\/index$/, "/")}`;
query.__nextDataReq = "1";
return {
...internalEvent,
rawPath: newPath,
query,
url: new URL(`${newPath}${convertToQueryString(query)}`, internalEvent.url).href
};
}
return internalEvent;
}
function handleFallbackFalse(internalEvent, prerenderManifest) {
const { rawPath } = internalEvent;
const { dynamicRoutes, routes } = prerenderManifest;
const prerenderedFallbackRoutes = Object.entries(dynamicRoutes).filter(([, { fallback }]) => fallback === false);
const routeFallback = prerenderedFallbackRoutes.some(([, { routeRegex }]) => {
const routeRegexExp = new RegExp(routeRegex);
return routeRegexExp.test(rawPath);
});
const locales = NextConfig.i18n?.locales;
const routesAlreadyHaveLocale = locales?.includes(rawPath.split("/")[1]) || // If we don't use locales, we don't need to add the default locale
locales === void 0;
let localizedPath = routesAlreadyHaveLocale ? rawPath : `/${NextConfig.i18n?.defaultLocale}${rawPath}`;
if (
// Not if localizedPath is "/" tho, because that would not make it find `isPregenerated` below since it would be try to match an empty string.
localizedPath !== "/" && NextConfig.trailingSlash && localizedPath.endsWith("/")
) {
localizedPath = localizedPath.slice(0, -1);
}
const matchedStaticRoute = staticRouteMatcher(localizedPath);
const prerenderedFallbackRoutesName = prerenderedFallbackRoutes.map(([name]) => name);
const matchedDynamicRoute = dynamicRouteMatcher(localizedPath).filter(({ route }) => !prerenderedFallbackRoutesName.includes(route));
const isPregenerated = Object.keys(routes).includes(localizedPath);
if (routeFallback && !isPregenerated && matchedStaticRoute.length === 0 && matchedDynamicRoute.length === 0) {
return {
event: {
...internalEvent,
rawPath: "/404",
url: constructNextUrl(internalEvent.url, "/404"),
headers: {
...internalEvent.headers,
"x-invoke-status": "404"
}
},
isISR: false
};
}
return {
event: internalEvent,
isISR: routeFallback || isPregenerated
};
}
// node_modules/@opennextjs/aws/dist/core/routing/middleware.js
init_stream();
init_utils();
var middlewareManifest = MiddlewareManifest;
var functionsConfigManifest = FunctionsConfigManifest;
var middleMatch = getMiddlewareMatch(middlewareManifest, functionsConfigManifest);
var REDIRECTS = /* @__PURE__ */ new Set([301, 302, 303, 307, 308]);
function defaultMiddlewareLoader() {
return Promise.resolve().then(() => (init_edgeFunctionHandler(), edgeFunctionHandler_exports));
}
async function handleMiddleware(internalEvent, initialSearch, middlewareLoader = defaultMiddlewareLoader) {
const headers = internalEvent.headers;
if (headers["x-isr"] && headers["x-prerender-revalidate"] === PrerenderManifest.preview.previewModeId)
return internalEvent;
const normalizedPath = localizePath(internalEvent);
const hasMatch = middleMatch.some((r) => r.test(normalizedPath));
if (!hasMatch)
return internalEvent;
const initialUrl = new URL(normalizedPath, internalEvent.url);
initialUrl.search = initialSearch;
const url = initialUrl.href;
const middleware = await middlewareLoader();
const result = await middleware.default({
// `geo` is pre Next 15.
geo: {
// The city name is percent-encoded.
// See https://github.com/vercel/vercel/blob/4cb6143/packages/functions/src/headers.ts#L94C19-L94C37
city: decodeURIComponent(headers["x-open-next-city"]),
country: headers["x-open-next-country"],
region: headers["x-open-next-region"],
latitude: headers["x-open-next-latitude"],
longitude: headers["x-open-next-longitude"]
},
headers,
method: internalEvent.method || "GET",
nextConfig: {
basePath: NextConfig.basePath,
i18n: NextConfig.i18n,
trailingSlash: NextConfig.trailingSlash
},
url,
body: convertBodyToReadableStream(internalEvent.method, internalEvent.body)
});
const statusCode = result.status;
const responseHeaders = result.headers;
const reqHeaders = {};
const resHeaders = {};
const filteredHeaders = [
"x-middleware-override-headers",
"x-middleware-next",
"x-middleware-rewrite",
// We need to drop `content-encoding` because it will be decoded
"content-encoding"
];
const xMiddlewareKey = "x-middleware-request-";
responseHeaders.forEach((value, key) => {
if (key.startsWith(xMiddlewareKey)) {
const k = key.substring(xMiddlewareKey.length);
reqHeaders[k] = value;
} else {
if (filteredHeaders.includes(key.toLowerCase()))
return;
if (key.toLowerCase() === "set-cookie") {
resHeaders[key] = resHeaders[key] ? [...resHeaders[key], value] : [value];
} else if (REDIRECTS.has(statusCode) && key.toLowerCase() === "location") {
resHeaders[key] = normalizeLocationHeader(value, internalEvent.url);
} else {
resHeaders[key] = value;
}
}
});
const rewriteUrl = responseHeaders.get("x-middleware-rewrite");
let isExternalRewrite = false;
let middlewareQuery = internalEvent.query;
let newUrl = internalEvent.url;
if (rewriteUrl) {
newUrl = rewriteUrl;
if (isExternal(newUrl, internalEvent.headers.host)) {
isExternalRewrite = true;
} else {
const rewriteUrlObject = new URL(rewriteUrl);
middlewareQuery = getQueryFromSearchParams(rewriteUrlObject.searchParams);
if ("__nextDataReq" in internalEvent.query) {
middlewareQuery.__nextDataReq = internalEvent.query.__nextDataReq;
}
}
}
if (!rewriteUrl && !responseHeaders.get("x-middleware-next")) {
const body = result.body ?? emptyReadableStream();
return {
type: internalEvent.type,
statusCode,
headers: resHeaders,
body,
isBase64Encoded: false
};
}
return {
responseHeaders: resHeaders,
url: newUrl,
rawPath: new URL(newUrl).pathname,
type: internalEvent.type,
headers: { ...internalEvent.headers, ...reqHeaders },
body: internalEvent.body,
method: internalEvent.method,
query: middlewareQuery,
cookies: internalEvent.cookies,
remoteAddress: internalEvent.remoteAddress,
isExternalRewrite,
rewriteStatusCode: statusCode
};
}
// node_modules/@opennextjs/aws/dist/core/routingHandler.js
var MIDDLEWARE_HEADER_PREFIX = "x-middleware-response-";
var MIDDLEWARE_HEADER_PREFIX_LEN = MIDDLEWARE_HEADER_PREFIX.length;
var INTERNAL_HEADER_PREFIX = "x-opennext-";
var INTERNAL_HEADER_INITIAL_URL = `${INTERNAL_HEADER_PREFIX}initial-url`;
var INTERNAL_HEADER_LOCALE = `${INTERNAL_HEADER_PREFIX}locale`;
var INTERNAL_HEADER_RESOLVED_ROUTES = `${INTERNAL_HEADER_PREFIX}resolved-routes`;
var INTERNAL_HEADER_REWRITE_STATUS_CODE = `${INTERNAL_HEADER_PREFIX}rewrite-status-code`;
var INTERNAL_EVENT_REQUEST_ID = `${INTERNAL_HEADER_PREFIX}request-id`;
var geoHeaderToNextHeader = {
"x-open-next-city": "x-vercel-ip-city",
"x-open-next-country": "x-vercel-ip-country",
"x-open-next-region": "x-vercel-ip-country-region",
"x-open-next-latitude": "x-vercel-ip-latitude",
"x-open-next-longitude": "x-vercel-ip-longitude"
};
function applyMiddlewareHeaders(eventOrResult, middlewareHeaders) {
const isResult = isInternalResult(eventOrResult);
const headers = eventOrResult.headers;
const keyPrefix = isResult ? "" : MIDDLEWARE_HEADER_PREFIX;
Object.entries(middlewareHeaders).forEach(([key, value]) => {
if (value) {
headers[keyPrefix + key] = Array.isArray(value) ? value.join(",") : value;
}
});
}
async function routingHandler(event, { assetResolver }) {
try {
for (const [openNextGeoName, nextGeoName] of Object.entries(geoHeaderToNextHeader)) {
const value = event.headers[openNextGeoName];
if (value) {
event.headers[nextGeoName] = value;
}
}
for (const key of Object.keys(event.headers)) {
if (key.startsWith(INTERNAL_HEADER_PREFIX) || key.startsWith(MIDDLEWARE_HEADER_PREFIX)) {
delete event.headers[key];
}
}
let headers = getNextConfigHeaders(event, ConfigHeaders);
let eventOrResult = fixDataPage(event, BuildId);
if (isInternalResult(eventOrResult)) {
return eventOrResult;
}
const redirect = handleRedirects(eventOrResult, RoutesManifest.redirects);
if (redirect) {
redirect.headers.Location = normalizeLocationHeader(redirect.headers.Location, event.url, true);
debug("redirect", redirect);
return redirect;
}
const middlewareEventOrResult = await handleMiddleware(
eventOrResult,
// We need to pass the initial search without any decoding
// TODO: we'd need to refactor InternalEvent to include the initial querystring directly
// Should be done in another PR because it is a breaking change
new URL(event.url).search
);
if (isInternalResult(middlewareEventOrResult)) {
return middlewareEventOrResult;
}
headers = {
...middlewareEventOrResult.responseHeaders,
...headers
};
let isExternalRewrite = middlewareEventOrResult.isExternalRewrite ?? false;
eventOrResult = middlewareEventOrResult;
if (!isExternalRewrite) {
const beforeRewrite = handleRewrites(eventOrResult, RoutesManifest.rewrites.beforeFiles);
eventOrResult = beforeRewrite.internalEvent;
isExternalRewrite = beforeRewrite.isExternalRewrite;
if (!isExternalRewrite) {
const assetResult = await assetResolver?.maybeGetAssetResult?.(eventOrResult);
if (assetResult) {
applyMiddlewareHeaders(assetResult, headers);
return assetResult;
}
}
}
const foundStaticRoute = staticRouteMatcher(eventOrResult.rawPath);
const isStaticRoute = !isExternalRewrite && foundStaticRoute.length > 0;
if (!(isStaticRoute || isExternalRewrite)) {
const afterRewrite = handleRewrites(eventOrResult, RoutesManifest.rewrites.afterFiles);
eventOrResult = afterRewrite.internalEvent;
isExternalRewrite = afterRewrite.isExternalRewrite;
}
let isISR = false;
if (!isExternalRewrite) {
const fallbackResult = handleFallbackFalse(eventOrResult, PrerenderManifest);
eventOrResult = fallbackResult.event;
isISR = fallbackResult.isISR;
}
const foundDynamicRoute = dynamicRouteMatcher(eventOrResult.rawPath);
const isDynamicRoute = !isExternalRewrite && foundDynamicRoute.length > 0;
if (!(isDynamicRoute || isStaticRoute || isExternalRewrite)) {
const fallbackRewrites = handleRewrites(eventOrResult, RoutesManifest.rewrites.fallback);
eventOrResult = fallbackRewrites.internalEvent;
isExternalRewrite = fallbackRewrites.isExternalRewrite;
}
const isNextImageRoute = eventOrResult.rawPath.startsWith("/_next/image");
const isRouteFoundBeforeAllRewrites = isStaticRoute || isDynamicRoute || isExternalRewrite;
if (!(isRouteFoundBeforeAllRewrites || isNextImageRoute || // We need to check again once all rewrites have been applied
staticRouteMatcher(eventOrResult.rawPath).length > 0 || dynamicRouteMatcher(eventOrResult.rawPath).length > 0)) {
eventOrResult = {
...eventOrResult,
rawPath: "/404",
url: constructNextUrl(eventOrResult.url, "/404"),
headers: {
...eventOrResult.headers,
"x-middleware-response-cache-control": "private, no-cache, no-store, max-age=0, must-revalidate"
}
};
}
if (globalThis.openNextConfig.dangerous?.enableCacheInterception && !isInternalResult(eventOrResult)) {
debug("Cache interception enabled");
eventOrResult = await cacheInterceptor(eventOrResult);
if (isInternalResult(eventOrResult)) {
applyMiddlewareHeaders(eventOrResult, headers);
return eventOrResult;
}
}
applyMiddlewareHeaders(eventOrResult, headers);
const resolvedRoutes = [
...foundStaticRoute,
...foundDynamicRoute
];
debug("resolvedRoutes", resolvedRoutes);
return {
internalEvent: eventOrResult,
isExternalRewrite,
origin: false,
isISR,
resolvedRoutes,
initialURL: event.url,
locale: NextConfig.i18n ? detectLocale(eventOrResult, NextConfig.i18n) : void 0,
rewriteStatusCode: middlewareEventOrResult.rewriteStatusCode
};
} catch (e) {
error("Error in routingHandler", e);
return {
internalEvent: {
type: "core",
method: "GET",
rawPath: "/500",
url: constructNextUrl(event.url, "/500"),
headers: {
...event.headers
},
query: event.query,
cookies: event.cookies,
remoteAddress: event.remoteAddress
},
isExternalRewrite: false,
origin: false,
isISR: false,
resolvedRoutes: [],
initialURL: event.url,
locale: NextConfig.i18n ? detectLocale(event, NextConfig.i18n) : void 0
};
}
}
function isInternalResult(eventOrResult) {
return eventOrResult != null && "statusCode" in eventOrResult;
}
// node_modules/@opennextjs/aws/dist/adapters/middleware.js
globalThis.internalFetch = fetch;
globalThis.__openNextAls = new AsyncLocalStorage();
var defaultHandler = async (internalEvent, options) => {
const middlewareConfig = globalThis.openNextConfig.middleware;
const originResolver = await resolveOriginResolver(middlewareConfig?.originResolver);
const externalRequestProxy = await resolveProxyRequest(middlewareConfig?.override?.proxyExternalRequest);
const assetResolver = await resolveAssetResolver(middlewareConfig?.assetResolver);
const requestId = Math.random().toString(36);
return runWithOpenNextRequestContext({
isISRRevalidation: internalEvent.headers["x-isr"] === "1",
waitUntil: options?.waitUntil,
requestId
}, async () => {
const result = await routingHandler(internalEvent, { assetResolver });
if ("internalEvent" in result) {
debug("Middleware intercepted event", internalEvent);
if (!result.isExternalRewrite) {
const origin = await originResolver.resolve(result.internalEvent.rawPath);
return {
type: "middleware",
internalEvent: {
...result.internalEvent,
headers: {
...result.internalEvent.headers,
[INTERNAL_HEADER_INITIAL_URL]: internalEvent.url,
[INTERNAL_HEADER_RESOLVED_ROUTES]: JSON.stringify(result.resolvedRoutes),
[INTERNAL_EVENT_REQUEST_ID]: requestId,
[INTERNAL_HEADER_REWRITE_STATUS_CODE]: String(result.rewriteStatusCode)
}
},
isExternalRewrite: result.isExternalRewrite,
origin,
isISR: result.isISR,
initialURL: result.initialURL,
resolvedRoutes: result.resolvedRoutes
};
}
try {
return externalRequestProxy.proxy(result.internalEvent);
} catch (e) {
error("External request failed.", e);
return {
type: "middleware",
internalEvent: {
...result.internalEvent,
headers: {
...result.internalEvent.headers,
[INTERNAL_EVENT_REQUEST_ID]: requestId
},
rawPath: "/500",
url: constructNextUrl(result.internalEvent.url, "/500"),
method: "GET"
},
// On error we need to rewrite to the 500 page which is an internal rewrite
isExternalRewrite: false,
origin: false,
isISR: result.isISR,
initialURL: result.internalEvent.url,
resolvedRoutes: [{ route: "/500", type: "page" }]
};
}
}
result.headers[INTERNAL_EVENT_REQUEST_ID] = requestId;
debug("Middleware response", result);
return result;
});
};
var handler2 = await createGenericHandler({
handler: defaultHandler,
type: "middleware"
});
var middleware_default = {
fetch: handler2
};
export {
middleware_default as default,
handler2 as handler
};