iboot-http-client 1.3.0 → 1.3.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/iboot-http-client.cjs.js +2 -2
- package/dist/iboot-http-client.cjs.js.map +1 -1
- package/dist/iboot-http-client.es.js +375 -376
- package/dist/iboot-http-client.es.js.map +1 -1
- package/dist/iboot-http-client.umd.js +2 -2
- package/dist/iboot-http-client.umd.js.map +1 -1
- package/dist/types/router.d.ts +1 -0
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"iboot-http-client.cjs.js","sources":["../src/types/user.ts","../src/logger.ts","../src/utils.ts","../node_modules/next/dist/shared/lib/i18n/detect-domain-locale.js","../node_modules/next/dist/shared/lib/router/utils/remove-trailing-slash.js","../node_modules/next/dist/shared/lib/router/utils/parse-path.js","../node_modules/next/dist/shared/lib/router/utils/add-path-prefix.js","../node_modules/next/dist/shared/lib/router/utils/add-path-suffix.js","../node_modules/next/dist/shared/lib/router/utils/path-has-prefix.js","../node_modules/next/dist/shared/lib/router/utils/add-locale.js","../node_modules/next/dist/shared/lib/router/utils/format-next-pathname-info.js","../node_modules/next/dist/shared/lib/get-hostname.js","../node_modules/next/dist/shared/lib/i18n/normalize-locale-path.js","../node_modules/next/dist/shared/lib/router/utils/remove-path-prefix.js","../node_modules/next/dist/shared/lib/router/utils/get-next-pathname-info.js","../node_modules/next/dist/server/web/next-url.js","../node_modules/next/dist/lib/constants.js","../node_modules/next/dist/server/web/utils.js","../node_modules/next/dist/server/web/error.js","../node_modules/next/dist/compiled/@edge-runtime/cookies/index.js","../node_modules/next/dist/server/web/spec-extension/cookies.js","../node_modules/next/dist/server/web/spec-extension/request.js","../node_modules/next/dist/server/web/spec-extension/adapters/reflect.js","../node_modules/next/dist/server/web/spec-extension/response.js","../node_modules/next/dist/server/web/spec-extension/image-response.js","../node_modules/next/dist/compiled/ua-parser-js/ua-parser.js","../node_modules/next/dist/server/web/spec-extension/user-agent.js","../node_modules/next/dist/server/web/spec-extension/url-pattern.js","../node_modules/next/server.js","../src/router-dapter/nextjs.ts","../src/router.ts","../src/http-client.ts"],"sourcesContent":["export const ACCOUNT_TYPE_MAP = {\r\n GENERAL : 0,\r\n PHONE : 1,\r\n EMAIL : 2\r\n}\r\n\r\nexport const USER_TYPE_MAP = {\r\n TYPE_MGT : 0,\r\n TYPE_C : 1,\r\n TYPE_B : 2\r\n}\r\n\r\nexport const USER_FORM_MAP = {\r\n FROM_WEB : 1,\r\n FROM_PC : 2,\r\n FROM_WX_MINI_PRO : 3,\r\n FROM_WX_PLU : 4,\r\n FROM_WX_E : 5,\r\n FROM_APP : 6,\r\n FROM_DEVICE : 7\r\n}\r\n\r\nexport const USER_SEX_MAP = {\r\n unknown:0,\r\n male:1,\r\n female:2,\r\n}\r\n\r\nexport type ACCOUNT_TYPE = typeof ACCOUNT_TYPE_MAP[keyof typeof ACCOUNT_TYPE_MAP];\r\nexport type USER_TYPE = typeof USER_TYPE_MAP[keyof typeof USER_TYPE_MAP];\r\nexport type USER_FORM = typeof USER_FORM_MAP[keyof typeof USER_FORM_MAP];\r\nexport type USER_SEX = typeof USER_SEX_MAP[keyof typeof USER_SEX_MAP];\r\n\r\n// User interface\r\nexport interface User {\r\n id: string;\r\n name: string;\r\n userType: USER_TYPE;\r\n username?: string;\r\n nickname?: string;\r\n sex?: USER_SEX;\r\n headImg?: string;\r\n lastLoginTime?: string;\r\n tokenExpired?: string;\r\n deviceId?: string;\r\n status?: number;\r\n accountType?: number;\r\n enabled?: boolean;\r\n userFrom?: USER_FORM;\r\n needToReview?: boolean;\r\n socketOnline?: boolean;\r\n createTime?: string;\r\n mustChangePwd?: boolean;\r\n}","import pino from \"pino\";\r\nimport PinoPretty from \"pino-pretty\";\r\n// import koffi from 'koffi';\r\n\r\n// if (typeof window === 'undefined' && process.platform === 'win32') {\r\n// try {\r\n// const CP_UTF8 = 65001;\r\n// const kernel32 = koffi.load('Kernel32');\r\n// const setConsoleOutputCP = kernel32.func('SetConsoleOutputCP', 'bool', ['int']);\r\n// const setConsoleCP = kernel32.func('SetConsoleCP', 'bool', ['int']);\r\n// setConsoleOutputCP(CP_UTF8);\r\n// setConsoleCP(CP_UTF8);\r\n// } catch (e) {\r\n// console.log(e);\r\n// }\r\n// }\r\n\r\n// export const logger = pino({\r\n// name: process.env.APP_NAME ?? 'iBoot',\r\n// level: process.env.NODE_ENV !== 'production' ? 'debug' : 'info',\r\n// nestedKey: 'payload',\r\n// transport: {\r\n// target: 'pino-pretty',\r\n// options: {\r\n// colorize: true,\r\n// translateTime: 'SYS:yyyy-mm-dd HH:MM:ss',\r\n// ignore: 'pid,hostname',\r\n// messageFormat: '{msg}',\r\n// singleLine: true,\r\n// },\r\n// }\r\n// });\r\n\r\nconst stream = PinoPretty({\r\n colorize: true,\r\n destination: process.stdout,\r\n translateTime: 'SYS:yyyy-mm-dd HH:MM:ss',\r\n ignore: 'pid,hostname',\r\n messageFormat: '{msg}',\r\n singleLine: true,\r\n});\r\n\r\nexport const logger = pino({\r\n name: process.env.APP_NAME ?? 'iBoot',\r\n level: process.env.APP_ENV === 'production' ? 'info' : 'debug',\r\n nestedKey: 'payload'\r\n}, stream);","export const isArray = (obj: unknown) => {\r\n return (\r\n Array.isArray(obj) ||\r\n (typeof obj === \"object\" &&\r\n Object.prototype.toString.call(obj) === \"[object Array]\")\r\n );\r\n};\r\n\r\n/**\r\n * 生成指定长度的随机串\r\n * @param {Object} len\r\n */\r\nexport const randomString = (len: number) => {\r\n const l = len || 32;\r\n const $chars = \"ABCDEFGHJKMNPQRSTWXYZabcdefhijkmnprstwxyz2345678\";\r\n const maxPos = $chars.length;\r\n let pwd = \"\";\r\n for (let i = 0; i < l; i++) {\r\n pwd += $chars.charAt(Math.floor(Math.random() * maxPos));\r\n }\r\n return pwd;\r\n};\r\n\r\nexport const urlParamToJson = (urlQueryParams: string, exclude?: string[]): Record<string, string> => {\r\n const result: Record<string, string> = {};\r\n const strs = urlQueryParams.split(\"&\");\r\n strs.forEach((item) => {\r\n const arr = item.split(\"=\");\r\n if (arr[1]) {\r\n if (!exclude || exclude.indexOf(arr[0]) == -1) {\r\n result[arr[0]] = arr[1];\r\n }\r\n }\r\n });\r\n return result;\r\n};\r\n\r\nexport const urlEncode = (value: string | null | undefined): string => {\r\n if (!value || value == \"\" || value.length == 0) {\r\n return \"\";\r\n }\r\n return (\r\n encodeURIComponent(value)\r\n // .replace(/%20/g, '+')\r\n // .replace(/%2B/g, '\\\\+')\r\n .replace(/\\(/g, \"%28\")\r\n .replace(/\\)/g, \"%29\")\r\n .replace(/\\'/g, \"%27\")\r\n .replace(/\\!/g, \"%21\")\r\n .replace(/\\~/g, \"%7E\")\r\n );\r\n};\r\n\r\nexport const dateFormat = (dt: Date, fmt: string) => {\r\n const o:Record<string, number> = {\r\n \"M+\": dt.getMonth() + 1, //月份\r\n \"d+\": dt.getDate(), //日\r\n \"h+\": dt.getHours(), //小时\r\n \"m+\": dt.getMinutes(), //分\r\n \"s+\": dt.getSeconds(), //秒\r\n \"q+\": Math.floor((dt.getMonth() + 3) / 3), //季度\r\n S: dt.getMilliseconds(), //毫秒\r\n };\r\n if (/(y+)/.test(fmt)){\r\n const regx = new RegExp(/(y+)/);\r\n const value = regx.exec(fmt);\r\n let len = 0;\r\n if(value && value.length > 0){\r\n len = value[0].length;\r\n }\r\n fmt = fmt.replace(/(y+)/, dt.getFullYear() + \"\").substring(4 - len);\r\n }\r\n\r\n for (const k in o){\r\n const s:string = \"(\" + k + \")\";\r\n const regx = new RegExp(s);\r\n if(regx.test(fmt)){\r\n const value = regx.exec(fmt);\r\n let len = 0;\r\n if(value && value.length > 0){\r\n len = value[0].length;\r\n }\r\n fmt = fmt.replace(regx, len == 1 ? o[k].toString() : (\"00\" + o[k]).substring(o[k].toString().length))\r\n }\r\n }\r\n return fmt;\r\n}","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"detectDomainLocale\", {\n enumerable: true,\n get: function() {\n return detectDomainLocale;\n }\n});\nfunction detectDomainLocale(domainItems, hostname, detectedLocale) {\n if (!domainItems) return;\n if (detectedLocale) {\n detectedLocale = detectedLocale.toLowerCase();\n }\n for (const item of domainItems){\n var _item_domain, _item_locales;\n // remove port if present\n const domainHostname = (_item_domain = item.domain) == null ? void 0 : _item_domain.split(\":\", 1)[0].toLowerCase();\n if (hostname === domainHostname || detectedLocale === item.defaultLocale.toLowerCase() || ((_item_locales = item.locales) == null ? void 0 : _item_locales.some((locale)=>locale.toLowerCase() === detectedLocale))) {\n return item;\n }\n }\n}\n\n//# sourceMappingURL=detect-domain-locale.js.map","/**\n * Removes the trailing slash for a given route or page path. Preserves the\n * root page. Examples:\n * - `/foo/bar/` -> `/foo/bar`\n * - `/foo/bar` -> `/foo/bar`\n * - `/` -> `/`\n */ \"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"removeTrailingSlash\", {\n enumerable: true,\n get: function() {\n return removeTrailingSlash;\n }\n});\nfunction removeTrailingSlash(route) {\n return route.replace(/\\/$/, \"\") || \"/\";\n}\n\n//# sourceMappingURL=remove-trailing-slash.js.map","/**\n * Given a path this function will find the pathname, query and hash and return\n * them. This is useful to parse full paths on the client side.\n * @param path A path to parse e.g. /foo/bar?id=1#hash\n */ \"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"parsePath\", {\n enumerable: true,\n get: function() {\n return parsePath;\n }\n});\nfunction parsePath(path) {\n const hashIndex = path.indexOf(\"#\");\n const queryIndex = path.indexOf(\"?\");\n const hasQuery = queryIndex > -1 && (hashIndex < 0 || queryIndex < hashIndex);\n if (hasQuery || hashIndex > -1) {\n return {\n pathname: path.substring(0, hasQuery ? queryIndex : hashIndex),\n query: hasQuery ? path.substring(queryIndex, hashIndex > -1 ? hashIndex : undefined) : \"\",\n hash: hashIndex > -1 ? path.slice(hashIndex) : \"\"\n };\n }\n return {\n pathname: path,\n query: \"\",\n hash: \"\"\n };\n}\n\n//# sourceMappingURL=parse-path.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"addPathPrefix\", {\n enumerable: true,\n get: function() {\n return addPathPrefix;\n }\n});\nconst _parsepath = require(\"./parse-path\");\nfunction addPathPrefix(path, prefix) {\n if (!path.startsWith(\"/\") || !prefix) {\n return path;\n }\n const { pathname, query, hash } = (0, _parsepath.parsePath)(path);\n return \"\" + prefix + pathname + query + hash;\n}\n\n//# sourceMappingURL=add-path-prefix.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"addPathSuffix\", {\n enumerable: true,\n get: function() {\n return addPathSuffix;\n }\n});\nconst _parsepath = require(\"./parse-path\");\nfunction addPathSuffix(path, suffix) {\n if (!path.startsWith(\"/\") || !suffix) {\n return path;\n }\n const { pathname, query, hash } = (0, _parsepath.parsePath)(path);\n return \"\" + pathname + suffix + query + hash;\n}\n\n//# sourceMappingURL=add-path-suffix.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"pathHasPrefix\", {\n enumerable: true,\n get: function() {\n return pathHasPrefix;\n }\n});\nconst _parsepath = require(\"./parse-path\");\nfunction pathHasPrefix(path, prefix) {\n if (typeof path !== \"string\") {\n return false;\n }\n const { pathname } = (0, _parsepath.parsePath)(path);\n return pathname === prefix || pathname.startsWith(prefix + \"/\");\n}\n\n//# sourceMappingURL=path-has-prefix.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"addLocale\", {\n enumerable: true,\n get: function() {\n return addLocale;\n }\n});\nconst _addpathprefix = require(\"./add-path-prefix\");\nconst _pathhasprefix = require(\"./path-has-prefix\");\nfunction addLocale(path, locale, defaultLocale, ignorePrefix) {\n // If no locale was given or the locale is the default locale, we don't need\n // to prefix the path.\n if (!locale || locale === defaultLocale) return path;\n const lower = path.toLowerCase();\n // If the path is an API path or the path already has the locale prefix, we\n // don't need to prefix the path.\n if (!ignorePrefix) {\n if ((0, _pathhasprefix.pathHasPrefix)(lower, \"/api\")) return path;\n if ((0, _pathhasprefix.pathHasPrefix)(lower, \"/\" + locale.toLowerCase())) return path;\n }\n // Add the locale prefix to the path.\n return (0, _addpathprefix.addPathPrefix)(path, \"/\" + locale);\n}\n\n//# sourceMappingURL=add-locale.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"formatNextPathnameInfo\", {\n enumerable: true,\n get: function() {\n return formatNextPathnameInfo;\n }\n});\nconst _removetrailingslash = require(\"./remove-trailing-slash\");\nconst _addpathprefix = require(\"./add-path-prefix\");\nconst _addpathsuffix = require(\"./add-path-suffix\");\nconst _addlocale = require(\"./add-locale\");\nfunction formatNextPathnameInfo(info) {\n let pathname = (0, _addlocale.addLocale)(info.pathname, info.locale, info.buildId ? undefined : info.defaultLocale, info.ignorePrefix);\n if (info.buildId || !info.trailingSlash) {\n pathname = (0, _removetrailingslash.removeTrailingSlash)(pathname);\n }\n if (info.buildId) {\n pathname = (0, _addpathsuffix.addPathSuffix)((0, _addpathprefix.addPathPrefix)(pathname, \"/_next/data/\" + info.buildId), info.pathname === \"/\" ? \"index.json\" : \".json\");\n }\n pathname = (0, _addpathprefix.addPathPrefix)(pathname, info.basePath);\n return !info.buildId && info.trailingSlash ? !pathname.endsWith(\"/\") ? (0, _addpathsuffix.addPathSuffix)(pathname, \"/\") : pathname : (0, _removetrailingslash.removeTrailingSlash)(pathname);\n}\n\n//# sourceMappingURL=format-next-pathname-info.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"getHostname\", {\n enumerable: true,\n get: function() {\n return getHostname;\n }\n});\nfunction getHostname(parsed, headers) {\n // Get the hostname from the headers if it exists, otherwise use the parsed\n // hostname.\n let hostname;\n if ((headers == null ? void 0 : headers.host) && !Array.isArray(headers.host)) {\n hostname = headers.host.toString().split(\":\", 1)[0];\n } else if (parsed.hostname) {\n hostname = parsed.hostname;\n } else return;\n return hostname.toLowerCase();\n}\n\n//# sourceMappingURL=get-hostname.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"normalizeLocalePath\", {\n enumerable: true,\n get: function() {\n return normalizeLocalePath;\n }\n});\nfunction normalizeLocalePath(pathname, locales) {\n let detectedLocale;\n // first item will be empty string from splitting at first char\n const pathnameParts = pathname.split(\"/\");\n (locales || []).some((locale)=>{\n if (pathnameParts[1] && pathnameParts[1].toLowerCase() === locale.toLowerCase()) {\n detectedLocale = locale;\n pathnameParts.splice(1, 1);\n pathname = pathnameParts.join(\"/\") || \"/\";\n return true;\n }\n return false;\n });\n return {\n pathname,\n detectedLocale\n };\n}\n\n//# sourceMappingURL=normalize-locale-path.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"removePathPrefix\", {\n enumerable: true,\n get: function() {\n return removePathPrefix;\n }\n});\nconst _pathhasprefix = require(\"./path-has-prefix\");\nfunction removePathPrefix(path, prefix) {\n // If the path doesn't start with the prefix we can return it as is. This\n // protects us from situations where the prefix is a substring of the path\n // prefix such as:\n //\n // For prefix: /blog\n //\n // /blog -> true\n // /blog/ -> true\n // /blog/1 -> true\n // /blogging -> false\n // /blogging/ -> false\n // /blogging/1 -> false\n if (!(0, _pathhasprefix.pathHasPrefix)(path, prefix)) {\n return path;\n }\n // Remove the prefix from the path via slicing.\n const withoutPrefix = path.slice(prefix.length);\n // If the path without the prefix starts with a `/` we can return it as is.\n if (withoutPrefix.startsWith(\"/\")) {\n return withoutPrefix;\n }\n // If the path without the prefix doesn't start with a `/` we need to add it\n // back to the path to make sure it's a valid path.\n return \"/\" + withoutPrefix;\n}\n\n//# sourceMappingURL=remove-path-prefix.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"getNextPathnameInfo\", {\n enumerable: true,\n get: function() {\n return getNextPathnameInfo;\n }\n});\nconst _normalizelocalepath = require(\"../../i18n/normalize-locale-path\");\nconst _removepathprefix = require(\"./remove-path-prefix\");\nconst _pathhasprefix = require(\"./path-has-prefix\");\nfunction getNextPathnameInfo(pathname, options) {\n var _options_nextConfig;\n const { basePath, i18n, trailingSlash } = (_options_nextConfig = options.nextConfig) != null ? _options_nextConfig : {};\n const info = {\n pathname,\n trailingSlash: pathname !== \"/\" ? pathname.endsWith(\"/\") : trailingSlash\n };\n if (basePath && (0, _pathhasprefix.pathHasPrefix)(info.pathname, basePath)) {\n info.pathname = (0, _removepathprefix.removePathPrefix)(info.pathname, basePath);\n info.basePath = basePath;\n }\n let pathnameNoDataPrefix = info.pathname;\n if (info.pathname.startsWith(\"/_next/data/\") && info.pathname.endsWith(\".json\")) {\n const paths = info.pathname.replace(/^\\/_next\\/data\\//, \"\").replace(/\\.json$/, \"\").split(\"/\");\n const buildId = paths[0];\n info.buildId = buildId;\n pathnameNoDataPrefix = paths[1] !== \"index\" ? \"/\" + paths.slice(1).join(\"/\") : \"/\";\n // update pathname with normalized if enabled although\n // we use normalized to populate locale info still\n if (options.parseData === true) {\n info.pathname = pathnameNoDataPrefix;\n }\n }\n // If provided, use the locale route normalizer to detect the locale instead\n // of the function below.\n if (i18n) {\n let result = options.i18nProvider ? options.i18nProvider.analyze(info.pathname) : (0, _normalizelocalepath.normalizeLocalePath)(info.pathname, i18n.locales);\n info.locale = result.detectedLocale;\n var _result_pathname;\n info.pathname = (_result_pathname = result.pathname) != null ? _result_pathname : info.pathname;\n if (!result.detectedLocale && info.buildId) {\n result = options.i18nProvider ? options.i18nProvider.analyze(pathnameNoDataPrefix) : (0, _normalizelocalepath.normalizeLocalePath)(pathnameNoDataPrefix, i18n.locales);\n if (result.detectedLocale) {\n info.locale = result.detectedLocale;\n }\n }\n }\n return info;\n}\n\n//# sourceMappingURL=get-next-pathname-info.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"NextURL\", {\n enumerable: true,\n get: function() {\n return NextURL;\n }\n});\nconst _detectdomainlocale = require(\"../../shared/lib/i18n/detect-domain-locale\");\nconst _formatnextpathnameinfo = require(\"../../shared/lib/router/utils/format-next-pathname-info\");\nconst _gethostname = require(\"../../shared/lib/get-hostname\");\nconst _getnextpathnameinfo = require(\"../../shared/lib/router/utils/get-next-pathname-info\");\nconst REGEX_LOCALHOST_HOSTNAME = /(?!^https?:\\/\\/)(127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}|\\[::1\\]|localhost)/;\nfunction parseURL(url, base) {\n return new URL(String(url).replace(REGEX_LOCALHOST_HOSTNAME, \"localhost\"), base && String(base).replace(REGEX_LOCALHOST_HOSTNAME, \"localhost\"));\n}\nconst Internal = Symbol(\"NextURLInternal\");\nclass NextURL {\n constructor(input, baseOrOpts, opts){\n let base;\n let options;\n if (typeof baseOrOpts === \"object\" && \"pathname\" in baseOrOpts || typeof baseOrOpts === \"string\") {\n base = baseOrOpts;\n options = opts || {};\n } else {\n options = opts || baseOrOpts || {};\n }\n this[Internal] = {\n url: parseURL(input, base ?? options.base),\n options: options,\n basePath: \"\"\n };\n this.analyze();\n }\n analyze() {\n var _this_Internal_options_nextConfig_i18n, _this_Internal_options_nextConfig, _this_Internal_domainLocale, _this_Internal_options_nextConfig_i18n1, _this_Internal_options_nextConfig1;\n const info = (0, _getnextpathnameinfo.getNextPathnameInfo)(this[Internal].url.pathname, {\n nextConfig: this[Internal].options.nextConfig,\n parseData: !process.env.__NEXT_NO_MIDDLEWARE_URL_NORMALIZE,\n i18nProvider: this[Internal].options.i18nProvider\n });\n const hostname = (0, _gethostname.getHostname)(this[Internal].url, this[Internal].options.headers);\n this[Internal].domainLocale = this[Internal].options.i18nProvider ? this[Internal].options.i18nProvider.detectDomainLocale(hostname) : (0, _detectdomainlocale.detectDomainLocale)((_this_Internal_options_nextConfig = this[Internal].options.nextConfig) == null ? void 0 : (_this_Internal_options_nextConfig_i18n = _this_Internal_options_nextConfig.i18n) == null ? void 0 : _this_Internal_options_nextConfig_i18n.domains, hostname);\n const defaultLocale = ((_this_Internal_domainLocale = this[Internal].domainLocale) == null ? void 0 : _this_Internal_domainLocale.defaultLocale) || ((_this_Internal_options_nextConfig1 = this[Internal].options.nextConfig) == null ? void 0 : (_this_Internal_options_nextConfig_i18n1 = _this_Internal_options_nextConfig1.i18n) == null ? void 0 : _this_Internal_options_nextConfig_i18n1.defaultLocale);\n this[Internal].url.pathname = info.pathname;\n this[Internal].defaultLocale = defaultLocale;\n this[Internal].basePath = info.basePath ?? \"\";\n this[Internal].buildId = info.buildId;\n this[Internal].locale = info.locale ?? defaultLocale;\n this[Internal].trailingSlash = info.trailingSlash;\n }\n formatPathname() {\n return (0, _formatnextpathnameinfo.formatNextPathnameInfo)({\n basePath: this[Internal].basePath,\n buildId: this[Internal].buildId,\n defaultLocale: !this[Internal].options.forceLocale ? this[Internal].defaultLocale : undefined,\n locale: this[Internal].locale,\n pathname: this[Internal].url.pathname,\n trailingSlash: this[Internal].trailingSlash\n });\n }\n formatSearch() {\n return this[Internal].url.search;\n }\n get buildId() {\n return this[Internal].buildId;\n }\n set buildId(buildId) {\n this[Internal].buildId = buildId;\n }\n get locale() {\n return this[Internal].locale ?? \"\";\n }\n set locale(locale) {\n var _this_Internal_options_nextConfig_i18n, _this_Internal_options_nextConfig;\n if (!this[Internal].locale || !((_this_Internal_options_nextConfig = this[Internal].options.nextConfig) == null ? void 0 : (_this_Internal_options_nextConfig_i18n = _this_Internal_options_nextConfig.i18n) == null ? void 0 : _this_Internal_options_nextConfig_i18n.locales.includes(locale))) {\n throw new TypeError(`The NextURL configuration includes no locale \"${locale}\"`);\n }\n this[Internal].locale = locale;\n }\n get defaultLocale() {\n return this[Internal].defaultLocale;\n }\n get domainLocale() {\n return this[Internal].domainLocale;\n }\n get searchParams() {\n return this[Internal].url.searchParams;\n }\n get host() {\n return this[Internal].url.host;\n }\n set host(value) {\n this[Internal].url.host = value;\n }\n get hostname() {\n return this[Internal].url.hostname;\n }\n set hostname(value) {\n this[Internal].url.hostname = value;\n }\n get port() {\n return this[Internal].url.port;\n }\n set port(value) {\n this[Internal].url.port = value;\n }\n get protocol() {\n return this[Internal].url.protocol;\n }\n set protocol(value) {\n this[Internal].url.protocol = value;\n }\n get href() {\n const pathname = this.formatPathname();\n const search = this.formatSearch();\n return `${this.protocol}//${this.host}${pathname}${search}${this.hash}`;\n }\n set href(url) {\n this[Internal].url = parseURL(url);\n this.analyze();\n }\n get origin() {\n return this[Internal].url.origin;\n }\n get pathname() {\n return this[Internal].url.pathname;\n }\n set pathname(value) {\n this[Internal].url.pathname = value;\n }\n get hash() {\n return this[Internal].url.hash;\n }\n set hash(value) {\n this[Internal].url.hash = value;\n }\n get search() {\n return this[Internal].url.search;\n }\n set search(value) {\n this[Internal].url.search = value;\n }\n get password() {\n return this[Internal].url.password;\n }\n set password(value) {\n this[Internal].url.password = value;\n }\n get username() {\n return this[Internal].url.username;\n }\n set username(value) {\n this[Internal].url.username = value;\n }\n get basePath() {\n return this[Internal].basePath;\n }\n set basePath(value) {\n this[Internal].basePath = value.startsWith(\"/\") ? value : `/${value}`;\n }\n toString() {\n return this.href;\n }\n toJSON() {\n return this.href;\n }\n [Symbol.for(\"edge-runtime.inspect.custom\")]() {\n return {\n href: this.href,\n origin: this.origin,\n protocol: this.protocol,\n username: this.username,\n password: this.password,\n host: this.host,\n hostname: this.hostname,\n port: this.port,\n pathname: this.pathname,\n search: this.search,\n searchParams: this.searchParams,\n hash: this.hash\n };\n }\n clone() {\n return new NextURL(String(this), this[Internal].options);\n }\n}\n\n//# sourceMappingURL=next-url.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n0 && (module.exports = {\n ACTION_SUFFIX: null,\n APP_DIR_ALIAS: null,\n CACHE_ONE_YEAR: null,\n DOT_NEXT_ALIAS: null,\n ESLINT_DEFAULT_DIRS: null,\n GSP_NO_RETURNED_VALUE: null,\n GSSP_COMPONENT_MEMBER_ERROR: null,\n GSSP_NO_RETURNED_VALUE: null,\n INSTRUMENTATION_HOOK_FILENAME: null,\n MIDDLEWARE_FILENAME: null,\n MIDDLEWARE_LOCATION_REGEXP: null,\n NEXT_BODY_SUFFIX: null,\n NEXT_CACHE_IMPLICIT_TAG_ID: null,\n NEXT_CACHE_REVALIDATED_TAGS_HEADER: null,\n NEXT_CACHE_REVALIDATE_TAG_TOKEN_HEADER: null,\n NEXT_CACHE_SOFT_TAGS_HEADER: null,\n NEXT_CACHE_SOFT_TAG_MAX_LENGTH: null,\n NEXT_CACHE_TAGS_HEADER: null,\n NEXT_CACHE_TAG_MAX_ITEMS: null,\n NEXT_CACHE_TAG_MAX_LENGTH: null,\n NEXT_DATA_SUFFIX: null,\n NEXT_INTERCEPTION_MARKER_PREFIX: null,\n NEXT_META_SUFFIX: null,\n NEXT_QUERY_PARAM_PREFIX: null,\n NON_STANDARD_NODE_ENV: null,\n PAGES_DIR_ALIAS: null,\n PRERENDER_REVALIDATE_HEADER: null,\n PRERENDER_REVALIDATE_ONLY_GENERATED_HEADER: null,\n PUBLIC_DIR_MIDDLEWARE_CONFLICT: null,\n ROOT_DIR_ALIAS: null,\n RSC_ACTION_CLIENT_WRAPPER_ALIAS: null,\n RSC_ACTION_ENCRYPTION_ALIAS: null,\n RSC_ACTION_PROXY_ALIAS: null,\n RSC_ACTION_VALIDATE_ALIAS: null,\n RSC_MOD_REF_PROXY_ALIAS: null,\n RSC_PREFETCH_SUFFIX: null,\n RSC_SUFFIX: null,\n SERVER_PROPS_EXPORT_ERROR: null,\n SERVER_PROPS_GET_INIT_PROPS_CONFLICT: null,\n SERVER_PROPS_SSG_CONFLICT: null,\n SERVER_RUNTIME: null,\n SSG_FALLBACK_EXPORT_ERROR: null,\n SSG_GET_INITIAL_PROPS_CONFLICT: null,\n STATIC_STATUS_PAGE_GET_INITIAL_PROPS_ERROR: null,\n UNSTABLE_REVALIDATE_RENAME_ERROR: null,\n WEBPACK_LAYERS: null,\n WEBPACK_RESOURCE_QUERIES: null\n});\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n ACTION_SUFFIX: function() {\n return ACTION_SUFFIX;\n },\n APP_DIR_ALIAS: function() {\n return APP_DIR_ALIAS;\n },\n CACHE_ONE_YEAR: function() {\n return CACHE_ONE_YEAR;\n },\n DOT_NEXT_ALIAS: function() {\n return DOT_NEXT_ALIAS;\n },\n ESLINT_DEFAULT_DIRS: function() {\n return ESLINT_DEFAULT_DIRS;\n },\n GSP_NO_RETURNED_VALUE: function() {\n return GSP_NO_RETURNED_VALUE;\n },\n GSSP_COMPONENT_MEMBER_ERROR: function() {\n return GSSP_COMPONENT_MEMBER_ERROR;\n },\n GSSP_NO_RETURNED_VALUE: function() {\n return GSSP_NO_RETURNED_VALUE;\n },\n INSTRUMENTATION_HOOK_FILENAME: function() {\n return INSTRUMENTATION_HOOK_FILENAME;\n },\n MIDDLEWARE_FILENAME: function() {\n return MIDDLEWARE_FILENAME;\n },\n MIDDLEWARE_LOCATION_REGEXP: function() {\n return MIDDLEWARE_LOCATION_REGEXP;\n },\n NEXT_BODY_SUFFIX: function() {\n return NEXT_BODY_SUFFIX;\n },\n NEXT_CACHE_IMPLICIT_TAG_ID: function() {\n return NEXT_CACHE_IMPLICIT_TAG_ID;\n },\n NEXT_CACHE_REVALIDATED_TAGS_HEADER: function() {\n return NEXT_CACHE_REVALIDATED_TAGS_HEADER;\n },\n NEXT_CACHE_REVALIDATE_TAG_TOKEN_HEADER: function() {\n return NEXT_CACHE_REVALIDATE_TAG_TOKEN_HEADER;\n },\n NEXT_CACHE_SOFT_TAGS_HEADER: function() {\n return NEXT_CACHE_SOFT_TAGS_HEADER;\n },\n NEXT_CACHE_SOFT_TAG_MAX_LENGTH: function() {\n return NEXT_CACHE_SOFT_TAG_MAX_LENGTH;\n },\n NEXT_CACHE_TAGS_HEADER: function() {\n return NEXT_CACHE_TAGS_HEADER;\n },\n NEXT_CACHE_TAG_MAX_ITEMS: function() {\n return NEXT_CACHE_TAG_MAX_ITEMS;\n },\n NEXT_CACHE_TAG_MAX_LENGTH: function() {\n return NEXT_CACHE_TAG_MAX_LENGTH;\n },\n NEXT_DATA_SUFFIX: function() {\n return NEXT_DATA_SUFFIX;\n },\n NEXT_INTERCEPTION_MARKER_PREFIX: function() {\n return NEXT_INTERCEPTION_MARKER_PREFIX;\n },\n NEXT_META_SUFFIX: function() {\n return NEXT_META_SUFFIX;\n },\n NEXT_QUERY_PARAM_PREFIX: function() {\n return NEXT_QUERY_PARAM_PREFIX;\n },\n NON_STANDARD_NODE_ENV: function() {\n return NON_STANDARD_NODE_ENV;\n },\n PAGES_DIR_ALIAS: function() {\n return PAGES_DIR_ALIAS;\n },\n PRERENDER_REVALIDATE_HEADER: function() {\n return PRERENDER_REVALIDATE_HEADER;\n },\n PRERENDER_REVALIDATE_ONLY_GENERATED_HEADER: function() {\n return PRERENDER_REVALIDATE_ONLY_GENERATED_HEADER;\n },\n PUBLIC_DIR_MIDDLEWARE_CONFLICT: function() {\n return PUBLIC_DIR_MIDDLEWARE_CONFLICT;\n },\n ROOT_DIR_ALIAS: function() {\n return ROOT_DIR_ALIAS;\n },\n RSC_ACTION_CLIENT_WRAPPER_ALIAS: function() {\n return RSC_ACTION_CLIENT_WRAPPER_ALIAS;\n },\n RSC_ACTION_ENCRYPTION_ALIAS: function() {\n return RSC_ACTION_ENCRYPTION_ALIAS;\n },\n RSC_ACTION_PROXY_ALIAS: function() {\n return RSC_ACTION_PROXY_ALIAS;\n },\n RSC_ACTION_VALIDATE_ALIAS: function() {\n return RSC_ACTION_VALIDATE_ALIAS;\n },\n RSC_MOD_REF_PROXY_ALIAS: function() {\n return RSC_MOD_REF_PROXY_ALIAS;\n },\n RSC_PREFETCH_SUFFIX: function() {\n return RSC_PREFETCH_SUFFIX;\n },\n RSC_SUFFIX: function() {\n return RSC_SUFFIX;\n },\n SERVER_PROPS_EXPORT_ERROR: function() {\n return SERVER_PROPS_EXPORT_ERROR;\n },\n SERVER_PROPS_GET_INIT_PROPS_CONFLICT: function() {\n return SERVER_PROPS_GET_INIT_PROPS_CONFLICT;\n },\n SERVER_PROPS_SSG_CONFLICT: function() {\n return SERVER_PROPS_SSG_CONFLICT;\n },\n SERVER_RUNTIME: function() {\n return SERVER_RUNTIME;\n },\n SSG_FALLBACK_EXPORT_ERROR: function() {\n return SSG_FALLBACK_EXPORT_ERROR;\n },\n SSG_GET_INITIAL_PROPS_CONFLICT: function() {\n return SSG_GET_INITIAL_PROPS_CONFLICT;\n },\n STATIC_STATUS_PAGE_GET_INITIAL_PROPS_ERROR: function() {\n return STATIC_STATUS_PAGE_GET_INITIAL_PROPS_ERROR;\n },\n UNSTABLE_REVALIDATE_RENAME_ERROR: function() {\n return UNSTABLE_REVALIDATE_RENAME_ERROR;\n },\n WEBPACK_LAYERS: function() {\n return WEBPACK_LAYERS;\n },\n WEBPACK_RESOURCE_QUERIES: function() {\n return WEBPACK_RESOURCE_QUERIES;\n }\n});\nconst NEXT_QUERY_PARAM_PREFIX = \"nxtP\";\nconst NEXT_INTERCEPTION_MARKER_PREFIX = \"nxtI\";\nconst PRERENDER_REVALIDATE_HEADER = \"x-prerender-revalidate\";\nconst PRERENDER_REVALIDATE_ONLY_GENERATED_HEADER = \"x-prerender-revalidate-if-generated\";\nconst RSC_PREFETCH_SUFFIX = \".prefetch.rsc\";\nconst RSC_SUFFIX = \".rsc\";\nconst ACTION_SUFFIX = \".action\";\nconst NEXT_DATA_SUFFIX = \".json\";\nconst NEXT_META_SUFFIX = \".meta\";\nconst NEXT_BODY_SUFFIX = \".body\";\nconst NEXT_CACHE_TAGS_HEADER = \"x-next-cache-tags\";\nconst NEXT_CACHE_SOFT_TAGS_HEADER = \"x-next-cache-soft-tags\";\nconst NEXT_CACHE_REVALIDATED_TAGS_HEADER = \"x-next-revalidated-tags\";\nconst NEXT_CACHE_REVALIDATE_TAG_TOKEN_HEADER = \"x-next-revalidate-tag-token\";\nconst NEXT_CACHE_TAG_MAX_ITEMS = 128;\nconst NEXT_CACHE_TAG_MAX_LENGTH = 256;\nconst NEXT_CACHE_SOFT_TAG_MAX_LENGTH = 1024;\nconst NEXT_CACHE_IMPLICIT_TAG_ID = \"_N_T_\";\nconst CACHE_ONE_YEAR = 31536000;\nconst MIDDLEWARE_FILENAME = \"middleware\";\nconst MIDDLEWARE_LOCATION_REGEXP = `(?:src/)?${MIDDLEWARE_FILENAME}`;\nconst INSTRUMENTATION_HOOK_FILENAME = \"instrumentation\";\nconst PAGES_DIR_ALIAS = \"private-next-pages\";\nconst DOT_NEXT_ALIAS = \"private-dot-next\";\nconst ROOT_DIR_ALIAS = \"private-next-root-dir\";\nconst APP_DIR_ALIAS = \"private-next-app-dir\";\nconst RSC_MOD_REF_PROXY_ALIAS = \"private-next-rsc-mod-ref-proxy\";\nconst RSC_ACTION_VALIDATE_ALIAS = \"private-next-rsc-action-validate\";\nconst RSC_ACTION_PROXY_ALIAS = \"private-next-rsc-server-reference\";\nconst RSC_ACTION_ENCRYPTION_ALIAS = \"private-next-rsc-action-encryption\";\nconst RSC_ACTION_CLIENT_WRAPPER_ALIAS = \"private-next-rsc-action-client-wrapper\";\nconst PUBLIC_DIR_MIDDLEWARE_CONFLICT = `You can not have a '_next' folder inside of your public folder. This conflicts with the internal '/_next' route. https://nextjs.org/docs/messages/public-next-folder-conflict`;\nconst SSG_GET_INITIAL_PROPS_CONFLICT = `You can not use getInitialProps with getStaticProps. To use SSG, please remove your getInitialProps`;\nconst SERVER_PROPS_GET_INIT_PROPS_CONFLICT = `You can not use getInitialProps with getServerSideProps. Please remove getInitialProps.`;\nconst SERVER_PROPS_SSG_CONFLICT = `You can not use getStaticProps or getStaticPaths with getServerSideProps. To use SSG, please remove getServerSideProps`;\nconst STATIC_STATUS_PAGE_GET_INITIAL_PROPS_ERROR = `can not have getInitialProps/getServerSideProps, https://nextjs.org/docs/messages/404-get-initial-props`;\nconst SERVER_PROPS_EXPORT_ERROR = `pages with \\`getServerSideProps\\` can not be exported. See more info here: https://nextjs.org/docs/messages/gssp-export`;\nconst GSP_NO_RETURNED_VALUE = \"Your `getStaticProps` function did not return an object. Did you forget to add a `return`?\";\nconst GSSP_NO_RETURNED_VALUE = \"Your `getServerSideProps` function did not return an object. Did you forget to add a `return`?\";\nconst UNSTABLE_REVALIDATE_RENAME_ERROR = \"The `unstable_revalidate` property is available for general use.\\n\" + \"Please use `revalidate` instead.\";\nconst GSSP_COMPONENT_MEMBER_ERROR = `can not be attached to a page's component and must be exported from the page. See more info here: https://nextjs.org/docs/messages/gssp-component-member`;\nconst NON_STANDARD_NODE_ENV = `You are using a non-standard \"NODE_ENV\" value in your environment. This creates inconsistencies in the project and is strongly advised against. Read more: https://nextjs.org/docs/messages/non-standard-node-env`;\nconst SSG_FALLBACK_EXPORT_ERROR = `Pages with \\`fallback\\` enabled in \\`getStaticPaths\\` can not be exported. See more info here: https://nextjs.org/docs/messages/ssg-fallback-true-export`;\nconst ESLINT_DEFAULT_DIRS = [\n \"app\",\n \"pages\",\n \"components\",\n \"lib\",\n \"src\"\n];\nconst SERVER_RUNTIME = {\n edge: \"edge\",\n experimentalEdge: \"experimental-edge\",\n nodejs: \"nodejs\"\n};\n/**\n * The names of the webpack layers. These layers are the primitives for the\n * webpack chunks.\n */ const WEBPACK_LAYERS_NAMES = {\n /**\n * The layer for the shared code between the client and server bundles.\n */ shared: \"shared\",\n /**\n * React Server Components layer (rsc).\n */ reactServerComponents: \"rsc\",\n /**\n * Server Side Rendering layer for app (ssr).\n */ serverSideRendering: \"ssr\",\n /**\n * The browser client bundle layer for actions.\n */ actionBrowser: \"action-browser\",\n /**\n * The layer for the API routes.\n */ api: \"api\",\n /**\n * The layer for the middleware code.\n */ middleware: \"middleware\",\n /**\n * The layer for the instrumentation hooks.\n */ instrument: \"instrument\",\n /**\n * The layer for assets on the edge.\n */ edgeAsset: \"edge-asset\",\n /**\n * The browser client bundle layer for App directory.\n */ appPagesBrowser: \"app-pages-browser\",\n /**\n * The server bundle layer for metadata routes.\n */ appMetadataRoute: \"app-metadata-route\",\n /**\n * The layer for the server bundle for App Route handlers.\n */ appRouteHandler: \"app-route-handler\"\n};\nconst WEBPACK_LAYERS = {\n ...WEBPACK_LAYERS_NAMES,\n GROUP: {\n serverOnly: [\n WEBPACK_LAYERS_NAMES.reactServerComponents,\n WEBPACK_LAYERS_NAMES.actionBrowser,\n WEBPACK_LAYERS_NAMES.appMetadataRoute,\n WEBPACK_LAYERS_NAMES.appRouteHandler,\n WEBPACK_LAYERS_NAMES.instrument\n ],\n clientOnly: [\n WEBPACK_LAYERS_NAMES.serverSideRendering,\n WEBPACK_LAYERS_NAMES.appPagesBrowser\n ],\n nonClientServerTarget: [\n // middleware and pages api\n WEBPACK_LAYERS_NAMES.middleware,\n WEBPACK_LAYERS_NAMES.api\n ],\n app: [\n WEBPACK_LAYERS_NAMES.reactServerComponents,\n WEBPACK_LAYERS_NAMES.actionBrowser,\n WEBPACK_LAYERS_NAMES.appMetadataRoute,\n WEBPACK_LAYERS_NAMES.appRouteHandler,\n WEBPACK_LAYERS_NAMES.serverSideRendering,\n WEBPACK_LAYERS_NAMES.appPagesBrowser,\n WEBPACK_LAYERS_NAMES.shared,\n WEBPACK_LAYERS_NAMES.instrument\n ]\n }\n};\nconst WEBPACK_RESOURCE_QUERIES = {\n edgeSSREntry: \"__next_edge_ssr_entry__\",\n metadata: \"__next_metadata__\",\n metadataRoute: \"__next_metadata_route__\",\n metadataImageMeta: \"__next_metadata_image_meta__\"\n};\n\n//# sourceMappingURL=constants.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n0 && (module.exports = {\n fromNodeOutgoingHttpHeaders: null,\n normalizeNextQueryParam: null,\n splitCookiesString: null,\n toNodeOutgoingHttpHeaders: null,\n validateURL: null\n});\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n fromNodeOutgoingHttpHeaders: function() {\n return fromNodeOutgoingHttpHeaders;\n },\n normalizeNextQueryParam: function() {\n return normalizeNextQueryParam;\n },\n splitCookiesString: function() {\n return splitCookiesString;\n },\n toNodeOutgoingHttpHeaders: function() {\n return toNodeOutgoingHttpHeaders;\n },\n validateURL: function() {\n return validateURL;\n }\n});\nconst _constants = require(\"../../lib/constants\");\nfunction fromNodeOutgoingHttpHeaders(nodeHeaders) {\n const headers = new Headers();\n for (let [key, value] of Object.entries(nodeHeaders)){\n const values = Array.isArray(value) ? value : [\n value\n ];\n for (let v of values){\n if (typeof v === \"undefined\") continue;\n if (typeof v === \"number\") {\n v = v.toString();\n }\n headers.append(key, v);\n }\n }\n return headers;\n}\nfunction splitCookiesString(cookiesString) {\n var cookiesStrings = [];\n var pos = 0;\n var start;\n var ch;\n var lastComma;\n var nextStart;\n var cookiesSeparatorFound;\n function skipWhitespace() {\n while(pos < cookiesString.length && /\\s/.test(cookiesString.charAt(pos))){\n pos += 1;\n }\n return pos < cookiesString.length;\n }\n function notSpecialChar() {\n ch = cookiesString.charAt(pos);\n return ch !== \"=\" && ch !== \";\" && ch !== \",\";\n }\n while(pos < cookiesString.length){\n start = pos;\n cookiesSeparatorFound = false;\n while(skipWhitespace()){\n ch = cookiesString.charAt(pos);\n if (ch === \",\") {\n // ',' is a cookie separator if we have later first '=', not ';' or ','\n lastComma = pos;\n pos += 1;\n skipWhitespace();\n nextStart = pos;\n while(pos < cookiesString.length && notSpecialChar()){\n pos += 1;\n }\n // currently special character\n if (pos < cookiesString.length && cookiesString.charAt(pos) === \"=\") {\n // we found cookies separator\n cookiesSeparatorFound = true;\n // pos is inside the next cookie, so back up and return it.\n pos = nextStart;\n cookiesStrings.push(cookiesString.substring(start, lastComma));\n start = pos;\n } else {\n // in param ',' or param separator ';',\n // we continue from that comma\n pos = lastComma + 1;\n }\n } else {\n pos += 1;\n }\n }\n if (!cookiesSeparatorFound || pos >= cookiesString.length) {\n cookiesStrings.push(cookiesString.substring(start, cookiesString.length));\n }\n }\n return cookiesStrings;\n}\nfunction toNodeOutgoingHttpHeaders(headers) {\n const nodeHeaders = {};\n const cookies = [];\n if (headers) {\n for (const [key, value] of headers.entries()){\n if (key.toLowerCase() === \"set-cookie\") {\n // We may have gotten a comma joined string of cookies, or multiple\n // set-cookie headers. We need to merge them into one header array\n // to represent all the cookies.\n cookies.push(...splitCookiesString(value));\n nodeHeaders[key] = cookies.length === 1 ? cookies[0] : cookies;\n } else {\n nodeHeaders[key] = value;\n }\n }\n }\n return nodeHeaders;\n}\nfunction validateURL(url) {\n try {\n return String(new URL(String(url)));\n } catch (error) {\n throw new Error(`URL is malformed \"${String(url)}\". Please use only absolute URLs - https://nextjs.org/docs/messages/middleware-relative-urls`, {\n cause: error\n });\n }\n}\nfunction normalizeNextQueryParam(key, onKeyNormalized) {\n const prefixes = [\n _constants.NEXT_QUERY_PARAM_PREFIX,\n _constants.NEXT_INTERCEPTION_MARKER_PREFIX\n ];\n for (const prefix of prefixes){\n if (key !== prefix && key.startsWith(prefix)) {\n const normalizedKey = key.substring(prefix.length);\n onKeyNormalized(normalizedKey);\n }\n }\n}\n\n//# sourceMappingURL=utils.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n0 && (module.exports = {\n PageSignatureError: null,\n RemovedPageError: null,\n RemovedUAError: null\n});\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n PageSignatureError: function() {\n return PageSignatureError;\n },\n RemovedPageError: function() {\n return RemovedPageError;\n },\n RemovedUAError: function() {\n return RemovedUAError;\n }\n});\nclass PageSignatureError extends Error {\n constructor({ page }){\n super(`The middleware \"${page}\" accepts an async API directly with the form:\n \n export function middleware(request, event) {\n return NextResponse.redirect('/new-location')\n }\n \n Read more: https://nextjs.org/docs/messages/middleware-new-signature\n `);\n }\n}\nclass RemovedPageError extends Error {\n constructor(){\n super(`The request.page has been deprecated in favour of \\`URLPattern\\`.\n Read more: https://nextjs.org/docs/messages/middleware-request-page\n `);\n }\n}\nclass RemovedUAError extends Error {\n constructor(){\n super(`The request.ua has been removed in favour of \\`userAgent\\` function.\n Read more: https://nextjs.org/docs/messages/middleware-parse-user-agent\n `);\n }\n}\n\n//# sourceMappingURL=error.js.map","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar src_exports = {};\n__export(src_exports, {\n RequestCookies: () => RequestCookies,\n ResponseCookies: () => ResponseCookies,\n parseCookie: () => parseCookie,\n parseSetCookie: () => parseSetCookie,\n stringifyCookie: () => stringifyCookie\n});\nmodule.exports = __toCommonJS(src_exports);\n\n// src/serialize.ts\nfunction stringifyCookie(c) {\n var _a;\n const attrs = [\n \"path\" in c && c.path && `Path=${c.path}`,\n \"expires\" in c && (c.expires || c.expires === 0) && `Expires=${(typeof c.expires === \"number\" ? new Date(c.expires) : c.expires).toUTCString()}`,\n \"maxAge\" in c && typeof c.maxAge === \"number\" && `Max-Age=${c.maxAge}`,\n \"domain\" in c && c.domain && `Domain=${c.domain}`,\n \"secure\" in c && c.secure && \"Secure\",\n \"httpOnly\" in c && c.httpOnly && \"HttpOnly\",\n \"sameSite\" in c && c.sameSite && `SameSite=${c.sameSite}`,\n \"partitioned\" in c && c.partitioned && \"Partitioned\",\n \"priority\" in c && c.priority && `Priority=${c.priority}`\n ].filter(Boolean);\n const stringified = `${c.name}=${encodeURIComponent((_a = c.value) != null ? _a : \"\")}`;\n return attrs.length === 0 ? stringified : `${stringified}; ${attrs.join(\"; \")}`;\n}\nfunction parseCookie(cookie) {\n const map = /* @__PURE__ */ new Map();\n for (const pair of cookie.split(/; */)) {\n if (!pair)\n continue;\n const splitAt = pair.indexOf(\"=\");\n if (splitAt === -1) {\n map.set(pair, \"true\");\n continue;\n }\n const [key, value] = [pair.slice(0, splitAt), pair.slice(splitAt + 1)];\n try {\n map.set(key, decodeURIComponent(value != null ? value : \"true\"));\n } catch {\n }\n }\n return map;\n}\nfunction parseSetCookie(setCookie) {\n if (!setCookie) {\n return void 0;\n }\n const [[name, value], ...attributes] = parseCookie(setCookie);\n const {\n domain,\n expires,\n httponly,\n maxage,\n path,\n samesite,\n secure,\n partitioned,\n priority\n } = Object.fromEntries(\n attributes.map(([key, value2]) => [key.toLowerCase(), value2])\n );\n const cookie = {\n name,\n value: decodeURIComponent(value),\n domain,\n ...expires && { expires: new Date(expires) },\n ...httponly && { httpOnly: true },\n ...typeof maxage === \"string\" && { maxAge: Number(maxage) },\n path,\n ...samesite && { sameSite: parseSameSite(samesite) },\n ...secure && { secure: true },\n ...priority && { priority: parsePriority(priority) },\n ...partitioned && { partitioned: true }\n };\n return compact(cookie);\n}\nfunction compact(t) {\n const newT = {};\n for (const key in t) {\n if (t[key]) {\n newT[key] = t[key];\n }\n }\n return newT;\n}\nvar SAME_SITE = [\"strict\", \"lax\", \"none\"];\nfunction parseSameSite(string) {\n string = string.toLowerCase();\n return SAME_SITE.includes(string) ? string : void 0;\n}\nvar PRIORITY = [\"low\", \"medium\", \"high\"];\nfunction parsePriority(string) {\n string = string.toLowerCase();\n return PRIORITY.includes(string) ? string : void 0;\n}\nfunction splitCookiesString(cookiesString) {\n if (!cookiesString)\n return [];\n var cookiesStrings = [];\n var pos = 0;\n var start;\n var ch;\n var lastComma;\n var nextStart;\n var cookiesSeparatorFound;\n function skipWhitespace() {\n while (pos < cookiesString.length && /\\s/.test(cookiesString.charAt(pos))) {\n pos += 1;\n }\n return pos < cookiesString.length;\n }\n function notSpecialChar() {\n ch = cookiesString.charAt(pos);\n return ch !== \"=\" && ch !== \";\" && ch !== \",\";\n }\n while (pos < cookiesString.length) {\n start = pos;\n cookiesSeparatorFound = false;\n while (skipWhitespace()) {\n ch = cookiesString.charAt(pos);\n if (ch === \",\") {\n lastComma = pos;\n pos += 1;\n skipWhitespace();\n nextStart = pos;\n while (pos < cookiesString.length && notSpecialChar()) {\n pos += 1;\n }\n if (pos < cookiesString.length && cookiesString.charAt(pos) === \"=\") {\n cookiesSeparatorFound = true;\n pos = nextStart;\n cookiesStrings.push(cookiesString.substring(start, lastComma));\n start = pos;\n } else {\n pos = lastComma + 1;\n }\n } else {\n pos += 1;\n }\n }\n if (!cookiesSeparatorFound || pos >= cookiesString.length) {\n cookiesStrings.push(cookiesString.substring(start, cookiesString.length));\n }\n }\n return cookiesStrings;\n}\n\n// src/request-cookies.ts\nvar RequestCookies = class {\n constructor(requestHeaders) {\n /** @internal */\n this._parsed = /* @__PURE__ */ new Map();\n this._headers = requestHeaders;\n const header = requestHeaders.get(\"cookie\");\n if (header) {\n const parsed = parseCookie(header);\n for (const [name, value] of parsed) {\n this._parsed.set(name, { name, value });\n }\n }\n }\n [Symbol.iterator]() {\n return this._parsed[Symbol.iterator]();\n }\n /**\n * The amount of cookies received from the client\n */\n get size() {\n return this._parsed.size;\n }\n get(...args) {\n const name = typeof args[0] === \"string\" ? args[0] : args[0].name;\n return this._parsed.get(name);\n }\n getAll(...args) {\n var _a;\n const all = Array.from(this._parsed);\n if (!args.length) {\n return all.map(([_, value]) => value);\n }\n const name = typeof args[0] === \"string\" ? args[0] : (_a = args[0]) == null ? void 0 : _a.name;\n return all.filter(([n]) => n === name).map(([_, value]) => value);\n }\n has(name) {\n return this._parsed.has(name);\n }\n set(...args) {\n const [name, value] = args.length === 1 ? [args[0].name, args[0].value] : args;\n const map = this._parsed;\n map.set(name, { name, value });\n this._headers.set(\n \"cookie\",\n Array.from(map).map(([_, value2]) => stringifyCookie(value2)).join(\"; \")\n );\n return this;\n }\n /**\n * Delete the cookies matching the passed name or names in the request.\n */\n delete(names) {\n const map = this._parsed;\n const result = !Array.isArray(names) ? map.delete(names) : names.map((name) => map.delete(name));\n this._headers.set(\n \"cookie\",\n Array.from(map).map(([_, value]) => stringifyCookie(value)).join(\"; \")\n );\n return result;\n }\n /**\n * Delete all the cookies in the cookies in the request.\n */\n clear() {\n this.delete(Array.from(this._parsed.keys()));\n return this;\n }\n /**\n * Format the cookies in the request as a string for logging\n */\n [Symbol.for(\"edge-runtime.inspect.custom\")]() {\n return `RequestCookies ${JSON.stringify(Object.fromEntries(this._parsed))}`;\n }\n toString() {\n return [...this._parsed.values()].map((v) => `${v.name}=${encodeURIComponent(v.value)}`).join(\"; \");\n }\n};\n\n// src/response-cookies.ts\nvar ResponseCookies = class {\n constructor(responseHeaders) {\n /** @internal */\n this._parsed = /* @__PURE__ */ new Map();\n var _a, _b, _c;\n this._headers = responseHeaders;\n const setCookie = (_c = (_b = (_a = responseHeaders.getSetCookie) == null ? void 0 : _a.call(responseHeaders)) != null ? _b : responseHeaders.get(\"set-cookie\")) != null ? _c : [];\n const cookieStrings = Array.isArray(setCookie) ? setCookie : splitCookiesString(setCookie);\n for (const cookieString of cookieStrings) {\n const parsed = parseSetCookie(cookieString);\n if (parsed)\n this._parsed.set(parsed.name, parsed);\n }\n }\n /**\n * {@link https://wicg.github.io/cookie-store/#CookieStore-get CookieStore#get} without the Promise.\n */\n get(...args) {\n const key = typeof args[0] === \"string\" ? args[0] : args[0].name;\n return this._parsed.get(key);\n }\n /**\n * {@link https://wicg.github.io/cookie-store/#CookieStore-getAll CookieStore#getAll} without the Promise.\n */\n getAll(...args) {\n var _a;\n const all = Array.from(this._parsed.values());\n if (!args.length) {\n return all;\n }\n const key = typeof args[0] === \"string\" ? args[0] : (_a = args[0]) == null ? void 0 : _a.name;\n return all.filter((c) => c.name === key);\n }\n has(name) {\n return this._parsed.has(name);\n }\n /**\n * {@link https://wicg.github.io/cookie-store/#CookieStore-set CookieStore#set} without the Promise.\n */\n set(...args) {\n const [name, value, cookie] = args.length === 1 ? [args[0].name, args[0].value, args[0]] : args;\n const map = this._parsed;\n map.set(name, normalizeCookie({ name, value, ...cookie }));\n replace(map, this._headers);\n return this;\n }\n /**\n * {@link https://wicg.github.io/cookie-store/#CookieStore-delete CookieStore#delete} without the Promise.\n */\n delete(...args) {\n const [name, path, domain] = typeof args[0] === \"string\" ? [args[0]] : [args[0].name, args[0].path, args[0].domain];\n return this.set({ name, path, domain, value: \"\", expires: /* @__PURE__ */ new Date(0) });\n }\n [Symbol.for(\"edge-runtime.inspect.custom\")]() {\n return `ResponseCookies ${JSON.stringify(Object.fromEntries(this._parsed))}`;\n }\n toString() {\n return [...this._parsed.values()].map(stringifyCookie).join(\"; \");\n }\n};\nfunction replace(bag, headers) {\n headers.delete(\"set-cookie\");\n for (const [, value] of bag) {\n const serialized = stringifyCookie(value);\n headers.append(\"set-cookie\", serialized);\n }\n}\nfunction normalizeCookie(cookie = { name: \"\", value: \"\" }) {\n if (typeof cookie.expires === \"number\") {\n cookie.expires = new Date(cookie.expires);\n }\n if (cookie.maxAge) {\n cookie.expires = new Date(Date.now() + cookie.maxAge * 1e3);\n }\n if (cookie.path === null || cookie.path === void 0) {\n cookie.path = \"/\";\n }\n return cookie;\n}\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n RequestCookies,\n ResponseCookies,\n parseCookie,\n parseSetCookie,\n stringifyCookie\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n0 && (module.exports = {\n RequestCookies: null,\n ResponseCookies: null,\n stringifyCookie: null\n});\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n RequestCookies: function() {\n return _cookies.RequestCookies;\n },\n ResponseCookies: function() {\n return _cookies.ResponseCookies;\n },\n stringifyCookie: function() {\n return _cookies.stringifyCookie;\n }\n});\nconst _cookies = require(\"next/dist/compiled/@edge-runtime/cookies\");\n\n//# sourceMappingURL=cookies.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n0 && (module.exports = {\n INTERNALS: null,\n NextRequest: null\n});\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n INTERNALS: function() {\n return INTERNALS;\n },\n NextRequest: function() {\n return NextRequest;\n }\n});\nconst _nexturl = require(\"../next-url\");\nconst _utils = require(\"../utils\");\nconst _error = require(\"../error\");\nconst _cookies = require(\"./cookies\");\nconst INTERNALS = Symbol(\"internal request\");\nclass NextRequest extends Request {\n constructor(input, init = {}){\n const url = typeof input !== \"string\" && \"url\" in input ? input.url : String(input);\n (0, _utils.validateURL)(url);\n if (input instanceof Request) super(input, init);\n else super(url, init);\n const nextUrl = new _nexturl.NextURL(url, {\n headers: (0, _utils.toNodeOutgoingHttpHeaders)(this.headers),\n nextConfig: init.nextConfig\n });\n this[INTERNALS] = {\n cookies: new _cookies.RequestCookies(this.headers),\n geo: init.geo || {},\n ip: init.ip,\n nextUrl,\n url: process.env.__NEXT_NO_MIDDLEWARE_URL_NORMALIZE ? url : nextUrl.toString()\n };\n }\n [Symbol.for(\"edge-runtime.inspect.custom\")]() {\n return {\n cookies: this.cookies,\n geo: this.geo,\n ip: this.ip,\n nextUrl: this.nextUrl,\n url: this.url,\n // rest of props come from Request\n bodyUsed: this.bodyUsed,\n cache: this.cache,\n credentials: this.credentials,\n destination: this.destination,\n headers: Object.fromEntries(this.headers),\n integrity: this.integrity,\n keepalive: this.keepalive,\n method: this.method,\n mode: this.mode,\n redirect: this.redirect,\n referrer: this.referrer,\n referrerPolicy: this.referrerPolicy,\n signal: this.signal\n };\n }\n get cookies() {\n return this[INTERNALS].cookies;\n }\n get geo() {\n return this[INTERNALS].geo;\n }\n get ip() {\n return this[INTERNALS].ip;\n }\n get nextUrl() {\n return this[INTERNALS].nextUrl;\n }\n /**\n * @deprecated\n * `page` has been deprecated in favour of `URLPattern`.\n * Read more: https://nextjs.org/docs/messages/middleware-request-page\n */ get page() {\n throw new _error.RemovedPageError();\n }\n /**\n * @deprecated\n * `ua` has been removed in favour of \\`userAgent\\` function.\n * Read more: https://nextjs.org/docs/messages/middleware-parse-user-agent\n */ get ua() {\n throw new _error.RemovedUAError();\n }\n get url() {\n return this[INTERNALS].url;\n }\n}\n\n//# sourceMappingURL=request.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"ReflectAdapter\", {\n enumerable: true,\n get: function() {\n return ReflectAdapter;\n }\n});\nclass ReflectAdapter {\n static get(target, prop, receiver) {\n const value = Reflect.get(target, prop, receiver);\n if (typeof value === \"function\") {\n return value.bind(target);\n }\n return value;\n }\n static set(target, prop, value, receiver) {\n return Reflect.set(target, prop, value, receiver);\n }\n static has(target, prop) {\n return Reflect.has(target, prop);\n }\n static deleteProperty(target, prop) {\n return Reflect.deleteProperty(target, prop);\n }\n}\n\n//# sourceMappingURL=reflect.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"NextResponse\", {\n enumerable: true,\n get: function() {\n return NextResponse;\n }\n});\nconst _cookies = require(\"../../web/spec-extension/cookies\");\nconst _nexturl = require(\"../next-url\");\nconst _utils = require(\"../utils\");\nconst _reflect = require(\"./adapters/reflect\");\nconst _cookies1 = require(\"./cookies\");\nconst INTERNALS = Symbol(\"internal response\");\nconst REDIRECTS = new Set([\n 301,\n 302,\n 303,\n 307,\n 308\n]);\nfunction handleMiddlewareField(init, headers) {\n var _init_request;\n if (init == null ? void 0 : (_init_request = init.request) == null ? void 0 : _init_request.headers) {\n if (!(init.request.headers instanceof Headers)) {\n throw new Error(\"request.headers must be an instance of Headers\");\n }\n const keys = [];\n for (const [key, value] of init.request.headers){\n headers.set(\"x-middleware-request-\" + key, value);\n keys.push(key);\n }\n headers.set(\"x-middleware-override-headers\", keys.join(\",\"));\n }\n}\nclass NextResponse extends Response {\n constructor(body, init = {}){\n super(body, init);\n const headers = this.headers;\n const cookies = new _cookies1.ResponseCookies(headers);\n const cookiesProxy = new Proxy(cookies, {\n get (target, prop, receiver) {\n switch(prop){\n case \"delete\":\n case \"set\":\n {\n return (...args)=>{\n const result = Reflect.apply(target[prop], target, args);\n const newHeaders = new Headers(headers);\n if (result instanceof _cookies1.ResponseCookies) {\n headers.set(\"x-middleware-set-cookie\", result.getAll().map((cookie)=>(0, _cookies.stringifyCookie)(cookie)).join(\",\"));\n }\n handleMiddlewareField(init, newHeaders);\n return result;\n };\n }\n default:\n return _reflect.ReflectAdapter.get(target, prop, receiver);\n }\n }\n });\n this[INTERNALS] = {\n cookies: cookiesProxy,\n url: init.url ? new _nexturl.NextURL(init.url, {\n headers: (0, _utils.toNodeOutgoingHttpHeaders)(headers),\n nextConfig: init.nextConfig\n }) : undefined\n };\n }\n [Symbol.for(\"edge-runtime.inspect.custom\")]() {\n return {\n cookies: this.cookies,\n url: this.url,\n // rest of props come from Response\n body: this.body,\n bodyUsed: this.bodyUsed,\n headers: Object.fromEntries(this.headers),\n ok: this.ok,\n redirected: this.redirected,\n status: this.status,\n statusText: this.statusText,\n type: this.type\n };\n }\n get cookies() {\n return this[INTERNALS].cookies;\n }\n static json(body, init) {\n const response = Response.json(body, init);\n return new NextResponse(response.body, response);\n }\n static redirect(url, init) {\n const status = typeof init === \"number\" ? init : (init == null ? void 0 : init.status) ?? 307;\n if (!REDIRECTS.has(status)) {\n throw new RangeError('Failed to execute \"redirect\" on \"response\": Invalid status code');\n }\n const initObj = typeof init === \"object\" ? init : {};\n const headers = new Headers(initObj == null ? void 0 : initObj.headers);\n headers.set(\"Location\", (0, _utils.validateURL)(url));\n return new NextResponse(null, {\n ...initObj,\n headers,\n status\n });\n }\n static rewrite(destination, init) {\n const headers = new Headers(init == null ? void 0 : init.headers);\n headers.set(\"x-middleware-rewrite\", (0, _utils.validateURL)(destination));\n handleMiddlewareField(init, headers);\n return new NextResponse(null, {\n ...init,\n headers\n });\n }\n static next(init) {\n const headers = new Headers(init == null ? void 0 : init.headers);\n headers.set(\"x-middleware-next\", \"1\");\n handleMiddlewareField(init, headers);\n return new NextResponse(null, {\n ...init,\n headers\n });\n }\n}\n\n//# sourceMappingURL=response.js.map","/**\n * @deprecated ImageResponse moved from \"next/server\" to \"next/og\" since Next.js 14, please import from \"next/og\" instead.\n * Migration with codemods: https://nextjs.org/docs/app/building-your-application/upgrading/codemods#next-og-import\n */ \"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"ImageResponse\", {\n enumerable: true,\n get: function() {\n return ImageResponse;\n }\n});\nfunction ImageResponse() {\n throw new Error('ImageResponse moved from \"next/server\" to \"next/og\" since Next.js 14, please import from \"next/og\" instead');\n}\n\n//# sourceMappingURL=image-response.js.map","(()=>{var i={226:function(i,e){(function(o,a){\"use strict\";var r=\"1.0.35\",t=\"\",n=\"?\",s=\"function\",b=\"undefined\",w=\"object\",l=\"string\",d=\"major\",c=\"model\",u=\"name\",p=\"type\",m=\"vendor\",f=\"version\",h=\"architecture\",v=\"console\",g=\"mobile\",k=\"tablet\",x=\"smarttv\",_=\"wearable\",y=\"embedded\",q=350;var T=\"Amazon\",S=\"Apple\",z=\"ASUS\",N=\"BlackBerry\",A=\"Browser\",C=\"Chrome\",E=\"Edge\",O=\"Firefox\",U=\"Google\",j=\"Huawei\",P=\"LG\",R=\"Microsoft\",M=\"Motorola\",B=\"Opera\",V=\"Samsung\",D=\"Sharp\",I=\"Sony\",W=\"Viera\",F=\"Xiaomi\",G=\"Zebra\",H=\"Facebook\",L=\"Chromium OS\",Z=\"Mac OS\";var extend=function(i,e){var o={};for(var a in i){if(e[a]&&e[a].length%2===0){o[a]=e[a].concat(i[a])}else{o[a]=i[a]}}return o},enumerize=function(i){var e={};for(var o=0;o<i.length;o++){e[i[o].toUpperCase()]=i[o]}return e},has=function(i,e){return typeof i===l?lowerize(e).indexOf(lowerize(i))!==-1:false},lowerize=function(i){return i.toLowerCase()},majorize=function(i){return typeof i===l?i.replace(/[^\\d\\.]/g,t).split(\".\")[0]:a},trim=function(i,e){if(typeof i===l){i=i.replace(/^\\s\\s*/,t);return typeof e===b?i:i.substring(0,q)}};var rgxMapper=function(i,e){var o=0,r,t,n,b,l,d;while(o<e.length&&!l){var c=e[o],u=e[o+1];r=t=0;while(r<c.length&&!l){if(!c[r]){break}l=c[r++].exec(i);if(!!l){for(n=0;n<u.length;n++){d=l[++t];b=u[n];if(typeof b===w&&b.length>0){if(b.length===2){if(typeof b[1]==s){this[b[0]]=b[1].call(this,d)}else{this[b[0]]=b[1]}}else if(b.length===3){if(typeof b[1]===s&&!(b[1].exec&&b[1].test)){this[b[0]]=d?b[1].call(this,d,b[2]):a}else{this[b[0]]=d?d.replace(b[1],b[2]):a}}else if(b.length===4){this[b[0]]=d?b[3].call(this,d.replace(b[1],b[2])):a}}else{this[b]=d?d:a}}}}o+=2}},strMapper=function(i,e){for(var o in e){if(typeof e[o]===w&&e[o].length>0){for(var r=0;r<e[o].length;r++){if(has(e[o][r],i)){return o===n?a:o}}}else if(has(e[o],i)){return o===n?a:o}}return i};var $={\"1.0\":\"/8\",1.2:\"/1\",1.3:\"/3\",\"2.0\":\"/412\",\"2.0.2\":\"/416\",\"2.0.3\":\"/417\",\"2.0.4\":\"/419\",\"?\":\"/\"},X={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\"};var K={browser:[[/\\b(?:crmo|crios)\\/([\\w\\.]+)/i],[f,[u,\"Chrome\"]],[/edg(?:e|ios|a)?\\/([\\w\\.]+)/i],[f,[u,\"Edge\"]],[/(opera mini)\\/([-\\w\\.]+)/i,/(opera [mobiletab]{3,6})\\b.+version\\/([-\\w\\.]+)/i,/(opera)(?:.+version\\/|[\\/ ]+)([\\w\\.]+)/i],[u,f],[/opios[\\/ ]+([\\w\\.]+)/i],[f,[u,B+\" Mini\"]],[/\\bopr\\/([\\w\\.]+)/i],[f,[u,B]],[/(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],[u,f],[/(?:\\buc? ?browser|(?:juc.+)ucweb)[\\/ ]?([\\w\\.]+)/i],[f,[u,\"UC\"+A]],[/microm.+\\bqbcore\\/([\\w\\.]+)/i,/\\bqbcore\\/([\\w\\.]+).+microm/i],[f,[u,\"WeChat(Win) Desktop\"]],[/micromessenger\\/([\\w\\.]+)/i],[f,[u,\"WeChat\"]],[/konqueror\\/([\\w\\.]+)/i],[f,[u,\"Konqueror\"]],[/trident.+rv[: ]([\\w\\.]{1,9})\\b.+like gecko/i],[f,[u,\"IE\"]],[/ya(?:search)?browser\\/([\\w\\.]+)/i],[f,[u,\"Yandex\"]],[/(avast|avg)\\/([\\w\\.]+)/i],[[u,/(.+)/,\"$1 Secure \"+A],f],[/\\bfocus\\/([\\w\\.]+)/i],[f,[u,O+\" Focus\"]],[/\\bopt\\/([\\w\\.]+)/i],[f,[u,B+\" Touch\"]],[/coc_coc\\w+\\/([\\w\\.]+)/i],[f,[u,\"Coc Coc\"]],[/dolfin\\/([\\w\\.]+)/i],[f,[u,\"Dolphin\"]],[/coast\\/([\\w\\.]+)/i],[f,[u,B+\" Coast\"]],[/miuibrowser\\/([\\w\\.]+)/i],[f,[u,\"MIUI \"+A]],[/fxios\\/([-\\w\\.]+)/i],[f,[u,O]],[/\\bqihu|(qi?ho?o?|360)browser/i],[[u,\"360 \"+A]],[/(oculus|samsung|sailfish|huawei)browser\\/([\\w\\.]+)/i],[[u,/(.+)/,\"$1 \"+A],f],[/(comodo_dragon)\\/([\\w\\.]+)/i],[[u,/_/g,\" \"],f],[/(electron)\\/([\\w\\.]+) safari/i,/(tesla)(?: qtcarbrowser|\\/(20\\d\\d\\.[-\\w\\.]+))/i,/m?(qqbrowser|baiduboxapp|2345Explorer)[\\/ ]?([\\w\\.]+)/i],[u,f],[/(metasr)[\\/ ]?([\\w\\.]+)/i,/(lbbrowser)/i,/\\[(linkedin)app\\]/i],[u],[/((?:fban\\/fbios|fb_iab\\/fb4a)(?!.+fbav)|;fbav\\/([\\w\\.]+);)/i],[[u,H],f],[/(kakao(?:talk|story))[\\/ ]([\\w\\.]+)/i,/(naver)\\(.*?(\\d+\\.[\\w\\.]+).*\\)/i,/safari (line)\\/([\\w\\.]+)/i,/\\b(line)\\/([\\w\\.]+)\\/iab/i,/(chromium|instagram)[\\/ ]([-\\w\\.]+)/i],[u,f],[/\\bgsa\\/([\\w\\.]+) .*safari\\//i],[f,[u,\"GSA\"]],[/musical_ly(?:.+app_?version\\/|_)([\\w\\.]+)/i],[f,[u,\"TikTok\"]],[/headlesschrome(?:\\/([\\w\\.]+)| )/i],[f,[u,C+\" Headless\"]],[/ wv\\).+(chrome)\\/([\\w\\.]+)/i],[[u,C+\" WebView\"],f],[/droid.+ version\\/([\\w\\.]+)\\b.+(?:mobile safari|safari)/i],[f,[u,\"Android \"+A]],[/(chrome|omniweb|arora|[tizenoka]{5} ?browser)\\/v?([\\w\\.]+)/i],[u,f],[/version\\/([\\w\\.\\,]+) .*mobile\\/\\w+ (safari)/i],[f,[u,\"Mobile Safari\"]],[/version\\/([\\w(\\.|\\,)]+) .*(mobile ?safari|safari)/i],[f,u],[/webkit.+?(mobile ?safari|safari)(\\/[\\w\\.]+)/i],[u,[f,strMapper,$]],[/(webkit|khtml)\\/([\\w\\.]+)/i],[u,f],[/(navigator|netscape\\d?)\\/([-\\w\\.]+)/i],[[u,\"Netscape\"],f],[/mobile vr; rv:([\\w\\.]+)\\).+firefox/i],[f,[u,O+\" 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],[u,f],[/(cobalt)\\/([\\w\\.]+)/i],[u,[f,/master.|lts./,\"\"]]],cpu:[[/(?:(amd|x(?:(?:86|64)[-_])?|wow|win)64)[;\\)]/i],[[h,\"amd64\"]],[/(ia32(?=;))/i],[[h,lowerize]],[/((?:i[346]|x)86)[;\\)]/i],[[h,\"ia32\"]],[/\\b(aarch64|arm(v?8e?l?|_?64))\\b/i],[[h,\"arm64\"]],[/\\b(arm(?:v[67])?ht?n?[fl]p?)\\b/i],[[h,\"armhf\"]],[/windows (ce|mobile); ppc;/i],[[h,\"arm\"]],[/((?:ppc|powerpc)(?:64)?)(?: mac|;|\\))/i],[[h,/ower/,t,lowerize]],[/(sun4\\w)[;\\)]/i],[[h,\"sparc\"]],[/((?:avr32|ia64(?=;))|68k(?=\\))|\\barm(?=v(?:[1-7]|[5-7]1)l?|;|eabi)|(?=atmel )avr|(?:irix|mips|sparc)(?:64)?\\b|pa-risc)/i],[[h,lowerize]]],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],[c,[m,V],[p,k]],[/\\b((?:s[cgp]h|gt|sm)-\\w+|sc[g-]?[\\d]+a?|galaxy nexus)/i,/samsung[- ]([-\\w]+)/i,/sec-(sgh\\w+)/i],[c,[m,V],[p,g]],[/(?:\\/|\\()(ip(?:hone|od)[\\w, ]*)(?:\\/|;)/i],[c,[m,S],[p,g]],[/\\((ipad);[-\\w\\),; ]+apple/i,/applecoremedia\\/[\\w\\.]+ \\((ipad)/i,/\\b(ipad)\\d\\d?,\\d\\d?[;\\]].+ios/i],[c,[m,S],[p,k]],[/(macintosh);/i],[c,[m,S]],[/\\b(sh-?[altvz]?\\d\\d[a-ekm]?)/i],[c,[m,D],[p,g]],[/\\b((?:ag[rs][23]?|bah2?|sht?|btv)-a?[lw]\\d{2})\\b(?!.+d\\/s)/i],[c,[m,j],[p,k]],[/(?:huawei|honor)([-\\w ]+)[;\\)]/i,/\\b(nexus 6p|\\w{2,4}e?-[atu]?[ln][\\dx][012359c][adn]?)\\b(?!.+d\\/s)/i],[c,[m,j],[p,g]],[/\\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],[[c,/_/g,\" \"],[m,F],[p,g]],[/\\b(mi[-_ ]?(?:pad)(?:[\\w_ ]+))(?: bui|\\))/i],[[c,/_/g,\" \"],[m,F],[p,k]],[/; (\\w+) bui.+ oppo/i,/\\b(cph[12]\\d{3}|p(?:af|c[al]|d\\w|e[ar])[mt]\\d0|x9007|a101op)\\b/i],[c,[m,\"OPPO\"],[p,g]],[/vivo (\\w+)(?: bui|\\))/i,/\\b(v[12]\\d{3}\\w?[at])(?: bui|;)/i],[c,[m,\"Vivo\"],[p,g]],[/\\b(rmx[12]\\d{3})(?: bui|;|\\))/i],[c,[m,\"Realme\"],[p,g]],[/\\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],[c,[m,M],[p,g]],[/\\b(mz60\\d|xoom[2 ]{0,2}) build\\//i],[c,[m,M],[p,k]],[/((?=lg)?[vl]k\\-?\\d{3}) bui| 3\\.[-\\w; ]{10}lg?-([06cv9]{3,4})/i],[c,[m,P],[p,k]],[/(lm(?:-?f100[nv]?|-[\\w\\.]+)(?= bui|\\))|nexus [45])/i,/\\blg[-e;\\/ ]+((?!browser|netcast|android tv)\\w+)/i,/\\blg-?([\\d\\w]+) bui/i],[c,[m,P],[p,g]],[/(ideatab[-\\w ]+)/i,/lenovo ?(s[56]000[-\\w]+|tab(?:[\\w ]+)|yt[-\\d\\w]{6}|tb[-\\d\\w]{6})/i],[c,[m,\"Lenovo\"],[p,k]],[/(?:maemo|nokia).*(n900|lumia \\d+)/i,/nokia[-_ ]?([-\\w\\.]*)/i],[[c,/_/g,\" \"],[m,\"Nokia\"],[p,g]],[/(pixel c)\\b/i],[c,[m,U],[p,k]],[/droid.+; (pixel[\\daxl ]{0,6})(?: bui|\\))/i],[c,[m,U],[p,g]],[/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],[c,[m,I],[p,g]],[/sony tablet [ps]/i,/\\b(?:sony)?sgp\\w+(?: bui|\\))/i],[[c,\"Xperia Tablet\"],[m,I],[p,k]],[/ (kb2005|in20[12]5|be20[12][59])\\b/i,/(?:one)?(?:plus)? (a\\d0\\d\\d)(?: b|\\))/i],[c,[m,\"OnePlus\"],[p,g]],[/(alexa)webm/i,/(kf[a-z]{2}wi|aeo[c-r]{2})( bui|\\))/i,/(kf[a-z]+)( bui|\\)).+silk\\//i],[c,[m,T],[p,k]],[/((?:sd|kf)[0349hijorstuw]+)( bui|\\)).+silk\\//i],[[c,/(.+)/g,\"Fire Phone $1\"],[m,T],[p,g]],[/(playbook);[-\\w\\),; ]+(rim)/i],[c,m,[p,k]],[/\\b((?:bb[a-f]|st[hv])100-\\d)/i,/\\(bb10; (\\w+)/i],[c,[m,N],[p,g]],[/(?:\\b|asus_)(transfo[prime ]{4,10} \\w+|eeepc|slider \\w+|nexus 7|padfone|p00[cj])/i],[c,[m,z],[p,k]],[/ (z[bes]6[027][012][km][ls]|zenfone \\d\\w?)\\b/i],[c,[m,z],[p,g]],[/(nexus 9)/i],[c,[m,\"HTC\"],[p,k]],[/(htc)[-;_ ]{1,2}([\\w ]+(?=\\)| bui)|\\w+)/i,/(zte)[- ]([\\w ]+?)(?: bui|\\/|\\))/i,/(alcatel|geeksphone|nexian|panasonic(?!(?:;|\\.))|sony(?!-bra))[-_ ]?([-\\w]*)/i],[m,[c,/_/g,\" \"],[p,g]],[/droid.+; ([ab][1-7]-?[0178a]\\d\\d?)/i],[c,[m,\"Acer\"],[p,k]],[/droid.+; (m[1-5] note) bui/i,/\\bmz-([-\\w]{2,})/i],[c,[m,\"Meizu\"],[p,g]],[/(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],[m,c,[p,g]],[/(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],[m,c,[p,k]],[/(surface duo)/i],[c,[m,R],[p,k]],[/droid [\\d\\.]+; (fp\\du?)(?: b|\\))/i],[c,[m,\"Fairphone\"],[p,g]],[/(u304aa)/i],[c,[m,\"AT&T\"],[p,g]],[/\\bsie-(\\w*)/i],[c,[m,\"Siemens\"],[p,g]],[/\\b(rct\\w+) b/i],[c,[m,\"RCA\"],[p,k]],[/\\b(venue[\\d ]{2,7}) b/i],[c,[m,\"Dell\"],[p,k]],[/\\b(q(?:mv|ta)\\w+) b/i],[c,[m,\"Verizon\"],[p,k]],[/\\b(?:barnes[& ]+noble |bn[rt])([\\w\\+ ]*) b/i],[c,[m,\"Barnes & Noble\"],[p,k]],[/\\b(tm\\d{3}\\w+) b/i],[c,[m,\"NuVision\"],[p,k]],[/\\b(k88) b/i],[c,[m,\"ZTE\"],[p,k]],[/\\b(nx\\d{3}j) b/i],[c,[m,\"ZTE\"],[p,g]],[/\\b(gen\\d{3}) b.+49h/i],[c,[m,\"Swiss\"],[p,g]],[/\\b(zur\\d{3}) b/i],[c,[m,\"Swiss\"],[p,k]],[/\\b((zeki)?tb.*\\b) b/i],[c,[m,\"Zeki\"],[p,k]],[/\\b([yr]\\d{2}) b/i,/\\b(dragon[- ]+touch |dt)(\\w{5}) b/i],[[m,\"Dragon Touch\"],c,[p,k]],[/\\b(ns-?\\w{0,9}) b/i],[c,[m,\"Insignia\"],[p,k]],[/\\b((nxa|next)-?\\w{0,9}) b/i],[c,[m,\"NextBook\"],[p,k]],[/\\b(xtreme\\_)?(v(1[045]|2[015]|[3469]0|7[05])) b/i],[[m,\"Voice\"],c,[p,g]],[/\\b(lvtel\\-)?(v1[12]) b/i],[[m,\"LvTel\"],c,[p,g]],[/\\b(ph-1) /i],[c,[m,\"Essential\"],[p,g]],[/\\b(v(100md|700na|7011|917g).*\\b) b/i],[c,[m,\"Envizen\"],[p,k]],[/\\b(trio[-\\w\\. ]+) b/i],[c,[m,\"MachSpeed\"],[p,k]],[/\\btu_(1491) b/i],[c,[m,\"Rotor\"],[p,k]],[/(shield[\\w ]+) b/i],[c,[m,\"Nvidia\"],[p,k]],[/(sprint) (\\w+)/i],[m,c,[p,g]],[/(kin\\.[onetw]{3})/i],[[c,/\\./g,\" \"],[m,R],[p,g]],[/droid.+; (cc6666?|et5[16]|mc[239][23]x?|vc8[03]x?)\\)/i],[c,[m,G],[p,k]],[/droid.+; (ec30|ps20|tc[2-8]\\d[kx])\\)/i],[c,[m,G],[p,g]],[/smart-tv.+(samsung)/i],[m,[p,x]],[/hbbtv.+maple;(\\d+)/i],[[c,/^/,\"SmartTV\"],[m,V],[p,x]],[/(nux; netcast.+smarttv|lg (netcast\\.tv-201\\d|android tv))/i],[[m,P],[p,x]],[/(apple) ?tv/i],[m,[c,S+\" TV\"],[p,x]],[/crkey/i],[[c,C+\"cast\"],[m,U],[p,x]],[/droid.+aft(\\w)( bui|\\))/i],[c,[m,T],[p,x]],[/\\(dtv[\\);].+(aquos)/i,/(aquos-tv[\\w ]+)\\)/i],[c,[m,D],[p,x]],[/(bravia[\\w ]+)( bui|\\))/i],[c,[m,I],[p,x]],[/(mitv-\\w{5}) bui/i],[c,[m,F],[p,x]],[/Hbbtv.*(technisat) (.*);/i],[m,c,[p,x]],[/\\b(roku)[\\dx]*[\\)\\/]((?:dvp-)?[\\d\\.]*)/i,/hbbtv\\/\\d+\\.\\d+\\.\\d+ +\\([\\w\\+ ]*; *([\\w\\d][^;]*);([^;]*)/i],[[m,trim],[c,trim],[p,x]],[/\\b(android tv|smart[- ]?tv|opera tv|tv; rv:)\\b/i],[[p,x]],[/(ouya)/i,/(nintendo) ([wids3utch]+)/i],[m,c,[p,v]],[/droid.+; (shield) bui/i],[c,[m,\"Nvidia\"],[p,v]],[/(playstation [345portablevi]+)/i],[c,[m,I],[p,v]],[/\\b(xbox(?: one)?(?!; xbox))[\\); ]/i],[c,[m,R],[p,v]],[/((pebble))app/i],[m,c,[p,_]],[/(watch)(?: ?os[,\\/]|\\d,\\d\\/)[\\d\\.]+/i],[c,[m,S],[p,_]],[/droid.+; (glass) \\d/i],[c,[m,U],[p,_]],[/droid.+; (wt63?0{2,3})\\)/i],[c,[m,G],[p,_]],[/(quest( 2| pro)?)/i],[c,[m,H],[p,_]],[/(tesla)(?: qtcarbrowser|\\/[-\\w\\.]+)/i],[m,[p,y]],[/(aeobc)\\b/i],[c,[m,T],[p,y]],[/droid .+?; ([^;]+?)(?: bui|\\) applew).+? mobile safari/i],[c,[p,g]],[/droid .+?; ([^;]+?)(?: bui|\\) applew).+?(?! mobile) safari/i],[c,[p,k]],[/\\b((tablet|tab)[;\\/]|focus\\/\\d(?!.+mobile))/i],[[p,k]],[/(phone|mobile(?:[;\\/]| [ \\w\\/\\.]*safari)|pda(?=.+windows ce))/i],[[p,g]],[/(android[-\\w\\. ]{0,9});.+buil/i],[c,[m,\"Generic\"]]],engine:[[/windows.+ edge\\/([\\w\\.]+)/i],[f,[u,E+\"HTML\"]],[/webkit\\/537\\.36.+chrome\\/(?!27)([\\w\\.]+)/i],[f,[u,\"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],[u,f],[/rv\\:([\\w\\.]{1,9})\\b.+(gecko)/i],[f,u]],os:[[/microsoft (windows) (vista|xp)/i],[u,f],[/(windows) nt 6\\.2; (arm)/i,/(windows (?:phone(?: os)?|mobile))[\\/ ]?([\\d\\.\\w ]*)/i,/(windows)[\\/ ]?([ntce\\d\\. ]+\\w)(?!.+xbox)/i],[u,[f,strMapper,X]],[/(win(?=3|9|n)|win 9x )([nt\\d\\.]+)/i],[[u,\"Windows\"],[f,strMapper,X]],[/ip[honead]{2,4}\\b(?:.*os ([\\w]+) like mac|; opera)/i,/ios;fbsv\\/([\\d\\.]+)/i,/cfnetwork\\/.+darwin/i],[[f,/_/g,\".\"],[u,\"iOS\"]],[/(mac os x) ?([\\w\\. ]*)/i,/(macintosh|mac_powerpc\\b)(?!.+haiku)/i],[[u,Z],[f,/_/g,\".\"]],[/droid ([\\w\\.]+)\\b.+(android[- ]x86|harmonyos)/i],[f,u],[/(android|webos|qnx|bada|rim tablet os|maemo|meego|sailfish)[-\\/ ]?([\\w\\.]*)/i,/(blackberry)\\w*\\/([\\w\\.]*)/i,/(tizen|kaios)[\\/ ]([\\w\\.]+)/i,/\\((series40);/i],[u,f],[/\\(bb(10);/i],[f,[u,N]],[/(?:symbian ?os|symbos|s60(?=;)|series60)[-\\/ ]?([\\w\\.]*)/i],[f,[u,\"Symbian\"]],[/mozilla\\/[\\d\\.]+ \\((?:mobile|tablet|tv|mobile; [\\w ]+); rv:.+ gecko\\/([\\w\\.]+)/i],[f,[u,O+\" OS\"]],[/web0s;.+rt(tv)/i,/\\b(?:hp)?wos(?:browser)?\\/([\\w\\.]+)/i],[f,[u,\"webOS\"]],[/watch(?: ?os[,\\/]|\\d,\\d\\/)([\\d\\.]+)/i],[f,[u,\"watchOS\"]],[/crkey\\/([\\d\\.]+)/i],[f,[u,C+\"cast\"]],[/(cros) [\\w]+(?:\\)| ([\\w\\.]+)\\b)/i],[[u,L],f],[/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],[u,f],[/(sunos) ?([\\w\\.\\d]*)/i],[[u,\"Solaris\"],f],[/((?:open)?solaris)[-\\/ ]?([\\w\\.]*)/i,/(aix) ((\\d)(?=\\.|\\)| )[\\w\\.])*/i,/\\b(beos|os\\/2|amigaos|morphos|openvms|fuchsia|hp-ux|serenityos)/i,/(unix) ?([\\w\\.]*)/i],[u,f]]};var UAParser=function(i,e){if(typeof i===w){e=i;i=a}if(!(this instanceof UAParser)){return new UAParser(i,e).getResult()}var r=typeof o!==b&&o.navigator?o.navigator:a;var n=i||(r&&r.userAgent?r.userAgent:t);var v=r&&r.userAgentData?r.userAgentData:a;var x=e?extend(K,e):K;var _=r&&r.userAgent==n;this.getBrowser=function(){var i={};i[u]=a;i[f]=a;rgxMapper.call(i,n,x.browser);i[d]=majorize(i[f]);if(_&&r&&r.brave&&typeof r.brave.isBrave==s){i[u]=\"Brave\"}return i};this.getCPU=function(){var i={};i[h]=a;rgxMapper.call(i,n,x.cpu);return i};this.getDevice=function(){var i={};i[m]=a;i[c]=a;i[p]=a;rgxMapper.call(i,n,x.device);if(_&&!i[p]&&v&&v.mobile){i[p]=g}if(_&&i[c]==\"Macintosh\"&&r&&typeof r.standalone!==b&&r.maxTouchPoints&&r.maxTouchPoints>2){i[c]=\"iPad\";i[p]=k}return i};this.getEngine=function(){var i={};i[u]=a;i[f]=a;rgxMapper.call(i,n,x.engine);return i};this.getOS=function(){var i={};i[u]=a;i[f]=a;rgxMapper.call(i,n,x.os);if(_&&!i[u]&&v&&v.platform!=\"Unknown\"){i[u]=v.platform.replace(/chrome os/i,L).replace(/macos/i,Z)}return i};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 n};this.setUA=function(i){n=typeof i===l&&i.length>q?trim(i,q):i;return this};this.setUA(n);return this};UAParser.VERSION=r;UAParser.BROWSER=enumerize([u,f,d]);UAParser.CPU=enumerize([h]);UAParser.DEVICE=enumerize([c,m,p,v,g,x,k,_,y]);UAParser.ENGINE=UAParser.OS=enumerize([u,f]);if(typeof e!==b){if(\"object\"!==b&&i.exports){e=i.exports=UAParser}e.UAParser=UAParser}else{if(typeof define===s&&define.amd){define((function(){return UAParser}))}else if(typeof o!==b){o.UAParser=UAParser}}var Q=typeof o!==b&&(o.jQuery||o.Zepto);if(Q&&!Q.ua){var Y=new UAParser;Q.ua=Y.getResult();Q.ua.get=function(){return Y.getUA()};Q.ua.set=function(i){Y.setUA(i);var e=Y.getResult();for(var o in e){Q.ua[o]=e[o]}}}})(typeof window===\"object\"?window:this)}};var e={};function __nccwpck_require__(o){var a=e[o];if(a!==undefined){return a.exports}var r=e[o]={exports:{}};var t=true;try{i[o].call(r.exports,r,r.exports,__nccwpck_require__);t=false}finally{if(t)delete e[o]}return r.exports}if(typeof __nccwpck_require__!==\"undefined\")__nccwpck_require__.ab=__dirname+\"/\";var o=__nccwpck_require__(226);module.exports=o})();","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n0 && (module.exports = {\n isBot: null,\n userAgent: null,\n userAgentFromString: null\n});\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n isBot: function() {\n return isBot;\n },\n userAgent: function() {\n return userAgent;\n },\n userAgentFromString: function() {\n return userAgentFromString;\n }\n});\nconst _uaparserjs = /*#__PURE__*/ _interop_require_default(require(\"next/dist/compiled/ua-parser-js\"));\nfunction _interop_require_default(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nfunction isBot(input) {\n return /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(input);\n}\nfunction userAgentFromString(input) {\n return {\n ...(0, _uaparserjs.default)(input),\n isBot: input === undefined ? false : isBot(input)\n };\n}\nfunction userAgent({ headers }) {\n return userAgentFromString(headers.get(\"user-agent\") || undefined);\n}\n\n//# sourceMappingURL=user-agent.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"URLPattern\", {\n enumerable: true,\n get: function() {\n return GlobalURLPattern;\n }\n});\nconst GlobalURLPattern = // @ts-expect-error: URLPattern is not available in Node.js\ntypeof URLPattern === \"undefined\" ? undefined : URLPattern;\n\n//# sourceMappingURL=url-pattern.js.map","const serverExports = {\n NextRequest: require('next/dist/server/web/spec-extension/request')\n .NextRequest,\n NextResponse: require('next/dist/server/web/spec-extension/response')\n .NextResponse,\n ImageResponse: require('next/dist/server/web/spec-extension/image-response')\n .ImageResponse,\n userAgentFromString: require('next/dist/server/web/spec-extension/user-agent')\n .userAgentFromString,\n userAgent: require('next/dist/server/web/spec-extension/user-agent')\n .userAgent,\n URLPattern: require('next/dist/server/web/spec-extension/url-pattern')\n .URLPattern,\n}\n\n// https://nodejs.org/api/esm.html#commonjs-namespaces\n// When importing CommonJS modules, the module.exports object is provided as the default export\nmodule.exports = serverExports\n\n// make import { xxx } from 'next/server' work\nexports.NextRequest = serverExports.NextRequest\nexports.NextResponse = serverExports.NextResponse\nexports.ImageResponse = serverExports.ImageResponse\nexports.userAgentFromString = serverExports.userAgentFromString\nexports.userAgent = serverExports.userAgent\nexports.URLPattern = serverExports.URLPattern\n","//NextJs路由处理 适配器\r\nimport { NextRequest, NextResponse } from 'next/server';\r\nimport { FrameworkAdapter, RequestContext, ResponseContext } from '../types/router';\r\nimport { logger } from '../logger';\r\nimport { CONTENT_TYPE_KEY, CONTENT_TYPE_MAP } from '../router';\r\nimport { urlParamToJson } from '../utils';\r\nimport { ICookies } from '../types/http';\r\n\r\nexport class NextJsAdapter implements FrameworkAdapter {\r\n async parseRequest(request: NextRequest): Promise<RequestContext> {\r\n const url = new URL(request.url);\r\n let body: Record<string, any> | undefined;\r\n let formData: FormData | undefined;\r\n if (request.method !== 'GET') {\r\n const contentType = request.headers.get(CONTENT_TYPE_KEY) || '';\r\n logger.info({ \"content-type\": contentType }, 'Content-Type')\r\n if (contentType.includes(CONTENT_TYPE_MAP.applicationJson)) {\r\n try {\r\n body = await request.json();\r\n } catch {\r\n logger.warn(\"request body is null!\")\r\n }\r\n } else if (contentType.includes(CONTENT_TYPE_MAP.multipartFormData)) {\r\n formData = await request.formData();\r\n } else if (contentType.includes(CONTENT_TYPE_MAP.applicationXwwwFormUrlencoded)) {\r\n const params = await request.text();\r\n body = urlParamToJson(params, ['m']);\r\n }\r\n }\r\n\r\n const headers: Headers = request.headers;\r\n const cookies: Record<string, string> = {};\r\n request.cookies.getAll().forEach(cookie => {\r\n cookies[cookie.name] = cookie.value;\r\n });\r\n logger.debug(\"NextJsAdapter parseRequest ...\")\r\n return {\r\n url,\r\n headers,\r\n body,\r\n formData,\r\n cookies,\r\n raw: request,\r\n clone() {\r\n return request.clone()\r\n },\r\n };\r\n }\r\n\r\n createResponse(context: ResponseContext): NextResponse {\r\n const response = NextResponse.json(context.body);\r\n Object.entries(context.cookies).forEach(([name, cookie]) => {\r\n if (typeof cookie === 'object' && cookie.value) {\r\n response.cookies.set(name, cookie.value, cookie.options);\r\n } else if (typeof cookie === 'string') {\r\n response.cookies.set(name, cookie);\r\n }\r\n });\r\n if (context.cleanCookies) {\r\n const cookies: ICookies = {\r\n set(key, value, opts) {\r\n response.cookies.set(key, value, opts);\r\n },\r\n delete(key, opts) {\r\n response.cookies.delete({ ...opts, name: key })\r\n },\r\n }\r\n context.cleanCookies(cookies)\r\n }\r\n return response;\r\n }\r\n\r\n setCookie(response: ResponseContext, name: string, value: string, options?: any): void {\r\n response.cookies[name] = { value, options };\r\n }\r\n\r\n}","import { cleanToken, getServerHttpOpts, getToken, HttpClient, setToken } from \"./http-client\";\r\nimport { logger } from \"./logger\";\r\nimport { HttpToken, IStorage, ResultModel } from \"./types/http\";\r\nimport { FrameworkAdapter, RequestContext, ResponseContext, RouteConfig } from \"./types/router\";\r\nimport { USER_TYPE_MAP } from \"./types/user\";\r\nimport { urlParamToJson } from \"./utils\";\r\nenum API {\r\n login,\r\n logout\r\n}\r\nconst APIMAP: Record<string, string> = {\r\n \"login\": \"login\",\r\n \"logout\": \"logout\",\r\n \"unknown\": \"\"\r\n}\r\nexport const CONTENT_TYPE_KEY = 'Content-Type';\r\nexport const CONTENT_TYPE_MAP = {\r\n \"applicationJson\": \"application/json\",\r\n \"multipartFormData\": \"multipart/form-data\",\r\n \"applicationXwwwFormUrlencoded\": \"application/x-www-form-urlencoded\"\r\n}\r\nexport class HTTPRouter {\r\n private config: RouteConfig;\r\n private http: HttpClient;\r\n private adapter: FrameworkAdapter\r\n constructor({\r\n config,\r\n adapter,\r\n headerStorage\r\n }: Readonly<{\r\n config: RouteConfig,\r\n /**\r\n * 框架适配路由处理器\r\n */\r\n adapter: FrameworkAdapter,\r\n /**\r\n * 这里的存取器应该使用Request.headers.get\r\n */\r\n headerStorage: IStorage,\r\n }>) {\r\n this.config = config;\r\n const httpOpts = getServerHttpOpts(headerStorage);\r\n this.http = new HttpClient({ ...httpOpts, userType: USER_TYPE_MAP.TYPE_C, helloURL: config.helloURL })\r\n this.adapter = adapter;\r\n }\r\n\r\n async handleRequest(rawRequest: any): Promise<any> {\r\n try {\r\n // 解析请求\r\n const request = await this.adapter.parseRequest(rawRequest);\r\n // 处理请求\r\n const responseContext = await this.processRequest(request);\r\n // 框架响应\r\n return this.adapter.createResponse(responseContext);\r\n } catch (error) {\r\n logger.error({ \"error\": error }, \"router error\");\r\n const h: Record<string, string> = {};\r\n h[CONTENT_TYPE_KEY] = CONTENT_TYPE_MAP.applicationJson\r\n const errorResponse: ResponseContext = {\r\n status: 500,\r\n headers: h,\r\n cookies: {},\r\n body: {\r\n code: 500,\r\n success: false,\r\n msg: 'Internal server error'\r\n }\r\n };\r\n return this.adapter.createResponse(errorResponse);\r\n }\r\n }\r\n private async processRequest(request: RequestContext): Promise<ResponseContext> {\r\n const searchParams = request.url.searchParams\r\n const m = searchParams.get('m') ?? 'unknown';\r\n const apiMap: Record<string, string> = { ...APIMAP, ...this.config.APIMAP }\r\n const url = apiMap[m];\r\n if (!url || url.length === 0) {\r\n return this.createErrorResponse(404, 'API not found');\r\n }\r\n let token: HttpToken | undefined;\r\n logger.debug(\"server uri\")\r\n // 检查权限\r\n if (url.startsWith(\"admin/\") || url.startsWith(\"api/\")) {\r\n token = getToken(request.cookies)\r\n logger.debug(token, \"token\")\r\n if (!token || token.username.length === 0 || token.token.length === 0) {\r\n return this.createErrorResponse(409, 'Authentication required');\r\n }\r\n }\r\n\r\n let result: ResultModel<any>;\r\n const copyRequest = request.clone();\r\n const method = copyRequest.method;\r\n const contentType = request.headers.get(CONTENT_TYPE_KEY) || '';\r\n try {\r\n if (method === 'GET') {\r\n const params = urlParamToJson(searchParams.toString(), ['m']);\r\n result = await this.http.get({\r\n url,\r\n data: params,\r\n token\r\n });\r\n } else if (method === 'POST') {\r\n let data: Record<string, any> | undefined;\r\n if (contentType.includes(CONTENT_TYPE_MAP.applicationJson) || contentType.includes(CONTENT_TYPE_MAP.applicationXwwwFormUrlencoded)) {\r\n data = request.body;\r\n } else if (contentType.includes(CONTENT_TYPE_MAP.multipartFormData)) {\r\n //处理文件上传表单\r\n const boundaryMatch = contentType.match(/boundary=([^\\s;]+)/);\r\n if (!boundaryMatch) {\r\n return this.createErrorResponse(411, 'Missing boundary in form data');\r\n }\r\n\r\n const buffer = await copyRequest.arrayBuffer();\r\n const boundary = boundaryMatch[1];\r\n data = {\r\n \"boundary\": boundary,\r\n \"buffer\": Buffer.from(buffer)\r\n }\r\n //文件上传柔合表单字段\r\n const formData = request.formData;\r\n if (formData) {\r\n for (const [key, value] of Object.entries(formData)) {\r\n if (key !== 'file') {\r\n data[key] = value;\r\n }\r\n }\r\n }\r\n\r\n } else {\r\n return this.createErrorResponse(410, 'Unsupported content type');\r\n }\r\n\r\n result = await this.http.post({\r\n url,\r\n data,\r\n token\r\n });\r\n\r\n } else {\r\n return this.createErrorResponse(405, 'Method not allowed, only supported GET or POST');\r\n }\r\n } catch (error) {\r\n logger.error({ \"error:\": error }, \"API request error\");\r\n return this.createErrorResponse(500, 'API request failed');\r\n }\r\n\r\n // 创建响应\r\n const h: Record<string, string> = {};\r\n h[CONTENT_TYPE_KEY] = CONTENT_TYPE_MAP.applicationJson\r\n const response: ResponseContext = {\r\n status: result.success ? 200 : result.code,\r\n headers: h,\r\n cookies: {},\r\n body: result\r\n };\r\n\r\n if (result.success) {\r\n switch (url) {\r\n case APIMAP[API[API.login]]:\r\n const data = result.data;\r\n setToken(data, response);\r\n break;\r\n case APIMAP[API[API.logout]]:\r\n response.cleanCookies = (cookies) => cleanToken(cookies)\r\n break;\r\n }\r\n }\r\n return response;\r\n }\r\n\r\n private createErrorResponse(code: number, message: string): ResponseContext {\r\n const h: Record<string, string> = {};\r\n h[CONTENT_TYPE_KEY] = CONTENT_TYPE_MAP.applicationJson\r\n return {\r\n status: code,\r\n headers: h,\r\n cookies: {},\r\n body: {\r\n code: code,\r\n success: false,\r\n msg: message\r\n }\r\n };\r\n }\r\n}\r\nexport { NextJsAdapter } from './router-dapter/nextjs'\r\nexport type { RequestContext, ResponseContext, RouteConfig }\r\n","import md5 from \"js-md5\";\r\nimport CryptoJS from 'crypto-js';\r\nimport { isArray, randomString, urlEncode, urlParamToJson } from \"./utils\";\r\nimport {\r\n ClientGetParams,\r\n ClientPostParams,\r\n CSRFToken,\r\n CurWebsite,\r\n ServerHttpOpts,\r\n ClientHttpHeaders,\r\n HttpToken,\r\n ResultModel,\r\n ServerRequestOptions,\r\n ICookies,\r\n IStorage,\r\n ServerHttpOptsMin\r\n} from \"./types/http\";\r\nimport { User, USER_TYPE, USER_TYPE_MAP } from \"./types/user\";\r\nimport { logger } from \"./logger\";\r\nimport { CONTENT_TYPE_KEY, CONTENT_TYPE_MAP, ResponseContext } from \"./router\";\r\n\r\n\r\nconst DEFAULT_LOCALE = 'zh-CN';\r\nconst DEVICE_ID_KEY = \"_device_id_key\";\r\nconst CURRENT_WEBSITE_KEY = \"_current_website_key\"\r\n\r\nconst _GET_ERROR = \"Get request error!\"\r\nconst _POST_ERROR = \"Post request error!\";\r\n\r\nconst COOKIE_NAMES = {\r\n \"IBOOT_DEVICE_ID\": \"dvid\",\r\n \"IBOOT_LANG\": \"lang\",\r\n \"IBOOT_WEBSITE_ID\": \"wid\",\r\n \"IBOOT_WEBSITE_NO\": \"wno\",\r\n \"IBOOT_TOKEN\": \"token\",\r\n \"IBOOT_USER\": \"user\"\r\n}\r\n\r\nconst HEADER_NAMES = {\r\n \"DEVICE_ID\": \"Device-Id\",\r\n \"LANG\": \"Lang\",\r\n \"WEBSITE_ID\": \"Website-Id\",\r\n \"WEBSITE_NO\": \"Website-No\",\r\n}\r\n\r\nconst getClientRequestHeader = (storage: Readonly<IStorage>): ClientHttpHeaders => {\r\n if (!storage.get) {\r\n throw new Error(\"The get method of IStorage has not been implemented.\")\r\n }\r\n const devideId = storage.get(DEVICE_ID_KEY) ?? ''\r\n const json = storage.get(CURRENT_WEBSITE_KEY);\r\n const curWebsite: CurWebsite | null = json != null ? JSON.parse(json) : null;\r\n const header: ClientHttpHeaders = {}\r\n if (devideId.length > 0) {\r\n header['Device-Id'] = devideId\r\n }\r\n if (curWebsite) {\r\n header['Lang'] = curWebsite.language;\r\n if (curWebsite.websiteId) {\r\n header['Website-Id'] = curWebsite.websiteId;\r\n }\r\n if (curWebsite.websiteNo) {\r\n header['Website-No'] = curWebsite.websiteNo\r\n }\r\n }\r\n return header;\r\n};\r\n\r\nexport const setClientRequestHeader = ({ deviceId, website }: Readonly<{ deviceId: string, website?: CurWebsite }>, storage: IStorage): void => {\r\n if (!storage.set) {\r\n throw new Error(\"The set method of IStorage has not been implemented.\")\r\n }\r\n storage.set(DEVICE_ID_KEY, deviceId);\r\n if (website) {\r\n storage.set(CURRENT_WEBSITE_KEY, JSON.stringify(website));\r\n }\r\n}\r\n\r\nconst getBaseUrl = (urlName: string) => {\r\n const baseUrl = process.env.BASE_URL || '/api/services';\r\n return `${baseUrl}?m=${urlName}`\r\n}\r\n\r\nexport const get = async <T>(urlName: string, opts?: ClientGetParams): Promise<ResultModel<T>> => {\r\n let url = getBaseUrl(urlName);\r\n if (opts?.data) {\r\n const params = new URLSearchParams(opts.data);\r\n url += `&${params}`\r\n }\r\n const headers: Record<string, string> = (opts && opts.storage && opts.storage.get) ? getClientRequestHeader(opts.storage) : {}\r\n const heads = opts?.headers;\r\n if (heads) {\r\n for (const field in heads) {\r\n const value = heads[field];\r\n if (value) {\r\n headers[field] = value;\r\n }\r\n }\r\n }\r\n logger.info({\r\n \"url\": url,\r\n \"headers\": headers,\r\n }, \"GET\")\r\n const res = await fetch(url, {\r\n method: 'GET',\r\n headers: headers,\r\n cache: opts?.useCache ? 'force-cache' : 'default'\r\n });\r\n\r\n if (res.ok) {\r\n const headersMap = Object.fromEntries(res.headers.entries());\r\n const result = { ...await res.json(), headers: headersMap };\r\n logger.debug(result, \"GET_RESULT\")\r\n return result\r\n }\r\n const msg = {\r\n code: res.status,\r\n success: false,\r\n msg: res.statusText\r\n }\r\n logger.error(msg);\r\n return msg;\r\n}\r\n\r\nexport const post = async <T>(url: string, opts?: ClientPostParams): Promise<ResultModel<T>> => {\r\n const data = opts?.data ?? {};\r\n const heads = opts?.headers;\r\n let body: string | FormData;\r\n const defaultHeads = (opts && opts.storage && opts.storage.get) ? getClientRequestHeader(opts.storage) : {}\r\n const proxyHeaders = new Headers(defaultHeads);\r\n if (!(data instanceof FormData)) {\r\n body = JSON.stringify(data);\r\n proxyHeaders.set(CONTENT_TYPE_KEY, CONTENT_TYPE_MAP.applicationJson);\r\n } else {\r\n body = data;\r\n }\r\n if (heads) {\r\n for (let field in heads) {\r\n const value = heads[field];\r\n if (value) {\r\n proxyHeaders.set(field, value);\r\n }\r\n }\r\n }\r\n logger.info({\r\n \"url\": url,\r\n \"headers\": proxyHeaders,\r\n }, \"POST\")\r\n const res = await fetch(url, {\r\n method: 'POST',\r\n headers: proxyHeaders,\r\n body: body,\r\n });\r\n if (res.ok) {\r\n const headersMap = Object.fromEntries(res.headers.entries());\r\n const result = { ...await res.json(), headers: headersMap };\r\n logger.debug(result, \"POST_RESULT\")\r\n return result\r\n }\r\n const msg = {\r\n code: res.status,\r\n success: false,\r\n msg: res.statusText,\r\n }\r\n logger.error(msg);\r\n return msg;\r\n}\r\n\r\nexport const iGet = async <T>(url: string, opts?: ClientGetParams): Promise<T | undefined> => {\r\n const res = await get<T>(url, opts);\r\n if (res.success) {\r\n return res.data as T;\r\n }\r\n if (opts?.showError) {\r\n opts.showError(res.msg ?? _GET_ERROR);\r\n return;\r\n }\r\n throw Error(res.msg ?? _GET_ERROR)\r\n}\r\n\r\nexport const iPost = async <T>(url: string, opts?: ClientPostParams): Promise<T | undefined> => {\r\n const res = await post<T>(url, opts);\r\n if (res.success) {\r\n return res.data;\r\n }\r\n if (opts?.showError) {\r\n opts.showError(res.msg ?? _POST_ERROR);\r\n return;\r\n }\r\n throw Error(res.msg ?? _POST_ERROR)\r\n}\r\n\r\nexport const iPostSuccess = async (url: string, opts?: ClientPostParams): Promise<boolean> => {\r\n const res = await post(url, opts);\r\n if (res.success) {\r\n if (opts?.showSuccess) {\r\n opts.showSuccess(res.msg ?? 'SUCCESS')\r\n }\r\n return true;\r\n }\r\n if (opts?.showError) {\r\n opts.showError(res.msg ?? _POST_ERROR);\r\n }\r\n return false;\r\n}\r\n\r\nexport const getServerHttpOpts = (storage: IStorage): ServerHttpOptsMin => {\r\n if (storage.get) {\r\n const deviceId = storage.get(HEADER_NAMES.DEVICE_ID);\r\n const lang = storage.get(HEADER_NAMES.LANG);\r\n const websiteId = storage.get(HEADER_NAMES.WEBSITE_ID);\r\n const websiteNo = storage.get(HEADER_NAMES.WEBSITE_NO);\r\n const result: ServerHttpOpts = {}\r\n if (deviceId && deviceId.length > 0) {\r\n result.deviceId = deviceId;\r\n }\r\n if (lang && lang.length > 0) {\r\n result.lang = lang\r\n }\r\n if (websiteId && websiteId.length > 0) {\r\n result.websiteId = websiteId\r\n }\r\n if (websiteNo && websiteNo.length > 0) {\r\n result.websiteNo = websiteNo\r\n }\r\n return result;\r\n }\r\n throw new Error(\"The get method of IStorage has not been implemented.\")\r\n}\r\n\r\nexport const setServerHttpHeaders = (storage: IStorage, opts: ServerHttpOptsMin): void => {\r\n if (storage.set) {\r\n if (opts.deviceId) {\r\n storage.set(HEADER_NAMES.DEVICE_ID, opts.deviceId)\r\n }\r\n if (opts.lang) {\r\n storage.set(HEADER_NAMES.LANG, opts.lang);\r\n }\r\n if (opts.websiteId) {\r\n storage.set(HEADER_NAMES.WEBSITE_ID, opts.websiteId);\r\n }\r\n if (opts.websiteNo) {\r\n storage.set(HEADER_NAMES.WEBSITE_NO, opts.websiteNo)\r\n }\r\n } else {\r\n throw new Error(\"The set method of IStorage has not been implemented.\")\r\n }\r\n}\r\n\r\nexport const getServerHttpCookies = (cookies: ICookies): ServerHttpOptsMin => {\r\n if (cookies.get) {\r\n const deviceId = cookies.get(COOKIE_NAMES.IBOOT_DEVICE_ID);\r\n const lang = cookies.get(COOKIE_NAMES.IBOOT_LANG);\r\n const websiteId = cookies.get(COOKIE_NAMES.IBOOT_WEBSITE_ID);\r\n const websiteNo = cookies.get(COOKIE_NAMES.IBOOT_WEBSITE_NO);\r\n const result: ServerHttpOpts = {}\r\n if (deviceId && deviceId.length > 0) {\r\n result.deviceId = deviceId;\r\n }\r\n if (lang && lang.length > 0) {\r\n result.lang = lang\r\n }\r\n if (websiteId && websiteId.length > 0) {\r\n result.websiteId = websiteId\r\n }\r\n if (websiteNo && websiteNo.length > 0) {\r\n result.websiteNo = websiteNo\r\n }\r\n return result;\r\n }\r\n throw new Error(\"The get method of ICookies has not been implemented.\")\r\n}\r\n\r\nexport const setServerHttpCookies = (cookies: ICookies, opts: ServerHttpOptsMin): void => {\r\n if (cookies.set) {\r\n if (opts.deviceId) {\r\n cookies.set(COOKIE_NAMES.IBOOT_DEVICE_ID, opts.deviceId)\r\n }\r\n if (opts.lang) {\r\n cookies.set(COOKIE_NAMES.IBOOT_LANG, opts.lang);\r\n }\r\n if (opts.websiteId) {\r\n cookies.set(COOKIE_NAMES.IBOOT_WEBSITE_ID, opts.websiteId);\r\n }\r\n if (opts.websiteNo) {\r\n cookies.set(COOKIE_NAMES.IBOOT_WEBSITE_NO, opts.websiteNo)\r\n }\r\n } else {\r\n throw new Error(\"The set method of ICookies has not been implemented.\")\r\n }\r\n}\r\n\r\nexport const getLoginUser = (cookies: ICookies): User | undefined => {\r\n if (cookies.get) {\r\n const userjson = cookies.get(COOKIE_NAMES.IBOOT_USER)\r\n if (userjson && userjson.length > 0) {\r\n return JSON.parse(userjson);\r\n }\r\n }\r\n return undefined\r\n}\r\n\r\nexport const getToken = (cookies: Record<string, string>): HttpToken | undefined => {\r\n if (cookies.get) {\r\n const userjson = cookies[COOKIE_NAMES.IBOOT_USER];\r\n if (userjson && userjson.length > 0) {\r\n const user = JSON.parse(userjson);\r\n const username = user.username;\r\n const utype = user.userType.toString();\r\n const token = cookies[COOKIE_NAMES.IBOOT_TOKEN];\r\n if (token) {\r\n return {\r\n \"username\": username,\r\n \"utype\": utype,\r\n \"token\": token\r\n }\r\n }\r\n }\r\n }\r\n}\r\n\r\nconst getCookieOpts = () => {\r\n return {\r\n path: '/',\r\n secure: process.env.APP_ENV === 'production',\r\n httpOnly: true,\r\n sameSite: 'strict'\r\n }\r\n}\r\n\r\nconst cleanCookieOpts = {\r\n maxAge: -1, //设置为 -1表示立即过期\r\n httpOnly: true,\r\n path: '/',\r\n}\r\n\r\nexport const setToken = (data: User & { token: string }, res: ResponseContext): void => {\r\n const { id, name, username, nickname, headImg, token, lastLoginTime, deviceId, userType, mustChangePwd } = data;\r\n const loginUser: User = {\r\n id: id,\r\n name: name,\r\n username: username,\r\n nickname: nickname || name,\r\n headImg: headImg,\r\n lastLoginTime: lastLoginTime,\r\n deviceId: deviceId,\r\n userType: userType,\r\n accountType: 0,\r\n needToReview: false,\r\n socketOnline: false,\r\n mustChangePwd: mustChangePwd\r\n };\r\n res.cookies[COOKIE_NAMES.IBOOT_TOKEN] = {\r\n value: token,\r\n options: getCookieOpts()\r\n }\r\n res.cookies[COOKIE_NAMES.IBOOT_USER] = {\r\n value: JSON.stringify(loginUser),\r\n options: getCookieOpts()\r\n }\r\n}\r\n\r\nexport const cleanToken = (cookies: ICookies): void => {\r\n if (!cookies.set) {\r\n throw new Error('cookies set function is undefined')\r\n }\r\n cookies.set(COOKIE_NAMES.IBOOT_TOKEN, '', cleanCookieOpts);\r\n cookies.set(COOKIE_NAMES.IBOOT_USER, '', cleanCookieOpts);\r\n if (!cookies.delete) {\r\n throw new Error('cookies delete function is undefined')\r\n }\r\n cookies.delete(COOKIE_NAMES.IBOOT_TOKEN, cleanCookieOpts);\r\n cookies.delete(COOKIE_NAMES.IBOOT_USER, cleanCookieOpts);\r\n}\r\n\r\nexport class HttpClient {\r\n private readonly baseUrl: string;\r\n private readonly helloMethod: string;\r\n private readonly apiKey: string;\r\n private readonly userType: USER_TYPE;\r\n private readonly userFrom: string;\r\n private readonly deviceId: string;\r\n private readonly version: string = '1';\r\n private readonly lang: string;\r\n private readonly websiteId?: string;\r\n private readonly websiteNo?: string;\r\n constructor(opts: Readonly<ServerHttpOpts>) {\r\n const isProduction = process.env.APP_ENV === 'production';\r\n if (!isProduction) {\r\n logger.warn(\"This is currently a development environment!\")\r\n }\r\n this.baseUrl = process.env.APP_BASEURL!;\r\n this.apiKey = process.env.APP_APIKEY!;\r\n this.userFrom = process.env.APP_USERFROM ?? '1';\r\n\r\n this.helloMethod = opts.helloURL ?? ''\r\n this.userType = opts.userType ?? USER_TYPE_MAP.TYPE_MGT;\r\n this.deviceId = opts.deviceId ?? randomString(10);\r\n this.lang = opts.lang ?? DEFAULT_LOCALE;\r\n this.websiteId = opts.websiteId\r\n this.websiteNo = opts.websiteNo\r\n }\r\n\r\n encrypt(data: string) {\r\n const key = CryptoJS.enc.Utf8.parse(this.apiKey);\r\n return CryptoJS.AES.encrypt(data, key).toString();\r\n }\r\n\r\n decrypt(data: string) {\r\n const key = CryptoJS.enc.Utf8.parse(this.apiKey);\r\n return CryptoJS.AES.decrypt(data, key, {\r\n mode: CryptoJS.mode.ECB,\r\n }).toString(CryptoJS.enc.Utf8);\r\n }\r\n\r\n //eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n private convertUrlParameter(data: Record<string, any>): string {\r\n const p: string[] = [];\r\n for (const o in data) {\r\n let v = data[o];\r\n if (v && typeof v === \"string\") {\r\n v = v.trim();\r\n } else if (v && typeof v === \"object\") {\r\n if (isArray(v)) {\r\n if (v.length === 0) {\r\n continue;\r\n }\r\n for (let i = 0; i < v.length; i++) {\r\n const arr_item = v[i];\r\n for (const item_field in arr_item) {\r\n const item_field_value = arr_item[item_field] ?? undefined;\r\n if (item_field_value) {\r\n if (typeof item_field_value === \"object\") {\r\n if (isArray(item_field_value)) {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n item_field_value.forEach((item1: any, index: number) => {\r\n if (item1) {\r\n for (const f in item1) {\r\n const v = item1[f];\r\n if (v && v.toString().length > 0) {\r\n const s = `[${i.toString()}].${item_field + `[${index.toString()}].${f}`}=${urlEncode(v)}`;\r\n p.push(o + s);\r\n }\r\n }\r\n }\r\n });\r\n }\r\n } else if (item_field_value.toString().length > 0) {\r\n const s = `[${i.toString()}].${item_field}=${urlEncode(item_field_value.toString())}`;\r\n p.push(o + s);\r\n }\r\n }\r\n }\r\n }\r\n } else {\r\n for (const obj in v) {\r\n const oValue = v[obj];\r\n if (oValue != null && oValue != \"\" && oValue.length != 0) {\r\n const s = `.${obj}=${urlEncode(oValue)}`;\r\n p.push(o + s);\r\n }\r\n }\r\n }\r\n continue;\r\n } else if (v && typeof v === \"function\") {\r\n v = null;\r\n }\r\n\r\n if (v != null && v != \"\" && v.length != 0) {\r\n p.push(o + \"=\" + urlEncode(v));\r\n }\r\n }\r\n return (p && p.join(\"&\"));\r\n }\r\n\r\n private async sign(data: Record<string, object | string>): Promise<string> {\r\n //由后台分配\r\n const _apiKey = \"&key=\" + (await this.helloIboot());\r\n const arr: string[] = [];\r\n for (const o in data) {\r\n arr.push(o);\r\n }\r\n arr.sort((a: string, b: string) => {\r\n return a.toLowerCase().localeCompare(b.toLowerCase());\r\n });\r\n const res: string[] = [];\r\n arr.forEach((v: string) => {\r\n let value: object | string = data[v];\r\n if (typeof value === \"object\") {\r\n value = JSON.stringify(value);\r\n }\r\n res.push(v + \"=\" + value);\r\n });\r\n const paramsStr: string = res.join(\"&\");\r\n const str = md5.md5((paramsStr + _apiKey).toLocaleUpperCase());\r\n const logInfo = {\r\n params: paramsStr,\r\n md5: str\r\n }\r\n logger.debug(logInfo, \"API_SIGN\")\r\n return str;\r\n }\r\n\r\n //eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n private assemblyParameter(data?: Record<string, any>, username?: string): Record<string, any> {\r\n const params = data ?? {};\r\n params['timestamp'] = Date.now() + '';\r\n params['echostr'] = randomString(10);\r\n params['version'] = this.version;\r\n params['deviceId'] = this.deviceId;\r\n params['webid'] = this.websiteId;\r\n params['apiKey'] = this.apiKey;\r\n if (username && username.length > 0) {\r\n params['username'] = username;\r\n }\r\n return params;\r\n }\r\n\r\n private async assemblyHeader({ urlParams, token }: Readonly<{ urlParams: string, token?: Readonly<HttpToken> }>) {\r\n const h: Record<string, string> = {\r\n 'Res-Type': 'json',\r\n 'Device-Id': this.deviceId,\r\n 'User-Type': token?.utype.toString() ?? this.userType.toString(),\r\n 'User-From': this.userFrom,\r\n 'Api-Key': this.apiKey\r\n }\r\n h[CONTENT_TYPE_KEY] = CONTENT_TYPE_MAP.applicationXwwwFormUrlencoded;\r\n if (this.lang && this.lang.length > 0) {\r\n h['Lang'] = this.lang\r\n }\r\n if (this.websiteId && this.websiteId.length > 0) {\r\n h['Web-Id'] = this.websiteId\r\n }\r\n if (this.websiteNo && this.websiteNo.length > 0) {\r\n h['Web-No'] = this.websiteNo\r\n }\r\n if (token) {\r\n if (token.token && token.token.length > 0 && token.username && token.username.length > 0) {\r\n h['Authorization'] = token.token;\r\n h['Username'] = token.username;\r\n }\r\n if (token.xcsrf) {\r\n h[token.xcsrf.csrfHeader] = token.xcsrf.csrfToken;\r\n }\r\n }\r\n const data = urlParamToJson(urlParams);\r\n const sign = await this.sign(data);\r\n h['Sign'] = sign\r\n return h;\r\n }\r\n\r\n private async helloIboot(): Promise<string> {\r\n if (this.helloMethod.length <= 0) {\r\n return this.apiKey;\r\n }\r\n const api = this.getApiUrl(this.helloMethod);\r\n const h: Record<string, string> = {\r\n 'Res-Type': 'json',\r\n 'Api-Key': this.apiKey\r\n }\r\n h[CONTENT_TYPE_KEY] = CONTENT_TYPE_MAP.applicationXwwwFormUrlencoded\r\n const logInfo = {\r\n \"url\": api,\r\n \"headers\": h\r\n }\r\n logger.debug(logInfo, \"HELLO\");\r\n const res = await fetch(api, {\r\n method: 'GET',\r\n headers: h,\r\n credentials: 'include',\r\n cache: 'force-cache'\r\n });\r\n if (res.ok) {\r\n const result = await res.json();\r\n logger.debug(result.data, 'HELLO RESULT')\r\n return result.data;\r\n }\r\n throw new Error('hello iBoot error!')\r\n }\r\n\r\n private getApiUrl(url: string): string {\r\n return `${this.baseUrl}/${url}`;\r\n }\r\n\r\n async csrf(): Promise<string | undefined> {\r\n const res = await this.get<CSRFToken>({\r\n url: 'guest/csrf'\r\n });\r\n if (res.success) {\r\n const data = res.data;\r\n if (data) {\r\n return data[\"csrfToken\"].toString();\r\n }\r\n }\r\n return undefined;\r\n }\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n async get<T>({ url, data, token, cache = 'default' }: Readonly<ServerRequestOptions>): Promise<ResultModel<T>> {\r\n const params = this.assemblyParameter(data);\r\n const urlParams = this.convertUrlParameter(params);\r\n const headers = await this.assemblyHeader({ \"urlParams\": urlParams, \"token\": token });\r\n const api = `${this.getApiUrl(url)}?${urlParams.toString()}`\r\n const logInfo = {\r\n \"url\": api,\r\n \"headers\": headers\r\n }\r\n logger.info(logInfo, \"GET\");\r\n const res = await fetch(api, {\r\n \"method\": 'GET',\r\n \"headers\": headers,\r\n \"credentials\": 'include',\r\n \"cache\": cache\r\n });\r\n if (res.ok) {\r\n const headersMap = Object.fromEntries(res.headers.entries());\r\n const result = { ...await res.json(), headers: headersMap };\r\n logger.debug(result, \"GET_RESULT\")\r\n return result;\r\n }\r\n const msg = {\r\n code: res.status,\r\n success: false,\r\n msg: res.statusText\r\n }\r\n logger.error(msg);\r\n return msg;\r\n }\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n async post<T>({ url, data, token, cache = \"default\" }: Readonly<ServerRequestOptions>): Promise<ResultModel<T>> {\r\n data = data ? { ...data } : {}\r\n const buffer = data.buffer ?? undefined;\r\n const boundary = data.boundary ?? undefined;\r\n if (buffer) {\r\n delete data.buffer;\r\n }\r\n if (boundary) {\r\n delete data.boundary;\r\n }\r\n const params = this.assemblyParameter(data);\r\n const urlParams = this.convertUrlParameter(params);\r\n const headers = await this.assemblyHeader({ \"urlParams\": urlParams, \"token\": token });\r\n if (buffer && boundary) {\r\n headers[CONTENT_TYPE_KEY] = `multipart/form-data; boundary=${boundary}`;\r\n }\r\n const api = this.getApiUrl(url);\r\n const logInfo = {\r\n \"url\": api,\r\n \"headers\": headers,\r\n \"params\": params\r\n }\r\n logger.info(logInfo, \"POST\");\r\n const urls = buffer ? `${api}?${urlParams}` : api;\r\n const res = await fetch(urls, {\r\n \"method\": 'POST',\r\n \"headers\": headers,\r\n \"body\": buffer ? buffer : urlParams.toString(),\r\n \"credentials\": 'include',\r\n \"cache\": cache\r\n });\r\n if (res.ok) {\r\n const headersMap = Object.fromEntries(res.headers.entries());\r\n const result = { ...await res.json(), headers: headersMap };\r\n logger.debug(result, \"POST_RESULT\");\r\n return result;\r\n }\r\n const msg = {\r\n code: res.status,\r\n success: false,\r\n msg: res.statusText\r\n }\r\n logger.error(msg);\r\n return msg;\r\n }\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n async stream({ url, data, token }: Readonly<Omit<ServerRequestOptions, 'cache'>>): Promise<Response> {\r\n data = data ? { ...data } : {}\r\n const buffer = data.buffer ?? undefined;\r\n const boundary = data.boundary ?? undefined;\r\n if (buffer) {\r\n delete data.buffer;\r\n }\r\n if (boundary) {\r\n delete data.boundary;\r\n }\r\n const params = this.assemblyParameter(data);\r\n const urlParams = this.convertUrlParameter(params); //new URLSearchParams(params);\r\n\r\n const headers = await this.assemblyHeader({ \"urlParams\": urlParams, \"token\": token });\r\n if (buffer && boundary) {\r\n headers[CONTENT_TYPE_KEY] = `multipart/form-data; boundary=${boundary}`;\r\n }\r\n headers['Connection'] = 'keep-alive';\r\n headers['X-Accel-Buffering'] = 'no'; //防止 Nginx 缓存\r\n headers['Cache-Control'] = 'no-cache';\r\n const api = this.getApiUrl(url)\r\n try {\r\n const url = buffer ? `${api}?${urlParams}` : api;\r\n const logInfo = {\r\n \"url\": api,\r\n \"headers\": headers,\r\n \"params\": params\r\n }\r\n logger.info(logInfo, \"STREAM\");\r\n const res = await fetch(url, {\r\n method: 'POST',\r\n headers: headers,\r\n body: buffer ? buffer : urlParams.toString(),\r\n credentials: 'include'\r\n });\r\n\r\n if (!res.ok) {\r\n throw new Error(`HTTP error! status: ${res.status}`);\r\n }\r\n if (!res.body) {\r\n throw new Error('No response body');\r\n }\r\n const headersMap = Object.fromEntries(res.headers.entries());\r\n return new Response(res.body, {\r\n headers: headersMap\r\n });\r\n } catch (e) {\r\n throw e;\r\n }\r\n }\r\n}"],"names":["ACCOUNT_TYPE_MAP","USER_TYPE_MAP","USER_FORM_MAP","USER_SEX_MAP","stream","PinoPretty","logger","pino","isArray","obj","randomString","len","l","$chars","maxPos","pwd","i","urlParamToJson","urlQueryParams","exclude","result","item","arr","urlEncode","value","dateFormat","dt","fmt","o","k","s","regx","exports","detectDomainLocale","domainItems","hostname","detectedLocale","_item_domain","_item_locales","domainHostname","locale","removeTrailingSlash","route","parsePath","path","hashIndex","queryIndex","hasQuery","addPathPrefix","_parsepath","require$$0","prefix","pathname","query","hash","addPathSuffix","suffix","pathHasPrefix","addLocale","_addpathprefix","_pathhasprefix","require$$1","defaultLocale","ignorePrefix","lower","formatNextPathnameInfo","_removetrailingslash","_addpathsuffix","require$$2","_addlocale","require$$3","info","getHostname","parsed","headers","normalizeLocalePath","locales","pathnameParts","removePathPrefix","withoutPrefix","getNextPathnameInfo","_normalizelocalepath","_removepathprefix","options","_options_nextConfig","basePath","i18n","trailingSlash","pathnameNoDataPrefix","paths","buildId","_result_pathname","NextURL","_detectdomainlocale","_formatnextpathnameinfo","_gethostname","_getnextpathnameinfo","REGEX_LOCALHOST_HOSTNAME","parseURL","url","base","Internal","input","baseOrOpts","opts","_this_Internal_options_nextConfig_i18n","_this_Internal_options_nextConfig","_this_Internal_domainLocale","_this_Internal_options_nextConfig_i18n1","_this_Internal_options_nextConfig1","search","_export","target","all","name","ACTION_SUFFIX","APP_DIR_ALIAS","CACHE_ONE_YEAR","DOT_NEXT_ALIAS","ESLINT_DEFAULT_DIRS","GSP_NO_RETURNED_VALUE","GSSP_COMPONENT_MEMBER_ERROR","GSSP_NO_RETURNED_VALUE","INSTRUMENTATION_HOOK_FILENAME","MIDDLEWARE_FILENAME","MIDDLEWARE_LOCATION_REGEXP","NEXT_BODY_SUFFIX","NEXT_CACHE_IMPLICIT_TAG_ID","NEXT_CACHE_REVALIDATED_TAGS_HEADER","NEXT_CACHE_REVALIDATE_TAG_TOKEN_HEADER","NEXT_CACHE_SOFT_TAGS_HEADER","NEXT_CACHE_SOFT_TAG_MAX_LENGTH","NEXT_CACHE_TAGS_HEADER","NEXT_CACHE_TAG_MAX_ITEMS","NEXT_CACHE_TAG_MAX_LENGTH","NEXT_DATA_SUFFIX","NEXT_INTERCEPTION_MARKER_PREFIX","NEXT_META_SUFFIX","NEXT_QUERY_PARAM_PREFIX","NON_STANDARD_NODE_ENV","PAGES_DIR_ALIAS","PRERENDER_REVALIDATE_HEADER","PRERENDER_REVALIDATE_ONLY_GENERATED_HEADER","PUBLIC_DIR_MIDDLEWARE_CONFLICT","ROOT_DIR_ALIAS","RSC_ACTION_CLIENT_WRAPPER_ALIAS","RSC_ACTION_ENCRYPTION_ALIAS","RSC_ACTION_PROXY_ALIAS","RSC_ACTION_VALIDATE_ALIAS","RSC_MOD_REF_PROXY_ALIAS","RSC_PREFETCH_SUFFIX","RSC_SUFFIX","SERVER_PROPS_EXPORT_ERROR","SERVER_PROPS_GET_INIT_PROPS_CONFLICT","SERVER_PROPS_SSG_CONFLICT","SERVER_RUNTIME","SSG_FALLBACK_EXPORT_ERROR","SSG_GET_INITIAL_PROPS_CONFLICT","STATIC_STATUS_PAGE_GET_INITIAL_PROPS_ERROR","UNSTABLE_REVALIDATE_RENAME_ERROR","WEBPACK_LAYERS","WEBPACK_RESOURCE_QUERIES","WEBPACK_LAYERS_NAMES","fromNodeOutgoingHttpHeaders","normalizeNextQueryParam","splitCookiesString","toNodeOutgoingHttpHeaders","validateURL","_constants","nodeHeaders","key","values","cookiesString","cookiesStrings","pos","start","ch","lastComma","nextStart","cookiesSeparatorFound","skipWhitespace","notSpecialChar","cookies","error","onKeyNormalized","prefixes","normalizedKey","PageSignatureError","RemovedPageError","RemovedUAError","page","__defProp","__getOwnPropDesc","__getOwnPropNames","__hasOwnProp","__export","__copyProps","to","from","except","desc","__toCommonJS","mod","src_exports","RequestCookies","ResponseCookies","parseCookie","parseSetCookie","stringifyCookie","c","_a","attrs","stringified","cookie","map","pair","splitAt","setCookie","attributes","domain","expires","httponly","maxage","samesite","secure","partitioned","priority","value2","parseSameSite","parsePriority","compact","t","newT","SAME_SITE","string","PRIORITY","requestHeaders","header","args","_","n","names","v","responseHeaders","_b","_c","cookieStrings","cookieString","normalizeCookie","replace","bag","serialized","_cookies","INTERNALS","NextRequest","_nexturl","_utils","_error","init","nextUrl","ReflectAdapter","prop","receiver","NextResponse","_reflect","_cookies1","require$$4","REDIRECTS","handleMiddlewareField","_init_request","keys","body","cookiesProxy","newHeaders","response","status","initObj","destination","ImageResponse","e","a","r","b","w","d","u","p","m","f","h","g","x","y","q","T","S","z","N","A","C","E","O","U","j","P","R","M","B","V","D","I","F","G","H","L","Z","extend","enumerize","has","lowerize","majorize","trim","rgxMapper","strMapper","$","X","K","UAParser","Q","Y","__nccwpck_require__","uaParserModule","isBot","userAgent","userAgentFromString","_uaparserjs","_interop_require_default","GlobalURLPattern","serverExports","module","NextJsAdapter","request","formData","contentType","CONTENT_TYPE_KEY","CONTENT_TYPE_MAP","params","context","API","APIMAP","HTTPRouter","config","adapter","headerStorage","httpOpts","getServerHttpOpts","HttpClient","rawRequest","responseContext","errorResponse","searchParams","token","getToken","copyRequest","method","data","boundaryMatch","buffer","setToken","cleanToken","code","message","DEFAULT_LOCALE","DEVICE_ID_KEY","CURRENT_WEBSITE_KEY","_GET_ERROR","_POST_ERROR","COOKIE_NAMES","HEADER_NAMES","getClientRequestHeader","storage","devideId","json","curWebsite","setClientRequestHeader","deviceId","website","getBaseUrl","urlName","get","heads","field","res","headersMap","msg","post","defaultHeads","proxyHeaders","iGet","iPost","iPostSuccess","lang","websiteId","websiteNo","setServerHttpHeaders","getServerHttpCookies","setServerHttpCookies","getLoginUser","userjson","user","username","utype","getCookieOpts","cleanCookieOpts","id","nickname","headImg","lastLoginTime","userType","mustChangePwd","loginUser","CryptoJS","arr_item","item_field","item_field_value","item1","index","oValue","_apiKey","paramsStr","str","md5","logInfo","urlParams","sign","api","cache","boundary","urls"],"mappings":"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","x_google_ignoreList":[3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28]}
|
|
1
|
+
{"version":3,"file":"iboot-http-client.cjs.js","sources":["../src/types/user.ts","../src/logger.ts","../src/utils.ts","../node_modules/next/dist/shared/lib/i18n/detect-domain-locale.js","../node_modules/next/dist/shared/lib/router/utils/remove-trailing-slash.js","../node_modules/next/dist/shared/lib/router/utils/parse-path.js","../node_modules/next/dist/shared/lib/router/utils/add-path-prefix.js","../node_modules/next/dist/shared/lib/router/utils/add-path-suffix.js","../node_modules/next/dist/shared/lib/router/utils/path-has-prefix.js","../node_modules/next/dist/shared/lib/router/utils/add-locale.js","../node_modules/next/dist/shared/lib/router/utils/format-next-pathname-info.js","../node_modules/next/dist/shared/lib/get-hostname.js","../node_modules/next/dist/shared/lib/i18n/normalize-locale-path.js","../node_modules/next/dist/shared/lib/router/utils/remove-path-prefix.js","../node_modules/next/dist/shared/lib/router/utils/get-next-pathname-info.js","../node_modules/next/dist/server/web/next-url.js","../node_modules/next/dist/lib/constants.js","../node_modules/next/dist/server/web/utils.js","../node_modules/next/dist/server/web/error.js","../node_modules/next/dist/compiled/@edge-runtime/cookies/index.js","../node_modules/next/dist/server/web/spec-extension/cookies.js","../node_modules/next/dist/server/web/spec-extension/request.js","../node_modules/next/dist/server/web/spec-extension/adapters/reflect.js","../node_modules/next/dist/server/web/spec-extension/response.js","../node_modules/next/dist/server/web/spec-extension/image-response.js","../node_modules/next/dist/compiled/ua-parser-js/ua-parser.js","../node_modules/next/dist/server/web/spec-extension/user-agent.js","../node_modules/next/dist/server/web/spec-extension/url-pattern.js","../node_modules/next/server.js","../src/router-dapter/nextjs.ts","../src/router.ts","../src/http-client.ts"],"sourcesContent":["export const ACCOUNT_TYPE_MAP = {\r\n GENERAL : 0,\r\n PHONE : 1,\r\n EMAIL : 2\r\n}\r\n\r\nexport const USER_TYPE_MAP = {\r\n TYPE_MGT : 0,\r\n TYPE_C : 1,\r\n TYPE_B : 2\r\n}\r\n\r\nexport const USER_FORM_MAP = {\r\n FROM_WEB : 1,\r\n FROM_PC : 2,\r\n FROM_WX_MINI_PRO : 3,\r\n FROM_WX_PLU : 4,\r\n FROM_WX_E : 5,\r\n FROM_APP : 6,\r\n FROM_DEVICE : 7\r\n}\r\n\r\nexport const USER_SEX_MAP = {\r\n unknown:0,\r\n male:1,\r\n female:2,\r\n}\r\n\r\nexport type ACCOUNT_TYPE = typeof ACCOUNT_TYPE_MAP[keyof typeof ACCOUNT_TYPE_MAP];\r\nexport type USER_TYPE = typeof USER_TYPE_MAP[keyof typeof USER_TYPE_MAP];\r\nexport type USER_FORM = typeof USER_FORM_MAP[keyof typeof USER_FORM_MAP];\r\nexport type USER_SEX = typeof USER_SEX_MAP[keyof typeof USER_SEX_MAP];\r\n\r\n// User interface\r\nexport interface User {\r\n id: string;\r\n name: string;\r\n userType: USER_TYPE;\r\n username?: string;\r\n nickname?: string;\r\n sex?: USER_SEX;\r\n headImg?: string;\r\n lastLoginTime?: string;\r\n tokenExpired?: string;\r\n deviceId?: string;\r\n status?: number;\r\n accountType?: number;\r\n enabled?: boolean;\r\n userFrom?: USER_FORM;\r\n needToReview?: boolean;\r\n socketOnline?: boolean;\r\n createTime?: string;\r\n mustChangePwd?: boolean;\r\n}","import pino from \"pino\";\r\nimport PinoPretty from \"pino-pretty\";\r\n// import koffi from 'koffi';\r\n\r\n// if (typeof window === 'undefined' && process.platform === 'win32') {\r\n// try {\r\n// const CP_UTF8 = 65001;\r\n// const kernel32 = koffi.load('Kernel32');\r\n// const setConsoleOutputCP = kernel32.func('SetConsoleOutputCP', 'bool', ['int']);\r\n// const setConsoleCP = kernel32.func('SetConsoleCP', 'bool', ['int']);\r\n// setConsoleOutputCP(CP_UTF8);\r\n// setConsoleCP(CP_UTF8);\r\n// } catch (e) {\r\n// console.log(e);\r\n// }\r\n// }\r\n\r\n// export const logger = pino({\r\n// name: process.env.APP_NAME ?? 'iBoot',\r\n// level: process.env.NODE_ENV !== 'production' ? 'debug' : 'info',\r\n// nestedKey: 'payload',\r\n// transport: {\r\n// target: 'pino-pretty',\r\n// options: {\r\n// colorize: true,\r\n// translateTime: 'SYS:yyyy-mm-dd HH:MM:ss',\r\n// ignore: 'pid,hostname',\r\n// messageFormat: '{msg}',\r\n// singleLine: true,\r\n// },\r\n// }\r\n// });\r\n\r\nconst stream = PinoPretty({\r\n colorize: true,\r\n destination: process.stdout,\r\n translateTime: 'SYS:yyyy-mm-dd HH:MM:ss',\r\n ignore: 'pid,hostname',\r\n messageFormat: '{msg}',\r\n singleLine: true,\r\n});\r\n\r\nexport const logger = pino({\r\n name: process.env.APP_NAME ?? 'iBoot',\r\n level: process.env.APP_ENV === 'production' ? 'info' : 'debug',\r\n nestedKey: 'payload'\r\n}, stream);","export const isArray = (obj: unknown) => {\r\n return (\r\n Array.isArray(obj) ||\r\n (typeof obj === \"object\" &&\r\n Object.prototype.toString.call(obj) === \"[object Array]\")\r\n );\r\n};\r\n\r\n/**\r\n * 生成指定长度的随机串\r\n * @param {Object} len\r\n */\r\nexport const randomString = (len: number) => {\r\n const l = len || 32;\r\n const $chars = \"ABCDEFGHJKMNPQRSTWXYZabcdefhijkmnprstwxyz2345678\";\r\n const maxPos = $chars.length;\r\n let pwd = \"\";\r\n for (let i = 0; i < l; i++) {\r\n pwd += $chars.charAt(Math.floor(Math.random() * maxPos));\r\n }\r\n return pwd;\r\n};\r\n\r\nexport const urlParamToJson = (urlQueryParams: string, exclude?: string[]): Record<string, string> => {\r\n const result: Record<string, string> = {};\r\n const strs = urlQueryParams.split(\"&\");\r\n strs.forEach((item) => {\r\n const arr = item.split(\"=\");\r\n if (arr[1]) {\r\n if (!exclude || exclude.indexOf(arr[0]) == -1) {\r\n result[arr[0]] = arr[1];\r\n }\r\n }\r\n });\r\n return result;\r\n};\r\n\r\nexport const urlEncode = (value: string | null | undefined): string => {\r\n if (!value || value == \"\" || value.length == 0) {\r\n return \"\";\r\n }\r\n return (\r\n encodeURIComponent(value)\r\n // .replace(/%20/g, '+')\r\n // .replace(/%2B/g, '\\\\+')\r\n .replace(/\\(/g, \"%28\")\r\n .replace(/\\)/g, \"%29\")\r\n .replace(/\\'/g, \"%27\")\r\n .replace(/\\!/g, \"%21\")\r\n .replace(/\\~/g, \"%7E\")\r\n );\r\n};\r\n\r\nexport const dateFormat = (dt: Date, fmt: string) => {\r\n const o:Record<string, number> = {\r\n \"M+\": dt.getMonth() + 1, //月份\r\n \"d+\": dt.getDate(), //日\r\n \"h+\": dt.getHours(), //小时\r\n \"m+\": dt.getMinutes(), //分\r\n \"s+\": dt.getSeconds(), //秒\r\n \"q+\": Math.floor((dt.getMonth() + 3) / 3), //季度\r\n S: dt.getMilliseconds(), //毫秒\r\n };\r\n if (/(y+)/.test(fmt)){\r\n const regx = new RegExp(/(y+)/);\r\n const value = regx.exec(fmt);\r\n let len = 0;\r\n if(value && value.length > 0){\r\n len = value[0].length;\r\n }\r\n fmt = fmt.replace(/(y+)/, dt.getFullYear() + \"\").substring(4 - len);\r\n }\r\n\r\n for (const k in o){\r\n const s:string = \"(\" + k + \")\";\r\n const regx = new RegExp(s);\r\n if(regx.test(fmt)){\r\n const value = regx.exec(fmt);\r\n let len = 0;\r\n if(value && value.length > 0){\r\n len = value[0].length;\r\n }\r\n fmt = fmt.replace(regx, len == 1 ? o[k].toString() : (\"00\" + o[k]).substring(o[k].toString().length))\r\n }\r\n }\r\n return fmt;\r\n}","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"detectDomainLocale\", {\n enumerable: true,\n get: function() {\n return detectDomainLocale;\n }\n});\nfunction detectDomainLocale(domainItems, hostname, detectedLocale) {\n if (!domainItems) return;\n if (detectedLocale) {\n detectedLocale = detectedLocale.toLowerCase();\n }\n for (const item of domainItems){\n var _item_domain, _item_locales;\n // remove port if present\n const domainHostname = (_item_domain = item.domain) == null ? void 0 : _item_domain.split(\":\", 1)[0].toLowerCase();\n if (hostname === domainHostname || detectedLocale === item.defaultLocale.toLowerCase() || ((_item_locales = item.locales) == null ? void 0 : _item_locales.some((locale)=>locale.toLowerCase() === detectedLocale))) {\n return item;\n }\n }\n}\n\n//# sourceMappingURL=detect-domain-locale.js.map","/**\n * Removes the trailing slash for a given route or page path. Preserves the\n * root page. Examples:\n * - `/foo/bar/` -> `/foo/bar`\n * - `/foo/bar` -> `/foo/bar`\n * - `/` -> `/`\n */ \"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"removeTrailingSlash\", {\n enumerable: true,\n get: function() {\n return removeTrailingSlash;\n }\n});\nfunction removeTrailingSlash(route) {\n return route.replace(/\\/$/, \"\") || \"/\";\n}\n\n//# sourceMappingURL=remove-trailing-slash.js.map","/**\n * Given a path this function will find the pathname, query and hash and return\n * them. This is useful to parse full paths on the client side.\n * @param path A path to parse e.g. /foo/bar?id=1#hash\n */ \"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"parsePath\", {\n enumerable: true,\n get: function() {\n return parsePath;\n }\n});\nfunction parsePath(path) {\n const hashIndex = path.indexOf(\"#\");\n const queryIndex = path.indexOf(\"?\");\n const hasQuery = queryIndex > -1 && (hashIndex < 0 || queryIndex < hashIndex);\n if (hasQuery || hashIndex > -1) {\n return {\n pathname: path.substring(0, hasQuery ? queryIndex : hashIndex),\n query: hasQuery ? path.substring(queryIndex, hashIndex > -1 ? hashIndex : undefined) : \"\",\n hash: hashIndex > -1 ? path.slice(hashIndex) : \"\"\n };\n }\n return {\n pathname: path,\n query: \"\",\n hash: \"\"\n };\n}\n\n//# sourceMappingURL=parse-path.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"addPathPrefix\", {\n enumerable: true,\n get: function() {\n return addPathPrefix;\n }\n});\nconst _parsepath = require(\"./parse-path\");\nfunction addPathPrefix(path, prefix) {\n if (!path.startsWith(\"/\") || !prefix) {\n return path;\n }\n const { pathname, query, hash } = (0, _parsepath.parsePath)(path);\n return \"\" + prefix + pathname + query + hash;\n}\n\n//# sourceMappingURL=add-path-prefix.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"addPathSuffix\", {\n enumerable: true,\n get: function() {\n return addPathSuffix;\n }\n});\nconst _parsepath = require(\"./parse-path\");\nfunction addPathSuffix(path, suffix) {\n if (!path.startsWith(\"/\") || !suffix) {\n return path;\n }\n const { pathname, query, hash } = (0, _parsepath.parsePath)(path);\n return \"\" + pathname + suffix + query + hash;\n}\n\n//# sourceMappingURL=add-path-suffix.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"pathHasPrefix\", {\n enumerable: true,\n get: function() {\n return pathHasPrefix;\n }\n});\nconst _parsepath = require(\"./parse-path\");\nfunction pathHasPrefix(path, prefix) {\n if (typeof path !== \"string\") {\n return false;\n }\n const { pathname } = (0, _parsepath.parsePath)(path);\n return pathname === prefix || pathname.startsWith(prefix + \"/\");\n}\n\n//# sourceMappingURL=path-has-prefix.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"addLocale\", {\n enumerable: true,\n get: function() {\n return addLocale;\n }\n});\nconst _addpathprefix = require(\"./add-path-prefix\");\nconst _pathhasprefix = require(\"./path-has-prefix\");\nfunction addLocale(path, locale, defaultLocale, ignorePrefix) {\n // If no locale was given or the locale is the default locale, we don't need\n // to prefix the path.\n if (!locale || locale === defaultLocale) return path;\n const lower = path.toLowerCase();\n // If the path is an API path or the path already has the locale prefix, we\n // don't need to prefix the path.\n if (!ignorePrefix) {\n if ((0, _pathhasprefix.pathHasPrefix)(lower, \"/api\")) return path;\n if ((0, _pathhasprefix.pathHasPrefix)(lower, \"/\" + locale.toLowerCase())) return path;\n }\n // Add the locale prefix to the path.\n return (0, _addpathprefix.addPathPrefix)(path, \"/\" + locale);\n}\n\n//# sourceMappingURL=add-locale.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"formatNextPathnameInfo\", {\n enumerable: true,\n get: function() {\n return formatNextPathnameInfo;\n }\n});\nconst _removetrailingslash = require(\"./remove-trailing-slash\");\nconst _addpathprefix = require(\"./add-path-prefix\");\nconst _addpathsuffix = require(\"./add-path-suffix\");\nconst _addlocale = require(\"./add-locale\");\nfunction formatNextPathnameInfo(info) {\n let pathname = (0, _addlocale.addLocale)(info.pathname, info.locale, info.buildId ? undefined : info.defaultLocale, info.ignorePrefix);\n if (info.buildId || !info.trailingSlash) {\n pathname = (0, _removetrailingslash.removeTrailingSlash)(pathname);\n }\n if (info.buildId) {\n pathname = (0, _addpathsuffix.addPathSuffix)((0, _addpathprefix.addPathPrefix)(pathname, \"/_next/data/\" + info.buildId), info.pathname === \"/\" ? \"index.json\" : \".json\");\n }\n pathname = (0, _addpathprefix.addPathPrefix)(pathname, info.basePath);\n return !info.buildId && info.trailingSlash ? !pathname.endsWith(\"/\") ? (0, _addpathsuffix.addPathSuffix)(pathname, \"/\") : pathname : (0, _removetrailingslash.removeTrailingSlash)(pathname);\n}\n\n//# sourceMappingURL=format-next-pathname-info.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"getHostname\", {\n enumerable: true,\n get: function() {\n return getHostname;\n }\n});\nfunction getHostname(parsed, headers) {\n // Get the hostname from the headers if it exists, otherwise use the parsed\n // hostname.\n let hostname;\n if ((headers == null ? void 0 : headers.host) && !Array.isArray(headers.host)) {\n hostname = headers.host.toString().split(\":\", 1)[0];\n } else if (parsed.hostname) {\n hostname = parsed.hostname;\n } else return;\n return hostname.toLowerCase();\n}\n\n//# sourceMappingURL=get-hostname.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"normalizeLocalePath\", {\n enumerable: true,\n get: function() {\n return normalizeLocalePath;\n }\n});\nfunction normalizeLocalePath(pathname, locales) {\n let detectedLocale;\n // first item will be empty string from splitting at first char\n const pathnameParts = pathname.split(\"/\");\n (locales || []).some((locale)=>{\n if (pathnameParts[1] && pathnameParts[1].toLowerCase() === locale.toLowerCase()) {\n detectedLocale = locale;\n pathnameParts.splice(1, 1);\n pathname = pathnameParts.join(\"/\") || \"/\";\n return true;\n }\n return false;\n });\n return {\n pathname,\n detectedLocale\n };\n}\n\n//# sourceMappingURL=normalize-locale-path.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"removePathPrefix\", {\n enumerable: true,\n get: function() {\n return removePathPrefix;\n }\n});\nconst _pathhasprefix = require(\"./path-has-prefix\");\nfunction removePathPrefix(path, prefix) {\n // If the path doesn't start with the prefix we can return it as is. This\n // protects us from situations where the prefix is a substring of the path\n // prefix such as:\n //\n // For prefix: /blog\n //\n // /blog -> true\n // /blog/ -> true\n // /blog/1 -> true\n // /blogging -> false\n // /blogging/ -> false\n // /blogging/1 -> false\n if (!(0, _pathhasprefix.pathHasPrefix)(path, prefix)) {\n return path;\n }\n // Remove the prefix from the path via slicing.\n const withoutPrefix = path.slice(prefix.length);\n // If the path without the prefix starts with a `/` we can return it as is.\n if (withoutPrefix.startsWith(\"/\")) {\n return withoutPrefix;\n }\n // If the path without the prefix doesn't start with a `/` we need to add it\n // back to the path to make sure it's a valid path.\n return \"/\" + withoutPrefix;\n}\n\n//# sourceMappingURL=remove-path-prefix.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"getNextPathnameInfo\", {\n enumerable: true,\n get: function() {\n return getNextPathnameInfo;\n }\n});\nconst _normalizelocalepath = require(\"../../i18n/normalize-locale-path\");\nconst _removepathprefix = require(\"./remove-path-prefix\");\nconst _pathhasprefix = require(\"./path-has-prefix\");\nfunction getNextPathnameInfo(pathname, options) {\n var _options_nextConfig;\n const { basePath, i18n, trailingSlash } = (_options_nextConfig = options.nextConfig) != null ? _options_nextConfig : {};\n const info = {\n pathname,\n trailingSlash: pathname !== \"/\" ? pathname.endsWith(\"/\") : trailingSlash\n };\n if (basePath && (0, _pathhasprefix.pathHasPrefix)(info.pathname, basePath)) {\n info.pathname = (0, _removepathprefix.removePathPrefix)(info.pathname, basePath);\n info.basePath = basePath;\n }\n let pathnameNoDataPrefix = info.pathname;\n if (info.pathname.startsWith(\"/_next/data/\") && info.pathname.endsWith(\".json\")) {\n const paths = info.pathname.replace(/^\\/_next\\/data\\//, \"\").replace(/\\.json$/, \"\").split(\"/\");\n const buildId = paths[0];\n info.buildId = buildId;\n pathnameNoDataPrefix = paths[1] !== \"index\" ? \"/\" + paths.slice(1).join(\"/\") : \"/\";\n // update pathname with normalized if enabled although\n // we use normalized to populate locale info still\n if (options.parseData === true) {\n info.pathname = pathnameNoDataPrefix;\n }\n }\n // If provided, use the locale route normalizer to detect the locale instead\n // of the function below.\n if (i18n) {\n let result = options.i18nProvider ? options.i18nProvider.analyze(info.pathname) : (0, _normalizelocalepath.normalizeLocalePath)(info.pathname, i18n.locales);\n info.locale = result.detectedLocale;\n var _result_pathname;\n info.pathname = (_result_pathname = result.pathname) != null ? _result_pathname : info.pathname;\n if (!result.detectedLocale && info.buildId) {\n result = options.i18nProvider ? options.i18nProvider.analyze(pathnameNoDataPrefix) : (0, _normalizelocalepath.normalizeLocalePath)(pathnameNoDataPrefix, i18n.locales);\n if (result.detectedLocale) {\n info.locale = result.detectedLocale;\n }\n }\n }\n return info;\n}\n\n//# sourceMappingURL=get-next-pathname-info.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"NextURL\", {\n enumerable: true,\n get: function() {\n return NextURL;\n }\n});\nconst _detectdomainlocale = require(\"../../shared/lib/i18n/detect-domain-locale\");\nconst _formatnextpathnameinfo = require(\"../../shared/lib/router/utils/format-next-pathname-info\");\nconst _gethostname = require(\"../../shared/lib/get-hostname\");\nconst _getnextpathnameinfo = require(\"../../shared/lib/router/utils/get-next-pathname-info\");\nconst REGEX_LOCALHOST_HOSTNAME = /(?!^https?:\\/\\/)(127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}|\\[::1\\]|localhost)/;\nfunction parseURL(url, base) {\n return new URL(String(url).replace(REGEX_LOCALHOST_HOSTNAME, \"localhost\"), base && String(base).replace(REGEX_LOCALHOST_HOSTNAME, \"localhost\"));\n}\nconst Internal = Symbol(\"NextURLInternal\");\nclass NextURL {\n constructor(input, baseOrOpts, opts){\n let base;\n let options;\n if (typeof baseOrOpts === \"object\" && \"pathname\" in baseOrOpts || typeof baseOrOpts === \"string\") {\n base = baseOrOpts;\n options = opts || {};\n } else {\n options = opts || baseOrOpts || {};\n }\n this[Internal] = {\n url: parseURL(input, base ?? options.base),\n options: options,\n basePath: \"\"\n };\n this.analyze();\n }\n analyze() {\n var _this_Internal_options_nextConfig_i18n, _this_Internal_options_nextConfig, _this_Internal_domainLocale, _this_Internal_options_nextConfig_i18n1, _this_Internal_options_nextConfig1;\n const info = (0, _getnextpathnameinfo.getNextPathnameInfo)(this[Internal].url.pathname, {\n nextConfig: this[Internal].options.nextConfig,\n parseData: !process.env.__NEXT_NO_MIDDLEWARE_URL_NORMALIZE,\n i18nProvider: this[Internal].options.i18nProvider\n });\n const hostname = (0, _gethostname.getHostname)(this[Internal].url, this[Internal].options.headers);\n this[Internal].domainLocale = this[Internal].options.i18nProvider ? this[Internal].options.i18nProvider.detectDomainLocale(hostname) : (0, _detectdomainlocale.detectDomainLocale)((_this_Internal_options_nextConfig = this[Internal].options.nextConfig) == null ? void 0 : (_this_Internal_options_nextConfig_i18n = _this_Internal_options_nextConfig.i18n) == null ? void 0 : _this_Internal_options_nextConfig_i18n.domains, hostname);\n const defaultLocale = ((_this_Internal_domainLocale = this[Internal].domainLocale) == null ? void 0 : _this_Internal_domainLocale.defaultLocale) || ((_this_Internal_options_nextConfig1 = this[Internal].options.nextConfig) == null ? void 0 : (_this_Internal_options_nextConfig_i18n1 = _this_Internal_options_nextConfig1.i18n) == null ? void 0 : _this_Internal_options_nextConfig_i18n1.defaultLocale);\n this[Internal].url.pathname = info.pathname;\n this[Internal].defaultLocale = defaultLocale;\n this[Internal].basePath = info.basePath ?? \"\";\n this[Internal].buildId = info.buildId;\n this[Internal].locale = info.locale ?? defaultLocale;\n this[Internal].trailingSlash = info.trailingSlash;\n }\n formatPathname() {\n return (0, _formatnextpathnameinfo.formatNextPathnameInfo)({\n basePath: this[Internal].basePath,\n buildId: this[Internal].buildId,\n defaultLocale: !this[Internal].options.forceLocale ? this[Internal].defaultLocale : undefined,\n locale: this[Internal].locale,\n pathname: this[Internal].url.pathname,\n trailingSlash: this[Internal].trailingSlash\n });\n }\n formatSearch() {\n return this[Internal].url.search;\n }\n get buildId() {\n return this[Internal].buildId;\n }\n set buildId(buildId) {\n this[Internal].buildId = buildId;\n }\n get locale() {\n return this[Internal].locale ?? \"\";\n }\n set locale(locale) {\n var _this_Internal_options_nextConfig_i18n, _this_Internal_options_nextConfig;\n if (!this[Internal].locale || !((_this_Internal_options_nextConfig = this[Internal].options.nextConfig) == null ? void 0 : (_this_Internal_options_nextConfig_i18n = _this_Internal_options_nextConfig.i18n) == null ? void 0 : _this_Internal_options_nextConfig_i18n.locales.includes(locale))) {\n throw new TypeError(`The NextURL configuration includes no locale \"${locale}\"`);\n }\n this[Internal].locale = locale;\n }\n get defaultLocale() {\n return this[Internal].defaultLocale;\n }\n get domainLocale() {\n return this[Internal].domainLocale;\n }\n get searchParams() {\n return this[Internal].url.searchParams;\n }\n get host() {\n return this[Internal].url.host;\n }\n set host(value) {\n this[Internal].url.host = value;\n }\n get hostname() {\n return this[Internal].url.hostname;\n }\n set hostname(value) {\n this[Internal].url.hostname = value;\n }\n get port() {\n return this[Internal].url.port;\n }\n set port(value) {\n this[Internal].url.port = value;\n }\n get protocol() {\n return this[Internal].url.protocol;\n }\n set protocol(value) {\n this[Internal].url.protocol = value;\n }\n get href() {\n const pathname = this.formatPathname();\n const search = this.formatSearch();\n return `${this.protocol}//${this.host}${pathname}${search}${this.hash}`;\n }\n set href(url) {\n this[Internal].url = parseURL(url);\n this.analyze();\n }\n get origin() {\n return this[Internal].url.origin;\n }\n get pathname() {\n return this[Internal].url.pathname;\n }\n set pathname(value) {\n this[Internal].url.pathname = value;\n }\n get hash() {\n return this[Internal].url.hash;\n }\n set hash(value) {\n this[Internal].url.hash = value;\n }\n get search() {\n return this[Internal].url.search;\n }\n set search(value) {\n this[Internal].url.search = value;\n }\n get password() {\n return this[Internal].url.password;\n }\n set password(value) {\n this[Internal].url.password = value;\n }\n get username() {\n return this[Internal].url.username;\n }\n set username(value) {\n this[Internal].url.username = value;\n }\n get basePath() {\n return this[Internal].basePath;\n }\n set basePath(value) {\n this[Internal].basePath = value.startsWith(\"/\") ? value : `/${value}`;\n }\n toString() {\n return this.href;\n }\n toJSON() {\n return this.href;\n }\n [Symbol.for(\"edge-runtime.inspect.custom\")]() {\n return {\n href: this.href,\n origin: this.origin,\n protocol: this.protocol,\n username: this.username,\n password: this.password,\n host: this.host,\n hostname: this.hostname,\n port: this.port,\n pathname: this.pathname,\n search: this.search,\n searchParams: this.searchParams,\n hash: this.hash\n };\n }\n clone() {\n return new NextURL(String(this), this[Internal].options);\n }\n}\n\n//# sourceMappingURL=next-url.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n0 && (module.exports = {\n ACTION_SUFFIX: null,\n APP_DIR_ALIAS: null,\n CACHE_ONE_YEAR: null,\n DOT_NEXT_ALIAS: null,\n ESLINT_DEFAULT_DIRS: null,\n GSP_NO_RETURNED_VALUE: null,\n GSSP_COMPONENT_MEMBER_ERROR: null,\n GSSP_NO_RETURNED_VALUE: null,\n INSTRUMENTATION_HOOK_FILENAME: null,\n MIDDLEWARE_FILENAME: null,\n MIDDLEWARE_LOCATION_REGEXP: null,\n NEXT_BODY_SUFFIX: null,\n NEXT_CACHE_IMPLICIT_TAG_ID: null,\n NEXT_CACHE_REVALIDATED_TAGS_HEADER: null,\n NEXT_CACHE_REVALIDATE_TAG_TOKEN_HEADER: null,\n NEXT_CACHE_SOFT_TAGS_HEADER: null,\n NEXT_CACHE_SOFT_TAG_MAX_LENGTH: null,\n NEXT_CACHE_TAGS_HEADER: null,\n NEXT_CACHE_TAG_MAX_ITEMS: null,\n NEXT_CACHE_TAG_MAX_LENGTH: null,\n NEXT_DATA_SUFFIX: null,\n NEXT_INTERCEPTION_MARKER_PREFIX: null,\n NEXT_META_SUFFIX: null,\n NEXT_QUERY_PARAM_PREFIX: null,\n NON_STANDARD_NODE_ENV: null,\n PAGES_DIR_ALIAS: null,\n PRERENDER_REVALIDATE_HEADER: null,\n PRERENDER_REVALIDATE_ONLY_GENERATED_HEADER: null,\n PUBLIC_DIR_MIDDLEWARE_CONFLICT: null,\n ROOT_DIR_ALIAS: null,\n RSC_ACTION_CLIENT_WRAPPER_ALIAS: null,\n RSC_ACTION_ENCRYPTION_ALIAS: null,\n RSC_ACTION_PROXY_ALIAS: null,\n RSC_ACTION_VALIDATE_ALIAS: null,\n RSC_MOD_REF_PROXY_ALIAS: null,\n RSC_PREFETCH_SUFFIX: null,\n RSC_SUFFIX: null,\n SERVER_PROPS_EXPORT_ERROR: null,\n SERVER_PROPS_GET_INIT_PROPS_CONFLICT: null,\n SERVER_PROPS_SSG_CONFLICT: null,\n SERVER_RUNTIME: null,\n SSG_FALLBACK_EXPORT_ERROR: null,\n SSG_GET_INITIAL_PROPS_CONFLICT: null,\n STATIC_STATUS_PAGE_GET_INITIAL_PROPS_ERROR: null,\n UNSTABLE_REVALIDATE_RENAME_ERROR: null,\n WEBPACK_LAYERS: null,\n WEBPACK_RESOURCE_QUERIES: null\n});\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n ACTION_SUFFIX: function() {\n return ACTION_SUFFIX;\n },\n APP_DIR_ALIAS: function() {\n return APP_DIR_ALIAS;\n },\n CACHE_ONE_YEAR: function() {\n return CACHE_ONE_YEAR;\n },\n DOT_NEXT_ALIAS: function() {\n return DOT_NEXT_ALIAS;\n },\n ESLINT_DEFAULT_DIRS: function() {\n return ESLINT_DEFAULT_DIRS;\n },\n GSP_NO_RETURNED_VALUE: function() {\n return GSP_NO_RETURNED_VALUE;\n },\n GSSP_COMPONENT_MEMBER_ERROR: function() {\n return GSSP_COMPONENT_MEMBER_ERROR;\n },\n GSSP_NO_RETURNED_VALUE: function() {\n return GSSP_NO_RETURNED_VALUE;\n },\n INSTRUMENTATION_HOOK_FILENAME: function() {\n return INSTRUMENTATION_HOOK_FILENAME;\n },\n MIDDLEWARE_FILENAME: function() {\n return MIDDLEWARE_FILENAME;\n },\n MIDDLEWARE_LOCATION_REGEXP: function() {\n return MIDDLEWARE_LOCATION_REGEXP;\n },\n NEXT_BODY_SUFFIX: function() {\n return NEXT_BODY_SUFFIX;\n },\n NEXT_CACHE_IMPLICIT_TAG_ID: function() {\n return NEXT_CACHE_IMPLICIT_TAG_ID;\n },\n NEXT_CACHE_REVALIDATED_TAGS_HEADER: function() {\n return NEXT_CACHE_REVALIDATED_TAGS_HEADER;\n },\n NEXT_CACHE_REVALIDATE_TAG_TOKEN_HEADER: function() {\n return NEXT_CACHE_REVALIDATE_TAG_TOKEN_HEADER;\n },\n NEXT_CACHE_SOFT_TAGS_HEADER: function() {\n return NEXT_CACHE_SOFT_TAGS_HEADER;\n },\n NEXT_CACHE_SOFT_TAG_MAX_LENGTH: function() {\n return NEXT_CACHE_SOFT_TAG_MAX_LENGTH;\n },\n NEXT_CACHE_TAGS_HEADER: function() {\n return NEXT_CACHE_TAGS_HEADER;\n },\n NEXT_CACHE_TAG_MAX_ITEMS: function() {\n return NEXT_CACHE_TAG_MAX_ITEMS;\n },\n NEXT_CACHE_TAG_MAX_LENGTH: function() {\n return NEXT_CACHE_TAG_MAX_LENGTH;\n },\n NEXT_DATA_SUFFIX: function() {\n return NEXT_DATA_SUFFIX;\n },\n NEXT_INTERCEPTION_MARKER_PREFIX: function() {\n return NEXT_INTERCEPTION_MARKER_PREFIX;\n },\n NEXT_META_SUFFIX: function() {\n return NEXT_META_SUFFIX;\n },\n NEXT_QUERY_PARAM_PREFIX: function() {\n return NEXT_QUERY_PARAM_PREFIX;\n },\n NON_STANDARD_NODE_ENV: function() {\n return NON_STANDARD_NODE_ENV;\n },\n PAGES_DIR_ALIAS: function() {\n return PAGES_DIR_ALIAS;\n },\n PRERENDER_REVALIDATE_HEADER: function() {\n return PRERENDER_REVALIDATE_HEADER;\n },\n PRERENDER_REVALIDATE_ONLY_GENERATED_HEADER: function() {\n return PRERENDER_REVALIDATE_ONLY_GENERATED_HEADER;\n },\n PUBLIC_DIR_MIDDLEWARE_CONFLICT: function() {\n return PUBLIC_DIR_MIDDLEWARE_CONFLICT;\n },\n ROOT_DIR_ALIAS: function() {\n return ROOT_DIR_ALIAS;\n },\n RSC_ACTION_CLIENT_WRAPPER_ALIAS: function() {\n return RSC_ACTION_CLIENT_WRAPPER_ALIAS;\n },\n RSC_ACTION_ENCRYPTION_ALIAS: function() {\n return RSC_ACTION_ENCRYPTION_ALIAS;\n },\n RSC_ACTION_PROXY_ALIAS: function() {\n return RSC_ACTION_PROXY_ALIAS;\n },\n RSC_ACTION_VALIDATE_ALIAS: function() {\n return RSC_ACTION_VALIDATE_ALIAS;\n },\n RSC_MOD_REF_PROXY_ALIAS: function() {\n return RSC_MOD_REF_PROXY_ALIAS;\n },\n RSC_PREFETCH_SUFFIX: function() {\n return RSC_PREFETCH_SUFFIX;\n },\n RSC_SUFFIX: function() {\n return RSC_SUFFIX;\n },\n SERVER_PROPS_EXPORT_ERROR: function() {\n return SERVER_PROPS_EXPORT_ERROR;\n },\n SERVER_PROPS_GET_INIT_PROPS_CONFLICT: function() {\n return SERVER_PROPS_GET_INIT_PROPS_CONFLICT;\n },\n SERVER_PROPS_SSG_CONFLICT: function() {\n return SERVER_PROPS_SSG_CONFLICT;\n },\n SERVER_RUNTIME: function() {\n return SERVER_RUNTIME;\n },\n SSG_FALLBACK_EXPORT_ERROR: function() {\n return SSG_FALLBACK_EXPORT_ERROR;\n },\n SSG_GET_INITIAL_PROPS_CONFLICT: function() {\n return SSG_GET_INITIAL_PROPS_CONFLICT;\n },\n STATIC_STATUS_PAGE_GET_INITIAL_PROPS_ERROR: function() {\n return STATIC_STATUS_PAGE_GET_INITIAL_PROPS_ERROR;\n },\n UNSTABLE_REVALIDATE_RENAME_ERROR: function() {\n return UNSTABLE_REVALIDATE_RENAME_ERROR;\n },\n WEBPACK_LAYERS: function() {\n return WEBPACK_LAYERS;\n },\n WEBPACK_RESOURCE_QUERIES: function() {\n return WEBPACK_RESOURCE_QUERIES;\n }\n});\nconst NEXT_QUERY_PARAM_PREFIX = \"nxtP\";\nconst NEXT_INTERCEPTION_MARKER_PREFIX = \"nxtI\";\nconst PRERENDER_REVALIDATE_HEADER = \"x-prerender-revalidate\";\nconst PRERENDER_REVALIDATE_ONLY_GENERATED_HEADER = \"x-prerender-revalidate-if-generated\";\nconst RSC_PREFETCH_SUFFIX = \".prefetch.rsc\";\nconst RSC_SUFFIX = \".rsc\";\nconst ACTION_SUFFIX = \".action\";\nconst NEXT_DATA_SUFFIX = \".json\";\nconst NEXT_META_SUFFIX = \".meta\";\nconst NEXT_BODY_SUFFIX = \".body\";\nconst NEXT_CACHE_TAGS_HEADER = \"x-next-cache-tags\";\nconst NEXT_CACHE_SOFT_TAGS_HEADER = \"x-next-cache-soft-tags\";\nconst NEXT_CACHE_REVALIDATED_TAGS_HEADER = \"x-next-revalidated-tags\";\nconst NEXT_CACHE_REVALIDATE_TAG_TOKEN_HEADER = \"x-next-revalidate-tag-token\";\nconst NEXT_CACHE_TAG_MAX_ITEMS = 128;\nconst NEXT_CACHE_TAG_MAX_LENGTH = 256;\nconst NEXT_CACHE_SOFT_TAG_MAX_LENGTH = 1024;\nconst NEXT_CACHE_IMPLICIT_TAG_ID = \"_N_T_\";\nconst CACHE_ONE_YEAR = 31536000;\nconst MIDDLEWARE_FILENAME = \"middleware\";\nconst MIDDLEWARE_LOCATION_REGEXP = `(?:src/)?${MIDDLEWARE_FILENAME}`;\nconst INSTRUMENTATION_HOOK_FILENAME = \"instrumentation\";\nconst PAGES_DIR_ALIAS = \"private-next-pages\";\nconst DOT_NEXT_ALIAS = \"private-dot-next\";\nconst ROOT_DIR_ALIAS = \"private-next-root-dir\";\nconst APP_DIR_ALIAS = \"private-next-app-dir\";\nconst RSC_MOD_REF_PROXY_ALIAS = \"private-next-rsc-mod-ref-proxy\";\nconst RSC_ACTION_VALIDATE_ALIAS = \"private-next-rsc-action-validate\";\nconst RSC_ACTION_PROXY_ALIAS = \"private-next-rsc-server-reference\";\nconst RSC_ACTION_ENCRYPTION_ALIAS = \"private-next-rsc-action-encryption\";\nconst RSC_ACTION_CLIENT_WRAPPER_ALIAS = \"private-next-rsc-action-client-wrapper\";\nconst PUBLIC_DIR_MIDDLEWARE_CONFLICT = `You can not have a '_next' folder inside of your public folder. This conflicts with the internal '/_next' route. https://nextjs.org/docs/messages/public-next-folder-conflict`;\nconst SSG_GET_INITIAL_PROPS_CONFLICT = `You can not use getInitialProps with getStaticProps. To use SSG, please remove your getInitialProps`;\nconst SERVER_PROPS_GET_INIT_PROPS_CONFLICT = `You can not use getInitialProps with getServerSideProps. Please remove getInitialProps.`;\nconst SERVER_PROPS_SSG_CONFLICT = `You can not use getStaticProps or getStaticPaths with getServerSideProps. To use SSG, please remove getServerSideProps`;\nconst STATIC_STATUS_PAGE_GET_INITIAL_PROPS_ERROR = `can not have getInitialProps/getServerSideProps, https://nextjs.org/docs/messages/404-get-initial-props`;\nconst SERVER_PROPS_EXPORT_ERROR = `pages with \\`getServerSideProps\\` can not be exported. See more info here: https://nextjs.org/docs/messages/gssp-export`;\nconst GSP_NO_RETURNED_VALUE = \"Your `getStaticProps` function did not return an object. Did you forget to add a `return`?\";\nconst GSSP_NO_RETURNED_VALUE = \"Your `getServerSideProps` function did not return an object. Did you forget to add a `return`?\";\nconst UNSTABLE_REVALIDATE_RENAME_ERROR = \"The `unstable_revalidate` property is available for general use.\\n\" + \"Please use `revalidate` instead.\";\nconst GSSP_COMPONENT_MEMBER_ERROR = `can not be attached to a page's component and must be exported from the page. See more info here: https://nextjs.org/docs/messages/gssp-component-member`;\nconst NON_STANDARD_NODE_ENV = `You are using a non-standard \"NODE_ENV\" value in your environment. This creates inconsistencies in the project and is strongly advised against. Read more: https://nextjs.org/docs/messages/non-standard-node-env`;\nconst SSG_FALLBACK_EXPORT_ERROR = `Pages with \\`fallback\\` enabled in \\`getStaticPaths\\` can not be exported. See more info here: https://nextjs.org/docs/messages/ssg-fallback-true-export`;\nconst ESLINT_DEFAULT_DIRS = [\n \"app\",\n \"pages\",\n \"components\",\n \"lib\",\n \"src\"\n];\nconst SERVER_RUNTIME = {\n edge: \"edge\",\n experimentalEdge: \"experimental-edge\",\n nodejs: \"nodejs\"\n};\n/**\n * The names of the webpack layers. These layers are the primitives for the\n * webpack chunks.\n */ const WEBPACK_LAYERS_NAMES = {\n /**\n * The layer for the shared code between the client and server bundles.\n */ shared: \"shared\",\n /**\n * React Server Components layer (rsc).\n */ reactServerComponents: \"rsc\",\n /**\n * Server Side Rendering layer for app (ssr).\n */ serverSideRendering: \"ssr\",\n /**\n * The browser client bundle layer for actions.\n */ actionBrowser: \"action-browser\",\n /**\n * The layer for the API routes.\n */ api: \"api\",\n /**\n * The layer for the middleware code.\n */ middleware: \"middleware\",\n /**\n * The layer for the instrumentation hooks.\n */ instrument: \"instrument\",\n /**\n * The layer for assets on the edge.\n */ edgeAsset: \"edge-asset\",\n /**\n * The browser client bundle layer for App directory.\n */ appPagesBrowser: \"app-pages-browser\",\n /**\n * The server bundle layer for metadata routes.\n */ appMetadataRoute: \"app-metadata-route\",\n /**\n * The layer for the server bundle for App Route handlers.\n */ appRouteHandler: \"app-route-handler\"\n};\nconst WEBPACK_LAYERS = {\n ...WEBPACK_LAYERS_NAMES,\n GROUP: {\n serverOnly: [\n WEBPACK_LAYERS_NAMES.reactServerComponents,\n WEBPACK_LAYERS_NAMES.actionBrowser,\n WEBPACK_LAYERS_NAMES.appMetadataRoute,\n WEBPACK_LAYERS_NAMES.appRouteHandler,\n WEBPACK_LAYERS_NAMES.instrument\n ],\n clientOnly: [\n WEBPACK_LAYERS_NAMES.serverSideRendering,\n WEBPACK_LAYERS_NAMES.appPagesBrowser\n ],\n nonClientServerTarget: [\n // middleware and pages api\n WEBPACK_LAYERS_NAMES.middleware,\n WEBPACK_LAYERS_NAMES.api\n ],\n app: [\n WEBPACK_LAYERS_NAMES.reactServerComponents,\n WEBPACK_LAYERS_NAMES.actionBrowser,\n WEBPACK_LAYERS_NAMES.appMetadataRoute,\n WEBPACK_LAYERS_NAMES.appRouteHandler,\n WEBPACK_LAYERS_NAMES.serverSideRendering,\n WEBPACK_LAYERS_NAMES.appPagesBrowser,\n WEBPACK_LAYERS_NAMES.shared,\n WEBPACK_LAYERS_NAMES.instrument\n ]\n }\n};\nconst WEBPACK_RESOURCE_QUERIES = {\n edgeSSREntry: \"__next_edge_ssr_entry__\",\n metadata: \"__next_metadata__\",\n metadataRoute: \"__next_metadata_route__\",\n metadataImageMeta: \"__next_metadata_image_meta__\"\n};\n\n//# sourceMappingURL=constants.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n0 && (module.exports = {\n fromNodeOutgoingHttpHeaders: null,\n normalizeNextQueryParam: null,\n splitCookiesString: null,\n toNodeOutgoingHttpHeaders: null,\n validateURL: null\n});\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n fromNodeOutgoingHttpHeaders: function() {\n return fromNodeOutgoingHttpHeaders;\n },\n normalizeNextQueryParam: function() {\n return normalizeNextQueryParam;\n },\n splitCookiesString: function() {\n return splitCookiesString;\n },\n toNodeOutgoingHttpHeaders: function() {\n return toNodeOutgoingHttpHeaders;\n },\n validateURL: function() {\n return validateURL;\n }\n});\nconst _constants = require(\"../../lib/constants\");\nfunction fromNodeOutgoingHttpHeaders(nodeHeaders) {\n const headers = new Headers();\n for (let [key, value] of Object.entries(nodeHeaders)){\n const values = Array.isArray(value) ? value : [\n value\n ];\n for (let v of values){\n if (typeof v === \"undefined\") continue;\n if (typeof v === \"number\") {\n v = v.toString();\n }\n headers.append(key, v);\n }\n }\n return headers;\n}\nfunction splitCookiesString(cookiesString) {\n var cookiesStrings = [];\n var pos = 0;\n var start;\n var ch;\n var lastComma;\n var nextStart;\n var cookiesSeparatorFound;\n function skipWhitespace() {\n while(pos < cookiesString.length && /\\s/.test(cookiesString.charAt(pos))){\n pos += 1;\n }\n return pos < cookiesString.length;\n }\n function notSpecialChar() {\n ch = cookiesString.charAt(pos);\n return ch !== \"=\" && ch !== \";\" && ch !== \",\";\n }\n while(pos < cookiesString.length){\n start = pos;\n cookiesSeparatorFound = false;\n while(skipWhitespace()){\n ch = cookiesString.charAt(pos);\n if (ch === \",\") {\n // ',' is a cookie separator if we have later first '=', not ';' or ','\n lastComma = pos;\n pos += 1;\n skipWhitespace();\n nextStart = pos;\n while(pos < cookiesString.length && notSpecialChar()){\n pos += 1;\n }\n // currently special character\n if (pos < cookiesString.length && cookiesString.charAt(pos) === \"=\") {\n // we found cookies separator\n cookiesSeparatorFound = true;\n // pos is inside the next cookie, so back up and return it.\n pos = nextStart;\n cookiesStrings.push(cookiesString.substring(start, lastComma));\n start = pos;\n } else {\n // in param ',' or param separator ';',\n // we continue from that comma\n pos = lastComma + 1;\n }\n } else {\n pos += 1;\n }\n }\n if (!cookiesSeparatorFound || pos >= cookiesString.length) {\n cookiesStrings.push(cookiesString.substring(start, cookiesString.length));\n }\n }\n return cookiesStrings;\n}\nfunction toNodeOutgoingHttpHeaders(headers) {\n const nodeHeaders = {};\n const cookies = [];\n if (headers) {\n for (const [key, value] of headers.entries()){\n if (key.toLowerCase() === \"set-cookie\") {\n // We may have gotten a comma joined string of cookies, or multiple\n // set-cookie headers. We need to merge them into one header array\n // to represent all the cookies.\n cookies.push(...splitCookiesString(value));\n nodeHeaders[key] = cookies.length === 1 ? cookies[0] : cookies;\n } else {\n nodeHeaders[key] = value;\n }\n }\n }\n return nodeHeaders;\n}\nfunction validateURL(url) {\n try {\n return String(new URL(String(url)));\n } catch (error) {\n throw new Error(`URL is malformed \"${String(url)}\". Please use only absolute URLs - https://nextjs.org/docs/messages/middleware-relative-urls`, {\n cause: error\n });\n }\n}\nfunction normalizeNextQueryParam(key, onKeyNormalized) {\n const prefixes = [\n _constants.NEXT_QUERY_PARAM_PREFIX,\n _constants.NEXT_INTERCEPTION_MARKER_PREFIX\n ];\n for (const prefix of prefixes){\n if (key !== prefix && key.startsWith(prefix)) {\n const normalizedKey = key.substring(prefix.length);\n onKeyNormalized(normalizedKey);\n }\n }\n}\n\n//# sourceMappingURL=utils.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n0 && (module.exports = {\n PageSignatureError: null,\n RemovedPageError: null,\n RemovedUAError: null\n});\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n PageSignatureError: function() {\n return PageSignatureError;\n },\n RemovedPageError: function() {\n return RemovedPageError;\n },\n RemovedUAError: function() {\n return RemovedUAError;\n }\n});\nclass PageSignatureError extends Error {\n constructor({ page }){\n super(`The middleware \"${page}\" accepts an async API directly with the form:\n \n export function middleware(request, event) {\n return NextResponse.redirect('/new-location')\n }\n \n Read more: https://nextjs.org/docs/messages/middleware-new-signature\n `);\n }\n}\nclass RemovedPageError extends Error {\n constructor(){\n super(`The request.page has been deprecated in favour of \\`URLPattern\\`.\n Read more: https://nextjs.org/docs/messages/middleware-request-page\n `);\n }\n}\nclass RemovedUAError extends Error {\n constructor(){\n super(`The request.ua has been removed in favour of \\`userAgent\\` function.\n Read more: https://nextjs.org/docs/messages/middleware-parse-user-agent\n `);\n }\n}\n\n//# sourceMappingURL=error.js.map","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar src_exports = {};\n__export(src_exports, {\n RequestCookies: () => RequestCookies,\n ResponseCookies: () => ResponseCookies,\n parseCookie: () => parseCookie,\n parseSetCookie: () => parseSetCookie,\n stringifyCookie: () => stringifyCookie\n});\nmodule.exports = __toCommonJS(src_exports);\n\n// src/serialize.ts\nfunction stringifyCookie(c) {\n var _a;\n const attrs = [\n \"path\" in c && c.path && `Path=${c.path}`,\n \"expires\" in c && (c.expires || c.expires === 0) && `Expires=${(typeof c.expires === \"number\" ? new Date(c.expires) : c.expires).toUTCString()}`,\n \"maxAge\" in c && typeof c.maxAge === \"number\" && `Max-Age=${c.maxAge}`,\n \"domain\" in c && c.domain && `Domain=${c.domain}`,\n \"secure\" in c && c.secure && \"Secure\",\n \"httpOnly\" in c && c.httpOnly && \"HttpOnly\",\n \"sameSite\" in c && c.sameSite && `SameSite=${c.sameSite}`,\n \"partitioned\" in c && c.partitioned && \"Partitioned\",\n \"priority\" in c && c.priority && `Priority=${c.priority}`\n ].filter(Boolean);\n const stringified = `${c.name}=${encodeURIComponent((_a = c.value) != null ? _a : \"\")}`;\n return attrs.length === 0 ? stringified : `${stringified}; ${attrs.join(\"; \")}`;\n}\nfunction parseCookie(cookie) {\n const map = /* @__PURE__ */ new Map();\n for (const pair of cookie.split(/; */)) {\n if (!pair)\n continue;\n const splitAt = pair.indexOf(\"=\");\n if (splitAt === -1) {\n map.set(pair, \"true\");\n continue;\n }\n const [key, value] = [pair.slice(0, splitAt), pair.slice(splitAt + 1)];\n try {\n map.set(key, decodeURIComponent(value != null ? value : \"true\"));\n } catch {\n }\n }\n return map;\n}\nfunction parseSetCookie(setCookie) {\n if (!setCookie) {\n return void 0;\n }\n const [[name, value], ...attributes] = parseCookie(setCookie);\n const {\n domain,\n expires,\n httponly,\n maxage,\n path,\n samesite,\n secure,\n partitioned,\n priority\n } = Object.fromEntries(\n attributes.map(([key, value2]) => [key.toLowerCase(), value2])\n );\n const cookie = {\n name,\n value: decodeURIComponent(value),\n domain,\n ...expires && { expires: new Date(expires) },\n ...httponly && { httpOnly: true },\n ...typeof maxage === \"string\" && { maxAge: Number(maxage) },\n path,\n ...samesite && { sameSite: parseSameSite(samesite) },\n ...secure && { secure: true },\n ...priority && { priority: parsePriority(priority) },\n ...partitioned && { partitioned: true }\n };\n return compact(cookie);\n}\nfunction compact(t) {\n const newT = {};\n for (const key in t) {\n if (t[key]) {\n newT[key] = t[key];\n }\n }\n return newT;\n}\nvar SAME_SITE = [\"strict\", \"lax\", \"none\"];\nfunction parseSameSite(string) {\n string = string.toLowerCase();\n return SAME_SITE.includes(string) ? string : void 0;\n}\nvar PRIORITY = [\"low\", \"medium\", \"high\"];\nfunction parsePriority(string) {\n string = string.toLowerCase();\n return PRIORITY.includes(string) ? string : void 0;\n}\nfunction splitCookiesString(cookiesString) {\n if (!cookiesString)\n return [];\n var cookiesStrings = [];\n var pos = 0;\n var start;\n var ch;\n var lastComma;\n var nextStart;\n var cookiesSeparatorFound;\n function skipWhitespace() {\n while (pos < cookiesString.length && /\\s/.test(cookiesString.charAt(pos))) {\n pos += 1;\n }\n return pos < cookiesString.length;\n }\n function notSpecialChar() {\n ch = cookiesString.charAt(pos);\n return ch !== \"=\" && ch !== \";\" && ch !== \",\";\n }\n while (pos < cookiesString.length) {\n start = pos;\n cookiesSeparatorFound = false;\n while (skipWhitespace()) {\n ch = cookiesString.charAt(pos);\n if (ch === \",\") {\n lastComma = pos;\n pos += 1;\n skipWhitespace();\n nextStart = pos;\n while (pos < cookiesString.length && notSpecialChar()) {\n pos += 1;\n }\n if (pos < cookiesString.length && cookiesString.charAt(pos) === \"=\") {\n cookiesSeparatorFound = true;\n pos = nextStart;\n cookiesStrings.push(cookiesString.substring(start, lastComma));\n start = pos;\n } else {\n pos = lastComma + 1;\n }\n } else {\n pos += 1;\n }\n }\n if (!cookiesSeparatorFound || pos >= cookiesString.length) {\n cookiesStrings.push(cookiesString.substring(start, cookiesString.length));\n }\n }\n return cookiesStrings;\n}\n\n// src/request-cookies.ts\nvar RequestCookies = class {\n constructor(requestHeaders) {\n /** @internal */\n this._parsed = /* @__PURE__ */ new Map();\n this._headers = requestHeaders;\n const header = requestHeaders.get(\"cookie\");\n if (header) {\n const parsed = parseCookie(header);\n for (const [name, value] of parsed) {\n this._parsed.set(name, { name, value });\n }\n }\n }\n [Symbol.iterator]() {\n return this._parsed[Symbol.iterator]();\n }\n /**\n * The amount of cookies received from the client\n */\n get size() {\n return this._parsed.size;\n }\n get(...args) {\n const name = typeof args[0] === \"string\" ? args[0] : args[0].name;\n return this._parsed.get(name);\n }\n getAll(...args) {\n var _a;\n const all = Array.from(this._parsed);\n if (!args.length) {\n return all.map(([_, value]) => value);\n }\n const name = typeof args[0] === \"string\" ? args[0] : (_a = args[0]) == null ? void 0 : _a.name;\n return all.filter(([n]) => n === name).map(([_, value]) => value);\n }\n has(name) {\n return this._parsed.has(name);\n }\n set(...args) {\n const [name, value] = args.length === 1 ? [args[0].name, args[0].value] : args;\n const map = this._parsed;\n map.set(name, { name, value });\n this._headers.set(\n \"cookie\",\n Array.from(map).map(([_, value2]) => stringifyCookie(value2)).join(\"; \")\n );\n return this;\n }\n /**\n * Delete the cookies matching the passed name or names in the request.\n */\n delete(names) {\n const map = this._parsed;\n const result = !Array.isArray(names) ? map.delete(names) : names.map((name) => map.delete(name));\n this._headers.set(\n \"cookie\",\n Array.from(map).map(([_, value]) => stringifyCookie(value)).join(\"; \")\n );\n return result;\n }\n /**\n * Delete all the cookies in the cookies in the request.\n */\n clear() {\n this.delete(Array.from(this._parsed.keys()));\n return this;\n }\n /**\n * Format the cookies in the request as a string for logging\n */\n [Symbol.for(\"edge-runtime.inspect.custom\")]() {\n return `RequestCookies ${JSON.stringify(Object.fromEntries(this._parsed))}`;\n }\n toString() {\n return [...this._parsed.values()].map((v) => `${v.name}=${encodeURIComponent(v.value)}`).join(\"; \");\n }\n};\n\n// src/response-cookies.ts\nvar ResponseCookies = class {\n constructor(responseHeaders) {\n /** @internal */\n this._parsed = /* @__PURE__ */ new Map();\n var _a, _b, _c;\n this._headers = responseHeaders;\n const setCookie = (_c = (_b = (_a = responseHeaders.getSetCookie) == null ? void 0 : _a.call(responseHeaders)) != null ? _b : responseHeaders.get(\"set-cookie\")) != null ? _c : [];\n const cookieStrings = Array.isArray(setCookie) ? setCookie : splitCookiesString(setCookie);\n for (const cookieString of cookieStrings) {\n const parsed = parseSetCookie(cookieString);\n if (parsed)\n this._parsed.set(parsed.name, parsed);\n }\n }\n /**\n * {@link https://wicg.github.io/cookie-store/#CookieStore-get CookieStore#get} without the Promise.\n */\n get(...args) {\n const key = typeof args[0] === \"string\" ? args[0] : args[0].name;\n return this._parsed.get(key);\n }\n /**\n * {@link https://wicg.github.io/cookie-store/#CookieStore-getAll CookieStore#getAll} without the Promise.\n */\n getAll(...args) {\n var _a;\n const all = Array.from(this._parsed.values());\n if (!args.length) {\n return all;\n }\n const key = typeof args[0] === \"string\" ? args[0] : (_a = args[0]) == null ? void 0 : _a.name;\n return all.filter((c) => c.name === key);\n }\n has(name) {\n return this._parsed.has(name);\n }\n /**\n * {@link https://wicg.github.io/cookie-store/#CookieStore-set CookieStore#set} without the Promise.\n */\n set(...args) {\n const [name, value, cookie] = args.length === 1 ? [args[0].name, args[0].value, args[0]] : args;\n const map = this._parsed;\n map.set(name, normalizeCookie({ name, value, ...cookie }));\n replace(map, this._headers);\n return this;\n }\n /**\n * {@link https://wicg.github.io/cookie-store/#CookieStore-delete CookieStore#delete} without the Promise.\n */\n delete(...args) {\n const [name, path, domain] = typeof args[0] === \"string\" ? [args[0]] : [args[0].name, args[0].path, args[0].domain];\n return this.set({ name, path, domain, value: \"\", expires: /* @__PURE__ */ new Date(0) });\n }\n [Symbol.for(\"edge-runtime.inspect.custom\")]() {\n return `ResponseCookies ${JSON.stringify(Object.fromEntries(this._parsed))}`;\n }\n toString() {\n return [...this._parsed.values()].map(stringifyCookie).join(\"; \");\n }\n};\nfunction replace(bag, headers) {\n headers.delete(\"set-cookie\");\n for (const [, value] of bag) {\n const serialized = stringifyCookie(value);\n headers.append(\"set-cookie\", serialized);\n }\n}\nfunction normalizeCookie(cookie = { name: \"\", value: \"\" }) {\n if (typeof cookie.expires === \"number\") {\n cookie.expires = new Date(cookie.expires);\n }\n if (cookie.maxAge) {\n cookie.expires = new Date(Date.now() + cookie.maxAge * 1e3);\n }\n if (cookie.path === null || cookie.path === void 0) {\n cookie.path = \"/\";\n }\n return cookie;\n}\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n RequestCookies,\n ResponseCookies,\n parseCookie,\n parseSetCookie,\n stringifyCookie\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n0 && (module.exports = {\n RequestCookies: null,\n ResponseCookies: null,\n stringifyCookie: null\n});\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n RequestCookies: function() {\n return _cookies.RequestCookies;\n },\n ResponseCookies: function() {\n return _cookies.ResponseCookies;\n },\n stringifyCookie: function() {\n return _cookies.stringifyCookie;\n }\n});\nconst _cookies = require(\"next/dist/compiled/@edge-runtime/cookies\");\n\n//# sourceMappingURL=cookies.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n0 && (module.exports = {\n INTERNALS: null,\n NextRequest: null\n});\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n INTERNALS: function() {\n return INTERNALS;\n },\n NextRequest: function() {\n return NextRequest;\n }\n});\nconst _nexturl = require(\"../next-url\");\nconst _utils = require(\"../utils\");\nconst _error = require(\"../error\");\nconst _cookies = require(\"./cookies\");\nconst INTERNALS = Symbol(\"internal request\");\nclass NextRequest extends Request {\n constructor(input, init = {}){\n const url = typeof input !== \"string\" && \"url\" in input ? input.url : String(input);\n (0, _utils.validateURL)(url);\n if (input instanceof Request) super(input, init);\n else super(url, init);\n const nextUrl = new _nexturl.NextURL(url, {\n headers: (0, _utils.toNodeOutgoingHttpHeaders)(this.headers),\n nextConfig: init.nextConfig\n });\n this[INTERNALS] = {\n cookies: new _cookies.RequestCookies(this.headers),\n geo: init.geo || {},\n ip: init.ip,\n nextUrl,\n url: process.env.__NEXT_NO_MIDDLEWARE_URL_NORMALIZE ? url : nextUrl.toString()\n };\n }\n [Symbol.for(\"edge-runtime.inspect.custom\")]() {\n return {\n cookies: this.cookies,\n geo: this.geo,\n ip: this.ip,\n nextUrl: this.nextUrl,\n url: this.url,\n // rest of props come from Request\n bodyUsed: this.bodyUsed,\n cache: this.cache,\n credentials: this.credentials,\n destination: this.destination,\n headers: Object.fromEntries(this.headers),\n integrity: this.integrity,\n keepalive: this.keepalive,\n method: this.method,\n mode: this.mode,\n redirect: this.redirect,\n referrer: this.referrer,\n referrerPolicy: this.referrerPolicy,\n signal: this.signal\n };\n }\n get cookies() {\n return this[INTERNALS].cookies;\n }\n get geo() {\n return this[INTERNALS].geo;\n }\n get ip() {\n return this[INTERNALS].ip;\n }\n get nextUrl() {\n return this[INTERNALS].nextUrl;\n }\n /**\n * @deprecated\n * `page` has been deprecated in favour of `URLPattern`.\n * Read more: https://nextjs.org/docs/messages/middleware-request-page\n */ get page() {\n throw new _error.RemovedPageError();\n }\n /**\n * @deprecated\n * `ua` has been removed in favour of \\`userAgent\\` function.\n * Read more: https://nextjs.org/docs/messages/middleware-parse-user-agent\n */ get ua() {\n throw new _error.RemovedUAError();\n }\n get url() {\n return this[INTERNALS].url;\n }\n}\n\n//# sourceMappingURL=request.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"ReflectAdapter\", {\n enumerable: true,\n get: function() {\n return ReflectAdapter;\n }\n});\nclass ReflectAdapter {\n static get(target, prop, receiver) {\n const value = Reflect.get(target, prop, receiver);\n if (typeof value === \"function\") {\n return value.bind(target);\n }\n return value;\n }\n static set(target, prop, value, receiver) {\n return Reflect.set(target, prop, value, receiver);\n }\n static has(target, prop) {\n return Reflect.has(target, prop);\n }\n static deleteProperty(target, prop) {\n return Reflect.deleteProperty(target, prop);\n }\n}\n\n//# sourceMappingURL=reflect.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"NextResponse\", {\n enumerable: true,\n get: function() {\n return NextResponse;\n }\n});\nconst _cookies = require(\"../../web/spec-extension/cookies\");\nconst _nexturl = require(\"../next-url\");\nconst _utils = require(\"../utils\");\nconst _reflect = require(\"./adapters/reflect\");\nconst _cookies1 = require(\"./cookies\");\nconst INTERNALS = Symbol(\"internal response\");\nconst REDIRECTS = new Set([\n 301,\n 302,\n 303,\n 307,\n 308\n]);\nfunction handleMiddlewareField(init, headers) {\n var _init_request;\n if (init == null ? void 0 : (_init_request = init.request) == null ? void 0 : _init_request.headers) {\n if (!(init.request.headers instanceof Headers)) {\n throw new Error(\"request.headers must be an instance of Headers\");\n }\n const keys = [];\n for (const [key, value] of init.request.headers){\n headers.set(\"x-middleware-request-\" + key, value);\n keys.push(key);\n }\n headers.set(\"x-middleware-override-headers\", keys.join(\",\"));\n }\n}\nclass NextResponse extends Response {\n constructor(body, init = {}){\n super(body, init);\n const headers = this.headers;\n const cookies = new _cookies1.ResponseCookies(headers);\n const cookiesProxy = new Proxy(cookies, {\n get (target, prop, receiver) {\n switch(prop){\n case \"delete\":\n case \"set\":\n {\n return (...args)=>{\n const result = Reflect.apply(target[prop], target, args);\n const newHeaders = new Headers(headers);\n if (result instanceof _cookies1.ResponseCookies) {\n headers.set(\"x-middleware-set-cookie\", result.getAll().map((cookie)=>(0, _cookies.stringifyCookie)(cookie)).join(\",\"));\n }\n handleMiddlewareField(init, newHeaders);\n return result;\n };\n }\n default:\n return _reflect.ReflectAdapter.get(target, prop, receiver);\n }\n }\n });\n this[INTERNALS] = {\n cookies: cookiesProxy,\n url: init.url ? new _nexturl.NextURL(init.url, {\n headers: (0, _utils.toNodeOutgoingHttpHeaders)(headers),\n nextConfig: init.nextConfig\n }) : undefined\n };\n }\n [Symbol.for(\"edge-runtime.inspect.custom\")]() {\n return {\n cookies: this.cookies,\n url: this.url,\n // rest of props come from Response\n body: this.body,\n bodyUsed: this.bodyUsed,\n headers: Object.fromEntries(this.headers),\n ok: this.ok,\n redirected: this.redirected,\n status: this.status,\n statusText: this.statusText,\n type: this.type\n };\n }\n get cookies() {\n return this[INTERNALS].cookies;\n }\n static json(body, init) {\n const response = Response.json(body, init);\n return new NextResponse(response.body, response);\n }\n static redirect(url, init) {\n const status = typeof init === \"number\" ? init : (init == null ? void 0 : init.status) ?? 307;\n if (!REDIRECTS.has(status)) {\n throw new RangeError('Failed to execute \"redirect\" on \"response\": Invalid status code');\n }\n const initObj = typeof init === \"object\" ? init : {};\n const headers = new Headers(initObj == null ? void 0 : initObj.headers);\n headers.set(\"Location\", (0, _utils.validateURL)(url));\n return new NextResponse(null, {\n ...initObj,\n headers,\n status\n });\n }\n static rewrite(destination, init) {\n const headers = new Headers(init == null ? void 0 : init.headers);\n headers.set(\"x-middleware-rewrite\", (0, _utils.validateURL)(destination));\n handleMiddlewareField(init, headers);\n return new NextResponse(null, {\n ...init,\n headers\n });\n }\n static next(init) {\n const headers = new Headers(init == null ? void 0 : init.headers);\n headers.set(\"x-middleware-next\", \"1\");\n handleMiddlewareField(init, headers);\n return new NextResponse(null, {\n ...init,\n headers\n });\n }\n}\n\n//# sourceMappingURL=response.js.map","/**\n * @deprecated ImageResponse moved from \"next/server\" to \"next/og\" since Next.js 14, please import from \"next/og\" instead.\n * Migration with codemods: https://nextjs.org/docs/app/building-your-application/upgrading/codemods#next-og-import\n */ \"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"ImageResponse\", {\n enumerable: true,\n get: function() {\n return ImageResponse;\n }\n});\nfunction ImageResponse() {\n throw new Error('ImageResponse moved from \"next/server\" to \"next/og\" since Next.js 14, please import from \"next/og\" instead');\n}\n\n//# sourceMappingURL=image-response.js.map","(()=>{var i={226:function(i,e){(function(o,a){\"use strict\";var r=\"1.0.35\",t=\"\",n=\"?\",s=\"function\",b=\"undefined\",w=\"object\",l=\"string\",d=\"major\",c=\"model\",u=\"name\",p=\"type\",m=\"vendor\",f=\"version\",h=\"architecture\",v=\"console\",g=\"mobile\",k=\"tablet\",x=\"smarttv\",_=\"wearable\",y=\"embedded\",q=350;var T=\"Amazon\",S=\"Apple\",z=\"ASUS\",N=\"BlackBerry\",A=\"Browser\",C=\"Chrome\",E=\"Edge\",O=\"Firefox\",U=\"Google\",j=\"Huawei\",P=\"LG\",R=\"Microsoft\",M=\"Motorola\",B=\"Opera\",V=\"Samsung\",D=\"Sharp\",I=\"Sony\",W=\"Viera\",F=\"Xiaomi\",G=\"Zebra\",H=\"Facebook\",L=\"Chromium OS\",Z=\"Mac OS\";var extend=function(i,e){var o={};for(var a in i){if(e[a]&&e[a].length%2===0){o[a]=e[a].concat(i[a])}else{o[a]=i[a]}}return o},enumerize=function(i){var e={};for(var o=0;o<i.length;o++){e[i[o].toUpperCase()]=i[o]}return e},has=function(i,e){return typeof i===l?lowerize(e).indexOf(lowerize(i))!==-1:false},lowerize=function(i){return i.toLowerCase()},majorize=function(i){return typeof i===l?i.replace(/[^\\d\\.]/g,t).split(\".\")[0]:a},trim=function(i,e){if(typeof i===l){i=i.replace(/^\\s\\s*/,t);return typeof e===b?i:i.substring(0,q)}};var rgxMapper=function(i,e){var o=0,r,t,n,b,l,d;while(o<e.length&&!l){var c=e[o],u=e[o+1];r=t=0;while(r<c.length&&!l){if(!c[r]){break}l=c[r++].exec(i);if(!!l){for(n=0;n<u.length;n++){d=l[++t];b=u[n];if(typeof b===w&&b.length>0){if(b.length===2){if(typeof b[1]==s){this[b[0]]=b[1].call(this,d)}else{this[b[0]]=b[1]}}else if(b.length===3){if(typeof b[1]===s&&!(b[1].exec&&b[1].test)){this[b[0]]=d?b[1].call(this,d,b[2]):a}else{this[b[0]]=d?d.replace(b[1],b[2]):a}}else if(b.length===4){this[b[0]]=d?b[3].call(this,d.replace(b[1],b[2])):a}}else{this[b]=d?d:a}}}}o+=2}},strMapper=function(i,e){for(var o in e){if(typeof e[o]===w&&e[o].length>0){for(var r=0;r<e[o].length;r++){if(has(e[o][r],i)){return o===n?a:o}}}else if(has(e[o],i)){return o===n?a:o}}return i};var $={\"1.0\":\"/8\",1.2:\"/1\",1.3:\"/3\",\"2.0\":\"/412\",\"2.0.2\":\"/416\",\"2.0.3\":\"/417\",\"2.0.4\":\"/419\",\"?\":\"/\"},X={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\"};var K={browser:[[/\\b(?:crmo|crios)\\/([\\w\\.]+)/i],[f,[u,\"Chrome\"]],[/edg(?:e|ios|a)?\\/([\\w\\.]+)/i],[f,[u,\"Edge\"]],[/(opera mini)\\/([-\\w\\.]+)/i,/(opera [mobiletab]{3,6})\\b.+version\\/([-\\w\\.]+)/i,/(opera)(?:.+version\\/|[\\/ ]+)([\\w\\.]+)/i],[u,f],[/opios[\\/ ]+([\\w\\.]+)/i],[f,[u,B+\" Mini\"]],[/\\bopr\\/([\\w\\.]+)/i],[f,[u,B]],[/(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],[u,f],[/(?:\\buc? ?browser|(?:juc.+)ucweb)[\\/ ]?([\\w\\.]+)/i],[f,[u,\"UC\"+A]],[/microm.+\\bqbcore\\/([\\w\\.]+)/i,/\\bqbcore\\/([\\w\\.]+).+microm/i],[f,[u,\"WeChat(Win) Desktop\"]],[/micromessenger\\/([\\w\\.]+)/i],[f,[u,\"WeChat\"]],[/konqueror\\/([\\w\\.]+)/i],[f,[u,\"Konqueror\"]],[/trident.+rv[: ]([\\w\\.]{1,9})\\b.+like gecko/i],[f,[u,\"IE\"]],[/ya(?:search)?browser\\/([\\w\\.]+)/i],[f,[u,\"Yandex\"]],[/(avast|avg)\\/([\\w\\.]+)/i],[[u,/(.+)/,\"$1 Secure \"+A],f],[/\\bfocus\\/([\\w\\.]+)/i],[f,[u,O+\" Focus\"]],[/\\bopt\\/([\\w\\.]+)/i],[f,[u,B+\" Touch\"]],[/coc_coc\\w+\\/([\\w\\.]+)/i],[f,[u,\"Coc Coc\"]],[/dolfin\\/([\\w\\.]+)/i],[f,[u,\"Dolphin\"]],[/coast\\/([\\w\\.]+)/i],[f,[u,B+\" Coast\"]],[/miuibrowser\\/([\\w\\.]+)/i],[f,[u,\"MIUI \"+A]],[/fxios\\/([-\\w\\.]+)/i],[f,[u,O]],[/\\bqihu|(qi?ho?o?|360)browser/i],[[u,\"360 \"+A]],[/(oculus|samsung|sailfish|huawei)browser\\/([\\w\\.]+)/i],[[u,/(.+)/,\"$1 \"+A],f],[/(comodo_dragon)\\/([\\w\\.]+)/i],[[u,/_/g,\" \"],f],[/(electron)\\/([\\w\\.]+) safari/i,/(tesla)(?: qtcarbrowser|\\/(20\\d\\d\\.[-\\w\\.]+))/i,/m?(qqbrowser|baiduboxapp|2345Explorer)[\\/ ]?([\\w\\.]+)/i],[u,f],[/(metasr)[\\/ ]?([\\w\\.]+)/i,/(lbbrowser)/i,/\\[(linkedin)app\\]/i],[u],[/((?:fban\\/fbios|fb_iab\\/fb4a)(?!.+fbav)|;fbav\\/([\\w\\.]+);)/i],[[u,H],f],[/(kakao(?:talk|story))[\\/ ]([\\w\\.]+)/i,/(naver)\\(.*?(\\d+\\.[\\w\\.]+).*\\)/i,/safari (line)\\/([\\w\\.]+)/i,/\\b(line)\\/([\\w\\.]+)\\/iab/i,/(chromium|instagram)[\\/ ]([-\\w\\.]+)/i],[u,f],[/\\bgsa\\/([\\w\\.]+) .*safari\\//i],[f,[u,\"GSA\"]],[/musical_ly(?:.+app_?version\\/|_)([\\w\\.]+)/i],[f,[u,\"TikTok\"]],[/headlesschrome(?:\\/([\\w\\.]+)| )/i],[f,[u,C+\" Headless\"]],[/ wv\\).+(chrome)\\/([\\w\\.]+)/i],[[u,C+\" WebView\"],f],[/droid.+ version\\/([\\w\\.]+)\\b.+(?:mobile safari|safari)/i],[f,[u,\"Android \"+A]],[/(chrome|omniweb|arora|[tizenoka]{5} ?browser)\\/v?([\\w\\.]+)/i],[u,f],[/version\\/([\\w\\.\\,]+) .*mobile\\/\\w+ (safari)/i],[f,[u,\"Mobile Safari\"]],[/version\\/([\\w(\\.|\\,)]+) .*(mobile ?safari|safari)/i],[f,u],[/webkit.+?(mobile ?safari|safari)(\\/[\\w\\.]+)/i],[u,[f,strMapper,$]],[/(webkit|khtml)\\/([\\w\\.]+)/i],[u,f],[/(navigator|netscape\\d?)\\/([-\\w\\.]+)/i],[[u,\"Netscape\"],f],[/mobile vr; rv:([\\w\\.]+)\\).+firefox/i],[f,[u,O+\" 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],[u,f],[/(cobalt)\\/([\\w\\.]+)/i],[u,[f,/master.|lts./,\"\"]]],cpu:[[/(?:(amd|x(?:(?:86|64)[-_])?|wow|win)64)[;\\)]/i],[[h,\"amd64\"]],[/(ia32(?=;))/i],[[h,lowerize]],[/((?:i[346]|x)86)[;\\)]/i],[[h,\"ia32\"]],[/\\b(aarch64|arm(v?8e?l?|_?64))\\b/i],[[h,\"arm64\"]],[/\\b(arm(?:v[67])?ht?n?[fl]p?)\\b/i],[[h,\"armhf\"]],[/windows (ce|mobile); ppc;/i],[[h,\"arm\"]],[/((?:ppc|powerpc)(?:64)?)(?: mac|;|\\))/i],[[h,/ower/,t,lowerize]],[/(sun4\\w)[;\\)]/i],[[h,\"sparc\"]],[/((?:avr32|ia64(?=;))|68k(?=\\))|\\barm(?=v(?:[1-7]|[5-7]1)l?|;|eabi)|(?=atmel )avr|(?:irix|mips|sparc)(?:64)?\\b|pa-risc)/i],[[h,lowerize]]],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],[c,[m,V],[p,k]],[/\\b((?:s[cgp]h|gt|sm)-\\w+|sc[g-]?[\\d]+a?|galaxy nexus)/i,/samsung[- ]([-\\w]+)/i,/sec-(sgh\\w+)/i],[c,[m,V],[p,g]],[/(?:\\/|\\()(ip(?:hone|od)[\\w, ]*)(?:\\/|;)/i],[c,[m,S],[p,g]],[/\\((ipad);[-\\w\\),; ]+apple/i,/applecoremedia\\/[\\w\\.]+ \\((ipad)/i,/\\b(ipad)\\d\\d?,\\d\\d?[;\\]].+ios/i],[c,[m,S],[p,k]],[/(macintosh);/i],[c,[m,S]],[/\\b(sh-?[altvz]?\\d\\d[a-ekm]?)/i],[c,[m,D],[p,g]],[/\\b((?:ag[rs][23]?|bah2?|sht?|btv)-a?[lw]\\d{2})\\b(?!.+d\\/s)/i],[c,[m,j],[p,k]],[/(?:huawei|honor)([-\\w ]+)[;\\)]/i,/\\b(nexus 6p|\\w{2,4}e?-[atu]?[ln][\\dx][012359c][adn]?)\\b(?!.+d\\/s)/i],[c,[m,j],[p,g]],[/\\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],[[c,/_/g,\" \"],[m,F],[p,g]],[/\\b(mi[-_ ]?(?:pad)(?:[\\w_ ]+))(?: bui|\\))/i],[[c,/_/g,\" \"],[m,F],[p,k]],[/; (\\w+) bui.+ oppo/i,/\\b(cph[12]\\d{3}|p(?:af|c[al]|d\\w|e[ar])[mt]\\d0|x9007|a101op)\\b/i],[c,[m,\"OPPO\"],[p,g]],[/vivo (\\w+)(?: bui|\\))/i,/\\b(v[12]\\d{3}\\w?[at])(?: bui|;)/i],[c,[m,\"Vivo\"],[p,g]],[/\\b(rmx[12]\\d{3})(?: bui|;|\\))/i],[c,[m,\"Realme\"],[p,g]],[/\\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],[c,[m,M],[p,g]],[/\\b(mz60\\d|xoom[2 ]{0,2}) build\\//i],[c,[m,M],[p,k]],[/((?=lg)?[vl]k\\-?\\d{3}) bui| 3\\.[-\\w; ]{10}lg?-([06cv9]{3,4})/i],[c,[m,P],[p,k]],[/(lm(?:-?f100[nv]?|-[\\w\\.]+)(?= bui|\\))|nexus [45])/i,/\\blg[-e;\\/ ]+((?!browser|netcast|android tv)\\w+)/i,/\\blg-?([\\d\\w]+) bui/i],[c,[m,P],[p,g]],[/(ideatab[-\\w ]+)/i,/lenovo ?(s[56]000[-\\w]+|tab(?:[\\w ]+)|yt[-\\d\\w]{6}|tb[-\\d\\w]{6})/i],[c,[m,\"Lenovo\"],[p,k]],[/(?:maemo|nokia).*(n900|lumia \\d+)/i,/nokia[-_ ]?([-\\w\\.]*)/i],[[c,/_/g,\" \"],[m,\"Nokia\"],[p,g]],[/(pixel c)\\b/i],[c,[m,U],[p,k]],[/droid.+; (pixel[\\daxl ]{0,6})(?: bui|\\))/i],[c,[m,U],[p,g]],[/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],[c,[m,I],[p,g]],[/sony tablet [ps]/i,/\\b(?:sony)?sgp\\w+(?: bui|\\))/i],[[c,\"Xperia Tablet\"],[m,I],[p,k]],[/ (kb2005|in20[12]5|be20[12][59])\\b/i,/(?:one)?(?:plus)? (a\\d0\\d\\d)(?: b|\\))/i],[c,[m,\"OnePlus\"],[p,g]],[/(alexa)webm/i,/(kf[a-z]{2}wi|aeo[c-r]{2})( bui|\\))/i,/(kf[a-z]+)( bui|\\)).+silk\\//i],[c,[m,T],[p,k]],[/((?:sd|kf)[0349hijorstuw]+)( bui|\\)).+silk\\//i],[[c,/(.+)/g,\"Fire Phone $1\"],[m,T],[p,g]],[/(playbook);[-\\w\\),; ]+(rim)/i],[c,m,[p,k]],[/\\b((?:bb[a-f]|st[hv])100-\\d)/i,/\\(bb10; (\\w+)/i],[c,[m,N],[p,g]],[/(?:\\b|asus_)(transfo[prime ]{4,10} \\w+|eeepc|slider \\w+|nexus 7|padfone|p00[cj])/i],[c,[m,z],[p,k]],[/ (z[bes]6[027][012][km][ls]|zenfone \\d\\w?)\\b/i],[c,[m,z],[p,g]],[/(nexus 9)/i],[c,[m,\"HTC\"],[p,k]],[/(htc)[-;_ ]{1,2}([\\w ]+(?=\\)| bui)|\\w+)/i,/(zte)[- ]([\\w ]+?)(?: bui|\\/|\\))/i,/(alcatel|geeksphone|nexian|panasonic(?!(?:;|\\.))|sony(?!-bra))[-_ ]?([-\\w]*)/i],[m,[c,/_/g,\" \"],[p,g]],[/droid.+; ([ab][1-7]-?[0178a]\\d\\d?)/i],[c,[m,\"Acer\"],[p,k]],[/droid.+; (m[1-5] note) bui/i,/\\bmz-([-\\w]{2,})/i],[c,[m,\"Meizu\"],[p,g]],[/(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],[m,c,[p,g]],[/(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],[m,c,[p,k]],[/(surface duo)/i],[c,[m,R],[p,k]],[/droid [\\d\\.]+; (fp\\du?)(?: b|\\))/i],[c,[m,\"Fairphone\"],[p,g]],[/(u304aa)/i],[c,[m,\"AT&T\"],[p,g]],[/\\bsie-(\\w*)/i],[c,[m,\"Siemens\"],[p,g]],[/\\b(rct\\w+) b/i],[c,[m,\"RCA\"],[p,k]],[/\\b(venue[\\d ]{2,7}) b/i],[c,[m,\"Dell\"],[p,k]],[/\\b(q(?:mv|ta)\\w+) b/i],[c,[m,\"Verizon\"],[p,k]],[/\\b(?:barnes[& ]+noble |bn[rt])([\\w\\+ ]*) b/i],[c,[m,\"Barnes & Noble\"],[p,k]],[/\\b(tm\\d{3}\\w+) b/i],[c,[m,\"NuVision\"],[p,k]],[/\\b(k88) b/i],[c,[m,\"ZTE\"],[p,k]],[/\\b(nx\\d{3}j) b/i],[c,[m,\"ZTE\"],[p,g]],[/\\b(gen\\d{3}) b.+49h/i],[c,[m,\"Swiss\"],[p,g]],[/\\b(zur\\d{3}) b/i],[c,[m,\"Swiss\"],[p,k]],[/\\b((zeki)?tb.*\\b) b/i],[c,[m,\"Zeki\"],[p,k]],[/\\b([yr]\\d{2}) b/i,/\\b(dragon[- ]+touch |dt)(\\w{5}) b/i],[[m,\"Dragon Touch\"],c,[p,k]],[/\\b(ns-?\\w{0,9}) b/i],[c,[m,\"Insignia\"],[p,k]],[/\\b((nxa|next)-?\\w{0,9}) b/i],[c,[m,\"NextBook\"],[p,k]],[/\\b(xtreme\\_)?(v(1[045]|2[015]|[3469]0|7[05])) b/i],[[m,\"Voice\"],c,[p,g]],[/\\b(lvtel\\-)?(v1[12]) b/i],[[m,\"LvTel\"],c,[p,g]],[/\\b(ph-1) /i],[c,[m,\"Essential\"],[p,g]],[/\\b(v(100md|700na|7011|917g).*\\b) b/i],[c,[m,\"Envizen\"],[p,k]],[/\\b(trio[-\\w\\. ]+) b/i],[c,[m,\"MachSpeed\"],[p,k]],[/\\btu_(1491) b/i],[c,[m,\"Rotor\"],[p,k]],[/(shield[\\w ]+) b/i],[c,[m,\"Nvidia\"],[p,k]],[/(sprint) (\\w+)/i],[m,c,[p,g]],[/(kin\\.[onetw]{3})/i],[[c,/\\./g,\" \"],[m,R],[p,g]],[/droid.+; (cc6666?|et5[16]|mc[239][23]x?|vc8[03]x?)\\)/i],[c,[m,G],[p,k]],[/droid.+; (ec30|ps20|tc[2-8]\\d[kx])\\)/i],[c,[m,G],[p,g]],[/smart-tv.+(samsung)/i],[m,[p,x]],[/hbbtv.+maple;(\\d+)/i],[[c,/^/,\"SmartTV\"],[m,V],[p,x]],[/(nux; netcast.+smarttv|lg (netcast\\.tv-201\\d|android tv))/i],[[m,P],[p,x]],[/(apple) ?tv/i],[m,[c,S+\" TV\"],[p,x]],[/crkey/i],[[c,C+\"cast\"],[m,U],[p,x]],[/droid.+aft(\\w)( bui|\\))/i],[c,[m,T],[p,x]],[/\\(dtv[\\);].+(aquos)/i,/(aquos-tv[\\w ]+)\\)/i],[c,[m,D],[p,x]],[/(bravia[\\w ]+)( bui|\\))/i],[c,[m,I],[p,x]],[/(mitv-\\w{5}) bui/i],[c,[m,F],[p,x]],[/Hbbtv.*(technisat) (.*);/i],[m,c,[p,x]],[/\\b(roku)[\\dx]*[\\)\\/]((?:dvp-)?[\\d\\.]*)/i,/hbbtv\\/\\d+\\.\\d+\\.\\d+ +\\([\\w\\+ ]*; *([\\w\\d][^;]*);([^;]*)/i],[[m,trim],[c,trim],[p,x]],[/\\b(android tv|smart[- ]?tv|opera tv|tv; rv:)\\b/i],[[p,x]],[/(ouya)/i,/(nintendo) ([wids3utch]+)/i],[m,c,[p,v]],[/droid.+; (shield) bui/i],[c,[m,\"Nvidia\"],[p,v]],[/(playstation [345portablevi]+)/i],[c,[m,I],[p,v]],[/\\b(xbox(?: one)?(?!; xbox))[\\); ]/i],[c,[m,R],[p,v]],[/((pebble))app/i],[m,c,[p,_]],[/(watch)(?: ?os[,\\/]|\\d,\\d\\/)[\\d\\.]+/i],[c,[m,S],[p,_]],[/droid.+; (glass) \\d/i],[c,[m,U],[p,_]],[/droid.+; (wt63?0{2,3})\\)/i],[c,[m,G],[p,_]],[/(quest( 2| pro)?)/i],[c,[m,H],[p,_]],[/(tesla)(?: qtcarbrowser|\\/[-\\w\\.]+)/i],[m,[p,y]],[/(aeobc)\\b/i],[c,[m,T],[p,y]],[/droid .+?; ([^;]+?)(?: bui|\\) applew).+? mobile safari/i],[c,[p,g]],[/droid .+?; ([^;]+?)(?: bui|\\) applew).+?(?! mobile) safari/i],[c,[p,k]],[/\\b((tablet|tab)[;\\/]|focus\\/\\d(?!.+mobile))/i],[[p,k]],[/(phone|mobile(?:[;\\/]| [ \\w\\/\\.]*safari)|pda(?=.+windows ce))/i],[[p,g]],[/(android[-\\w\\. ]{0,9});.+buil/i],[c,[m,\"Generic\"]]],engine:[[/windows.+ edge\\/([\\w\\.]+)/i],[f,[u,E+\"HTML\"]],[/webkit\\/537\\.36.+chrome\\/(?!27)([\\w\\.]+)/i],[f,[u,\"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],[u,f],[/rv\\:([\\w\\.]{1,9})\\b.+(gecko)/i],[f,u]],os:[[/microsoft (windows) (vista|xp)/i],[u,f],[/(windows) nt 6\\.2; (arm)/i,/(windows (?:phone(?: os)?|mobile))[\\/ ]?([\\d\\.\\w ]*)/i,/(windows)[\\/ ]?([ntce\\d\\. ]+\\w)(?!.+xbox)/i],[u,[f,strMapper,X]],[/(win(?=3|9|n)|win 9x )([nt\\d\\.]+)/i],[[u,\"Windows\"],[f,strMapper,X]],[/ip[honead]{2,4}\\b(?:.*os ([\\w]+) like mac|; opera)/i,/ios;fbsv\\/([\\d\\.]+)/i,/cfnetwork\\/.+darwin/i],[[f,/_/g,\".\"],[u,\"iOS\"]],[/(mac os x) ?([\\w\\. ]*)/i,/(macintosh|mac_powerpc\\b)(?!.+haiku)/i],[[u,Z],[f,/_/g,\".\"]],[/droid ([\\w\\.]+)\\b.+(android[- ]x86|harmonyos)/i],[f,u],[/(android|webos|qnx|bada|rim tablet os|maemo|meego|sailfish)[-\\/ ]?([\\w\\.]*)/i,/(blackberry)\\w*\\/([\\w\\.]*)/i,/(tizen|kaios)[\\/ ]([\\w\\.]+)/i,/\\((series40);/i],[u,f],[/\\(bb(10);/i],[f,[u,N]],[/(?:symbian ?os|symbos|s60(?=;)|series60)[-\\/ ]?([\\w\\.]*)/i],[f,[u,\"Symbian\"]],[/mozilla\\/[\\d\\.]+ \\((?:mobile|tablet|tv|mobile; [\\w ]+); rv:.+ gecko\\/([\\w\\.]+)/i],[f,[u,O+\" OS\"]],[/web0s;.+rt(tv)/i,/\\b(?:hp)?wos(?:browser)?\\/([\\w\\.]+)/i],[f,[u,\"webOS\"]],[/watch(?: ?os[,\\/]|\\d,\\d\\/)([\\d\\.]+)/i],[f,[u,\"watchOS\"]],[/crkey\\/([\\d\\.]+)/i],[f,[u,C+\"cast\"]],[/(cros) [\\w]+(?:\\)| ([\\w\\.]+)\\b)/i],[[u,L],f],[/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],[u,f],[/(sunos) ?([\\w\\.\\d]*)/i],[[u,\"Solaris\"],f],[/((?:open)?solaris)[-\\/ ]?([\\w\\.]*)/i,/(aix) ((\\d)(?=\\.|\\)| )[\\w\\.])*/i,/\\b(beos|os\\/2|amigaos|morphos|openvms|fuchsia|hp-ux|serenityos)/i,/(unix) ?([\\w\\.]*)/i],[u,f]]};var UAParser=function(i,e){if(typeof i===w){e=i;i=a}if(!(this instanceof UAParser)){return new UAParser(i,e).getResult()}var r=typeof o!==b&&o.navigator?o.navigator:a;var n=i||(r&&r.userAgent?r.userAgent:t);var v=r&&r.userAgentData?r.userAgentData:a;var x=e?extend(K,e):K;var _=r&&r.userAgent==n;this.getBrowser=function(){var i={};i[u]=a;i[f]=a;rgxMapper.call(i,n,x.browser);i[d]=majorize(i[f]);if(_&&r&&r.brave&&typeof r.brave.isBrave==s){i[u]=\"Brave\"}return i};this.getCPU=function(){var i={};i[h]=a;rgxMapper.call(i,n,x.cpu);return i};this.getDevice=function(){var i={};i[m]=a;i[c]=a;i[p]=a;rgxMapper.call(i,n,x.device);if(_&&!i[p]&&v&&v.mobile){i[p]=g}if(_&&i[c]==\"Macintosh\"&&r&&typeof r.standalone!==b&&r.maxTouchPoints&&r.maxTouchPoints>2){i[c]=\"iPad\";i[p]=k}return i};this.getEngine=function(){var i={};i[u]=a;i[f]=a;rgxMapper.call(i,n,x.engine);return i};this.getOS=function(){var i={};i[u]=a;i[f]=a;rgxMapper.call(i,n,x.os);if(_&&!i[u]&&v&&v.platform!=\"Unknown\"){i[u]=v.platform.replace(/chrome os/i,L).replace(/macos/i,Z)}return i};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 n};this.setUA=function(i){n=typeof i===l&&i.length>q?trim(i,q):i;return this};this.setUA(n);return this};UAParser.VERSION=r;UAParser.BROWSER=enumerize([u,f,d]);UAParser.CPU=enumerize([h]);UAParser.DEVICE=enumerize([c,m,p,v,g,x,k,_,y]);UAParser.ENGINE=UAParser.OS=enumerize([u,f]);if(typeof e!==b){if(\"object\"!==b&&i.exports){e=i.exports=UAParser}e.UAParser=UAParser}else{if(typeof define===s&&define.amd){define((function(){return UAParser}))}else if(typeof o!==b){o.UAParser=UAParser}}var Q=typeof o!==b&&(o.jQuery||o.Zepto);if(Q&&!Q.ua){var Y=new UAParser;Q.ua=Y.getResult();Q.ua.get=function(){return Y.getUA()};Q.ua.set=function(i){Y.setUA(i);var e=Y.getResult();for(var o in e){Q.ua[o]=e[o]}}}})(typeof window===\"object\"?window:this)}};var e={};function __nccwpck_require__(o){var a=e[o];if(a!==undefined){return a.exports}var r=e[o]={exports:{}};var t=true;try{i[o].call(r.exports,r,r.exports,__nccwpck_require__);t=false}finally{if(t)delete e[o]}return r.exports}if(typeof __nccwpck_require__!==\"undefined\")__nccwpck_require__.ab=__dirname+\"/\";var o=__nccwpck_require__(226);module.exports=o})();","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n0 && (module.exports = {\n isBot: null,\n userAgent: null,\n userAgentFromString: null\n});\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n isBot: function() {\n return isBot;\n },\n userAgent: function() {\n return userAgent;\n },\n userAgentFromString: function() {\n return userAgentFromString;\n }\n});\nconst _uaparserjs = /*#__PURE__*/ _interop_require_default(require(\"next/dist/compiled/ua-parser-js\"));\nfunction _interop_require_default(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nfunction isBot(input) {\n return /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(input);\n}\nfunction userAgentFromString(input) {\n return {\n ...(0, _uaparserjs.default)(input),\n isBot: input === undefined ? false : isBot(input)\n };\n}\nfunction userAgent({ headers }) {\n return userAgentFromString(headers.get(\"user-agent\") || undefined);\n}\n\n//# sourceMappingURL=user-agent.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"URLPattern\", {\n enumerable: true,\n get: function() {\n return GlobalURLPattern;\n }\n});\nconst GlobalURLPattern = // @ts-expect-error: URLPattern is not available in Node.js\ntypeof URLPattern === \"undefined\" ? undefined : URLPattern;\n\n//# sourceMappingURL=url-pattern.js.map","const serverExports = {\n NextRequest: require('next/dist/server/web/spec-extension/request')\n .NextRequest,\n NextResponse: require('next/dist/server/web/spec-extension/response')\n .NextResponse,\n ImageResponse: require('next/dist/server/web/spec-extension/image-response')\n .ImageResponse,\n userAgentFromString: require('next/dist/server/web/spec-extension/user-agent')\n .userAgentFromString,\n userAgent: require('next/dist/server/web/spec-extension/user-agent')\n .userAgent,\n URLPattern: require('next/dist/server/web/spec-extension/url-pattern')\n .URLPattern,\n}\n\n// https://nodejs.org/api/esm.html#commonjs-namespaces\n// When importing CommonJS modules, the module.exports object is provided as the default export\nmodule.exports = serverExports\n\n// make import { xxx } from 'next/server' work\nexports.NextRequest = serverExports.NextRequest\nexports.NextResponse = serverExports.NextResponse\nexports.ImageResponse = serverExports.ImageResponse\nexports.userAgentFromString = serverExports.userAgentFromString\nexports.userAgent = serverExports.userAgent\nexports.URLPattern = serverExports.URLPattern\n","//NextJs路由处理 适配器\r\nimport { NextRequest, NextResponse } from 'next/server';\r\nimport { FrameworkAdapter, RequestContext, ResponseContext } from '../types/router';\r\nimport { logger } from '../logger';\r\nimport { CONTENT_TYPE_KEY, CONTENT_TYPE_MAP } from '../router';\r\nimport { urlParamToJson } from '../utils';\r\nimport { ICookies } from '../types/http';\r\n\r\nexport class NextJsAdapter implements FrameworkAdapter {\r\n async parseRequest(request: NextRequest): Promise<RequestContext> {\r\n const url = new URL(request.url);\r\n let body: Record<string, any> | undefined;\r\n let formData: FormData | undefined;\r\n if (request.method !== 'GET') {\r\n const contentType = request.headers.get(CONTENT_TYPE_KEY) || '';\r\n logger.debug({ \"content-type\": contentType }, 'Content-Type')\r\n if (contentType.includes(CONTENT_TYPE_MAP.applicationJson)) {\r\n try {\r\n body = await request.json();\r\n } catch {\r\n logger.warn(\"request body is null!\")\r\n }\r\n } else if (contentType.includes(CONTENT_TYPE_MAP.multipartFormData)) {\r\n formData = await request.formData();\r\n } else if (contentType.includes(CONTENT_TYPE_MAP.applicationXwwwFormUrlencoded)) {\r\n const params = await request.text();\r\n body = urlParamToJson(params, ['m']);\r\n }\r\n }\r\n\r\n const headers: Headers = request.headers;\r\n const cookies: Record<string, string> = {};\r\n request.cookies.getAll().forEach(cookie => {\r\n cookies[cookie.name] = cookie.value;\r\n });\r\n logger.debug({ \"body\": body, \"formData\": formData }, \"NextJsAdapter.parseRequest\")\r\n return {\r\n url,\r\n headers,\r\n body,\r\n formData,\r\n cookies,\r\n raw: request,\r\n clone() {\r\n return request.clone()\r\n },\r\n };\r\n }\r\n\r\n createResponse(context: ResponseContext): NextResponse {\r\n const response = NextResponse.json(context.body);\r\n Object.entries(context.cookies).forEach(([name, cookie]) => {\r\n if (typeof cookie === 'object' && cookie.value) {\r\n response.cookies.set(name, cookie.value, cookie.options);\r\n } else if (typeof cookie === 'string') {\r\n response.cookies.set(name, cookie);\r\n }\r\n });\r\n if (context.cleanCookies) {\r\n const cookies: ICookies = {\r\n set(key, value, opts) {\r\n response.cookies.set(key, value, opts);\r\n },\r\n delete(key, opts) {\r\n response.cookies.delete({ ...opts, name: key })\r\n },\r\n }\r\n context.cleanCookies(cookies)\r\n }\r\n return response;\r\n }\r\n\r\n setCookie(response: ResponseContext, name: string, value: string, options?: any): void {\r\n response.cookies[name] = { value, options };\r\n }\r\n\r\n}","import { cleanToken, getServerHttpOpts, getToken, HttpClient, setToken } from \"./http-client\";\r\nimport { logger } from \"./logger\";\r\nimport { HttpToken, IStorage, ResultModel } from \"./types/http\";\r\nimport { FrameworkAdapter, RequestContext, ResponseContext, RouteConfig } from \"./types/router\";\r\nimport { USER_TYPE_MAP } from \"./types/user\";\r\nimport { urlParamToJson } from \"./utils\";\r\nenum API {\r\n login,\r\n logout\r\n}\r\nconst APIMAP: Record<string, string> = {\r\n \"login\": \"login\",\r\n \"logout\": \"logout\",\r\n \"unknown\": \"\"\r\n}\r\nexport const CONTENT_TYPE_KEY = 'Content-Type';\r\nexport const CONTENT_TYPE_MAP = {\r\n \"applicationJson\": \"application/json\",\r\n \"multipartFormData\": \"multipart/form-data\",\r\n \"applicationXwwwFormUrlencoded\": \"application/x-www-form-urlencoded\"\r\n}\r\nexport class HTTPRouter {\r\n private config: RouteConfig;\r\n private http: HttpClient;\r\n private adapter: FrameworkAdapter\r\n constructor({\r\n config,\r\n adapter,\r\n headerStorage\r\n }: Readonly<{\r\n config: RouteConfig,\r\n /**\r\n * 框架适配路由处理器\r\n */\r\n adapter: FrameworkAdapter,\r\n /**\r\n * 这里的存取器应该使用Request.headers.get\r\n */\r\n headerStorage: IStorage,\r\n }>) {\r\n this.config = config;\r\n const httpOpts = getServerHttpOpts(headerStorage);\r\n this.http = new HttpClient({ ...httpOpts, userType: USER_TYPE_MAP.TYPE_C, helloURL: config.helloURL })\r\n this.adapter = adapter;\r\n }\r\n\r\n async handleRequest(rawRequest: any): Promise<any> {\r\n try {\r\n // 解析请求\r\n const request = await this.adapter.parseRequest(rawRequest);\r\n // 处理请求\r\n const responseContext = await this.processRequest(request);\r\n // 框架响应\r\n return this.adapter.createResponse(responseContext);\r\n } catch (ex) {\r\n logger.error({ \"error\": ex }, \"router error\");\r\n const h: Record<string, string> = {};\r\n h[CONTENT_TYPE_KEY] = CONTENT_TYPE_MAP.applicationJson\r\n const errorResponse: ResponseContext = {\r\n status: 500,\r\n headers: h,\r\n cookies: {},\r\n body: {\r\n code: 500,\r\n success: false,\r\n msg: 'Internal server error'\r\n }\r\n };\r\n return this.adapter.createResponse(errorResponse);\r\n }\r\n }\r\n private async processRequest(request: RequestContext): Promise<ResponseContext> {\r\n const searchParams = request.url.searchParams\r\n const m = searchParams.get('m') ?? 'unknown';\r\n const apiMap: Record<string, string> = { ...APIMAP, ...this.config.APIMAP }\r\n const url = apiMap[m];\r\n if (!url || url.length === 0) {\r\n return this.createErrorResponse(404, 'API not found');\r\n }\r\n let token: HttpToken | undefined;\r\n // 检查权限\r\n if (url.startsWith(\"admin/\") || url.startsWith(\"api/\")) {\r\n token = getToken(request.cookies)\r\n logger.debug(token, \"token\")\r\n if (!token || token.username.length === 0 || token.token.length === 0) {\r\n return this.createErrorResponse(409, 'Authentication required');\r\n }\r\n }\r\n logger.debug({ \"hostUrl\": url, \"token\": token }, \"processRequest\")\r\n const copyRequest = request.clone();\r\n const method = copyRequest.method;\r\n if (method === 'GET') {\r\n const params = urlParamToJson(searchParams.toString(), ['m']);\r\n const result = await this.http.get({\r\n url,\r\n data: params,\r\n token\r\n });\r\n return this.createResponse({ \"url\": url, \"result\": result });\r\n } else if (method === 'POST') {\r\n let data: Record<string, any> | undefined;\r\n const contentType = request.headers.get(CONTENT_TYPE_KEY) || '';\r\n\r\n if (contentType.includes(CONTENT_TYPE_MAP.applicationJson) || contentType.includes(CONTENT_TYPE_MAP.applicationXwwwFormUrlencoded)) {\r\n data = request.body;\r\n } else if (contentType.includes(CONTENT_TYPE_MAP.multipartFormData)) {\r\n //处理文件上传表单\r\n const boundaryMatch = contentType.match(/boundary=([^\\s;]+)/);\r\n if (!boundaryMatch) {\r\n return this.createErrorResponse(411, 'Missing boundary in form data');\r\n }\r\n\r\n const buffer = await copyRequest.arrayBuffer();\r\n const boundary = boundaryMatch[1];\r\n data = {\r\n \"boundary\": boundary,\r\n \"buffer\": Buffer.from(buffer)\r\n }\r\n //文件上传柔合表单字段\r\n const formData = request.formData;\r\n if (formData) {\r\n for (const [key, value] of Object.entries(formData)) {\r\n if (key !== 'file') {\r\n data[key] = value;\r\n }\r\n }\r\n }\r\n\r\n } else {\r\n return this.createErrorResponse(410, 'Unsupported content type');\r\n }\r\n const result = await this.http.post({\r\n url,\r\n data,\r\n token,\r\n });\r\n return this.createResponse({ \"url\": url, \"result\": result })\r\n }\r\n return this.createErrorResponse(405, 'Method not allowed, only supported GET or POST');\r\n }\r\n\r\n private createResponse({ url, result }: Readonly<{ url: string, result: ResultModel<any> }>) {\r\n // 创建响应\r\n const h: Record<string, string> = {};\r\n h[CONTENT_TYPE_KEY] = CONTENT_TYPE_MAP.applicationJson;\r\n\r\n const response: ResponseContext = {\r\n status: result.success ? 200 : result.code,\r\n headers: h,\r\n cookies: {},\r\n body: result\r\n };\r\n\r\n if (result.success) {\r\n switch (url) {\r\n case APIMAP[API[API.login]]:\r\n const data = result.data;\r\n setToken(data, response);\r\n break;\r\n case APIMAP[API[API.logout]]:\r\n response.cleanCookies = (cookies) => cleanToken(cookies)\r\n break;\r\n }\r\n }\r\n return response;\r\n }\r\n\r\n private createErrorResponse(code: number, message: string): ResponseContext {\r\n const h: Record<string, string> = {};\r\n h[CONTENT_TYPE_KEY] = CONTENT_TYPE_MAP.applicationJson\r\n return {\r\n status: code,\r\n headers: h,\r\n cookies: {},\r\n body: {\r\n code: code,\r\n success: false,\r\n msg: message\r\n }\r\n };\r\n }\r\n}\r\nexport { NextJsAdapter } from './router-dapter/nextjs'\r\nexport type { RequestContext, ResponseContext, RouteConfig }\r\n","import md5 from \"js-md5\";\r\nimport CryptoJS from 'crypto-js';\r\nimport { isArray, randomString, urlEncode, urlParamToJson } from \"./utils\";\r\nimport {\r\n ClientGetParams,\r\n ClientPostParams,\r\n CSRFToken,\r\n CurWebsite,\r\n ServerHttpOpts,\r\n ClientHttpHeaders,\r\n HttpToken,\r\n ResultModel,\r\n ServerRequestOptions,\r\n ICookies,\r\n IStorage,\r\n ServerHttpOptsMin\r\n} from \"./types/http\";\r\nimport { User, USER_TYPE, USER_TYPE_MAP } from \"./types/user\";\r\nimport { logger } from \"./logger\";\r\nimport { CONTENT_TYPE_KEY, CONTENT_TYPE_MAP, ResponseContext } from \"./router\";\r\n\r\n\r\nconst DEFAULT_LOCALE = 'zh-CN';\r\nconst DEVICE_ID_KEY = \"_device_id_key\";\r\nconst CURRENT_WEBSITE_KEY = \"_current_website_key\"\r\n\r\nconst _GET_ERROR = \"Get request error!\"\r\nconst _POST_ERROR = \"Post request error!\";\r\n\r\nconst COOKIE_NAMES = {\r\n \"IBOOT_DEVICE_ID\": \"dvid\",\r\n \"IBOOT_LANG\": \"lang\",\r\n \"IBOOT_WEBSITE_ID\": \"wid\",\r\n \"IBOOT_WEBSITE_NO\": \"wno\",\r\n \"IBOOT_TOKEN\": \"token\",\r\n \"IBOOT_USER\": \"user\"\r\n}\r\n\r\nconst HEADER_NAMES = {\r\n \"DEVICE_ID\": \"Device-Id\",\r\n \"LANG\": \"Lang\",\r\n \"WEBSITE_ID\": \"Website-Id\",\r\n \"WEBSITE_NO\": \"Website-No\",\r\n}\r\n\r\nconst getClientRequestHeader = (storage: Readonly<IStorage>): ClientHttpHeaders => {\r\n if (!storage.get) {\r\n throw new Error(\"The get method of IStorage has not been implemented.\")\r\n }\r\n const devideId = storage.get(DEVICE_ID_KEY) ?? ''\r\n const json = storage.get(CURRENT_WEBSITE_KEY);\r\n const curWebsite: CurWebsite | null = json != null ? JSON.parse(json) : null;\r\n const header: ClientHttpHeaders = {}\r\n if (devideId.length > 0) {\r\n header['Device-Id'] = devideId\r\n }\r\n if (curWebsite) {\r\n header['Lang'] = curWebsite.language;\r\n if (curWebsite.websiteId) {\r\n header['Website-Id'] = curWebsite.websiteId;\r\n }\r\n if (curWebsite.websiteNo) {\r\n header['Website-No'] = curWebsite.websiteNo\r\n }\r\n }\r\n return header;\r\n};\r\n\r\nexport const setClientRequestHeader = ({ deviceId, website }: Readonly<{ deviceId: string, website?: CurWebsite }>, storage: IStorage): void => {\r\n if (!storage.set) {\r\n throw new Error(\"The set method of IStorage has not been implemented.\")\r\n }\r\n storage.set(DEVICE_ID_KEY, deviceId);\r\n if (website) {\r\n storage.set(CURRENT_WEBSITE_KEY, JSON.stringify(website));\r\n }\r\n}\r\n\r\nconst getBaseUrl = (urlName: string) => {\r\n const baseUrl = process.env.BASE_URL || '/api/services';\r\n return `${baseUrl}?m=${urlName}`\r\n}\r\n\r\nexport const get = async <T>(urlName: string, opts?: ClientGetParams): Promise<ResultModel<T>> => {\r\n let url = getBaseUrl(urlName);\r\n if (opts?.data) {\r\n const params = new URLSearchParams(opts.data);\r\n url += `&${params}`\r\n }\r\n const headers: Record<string, string> = (opts && opts.storage && opts.storage.get) ? getClientRequestHeader(opts.storage) : {}\r\n const heads = opts?.headers;\r\n if (heads) {\r\n for (const field in heads) {\r\n const value = heads[field];\r\n if (value) {\r\n headers[field] = value;\r\n }\r\n }\r\n }\r\n logger.info({\r\n \"url\": url,\r\n \"headers\": headers,\r\n }, \"GET\")\r\n const res = await fetch(url, {\r\n method: 'GET',\r\n headers: headers,\r\n cache: opts?.useCache ? 'force-cache' : 'default'\r\n });\r\n\r\n if (res.ok) {\r\n const headersMap = Object.fromEntries(res.headers.entries());\r\n const result = { ...await res.json(), headers: headersMap };\r\n logger.debug(result, \"GET_RESULT\")\r\n return result\r\n }\r\n const msg = {\r\n code: res.status,\r\n success: false,\r\n msg: res.statusText\r\n }\r\n logger.error(msg);\r\n return msg;\r\n}\r\n\r\nexport const post = async <T>(url: string, opts?: ClientPostParams): Promise<ResultModel<T>> => {\r\n const data = opts?.data ?? {};\r\n const heads = opts?.headers;\r\n let body: string | FormData;\r\n const defaultHeads = (opts && opts.storage && opts.storage.get) ? getClientRequestHeader(opts.storage) : {}\r\n const proxyHeaders = new Headers(defaultHeads);\r\n if (!(data instanceof FormData)) {\r\n body = JSON.stringify(data);\r\n proxyHeaders.set(CONTENT_TYPE_KEY, CONTENT_TYPE_MAP.applicationJson);\r\n } else {\r\n body = data;\r\n }\r\n if (heads) {\r\n for (let field in heads) {\r\n const value = heads[field];\r\n if (value) {\r\n proxyHeaders.set(field, value);\r\n }\r\n }\r\n }\r\n logger.info({\r\n \"url\": url,\r\n \"headers\": proxyHeaders,\r\n }, \"POST\")\r\n const res = await fetch(url, {\r\n method: 'POST',\r\n headers: proxyHeaders,\r\n body: body,\r\n });\r\n if (res.ok) {\r\n const headersMap = Object.fromEntries(res.headers.entries());\r\n const result = { ...await res.json(), headers: headersMap };\r\n logger.debug(result, \"POST_RESULT\")\r\n return result\r\n }\r\n const msg = {\r\n code: res.status,\r\n success: false,\r\n msg: res.statusText,\r\n }\r\n logger.error(msg);\r\n return msg;\r\n}\r\n\r\nexport const iGet = async <T>(url: string, opts?: ClientGetParams): Promise<T | undefined> => {\r\n const res = await get<T>(url, opts);\r\n if (res.success) {\r\n return res.data as T;\r\n }\r\n if (opts?.showError) {\r\n opts.showError(res.msg ?? _GET_ERROR);\r\n return;\r\n }\r\n throw Error(res.msg ?? _GET_ERROR)\r\n}\r\n\r\nexport const iPost = async <T>(url: string, opts?: ClientPostParams): Promise<T | undefined> => {\r\n const res = await post<T>(url, opts);\r\n if (res.success) {\r\n return res.data;\r\n }\r\n if (opts?.showError) {\r\n opts.showError(res.msg ?? _POST_ERROR);\r\n return;\r\n }\r\n throw Error(res.msg ?? _POST_ERROR)\r\n}\r\n\r\nexport const iPostSuccess = async (url: string, opts?: ClientPostParams): Promise<boolean> => {\r\n const res = await post(url, opts);\r\n if (res.success) {\r\n if (opts?.showSuccess) {\r\n opts.showSuccess(res.msg ?? 'SUCCESS')\r\n }\r\n return true;\r\n }\r\n if (opts?.showError) {\r\n opts.showError(res.msg ?? _POST_ERROR);\r\n }\r\n return false;\r\n}\r\n\r\nexport const getServerHttpOpts = (storage: IStorage): ServerHttpOptsMin => {\r\n if (storage.get) {\r\n const deviceId = storage.get(HEADER_NAMES.DEVICE_ID);\r\n const lang = storage.get(HEADER_NAMES.LANG);\r\n const websiteId = storage.get(HEADER_NAMES.WEBSITE_ID);\r\n const websiteNo = storage.get(HEADER_NAMES.WEBSITE_NO);\r\n const result: ServerHttpOpts = {}\r\n if (deviceId && deviceId.length > 0) {\r\n result.deviceId = deviceId;\r\n }\r\n if (lang && lang.length > 0) {\r\n result.lang = lang\r\n }\r\n if (websiteId && websiteId.length > 0) {\r\n result.websiteId = websiteId\r\n }\r\n if (websiteNo && websiteNo.length > 0) {\r\n result.websiteNo = websiteNo\r\n }\r\n return result;\r\n }\r\n throw new Error(\"The get method of IStorage has not been implemented.\")\r\n}\r\n\r\nexport const setServerHttpHeaders = (storage: IStorage, opts: ServerHttpOptsMin): void => {\r\n if (storage.set) {\r\n if (opts.deviceId) {\r\n storage.set(HEADER_NAMES.DEVICE_ID, opts.deviceId)\r\n }\r\n if (opts.lang) {\r\n storage.set(HEADER_NAMES.LANG, opts.lang);\r\n }\r\n if (opts.websiteId) {\r\n storage.set(HEADER_NAMES.WEBSITE_ID, opts.websiteId);\r\n }\r\n if (opts.websiteNo) {\r\n storage.set(HEADER_NAMES.WEBSITE_NO, opts.websiteNo)\r\n }\r\n } else {\r\n throw new Error(\"The set method of IStorage has not been implemented.\")\r\n }\r\n}\r\n\r\nexport const getServerHttpCookies = (cookies: ICookies): ServerHttpOptsMin => {\r\n if (cookies.get) {\r\n const deviceId = cookies.get(COOKIE_NAMES.IBOOT_DEVICE_ID);\r\n const lang = cookies.get(COOKIE_NAMES.IBOOT_LANG);\r\n const websiteId = cookies.get(COOKIE_NAMES.IBOOT_WEBSITE_ID);\r\n const websiteNo = cookies.get(COOKIE_NAMES.IBOOT_WEBSITE_NO);\r\n const result: ServerHttpOpts = {}\r\n if (deviceId && deviceId.length > 0) {\r\n result.deviceId = deviceId;\r\n }\r\n if (lang && lang.length > 0) {\r\n result.lang = lang\r\n }\r\n if (websiteId && websiteId.length > 0) {\r\n result.websiteId = websiteId\r\n }\r\n if (websiteNo && websiteNo.length > 0) {\r\n result.websiteNo = websiteNo\r\n }\r\n return result;\r\n }\r\n throw new Error(\"The get method of ICookies has not been implemented.\")\r\n}\r\n\r\nexport const setServerHttpCookies = (cookies: ICookies, opts: ServerHttpOptsMin): void => {\r\n if (cookies.set) {\r\n if (opts.deviceId) {\r\n cookies.set(COOKIE_NAMES.IBOOT_DEVICE_ID, opts.deviceId)\r\n }\r\n if (opts.lang) {\r\n cookies.set(COOKIE_NAMES.IBOOT_LANG, opts.lang);\r\n }\r\n if (opts.websiteId) {\r\n cookies.set(COOKIE_NAMES.IBOOT_WEBSITE_ID, opts.websiteId);\r\n }\r\n if (opts.websiteNo) {\r\n cookies.set(COOKIE_NAMES.IBOOT_WEBSITE_NO, opts.websiteNo)\r\n }\r\n } else {\r\n throw new Error(\"The set method of ICookies has not been implemented.\")\r\n }\r\n}\r\n\r\nexport const getLoginUser = (cookies: ICookies): User | undefined => {\r\n if (cookies.get) {\r\n const userjson = cookies.get(COOKIE_NAMES.IBOOT_USER)\r\n if (userjson && userjson.length > 0) {\r\n return JSON.parse(userjson);\r\n }\r\n }\r\n return undefined\r\n}\r\n\r\nexport const getToken = (cookies: Record<string, string>): HttpToken | undefined => {\r\n if (cookies.get) {\r\n const userjson = cookies[COOKIE_NAMES.IBOOT_USER];\r\n if (userjson && userjson.length > 0) {\r\n const user = JSON.parse(userjson);\r\n const username = user.username;\r\n const utype = user.userType.toString();\r\n const token = cookies[COOKIE_NAMES.IBOOT_TOKEN];\r\n if (token) {\r\n return {\r\n \"username\": username,\r\n \"utype\": utype,\r\n \"token\": token\r\n }\r\n }\r\n }\r\n }\r\n}\r\n\r\nconst getCookieOpts = () => {\r\n return {\r\n path: '/',\r\n secure: process.env.APP_ENV === 'production',\r\n httpOnly: true,\r\n sameSite: 'strict'\r\n }\r\n}\r\n\r\nconst cleanCookieOpts = {\r\n maxAge: -1, //设置为 -1表示立即过期\r\n httpOnly: true,\r\n path: '/',\r\n}\r\n\r\nexport const setToken = (data: User & { token: string }, res: ResponseContext): void => {\r\n const { id, name, username, nickname, headImg, token, lastLoginTime, deviceId, userType, mustChangePwd } = data;\r\n const loginUser: User = {\r\n id: id,\r\n name: name,\r\n username: username,\r\n nickname: nickname || name,\r\n headImg: headImg,\r\n lastLoginTime: lastLoginTime,\r\n deviceId: deviceId,\r\n userType: userType,\r\n accountType: 0,\r\n needToReview: false,\r\n socketOnline: false,\r\n mustChangePwd: mustChangePwd\r\n };\r\n res.cookies[COOKIE_NAMES.IBOOT_TOKEN] = {\r\n value: token,\r\n options: getCookieOpts()\r\n }\r\n res.cookies[COOKIE_NAMES.IBOOT_USER] = {\r\n value: JSON.stringify(loginUser),\r\n options: getCookieOpts()\r\n }\r\n}\r\n\r\nexport const cleanToken = (cookies: ICookies): void => {\r\n if (!cookies.set) {\r\n throw new Error('cookies set function is undefined')\r\n }\r\n cookies.set(COOKIE_NAMES.IBOOT_TOKEN, '', cleanCookieOpts);\r\n cookies.set(COOKIE_NAMES.IBOOT_USER, '', cleanCookieOpts);\r\n if (!cookies.delete) {\r\n throw new Error('cookies delete function is undefined')\r\n }\r\n cookies.delete(COOKIE_NAMES.IBOOT_TOKEN, cleanCookieOpts);\r\n cookies.delete(COOKIE_NAMES.IBOOT_USER, cleanCookieOpts);\r\n}\r\n\r\nexport class HttpClient {\r\n private readonly baseUrl: string;\r\n private readonly helloMethod: string;\r\n private readonly apiKey: string;\r\n private readonly userType: USER_TYPE;\r\n private readonly userFrom: string;\r\n private readonly deviceId: string;\r\n private readonly version: string = '1';\r\n private readonly lang: string;\r\n private readonly websiteId?: string;\r\n private readonly websiteNo?: string;\r\n constructor(opts: Readonly<ServerHttpOpts>) {\r\n const isProduction = process.env.APP_ENV === 'production';\r\n if (!isProduction) {\r\n logger.warn(\"This is currently a development environment!\")\r\n }\r\n this.baseUrl = process.env.APP_BASEURL!;\r\n this.apiKey = process.env.APP_APIKEY!;\r\n this.userFrom = process.env.APP_USERFROM ?? '1';\r\n\r\n this.helloMethod = opts.helloURL ?? ''\r\n this.userType = opts.userType ?? USER_TYPE_MAP.TYPE_MGT;\r\n this.deviceId = opts.deviceId ?? randomString(10);\r\n this.lang = opts.lang ?? DEFAULT_LOCALE;\r\n this.websiteId = opts.websiteId\r\n this.websiteNo = opts.websiteNo\r\n }\r\n\r\n encrypt(data: string) {\r\n const key = CryptoJS.enc.Utf8.parse(this.apiKey);\r\n return CryptoJS.AES.encrypt(data, key).toString();\r\n }\r\n\r\n decrypt(data: string) {\r\n const key = CryptoJS.enc.Utf8.parse(this.apiKey);\r\n return CryptoJS.AES.decrypt(data, key, {\r\n mode: CryptoJS.mode.ECB,\r\n }).toString(CryptoJS.enc.Utf8);\r\n }\r\n\r\n //eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n private convertUrlParameter(data: Record<string, any>): string {\r\n const p: string[] = [];\r\n for (const o in data) {\r\n let v = data[o];\r\n if (v && typeof v === \"string\") {\r\n v = v.trim();\r\n } else if (v && typeof v === \"object\") {\r\n if (isArray(v)) {\r\n if (v.length === 0) {\r\n continue;\r\n }\r\n for (let i = 0; i < v.length; i++) {\r\n const arr_item = v[i];\r\n for (const item_field in arr_item) {\r\n const item_field_value = arr_item[item_field] ?? undefined;\r\n if (item_field_value) {\r\n if (typeof item_field_value === \"object\") {\r\n if (isArray(item_field_value)) {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n item_field_value.forEach((item1: any, index: number) => {\r\n if (item1) {\r\n for (const f in item1) {\r\n const v = item1[f];\r\n if (v && v.toString().length > 0) {\r\n const s = `[${i.toString()}].${item_field + `[${index.toString()}].${f}`}=${urlEncode(v)}`;\r\n p.push(o + s);\r\n }\r\n }\r\n }\r\n });\r\n }\r\n } else if (item_field_value.toString().length > 0) {\r\n const s = `[${i.toString()}].${item_field}=${urlEncode(item_field_value.toString())}`;\r\n p.push(o + s);\r\n }\r\n }\r\n }\r\n }\r\n } else {\r\n for (const obj in v) {\r\n const oValue = v[obj];\r\n if (oValue != null && oValue != \"\" && oValue.length != 0) {\r\n const s = `.${obj}=${urlEncode(oValue)}`;\r\n p.push(o + s);\r\n }\r\n }\r\n }\r\n continue;\r\n } else if (v && typeof v === \"function\") {\r\n v = null;\r\n }\r\n\r\n if (v != null && v != \"\" && v.length != 0) {\r\n p.push(o + \"=\" + urlEncode(v));\r\n }\r\n }\r\n return (p && p.join(\"&\"));\r\n }\r\n\r\n private async sign(data: Record<string, object | string>): Promise<string> {\r\n //由后台分配\r\n const _apiKey = \"&key=\" + (await this.helloIboot());\r\n const arr: string[] = [];\r\n for (const o in data) {\r\n arr.push(o);\r\n }\r\n arr.sort((a: string, b: string) => {\r\n return a.toLowerCase().localeCompare(b.toLowerCase());\r\n });\r\n const res: string[] = [];\r\n arr.forEach((v: string) => {\r\n let value: object | string = data[v];\r\n if (typeof value === \"object\") {\r\n value = JSON.stringify(value);\r\n }\r\n res.push(v + \"=\" + value);\r\n });\r\n const paramsStr: string = res.join(\"&\");\r\n const str = md5.md5((paramsStr + _apiKey).toLocaleUpperCase());\r\n const logInfo = {\r\n params: paramsStr,\r\n md5: str\r\n }\r\n logger.debug(logInfo, \"API_SIGN\")\r\n return str;\r\n }\r\n\r\n //eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n private assemblyParameter(data?: Record<string, any>, username?: string): Record<string, any> {\r\n const params = data ?? {};\r\n params['timestamp'] = Date.now() + '';\r\n params['echostr'] = randomString(10);\r\n params['version'] = this.version;\r\n params['deviceId'] = this.deviceId;\r\n params['webid'] = this.websiteId;\r\n params['apiKey'] = this.apiKey;\r\n if (username && username.length > 0) {\r\n params['username'] = username;\r\n }\r\n return params;\r\n }\r\n\r\n private async assemblyHeader({ urlParams, token }: Readonly<{ urlParams: string, token?: Readonly<HttpToken> }>) {\r\n const h: Record<string, string> = {\r\n 'Res-Type': 'json',\r\n 'Device-Id': this.deviceId,\r\n 'User-Type': token?.utype.toString() ?? this.userType.toString(),\r\n 'User-From': this.userFrom,\r\n 'Api-Key': this.apiKey\r\n }\r\n h[CONTENT_TYPE_KEY] = CONTENT_TYPE_MAP.applicationXwwwFormUrlencoded;\r\n if (this.lang && this.lang.length > 0) {\r\n h['Lang'] = this.lang\r\n }\r\n if (this.websiteId && this.websiteId.length > 0) {\r\n h['Web-Id'] = this.websiteId\r\n }\r\n if (this.websiteNo && this.websiteNo.length > 0) {\r\n h['Web-No'] = this.websiteNo\r\n }\r\n if (token) {\r\n if (token.token && token.token.length > 0 && token.username && token.username.length > 0) {\r\n h['Authorization'] = token.token;\r\n h['Username'] = token.username;\r\n }\r\n if (token.xcsrf) {\r\n h[token.xcsrf.csrfHeader] = token.xcsrf.csrfToken;\r\n }\r\n }\r\n const data = urlParamToJson(urlParams);\r\n const sign = await this.sign(data);\r\n h['Sign'] = sign\r\n return h;\r\n }\r\n\r\n private async helloIboot(): Promise<string> {\r\n if (this.helloMethod.length <= 0) {\r\n return this.apiKey;\r\n }\r\n const api = this.getApiUrl(this.helloMethod);\r\n const h: Record<string, string> = {\r\n 'Res-Type': 'json',\r\n 'Api-Key': this.apiKey\r\n }\r\n h[CONTENT_TYPE_KEY] = CONTENT_TYPE_MAP.applicationXwwwFormUrlencoded\r\n const logInfo = {\r\n \"url\": api,\r\n \"headers\": h\r\n }\r\n logger.debug(logInfo, \"HELLO\");\r\n const res = await fetch(api, {\r\n method: 'GET',\r\n headers: h,\r\n credentials: 'include',\r\n cache: 'force-cache'\r\n });\r\n if (res.ok) {\r\n const result = await res.json();\r\n logger.debug(result.data, 'HELLO RESULT')\r\n return result.data;\r\n }\r\n throw new Error('hello iBoot error!')\r\n }\r\n\r\n private getApiUrl(url: string): string {\r\n return `${this.baseUrl}/${url}`;\r\n }\r\n\r\n async csrf(): Promise<string | undefined> {\r\n const res = await this.get<CSRFToken>({\r\n url: 'guest/csrf'\r\n });\r\n if (res.success) {\r\n const data = res.data;\r\n if (data) {\r\n return data[\"csrfToken\"].toString();\r\n }\r\n }\r\n return undefined;\r\n }\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n async get<T>({ url, data, token, cache = 'default' }: Readonly<ServerRequestOptions>): Promise<ResultModel<T>> {\r\n const params = this.assemblyParameter(data);\r\n const urlParams = this.convertUrlParameter(params);\r\n const headers = await this.assemblyHeader({ \"urlParams\": urlParams, \"token\": token });\r\n const api = `${this.getApiUrl(url)}?${urlParams.toString()}`\r\n const logInfo = {\r\n \"url\": api,\r\n \"headers\": headers\r\n }\r\n logger.info(logInfo, \"GET\");\r\n const res = await fetch(api, {\r\n \"method\": 'GET',\r\n \"headers\": headers,\r\n \"credentials\": 'include',\r\n \"cache\": cache\r\n });\r\n if (res.ok) {\r\n const headersMap = Object.fromEntries(res.headers.entries());\r\n const result = { ...await res.json(), headers: headersMap };\r\n logger.debug(result, \"GET_RESULT\")\r\n return result;\r\n }\r\n const msg = {\r\n code: res.status,\r\n success: false,\r\n msg: res.statusText\r\n }\r\n logger.error(msg);\r\n return msg;\r\n }\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n async post<T>({ url, data, token, cache = \"default\" }: Readonly<ServerRequestOptions>): Promise<ResultModel<T>> {\r\n const copyData = {...data}\r\n const buffer = copyData.buffer ?? undefined;\r\n const boundary = copyData.boundary ?? undefined;\r\n if (buffer) {\r\n delete copyData.buffer;\r\n }\r\n if (boundary) {\r\n delete copyData.boundary;\r\n }\r\n const params = this.assemblyParameter(copyData);\r\n const urlParams = this.convertUrlParameter(params);\r\n const headers = await this.assemblyHeader({ \"urlParams\": urlParams, \"token\": token });\r\n if (buffer && boundary) {\r\n headers[CONTENT_TYPE_KEY] = `multipart/form-data; boundary=${boundary}`;\r\n }\r\n const api = this.getApiUrl(url);\r\n const logInfo = {\r\n \"url\": api,\r\n \"headers\": headers,\r\n \"params\": params\r\n }\r\n logger.info(logInfo, \"POST\");\r\n const sUrl = buffer ? `${api}?${urlParams}` : api;\r\n const res = await fetch(sUrl, {\r\n \"method\": 'POST',\r\n \"headers\": headers,\r\n \"body\": buffer ? buffer : urlParams,\r\n \"credentials\": 'include',\r\n \"cache\": cache\r\n });\r\n if (res.ok) {\r\n const headersMap = Object.fromEntries(res.headers.entries());\r\n const result = { ...await res.json(), headers: headersMap };\r\n logger.debug(result, \"POST_RESULT\");\r\n return result;\r\n }\r\n const msg = {\r\n code: res.status,\r\n success: false,\r\n msg: res.statusText\r\n }\r\n logger.error(msg);\r\n return msg;\r\n }\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n async stream({ url, data, token }: Readonly<Omit<ServerRequestOptions, 'cache'>>): Promise<Response> {\r\n data = data ? { ...data } : {}\r\n const buffer = data.buffer ?? undefined;\r\n const boundary = data.boundary ?? undefined;\r\n if (buffer) {\r\n delete data.buffer;\r\n }\r\n if (boundary) {\r\n delete data.boundary;\r\n }\r\n const params = this.assemblyParameter(data);\r\n const urlParams = this.convertUrlParameter(params); //new URLSearchParams(params);\r\n\r\n const headers = await this.assemblyHeader({ \"urlParams\": urlParams, \"token\": token });\r\n if (buffer && boundary) {\r\n headers[CONTENT_TYPE_KEY] = `multipart/form-data; boundary=${boundary}`;\r\n }\r\n headers['Connection'] = 'keep-alive';\r\n headers['X-Accel-Buffering'] = 'no'; //防止 Nginx 缓存\r\n headers['Cache-Control'] = 'no-cache';\r\n const api = this.getApiUrl(url)\r\n try {\r\n const url = buffer ? `${api}?${urlParams}` : api;\r\n const logInfo = {\r\n \"url\": api,\r\n \"headers\": headers,\r\n \"params\": params\r\n }\r\n logger.info(logInfo, \"STREAM\");\r\n const res = await fetch(url, {\r\n method: 'POST',\r\n headers: headers,\r\n body: buffer ? buffer : urlParams.toString(),\r\n credentials: 'include'\r\n });\r\n\r\n if (!res.ok) {\r\n throw new Error(`HTTP error! status: ${res.status}`);\r\n }\r\n if (!res.body) {\r\n throw new Error('No response body');\r\n }\r\n const headersMap = Object.fromEntries(res.headers.entries());\r\n return new Response(res.body, {\r\n headers: headersMap\r\n });\r\n } catch (e) {\r\n throw e;\r\n }\r\n }\r\n}"],"names":["ACCOUNT_TYPE_MAP","USER_TYPE_MAP","USER_FORM_MAP","USER_SEX_MAP","stream","PinoPretty","logger","pino","isArray","obj","randomString","len","l","$chars","maxPos","pwd","i","urlParamToJson","urlQueryParams","exclude","result","item","arr","urlEncode","value","dateFormat","dt","fmt","o","k","s","regx","exports","detectDomainLocale","domainItems","hostname","detectedLocale","_item_domain","_item_locales","domainHostname","locale","removeTrailingSlash","route","parsePath","path","hashIndex","queryIndex","hasQuery","addPathPrefix","_parsepath","require$$0","prefix","pathname","query","hash","addPathSuffix","suffix","pathHasPrefix","addLocale","_addpathprefix","_pathhasprefix","require$$1","defaultLocale","ignorePrefix","lower","formatNextPathnameInfo","_removetrailingslash","_addpathsuffix","require$$2","_addlocale","require$$3","info","getHostname","parsed","headers","normalizeLocalePath","locales","pathnameParts","removePathPrefix","withoutPrefix","getNextPathnameInfo","_normalizelocalepath","_removepathprefix","options","_options_nextConfig","basePath","i18n","trailingSlash","pathnameNoDataPrefix","paths","buildId","_result_pathname","NextURL","_detectdomainlocale","_formatnextpathnameinfo","_gethostname","_getnextpathnameinfo","REGEX_LOCALHOST_HOSTNAME","parseURL","url","base","Internal","input","baseOrOpts","opts","_this_Internal_options_nextConfig_i18n","_this_Internal_options_nextConfig","_this_Internal_domainLocale","_this_Internal_options_nextConfig_i18n1","_this_Internal_options_nextConfig1","search","_export","target","all","name","ACTION_SUFFIX","APP_DIR_ALIAS","CACHE_ONE_YEAR","DOT_NEXT_ALIAS","ESLINT_DEFAULT_DIRS","GSP_NO_RETURNED_VALUE","GSSP_COMPONENT_MEMBER_ERROR","GSSP_NO_RETURNED_VALUE","INSTRUMENTATION_HOOK_FILENAME","MIDDLEWARE_FILENAME","MIDDLEWARE_LOCATION_REGEXP","NEXT_BODY_SUFFIX","NEXT_CACHE_IMPLICIT_TAG_ID","NEXT_CACHE_REVALIDATED_TAGS_HEADER","NEXT_CACHE_REVALIDATE_TAG_TOKEN_HEADER","NEXT_CACHE_SOFT_TAGS_HEADER","NEXT_CACHE_SOFT_TAG_MAX_LENGTH","NEXT_CACHE_TAGS_HEADER","NEXT_CACHE_TAG_MAX_ITEMS","NEXT_CACHE_TAG_MAX_LENGTH","NEXT_DATA_SUFFIX","NEXT_INTERCEPTION_MARKER_PREFIX","NEXT_META_SUFFIX","NEXT_QUERY_PARAM_PREFIX","NON_STANDARD_NODE_ENV","PAGES_DIR_ALIAS","PRERENDER_REVALIDATE_HEADER","PRERENDER_REVALIDATE_ONLY_GENERATED_HEADER","PUBLIC_DIR_MIDDLEWARE_CONFLICT","ROOT_DIR_ALIAS","RSC_ACTION_CLIENT_WRAPPER_ALIAS","RSC_ACTION_ENCRYPTION_ALIAS","RSC_ACTION_PROXY_ALIAS","RSC_ACTION_VALIDATE_ALIAS","RSC_MOD_REF_PROXY_ALIAS","RSC_PREFETCH_SUFFIX","RSC_SUFFIX","SERVER_PROPS_EXPORT_ERROR","SERVER_PROPS_GET_INIT_PROPS_CONFLICT","SERVER_PROPS_SSG_CONFLICT","SERVER_RUNTIME","SSG_FALLBACK_EXPORT_ERROR","SSG_GET_INITIAL_PROPS_CONFLICT","STATIC_STATUS_PAGE_GET_INITIAL_PROPS_ERROR","UNSTABLE_REVALIDATE_RENAME_ERROR","WEBPACK_LAYERS","WEBPACK_RESOURCE_QUERIES","WEBPACK_LAYERS_NAMES","fromNodeOutgoingHttpHeaders","normalizeNextQueryParam","splitCookiesString","toNodeOutgoingHttpHeaders","validateURL","_constants","nodeHeaders","key","values","v","cookiesString","cookiesStrings","pos","start","ch","lastComma","nextStart","cookiesSeparatorFound","skipWhitespace","notSpecialChar","cookies","error","onKeyNormalized","prefixes","normalizedKey","PageSignatureError","RemovedPageError","RemovedUAError","page","__defProp","__getOwnPropDesc","__getOwnPropNames","__hasOwnProp","__export","__copyProps","to","from","except","desc","__toCommonJS","mod","src_exports","RequestCookies","ResponseCookies","parseCookie","parseSetCookie","stringifyCookie","c","_a","attrs","stringified","cookie","map","pair","splitAt","setCookie","attributes","domain","expires","httponly","maxage","samesite","secure","partitioned","priority","value2","parseSameSite","parsePriority","compact","t","newT","SAME_SITE","string","PRIORITY","requestHeaders","header","args","_","n","names","responseHeaders","_b","_c","cookieStrings","cookieString","normalizeCookie","replace","bag","serialized","_cookies","INTERNALS","NextRequest","_nexturl","_utils","_error","init","nextUrl","ReflectAdapter","prop","receiver","NextResponse","_reflect","_cookies1","require$$4","REDIRECTS","handleMiddlewareField","_init_request","keys","body","cookiesProxy","newHeaders","response","status","initObj","destination","ImageResponse","e","a","r","w","d","u","p","m","f","h","g","x","y","q","T","S","z","N","A","C","E","O","U","j","P","R","M","B","V","D","I","F","G","H","L","Z","extend","enumerize","has","lowerize","majorize","trim","rgxMapper","b","strMapper","$","X","K","UAParser","Q","Y","__nccwpck_require__","uaParserModule","isBot","userAgent","userAgentFromString","_uaparserjs","_interop_require_default","GlobalURLPattern","serverExports","module","NextJsAdapter","request","formData","contentType","CONTENT_TYPE_KEY","CONTENT_TYPE_MAP","params","context","API","APIMAP","HTTPRouter","config","adapter","headerStorage","httpOpts","getServerHttpOpts","HttpClient","rawRequest","responseContext","ex","errorResponse","searchParams","token","getToken","copyRequest","method","data","boundaryMatch","buffer","setToken","cleanToken","code","message","DEFAULT_LOCALE","DEVICE_ID_KEY","CURRENT_WEBSITE_KEY","_GET_ERROR","_POST_ERROR","COOKIE_NAMES","HEADER_NAMES","getClientRequestHeader","storage","devideId","json","curWebsite","setClientRequestHeader","deviceId","website","getBaseUrl","urlName","get","heads","field","res","headersMap","msg","post","defaultHeads","proxyHeaders","iGet","iPost","iPostSuccess","lang","websiteId","websiteNo","setServerHttpHeaders","getServerHttpCookies","setServerHttpCookies","getLoginUser","userjson","user","username","utype","getCookieOpts","cleanCookieOpts","id","nickname","headImg","lastLoginTime","userType","mustChangePwd","loginUser","CryptoJS","arr_item","item_field","item_field_value","item1","index","oValue","_apiKey","paramsStr","str","md5","logInfo","urlParams","sign","api","cache","copyData","boundary","sUrl"],"mappings":"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","x_google_ignoreList":[3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28]}
|