wcz-test 6.20.0 → 6.22.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. package/dist/{DialogsHooks-Bi8dZoyu.js → DialogsContext-DMZRefiY.js} +3 -35
  2. package/dist/DialogsContext-DMZRefiY.js.map +1 -0
  3. package/dist/DialogsHooks-DBK6rBoU.js +37 -0
  4. package/dist/DialogsHooks-DBK6rBoU.js.map +1 -0
  5. package/dist/{FileHooks-hWKTwLCr.js → FileHooks-BM2Oyvh6.js} +2 -3
  6. package/dist/FileHooks-BM2Oyvh6.js.map +1 -0
  7. package/dist/{RouterListItemButton-CHS7rofI.js → RouterListItemButton-Vj6OoqkV.js} +2 -2
  8. package/dist/{RouterListItemButton-CHS7rofI.js.map → RouterListItemButton-Vj6OoqkV.js.map} +1 -1
  9. package/dist/UseHook-DB7btKDE.js +11 -0
  10. package/dist/UseHook-DB7btKDE.js.map +1 -0
  11. package/dist/client.d.ts +0 -705
  12. package/dist/client.js +2 -4
  13. package/dist/client.js.map +1 -1
  14. package/dist/components.js +4 -3
  15. package/dist/components.js.map +1 -1
  16. package/dist/hooks.d.ts +15 -0
  17. package/dist/hooks.js +5 -3
  18. package/dist/hooks.js.map +1 -1
  19. package/dist/index.d.ts +2 -2
  20. package/dist/index.js +145 -54
  21. package/dist/index.js.map +1 -1
  22. package/dist/models.d.ts +0 -9
  23. package/dist/queries.js +2 -3
  24. package/dist/queries.js.map +1 -1
  25. package/dist/server.d.ts +0 -36
  26. package/dist/server.js +1 -8732
  27. package/dist/server.js.map +1 -1
  28. package/dist/{utils-DKyKGba7.js → utils-CKW5pi6k.js} +21 -2
  29. package/dist/utils-CKW5pi6k.js.map +1 -0
  30. package/dist/utils.js +1 -1
  31. package/package.json +117 -120
  32. package/dist/DialogsHooks-Bi8dZoyu.js.map +0 -1
  33. package/dist/FileHooks-hWKTwLCr.js.map +0 -1
  34. package/dist/auth-client-B6cIXYDV.js +0 -1417
  35. package/dist/auth-client-B6cIXYDV.js.map +0 -1
  36. package/dist/env-CoxTjaDr.js +0 -27
  37. package/dist/env-CoxTjaDr.js.map +0 -1
  38. package/dist/error-BhAKg8LX-X0sdNXNa.js +0 -195
  39. package/dist/error-BhAKg8LX-X0sdNXNa.js.map +0 -1
  40. package/dist/server-mxQ3s5dx-CC81W42s.js +0 -644
  41. package/dist/server-mxQ3s5dx-CC81W42s.js.map +0 -1
  42. package/dist/utils-DKyKGba7.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"server-mxQ3s5dx-CC81W42s.js","sources":["../node_modules/better-auth/dist/server-mxQ3s5dx.mjs"],"sourcesContent":["import { defu } from \"defu\";\nimport { AsyncLocalStorage } from \"node:async_hooks\";\nimport nodeCrypto from \"node:crypto\";\n\n//#region ../../node_modules/.pnpm/cookie-es@1.2.2/node_modules/cookie-es/dist/index.mjs\nfunction parse(str, options) {\n\tif (typeof str !== \"string\") throw new TypeError(\"argument str must be a string\");\n\tconst obj = {};\n\tconst opt = options || {};\n\tconst dec = opt.decode || decode$1;\n\tlet index = 0;\n\twhile (index < str.length) {\n\t\tconst eqIdx = str.indexOf(\"=\", index);\n\t\tif (eqIdx === -1) break;\n\t\tlet endIdx = str.indexOf(\";\", index);\n\t\tif (endIdx === -1) endIdx = str.length;\n\t\telse if (endIdx < eqIdx) {\n\t\t\tindex = str.lastIndexOf(\";\", eqIdx - 1) + 1;\n\t\t\tcontinue;\n\t\t}\n\t\tconst key = str.slice(index, eqIdx).trim();\n\t\tif (opt?.filter && !opt?.filter(key)) {\n\t\t\tindex = endIdx + 1;\n\t\t\tcontinue;\n\t\t}\n\t\tif (void 0 === obj[key]) {\n\t\t\tlet val = str.slice(eqIdx + 1, endIdx).trim();\n\t\t\tif (val.codePointAt(0) === 34) val = val.slice(1, -1);\n\t\t\tobj[key] = tryDecode(val, dec);\n\t\t}\n\t\tindex = endIdx + 1;\n\t}\n\treturn obj;\n}\nfunction decode$1(str) {\n\treturn str.includes(\"%\") ? decodeURIComponent(str) : str;\n}\nfunction tryDecode(str, decode2) {\n\ttry {\n\t\treturn decode2(str);\n\t} catch {\n\t\treturn str;\n\t}\n}\nconst fieldContentRegExp = /^[\\u0009\\u0020-\\u007E\\u0080-\\u00FF]+$/;\nfunction serialize(name, value, options) {\n\tconst opt = options || {};\n\tconst enc = opt.encode || encodeURIComponent;\n\tif (typeof enc !== \"function\") throw new TypeError(\"option encode is invalid\");\n\tif (!fieldContentRegExp.test(name)) throw new TypeError(\"argument name is invalid\");\n\tconst encodedValue = enc(value);\n\tif (encodedValue && !fieldContentRegExp.test(encodedValue)) throw new TypeError(\"argument val is invalid\");\n\tlet str = name + \"=\" + encodedValue;\n\tif (void 0 !== opt.maxAge && opt.maxAge !== null) {\n\t\tconst maxAge = opt.maxAge - 0;\n\t\tif (Number.isNaN(maxAge) || !Number.isFinite(maxAge)) throw new TypeError(\"option maxAge is invalid\");\n\t\tstr += \"; Max-Age=\" + Math.floor(maxAge);\n\t}\n\tif (opt.domain) {\n\t\tif (!fieldContentRegExp.test(opt.domain)) throw new TypeError(\"option domain is invalid\");\n\t\tstr += \"; Domain=\" + opt.domain;\n\t}\n\tif (opt.path) {\n\t\tif (!fieldContentRegExp.test(opt.path)) throw new TypeError(\"option path is invalid\");\n\t\tstr += \"; Path=\" + opt.path;\n\t}\n\tif (opt.expires) {\n\t\tif (!isDate(opt.expires) || Number.isNaN(opt.expires.valueOf())) throw new TypeError(\"option expires is invalid\");\n\t\tstr += \"; Expires=\" + opt.expires.toUTCString();\n\t}\n\tif (opt.httpOnly) str += \"; HttpOnly\";\n\tif (opt.secure) str += \"; Secure\";\n\tif (opt.priority) switch (typeof opt.priority === \"string\" ? opt.priority.toLowerCase() : opt.priority) {\n\t\tcase \"low\":\n\t\t\tstr += \"; Priority=Low\";\n\t\t\tbreak;\n\t\tcase \"medium\":\n\t\t\tstr += \"; Priority=Medium\";\n\t\t\tbreak;\n\t\tcase \"high\":\n\t\t\tstr += \"; Priority=High\";\n\t\t\tbreak;\n\t\tdefault: throw new TypeError(\"option priority is invalid\");\n\t}\n\tif (opt.sameSite) switch (typeof opt.sameSite === \"string\" ? opt.sameSite.toLowerCase() : opt.sameSite) {\n\t\tcase true:\n\t\t\tstr += \"; SameSite=Strict\";\n\t\t\tbreak;\n\t\tcase \"lax\":\n\t\t\tstr += \"; SameSite=Lax\";\n\t\t\tbreak;\n\t\tcase \"strict\":\n\t\t\tstr += \"; SameSite=Strict\";\n\t\t\tbreak;\n\t\tcase \"none\":\n\t\t\tstr += \"; SameSite=None\";\n\t\t\tbreak;\n\t\tdefault: throw new TypeError(\"option sameSite is invalid\");\n\t}\n\tif (opt.partitioned) str += \"; Partitioned\";\n\treturn str;\n}\nfunction isDate(val) {\n\treturn Object.prototype.toString.call(val) === \"[object Date]\" || val instanceof Date;\n}\n\n//#endregion\n//#region ../../node_modules/.pnpm/ufo@1.6.1/node_modules/ufo/dist/index.mjs\nconst r = String.fromCharCode;\nconst PLUS_RE = /\\+/g;\nfunction decode(text = \"\") {\n\ttry {\n\t\treturn decodeURIComponent(\"\" + text);\n\t} catch {\n\t\treturn \"\" + text;\n\t}\n}\nfunction decodeQueryKey(text) {\n\treturn decode(text.replace(PLUS_RE, \" \"));\n}\nfunction decodeQueryValue(text) {\n\treturn decode(text.replace(PLUS_RE, \" \"));\n}\nfunction parseQuery(parametersString = \"\") {\n\tconst object = /* @__PURE__ */ Object.create(null);\n\tif (parametersString[0] === \"?\") parametersString = parametersString.slice(1);\n\tfor (const parameter of parametersString.split(\"&\")) {\n\t\tconst s = parameter.match(/([^=]+)=?(.*)/) || [];\n\t\tif (s.length < 2) continue;\n\t\tconst key = decodeQueryKey(s[1]);\n\t\tif (key === \"__proto__\" || key === \"constructor\") continue;\n\t\tconst value = decodeQueryValue(s[2] || \"\");\n\t\tif (object[key] === void 0) object[key] = value;\n\t\telse if (Array.isArray(object[key])) object[key].push(value);\n\t\telse object[key] = [object[key], value];\n\t}\n\treturn object;\n}\nconst PROTOCOL_STRICT_REGEX = /^[\\s\\w\\0+.-]{2,}:([/\\\\]{1,2})/;\nconst PROTOCOL_REGEX = /^[\\s\\w\\0+.-]{2,}:([/\\\\]{2})?/;\nconst PROTOCOL_RELATIVE_REGEX = /^([/\\\\]\\s*){2,}[^/\\\\]/;\nfunction hasProtocol(inputString, opts = {}) {\n\tif (typeof opts === \"boolean\") opts = { acceptRelative: opts };\n\tif (opts.strict) return PROTOCOL_STRICT_REGEX.test(inputString);\n\treturn PROTOCOL_REGEX.test(inputString) || (opts.acceptRelative ? PROTOCOL_RELATIVE_REGEX.test(inputString) : false);\n}\nfunction getQuery$2(input) {\n\treturn parseQuery(parseURL(input).search);\n}\nconst protocolRelative = Symbol.for(\"ufo:protocolRelative\");\nfunction parseURL(input = \"\", defaultProto) {\n\tconst _specialProtoMatch = input.match(/^[\\s\\0]*(blob:|data:|javascript:|vbscript:)(.*)/i);\n\tif (_specialProtoMatch) {\n\t\tconst [, _proto, _pathname = \"\"] = _specialProtoMatch;\n\t\treturn {\n\t\t\tprotocol: _proto.toLowerCase(),\n\t\t\tpathname: _pathname,\n\t\t\thref: _proto + _pathname,\n\t\t\tauth: \"\",\n\t\t\thost: \"\",\n\t\t\tsearch: \"\",\n\t\t\thash: \"\"\n\t\t};\n\t}\n\tif (!hasProtocol(input, { acceptRelative: true })) return defaultProto ? parseURL(defaultProto + input) : parsePath(input);\n\tconst [, protocol = \"\", auth, hostAndPath = \"\"] = input.replace(/\\\\/g, \"/\").match(/^[\\s\\0]*([\\w+.-]{2,}:)?\\/\\/([^/@]+@)?(.*)/) || [];\n\tlet [, host = \"\", path = \"\"] = hostAndPath.match(/([^#/?]*)(.*)?/) || [];\n\tif (protocol === \"file:\") path = path.replace(/\\/(?=[A-Za-z]:)/, \"\");\n\tconst { pathname, search, hash } = parsePath(path);\n\treturn {\n\t\tprotocol: protocol.toLowerCase(),\n\t\tauth: auth ? auth.slice(0, Math.max(0, auth.length - 1)) : \"\",\n\t\thost,\n\t\tpathname,\n\t\tsearch,\n\t\thash,\n\t\t[protocolRelative]: !protocol\n\t};\n}\nfunction parsePath(input = \"\") {\n\tconst [pathname = \"\", search = \"\", hash = \"\"] = (input.match(/([^#?]*)(\\?[^#]*)?(#.*)?/) || []).splice(1);\n\treturn {\n\t\tpathname,\n\t\tsearch,\n\t\thash\n\t};\n}\n\n//#endregion\n//#region ../../node_modules/.pnpm/ohash@1.1.6/node_modules/ohash/dist/shared/ohash.BvSMZzli.mjs\nconst defaults$1 = Object.freeze({\n\tignoreUnknown: false,\n\trespectType: false,\n\trespectFunctionNames: false,\n\trespectFunctionProperties: false,\n\tunorderedObjects: true,\n\tunorderedArrays: false,\n\tunorderedSets: false,\n\texcludeKeys: void 0,\n\texcludeValues: void 0,\n\treplacer: void 0\n});\nfunction objectHash(object, options) {\n\tif (options) options = {\n\t\t...defaults$1,\n\t\t...options\n\t};\n\telse options = defaults$1;\n\tconst hasher = createHasher(options);\n\thasher.dispatch(object);\n\treturn hasher.toString();\n}\nconst defaultPrototypesKeys = Object.freeze([\n\t\"prototype\",\n\t\"__proto__\",\n\t\"constructor\"\n]);\nfunction createHasher(options) {\n\tlet buff = \"\";\n\tlet context = /* @__PURE__ */ new Map();\n\tconst write = (str) => {\n\t\tbuff += str;\n\t};\n\treturn {\n\t\ttoString() {\n\t\t\treturn buff;\n\t\t},\n\t\tgetContext() {\n\t\t\treturn context;\n\t\t},\n\t\tdispatch(value) {\n\t\t\tif (options.replacer) value = options.replacer(value);\n\t\t\treturn this[value === null ? \"null\" : typeof value](value);\n\t\t},\n\t\tobject(object) {\n\t\t\tif (object && typeof object.toJSON === \"function\") return this.object(object.toJSON());\n\t\t\tconst objString = Object.prototype.toString.call(object);\n\t\t\tlet objType = \"\";\n\t\t\tconst objectLength = objString.length;\n\t\t\tif (objectLength < 10) objType = \"unknown:[\" + objString + \"]\";\n\t\t\telse objType = objString.slice(8, objectLength - 1);\n\t\t\tobjType = objType.toLowerCase();\n\t\t\tlet objectNumber = null;\n\t\t\tif ((objectNumber = context.get(object)) === void 0) context.set(object, context.size);\n\t\t\telse return this.dispatch(\"[CIRCULAR:\" + objectNumber + \"]\");\n\t\t\tif (typeof Buffer !== \"undefined\" && Buffer.isBuffer && Buffer.isBuffer(object)) {\n\t\t\t\twrite(\"buffer:\");\n\t\t\t\treturn write(object.toString(\"utf8\"));\n\t\t\t}\n\t\t\tif (objType !== \"object\" && objType !== \"function\" && objType !== \"asyncfunction\") {\n\t\t\t\tif (this[objType]) this[objType](object);\n\t\t\t\telse if (!options.ignoreUnknown) this.unkown(object, objType);\n\t\t\t} else {\n\t\t\t\tlet keys = Object.keys(object);\n\t\t\t\tif (options.unorderedObjects) keys = keys.sort();\n\t\t\t\tlet extraKeys = [];\n\t\t\t\tif (options.respectType !== false && !isNativeFunction(object)) extraKeys = defaultPrototypesKeys;\n\t\t\t\tif (options.excludeKeys) {\n\t\t\t\t\tkeys = keys.filter((key) => {\n\t\t\t\t\t\treturn !options.excludeKeys(key);\n\t\t\t\t\t});\n\t\t\t\t\textraKeys = extraKeys.filter((key) => {\n\t\t\t\t\t\treturn !options.excludeKeys(key);\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\twrite(\"object:\" + (keys.length + extraKeys.length) + \":\");\n\t\t\t\tconst dispatchForKey = (key) => {\n\t\t\t\t\tthis.dispatch(key);\n\t\t\t\t\twrite(\":\");\n\t\t\t\t\tif (!options.excludeValues) this.dispatch(object[key]);\n\t\t\t\t\twrite(\",\");\n\t\t\t\t};\n\t\t\t\tfor (const key of keys) dispatchForKey(key);\n\t\t\t\tfor (const key of extraKeys) dispatchForKey(key);\n\t\t\t}\n\t\t},\n\t\tarray(arr, unordered) {\n\t\t\tunordered = unordered === void 0 ? options.unorderedArrays !== false : unordered;\n\t\t\twrite(\"array:\" + arr.length + \":\");\n\t\t\tif (!unordered || arr.length <= 1) {\n\t\t\t\tfor (const entry of arr) this.dispatch(entry);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst contextAdditions = /* @__PURE__ */ new Map();\n\t\t\tconst entries = arr.map((entry) => {\n\t\t\t\tconst hasher = createHasher(options);\n\t\t\t\thasher.dispatch(entry);\n\t\t\t\tfor (const [key, value] of hasher.getContext()) contextAdditions.set(key, value);\n\t\t\t\treturn hasher.toString();\n\t\t\t});\n\t\t\tcontext = contextAdditions;\n\t\t\tentries.sort();\n\t\t\treturn this.array(entries, false);\n\t\t},\n\t\tdate(date) {\n\t\t\treturn write(\"date:\" + date.toJSON());\n\t\t},\n\t\tsymbol(sym) {\n\t\t\treturn write(\"symbol:\" + sym.toString());\n\t\t},\n\t\tunkown(value, type) {\n\t\t\twrite(type);\n\t\t\tif (!value) return;\n\t\t\twrite(\":\");\n\t\t\tif (value && typeof value.entries === \"function\") return this.array(Array.from(value.entries()), true);\n\t\t},\n\t\terror(err) {\n\t\t\treturn write(\"error:\" + err.toString());\n\t\t},\n\t\tboolean(bool) {\n\t\t\treturn write(\"bool:\" + bool);\n\t\t},\n\t\tstring(string) {\n\t\t\twrite(\"string:\" + string.length + \":\");\n\t\t\twrite(string);\n\t\t},\n\t\tfunction(fn) {\n\t\t\twrite(\"fn:\");\n\t\t\tif (isNativeFunction(fn)) this.dispatch(\"[native]\");\n\t\t\telse this.dispatch(fn.toString());\n\t\t\tif (options.respectFunctionNames !== false) this.dispatch(\"function-name:\" + String(fn.name));\n\t\t\tif (options.respectFunctionProperties) this.object(fn);\n\t\t},\n\t\tnumber(number) {\n\t\t\treturn write(\"number:\" + number);\n\t\t},\n\t\txml(xml) {\n\t\t\treturn write(\"xml:\" + xml.toString());\n\t\t},\n\t\tnull() {\n\t\t\treturn write(\"Null\");\n\t\t},\n\t\tundefined() {\n\t\t\treturn write(\"Undefined\");\n\t\t},\n\t\tregexp(regex) {\n\t\t\treturn write(\"regex:\" + regex.toString());\n\t\t},\n\t\tuint8array(arr) {\n\t\t\twrite(\"uint8array:\");\n\t\t\treturn this.dispatch(Array.prototype.slice.call(arr));\n\t\t},\n\t\tuint8clampedarray(arr) {\n\t\t\twrite(\"uint8clampedarray:\");\n\t\t\treturn this.dispatch(Array.prototype.slice.call(arr));\n\t\t},\n\t\tint8array(arr) {\n\t\t\twrite(\"int8array:\");\n\t\t\treturn this.dispatch(Array.prototype.slice.call(arr));\n\t\t},\n\t\tuint16array(arr) {\n\t\t\twrite(\"uint16array:\");\n\t\t\treturn this.dispatch(Array.prototype.slice.call(arr));\n\t\t},\n\t\tint16array(arr) {\n\t\t\twrite(\"int16array:\");\n\t\t\treturn this.dispatch(Array.prototype.slice.call(arr));\n\t\t},\n\t\tuint32array(arr) {\n\t\t\twrite(\"uint32array:\");\n\t\t\treturn this.dispatch(Array.prototype.slice.call(arr));\n\t\t},\n\t\tint32array(arr) {\n\t\t\twrite(\"int32array:\");\n\t\t\treturn this.dispatch(Array.prototype.slice.call(arr));\n\t\t},\n\t\tfloat32array(arr) {\n\t\t\twrite(\"float32array:\");\n\t\t\treturn this.dispatch(Array.prototype.slice.call(arr));\n\t\t},\n\t\tfloat64array(arr) {\n\t\t\twrite(\"float64array:\");\n\t\t\treturn this.dispatch(Array.prototype.slice.call(arr));\n\t\t},\n\t\tarraybuffer(arr) {\n\t\t\twrite(\"arraybuffer:\");\n\t\t\treturn this.dispatch(new Uint8Array(arr));\n\t\t},\n\t\turl(url) {\n\t\t\treturn write(\"url:\" + url.toString());\n\t\t},\n\t\tmap(map) {\n\t\t\twrite(\"map:\");\n\t\t\tconst arr = [...map];\n\t\t\treturn this.array(arr, options.unorderedSets !== false);\n\t\t},\n\t\tset(set) {\n\t\t\twrite(\"set:\");\n\t\t\tconst arr = [...set];\n\t\t\treturn this.array(arr, options.unorderedSets !== false);\n\t\t},\n\t\tfile(file) {\n\t\t\twrite(\"file:\");\n\t\t\treturn this.dispatch([\n\t\t\t\tfile.name,\n\t\t\t\tfile.size,\n\t\t\t\tfile.type,\n\t\t\t\tfile.lastModfied\n\t\t\t]);\n\t\t},\n\t\tblob() {\n\t\t\tif (options.ignoreUnknown) return write(\"[blob]\");\n\t\t\tthrow new Error(\"Hashing Blob objects is currently not supported\\nUse \\\"options.replacer\\\" or \\\"options.ignoreUnknown\\\"\\n\");\n\t\t},\n\t\tdomwindow() {\n\t\t\treturn write(\"domwindow\");\n\t\t},\n\t\tbigint(number) {\n\t\t\treturn write(\"bigint:\" + number.toString());\n\t\t},\n\t\tprocess() {\n\t\t\treturn write(\"process\");\n\t\t},\n\t\ttimer() {\n\t\t\treturn write(\"timer\");\n\t\t},\n\t\tpipe() {\n\t\t\treturn write(\"pipe\");\n\t\t},\n\t\ttcp() {\n\t\t\treturn write(\"tcp\");\n\t\t},\n\t\tudp() {\n\t\t\treturn write(\"udp\");\n\t\t},\n\t\ttty() {\n\t\t\treturn write(\"tty\");\n\t\t},\n\t\tstatwatcher() {\n\t\t\treturn write(\"statwatcher\");\n\t\t},\n\t\tsecurecontext() {\n\t\t\treturn write(\"securecontext\");\n\t\t},\n\t\tconnection() {\n\t\t\treturn write(\"connection\");\n\t\t},\n\t\tzlib() {\n\t\t\treturn write(\"zlib\");\n\t\t},\n\t\tcontext() {\n\t\t\treturn write(\"context\");\n\t\t},\n\t\tnodescript() {\n\t\t\treturn write(\"nodescript\");\n\t\t},\n\t\thttpparser() {\n\t\t\treturn write(\"httpparser\");\n\t\t},\n\t\tdataview() {\n\t\t\treturn write(\"dataview\");\n\t\t},\n\t\tsignal() {\n\t\t\treturn write(\"signal\");\n\t\t},\n\t\tfsevent() {\n\t\t\treturn write(\"fsevent\");\n\t\t},\n\t\ttlswrap() {\n\t\t\treturn write(\"tlswrap\");\n\t\t}\n\t};\n}\nconst nativeFunc = \"[native code] }\";\nconst nativeFuncLength = 15;\nfunction isNativeFunction(f) {\n\tif (typeof f !== \"function\") return false;\n\treturn Function.prototype.toString.call(f).slice(-nativeFuncLength) === nativeFunc;\n}\n\n//#endregion\n//#region ../../node_modules/.pnpm/destr@2.0.5/node_modules/destr/dist/index.mjs\nconst suspectProtoRx = /\"(?:_|\\\\u0{2}5[Ff]){2}(?:p|\\\\u0{2}70)(?:r|\\\\u0{2}72)(?:o|\\\\u0{2}6[Ff])(?:t|\\\\u0{2}74)(?:o|\\\\u0{2}6[Ff])(?:_|\\\\u0{2}5[Ff]){2}\"\\s*:/;\nconst suspectConstructorRx = /\"(?:c|\\\\u0063)(?:o|\\\\u006[Ff])(?:n|\\\\u006[Ee])(?:s|\\\\u0073)(?:t|\\\\u0074)(?:r|\\\\u0072)(?:u|\\\\u0075)(?:c|\\\\u0063)(?:t|\\\\u0074)(?:o|\\\\u006[Ff])(?:r|\\\\u0072)\"\\s*:/;\nconst JsonSigRx = /^\\s*[\"[{]|^\\s*-?\\d{1,16}(\\.\\d{1,17})?([Ee][+-]?\\d+)?\\s*$/;\nfunction jsonParseTransform(key, value) {\n\tif (key === \"__proto__\" || key === \"constructor\" && value && typeof value === \"object\" && \"prototype\" in value) {\n\t\twarnKeyDropped(key);\n\t\treturn;\n\t}\n\treturn value;\n}\nfunction warnKeyDropped(key) {\n\tconsole.warn(`[destr] Dropping \"${key}\" key to prevent prototype pollution.`);\n}\nfunction destr(value, options = {}) {\n\tif (typeof value !== \"string\") return value;\n\tif (value[0] === \"\\\"\" && value[value.length - 1] === \"\\\"\" && value.indexOf(\"\\\\\") === -1) return value.slice(1, -1);\n\tconst _value = value.trim();\n\tif (_value.length <= 9) switch (_value.toLowerCase()) {\n\t\tcase \"true\": return true;\n\t\tcase \"false\": return false;\n\t\tcase \"undefined\": return;\n\t\tcase \"null\": return null;\n\t\tcase \"nan\": return NaN;\n\t\tcase \"infinity\": return Number.POSITIVE_INFINITY;\n\t\tcase \"-infinity\": return Number.NEGATIVE_INFINITY;\n\t}\n\tif (!JsonSigRx.test(value)) {\n\t\tif (options.strict) throw new SyntaxError(\"[destr] Invalid JSON\");\n\t\treturn value;\n\t}\n\ttry {\n\t\tif (suspectProtoRx.test(value) || suspectConstructorRx.test(value)) {\n\t\t\tif (options.strict) throw new Error(\"[destr] Possible prototype pollution\");\n\t\t\treturn JSON.parse(value, jsonParseTransform);\n\t\t}\n\t\treturn JSON.parse(value);\n\t} catch (error) {\n\t\tif (options.strict) throw error;\n\t\treturn value;\n\t}\n}\n\n//#endregion\n//#region ../../node_modules/.pnpm/uncrypto@0.1.3/node_modules/uncrypto/dist/crypto.node.mjs\nconst subtle = nodeCrypto.webcrypto?.subtle || {};\nconst randomUUID = () => {\n\treturn nodeCrypto.randomUUID();\n};\nconst getRandomValues = (array) => {\n\treturn nodeCrypto.webcrypto.getRandomValues(array);\n};\nconst _crypto = {\n\trandomUUID,\n\tgetRandomValues,\n\tsubtle\n};\n\n//#endregion\n//#region ../../node_modules/.pnpm/iron-webcrypto@1.2.1/node_modules/iron-webcrypto/dist/index.js\nvar alphabetByEncoding = {};\nvar alphabetByValue = Array.from({ length: 64 });\nfor (let i = 0, start = \"A\".charCodeAt(0), limit = \"Z\".charCodeAt(0); i + start <= limit; i++) {\n\tconst char = String.fromCharCode(i + start);\n\talphabetByEncoding[char] = i;\n\talphabetByValue[i] = char;\n}\nfor (let i = 0, start = \"a\".charCodeAt(0), limit = \"z\".charCodeAt(0); i + start <= limit; i++) {\n\tconst char = String.fromCharCode(i + start);\n\tconst index = i + 26;\n\talphabetByEncoding[char] = index;\n\talphabetByValue[index] = char;\n}\nfor (let i = 0; i < 10; i++) {\n\talphabetByEncoding[i.toString(10)] = i + 52;\n\tconst char = i.toString(10);\n\tconst index = i + 52;\n\talphabetByEncoding[char] = index;\n\talphabetByValue[index] = char;\n}\nalphabetByEncoding[\"-\"] = 62;\nalphabetByValue[62] = \"-\";\nalphabetByEncoding[\"_\"] = 63;\nalphabetByValue[63] = \"_\";\nvar bitsPerLetter = 6;\nvar bitsPerByte = 8;\nvar maxLetterValue = 63;\nvar stringToBuffer = (value) => {\n\treturn new TextEncoder().encode(value);\n};\nvar bufferToString = (value) => {\n\treturn new TextDecoder().decode(value);\n};\nvar base64urlDecode = (_input) => {\n\tconst input = _input + \"=\".repeat((4 - _input.length % 4) % 4);\n\tlet totalByteLength = input.length / 4 * 3;\n\tif (input.endsWith(\"==\")) totalByteLength -= 2;\n\telse if (input.endsWith(\"=\")) totalByteLength--;\n\tconst out = new ArrayBuffer(totalByteLength);\n\tconst dataView = new DataView(out);\n\tfor (let i = 0; i < input.length; i += 4) {\n\t\tlet bits = 0;\n\t\tlet bitLength = 0;\n\t\tfor (let j = i, limit = i + 3; j <= limit; j++) if (input[j] === \"=\") bits >>= bitsPerLetter;\n\t\telse {\n\t\t\tif (!(input[j] in alphabetByEncoding)) throw new TypeError(`Invalid character ${input[j]} in base64 string.`);\n\t\t\tbits |= alphabetByEncoding[input[j]] << (limit - j) * bitsPerLetter;\n\t\t\tbitLength += bitsPerLetter;\n\t\t}\n\t\tconst chunkOffset = i / 4 * 3;\n\t\tbits >>= bitLength % bitsPerByte;\n\t\tconst byteLength = Math.floor(bitLength / bitsPerByte);\n\t\tfor (let k = 0; k < byteLength; k++) {\n\t\t\tconst offset = (byteLength - k - 1) * bitsPerByte;\n\t\t\tdataView.setUint8(chunkOffset + k, (bits & 255 << offset) >> offset);\n\t\t}\n\t}\n\treturn new Uint8Array(out);\n};\nvar base64urlEncode = (_input) => {\n\tconst input = typeof _input === \"string\" ? stringToBuffer(_input) : _input;\n\tlet str = \"\";\n\tfor (let i = 0; i < input.length; i += 3) {\n\t\tlet bits = 0;\n\t\tlet bitLength = 0;\n\t\tfor (let j = i, limit = Math.min(i + 3, input.length); j < limit; j++) {\n\t\t\tbits |= input[j] << (limit - j - 1) * bitsPerByte;\n\t\t\tbitLength += bitsPerByte;\n\t\t}\n\t\tconst bitClusterCount = Math.ceil(bitLength / bitsPerLetter);\n\t\tbits <<= bitClusterCount * bitsPerLetter - bitLength;\n\t\tfor (let k = 1; k <= bitClusterCount; k++) {\n\t\t\tconst offset = (bitClusterCount - k) * bitsPerLetter;\n\t\t\tstr += alphabetByValue[(bits & maxLetterValue << offset) >> offset];\n\t\t}\n\t}\n\treturn str;\n};\nvar defaults = {\n\tencryption: {\n\t\tsaltBits: 256,\n\t\talgorithm: \"aes-256-cbc\",\n\t\titerations: 1,\n\t\tminPasswordlength: 32\n\t},\n\tintegrity: {\n\t\tsaltBits: 256,\n\t\talgorithm: \"sha256\",\n\t\titerations: 1,\n\t\tminPasswordlength: 32\n\t},\n\tttl: 0,\n\ttimestampSkewSec: 60,\n\tlocaltimeOffsetMsec: 0\n};\nvar clone = (options) => ({\n\t...options,\n\tencryption: { ...options.encryption },\n\tintegrity: { ...options.integrity }\n});\nvar algorithms = {\n\t\"aes-128-ctr\": {\n\t\tkeyBits: 128,\n\t\tivBits: 128,\n\t\tname: \"AES-CTR\"\n\t},\n\t\"aes-256-cbc\": {\n\t\tkeyBits: 256,\n\t\tivBits: 128,\n\t\tname: \"AES-CBC\"\n\t},\n\tsha256: {\n\t\tkeyBits: 256,\n\t\tname: \"SHA-256\"\n\t}\n};\nvar macPrefix = \"Fe26.2\";\nvar randomBytes = (_crypto$1, size) => {\n\tconst bytes = new Uint8Array(size);\n\t_crypto$1.getRandomValues(bytes);\n\treturn bytes;\n};\nvar randomBits = (_crypto$1, bits) => {\n\tif (bits < 1) throw new Error(\"Invalid random bits count\");\n\treturn randomBytes(_crypto$1, Math.ceil(bits / 8));\n};\nvar pbkdf2 = async (_crypto$1, password, salt, iterations, keyLength, hash) => {\n\tconst passwordBuffer = stringToBuffer(password);\n\tconst importedKey = await _crypto$1.subtle.importKey(\"raw\", passwordBuffer, { name: \"PBKDF2\" }, false, [\"deriveBits\"]);\n\tconst params = {\n\t\tname: \"PBKDF2\",\n\t\thash,\n\t\tsalt: stringToBuffer(salt),\n\t\titerations\n\t};\n\treturn await _crypto$1.subtle.deriveBits(params, importedKey, keyLength * 8);\n};\nvar generateKey = async (_crypto$1, password, options) => {\n\tvar _a;\n\tif (!(password == null ? void 0 : password.length)) throw new Error(\"Empty password\");\n\tif (options == null || typeof options !== \"object\") throw new Error(\"Bad options\");\n\tif (!(options.algorithm in algorithms)) throw new Error(`Unknown algorithm: ${options.algorithm}`);\n\tconst algorithm = algorithms[options.algorithm];\n\tconst result = {};\n\tconst hmac = (_a = options.hmac) != null ? _a : false;\n\tconst id = hmac ? {\n\t\tname: \"HMAC\",\n\t\thash: algorithm.name\n\t} : { name: algorithm.name };\n\tconst usage = hmac ? [\"sign\", \"verify\"] : [\"encrypt\", \"decrypt\"];\n\tif (typeof password === \"string\") {\n\t\tif (password.length < options.minPasswordlength) throw new Error(`Password string too short (min ${options.minPasswordlength} characters required)`);\n\t\tlet { salt = \"\" } = options;\n\t\tif (!salt) {\n\t\t\tconst { saltBits = 0 } = options;\n\t\t\tif (!saltBits) throw new Error(\"Missing salt and saltBits options\");\n\t\t\tconst randomSalt = randomBits(_crypto$1, saltBits);\n\t\t\tsalt = [...new Uint8Array(randomSalt)].map((x) => x.toString(16).padStart(2, \"0\")).join(\"\");\n\t\t}\n\t\tconst derivedKey = await pbkdf2(_crypto$1, password, salt, options.iterations, algorithm.keyBits / 8, \"SHA-1\");\n\t\tresult.key = await _crypto$1.subtle.importKey(\"raw\", derivedKey, id, false, usage);\n\t\tresult.salt = salt;\n\t} else {\n\t\tif (password.length < algorithm.keyBits / 8) throw new Error(\"Key buffer (password) too small\");\n\t\tresult.key = await _crypto$1.subtle.importKey(\"raw\", password, id, false, usage);\n\t\tresult.salt = \"\";\n\t}\n\tif (options.iv) result.iv = options.iv;\n\telse if (\"ivBits\" in algorithm) result.iv = randomBits(_crypto$1, algorithm.ivBits);\n\treturn result;\n};\nvar getEncryptParams = (algorithm, key, data) => {\n\treturn [\n\t\talgorithm === \"aes-128-ctr\" ? {\n\t\t\tname: \"AES-CTR\",\n\t\t\tcounter: key.iv,\n\t\t\tlength: 128\n\t\t} : {\n\t\t\tname: \"AES-CBC\",\n\t\t\tiv: key.iv\n\t\t},\n\t\tkey.key,\n\t\ttypeof data === \"string\" ? stringToBuffer(data) : data\n\t];\n};\nvar encrypt = async (_crypto$1, password, options, data) => {\n\tconst key = await generateKey(_crypto$1, password, options);\n\tconst encrypted = await _crypto$1.subtle.encrypt(...getEncryptParams(options.algorithm, key, data));\n\treturn {\n\t\tencrypted: new Uint8Array(encrypted),\n\t\tkey\n\t};\n};\nvar decrypt = async (_crypto$1, password, options, data) => {\n\tconst key = await generateKey(_crypto$1, password, options);\n\tconst decrypted = await _crypto$1.subtle.decrypt(...getEncryptParams(options.algorithm, key, data));\n\treturn bufferToString(new Uint8Array(decrypted));\n};\nvar hmacWithPassword = async (_crypto$1, password, options, data) => {\n\tconst key = await generateKey(_crypto$1, password, {\n\t\t...options,\n\t\thmac: true\n\t});\n\tconst textBuffer = stringToBuffer(data);\n\tconst signed = await _crypto$1.subtle.sign({ name: \"HMAC\" }, key.key, textBuffer);\n\treturn {\n\t\tdigest: base64urlEncode(new Uint8Array(signed)),\n\t\tsalt: key.salt\n\t};\n};\nvar normalizePassword = (password) => {\n\tif (typeof password === \"string\" || password instanceof Uint8Array) return {\n\t\tencryption: password,\n\t\tintegrity: password\n\t};\n\tif (\"secret\" in password) return {\n\t\tid: password.id,\n\t\tencryption: password.secret,\n\t\tintegrity: password.secret\n\t};\n\treturn {\n\t\tid: password.id,\n\t\tencryption: password.encryption,\n\t\tintegrity: password.integrity\n\t};\n};\nvar seal = async (_crypto$1, object, password, options) => {\n\tif (!password) throw new Error(\"Empty password\");\n\tconst opts = clone(options);\n\tconst now = Date.now() + (opts.localtimeOffsetMsec || 0);\n\tconst objectString = JSON.stringify(object);\n\tconst { id = \"\", encryption, integrity } = normalizePassword(password);\n\tif (id && !/^\\w+$/.test(id)) throw new Error(\"Invalid password id\");\n\tconst { encrypted, key } = await encrypt(_crypto$1, encryption, opts.encryption, objectString);\n\tconst encryptedB64 = base64urlEncode(new Uint8Array(encrypted));\n\tconst iv = base64urlEncode(key.iv);\n\tconst expiration = opts.ttl ? now + opts.ttl : \"\";\n\tconst macBaseString = `${macPrefix}*${id}*${key.salt}*${iv}*${encryptedB64}*${expiration}`;\n\tconst mac = await hmacWithPassword(_crypto$1, integrity, opts.integrity, macBaseString);\n\treturn `${macBaseString}*${mac.salt}*${mac.digest}`;\n};\nvar fixedTimeComparison = (a, b) => {\n\tlet mismatch = a.length === b.length ? 0 : 1;\n\tif (mismatch) b = a;\n\tfor (let i = 0; i < a.length; i += 1) mismatch |= a.charCodeAt(i) ^ b.charCodeAt(i);\n\treturn mismatch === 0;\n};\nvar unseal = async (_crypto$1, sealed, password, options) => {\n\tif (!password) throw new Error(\"Empty password\");\n\tconst opts = clone(options);\n\tconst now = Date.now() + (opts.localtimeOffsetMsec || 0);\n\tconst parts = sealed.split(\"*\");\n\tif (parts.length !== 8) throw new Error(\"Incorrect number of sealed components\");\n\tconst prefix = parts[0];\n\tlet passwordId = parts[1];\n\tconst encryptionSalt = parts[2];\n\tconst encryptionIv = parts[3];\n\tconst encryptedB64 = parts[4];\n\tconst expiration = parts[5];\n\tconst hmacSalt = parts[6];\n\tconst hmac = parts[7];\n\tconst macBaseString = `${prefix}*${passwordId}*${encryptionSalt}*${encryptionIv}*${encryptedB64}*${expiration}`;\n\tif (macPrefix !== prefix) throw new Error(\"Wrong mac prefix\");\n\tif (expiration) {\n\t\tif (!/^\\d+$/.test(expiration)) throw new Error(\"Invalid expiration\");\n\t\tif (Number.parseInt(expiration, 10) <= now - opts.timestampSkewSec * 1e3) throw new Error(\"Expired seal\");\n\t}\n\tlet pass = \"\";\n\tpasswordId = passwordId || \"default\";\n\tif (typeof password === \"string\" || password instanceof Uint8Array) pass = password;\n\telse if (passwordId in password) pass = password[passwordId];\n\telse throw new Error(`Cannot find password: ${passwordId}`);\n\tpass = normalizePassword(pass);\n\tconst macOptions = opts.integrity;\n\tmacOptions.salt = hmacSalt;\n\tif (!fixedTimeComparison((await hmacWithPassword(_crypto$1, pass.integrity, macOptions, macBaseString)).digest, hmac)) throw new Error(\"Bad hmac value\");\n\tconst encrypted = base64urlDecode(encryptedB64);\n\tconst decryptOptions = opts.encryption;\n\tdecryptOptions.salt = encryptionSalt;\n\tdecryptOptions.iv = base64urlDecode(encryptionIv);\n\tconst decrypted = await decrypt(_crypto$1, pass.encryption, decryptOptions, encrypted);\n\tif (decrypted) return JSON.parse(decrypted);\n\treturn null;\n};\n\n//#endregion\n//#region ../../node_modules/.pnpm/h3@1.13.0/node_modules/h3/dist/index.mjs\nfunction hasProp(obj, prop) {\n\ttry {\n\t\treturn prop in obj;\n\t} catch {\n\t\treturn false;\n\t}\n}\nvar __defProp$2 = Object.defineProperty;\nvar __defNormalProp$2 = (obj, key, value) => key in obj ? __defProp$2(obj, key, {\n\tenumerable: true,\n\tconfigurable: true,\n\twritable: true,\n\tvalue\n}) : obj[key] = value;\nvar __publicField$2 = (obj, key, value) => {\n\t__defNormalProp$2(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\n\treturn value;\n};\nvar H3Error = class extends Error {\n\tconstructor(message, opts = {}) {\n\t\tsuper(message, opts);\n\t\t__publicField$2(this, \"statusCode\", 500);\n\t\t__publicField$2(this, \"fatal\", false);\n\t\t__publicField$2(this, \"unhandled\", false);\n\t\t__publicField$2(this, \"statusMessage\");\n\t\t__publicField$2(this, \"data\");\n\t\t__publicField$2(this, \"cause\");\n\t\tif (opts.cause && !this.cause) this.cause = opts.cause;\n\t}\n\ttoJSON() {\n\t\tconst obj = {\n\t\t\tmessage: this.message,\n\t\t\tstatusCode: sanitizeStatusCode(this.statusCode, 500)\n\t\t};\n\t\tif (this.statusMessage) obj.statusMessage = sanitizeStatusMessage(this.statusMessage);\n\t\tif (this.data !== void 0) obj.data = this.data;\n\t\treturn obj;\n\t}\n};\n__publicField$2(H3Error, \"__h3_error__\", true);\nfunction createError(input) {\n\tif (typeof input === \"string\") return new H3Error(input);\n\tif (isError(input)) return input;\n\tconst err = new H3Error(input.message ?? input.statusMessage ?? \"\", { cause: input.cause || input });\n\tif (hasProp(input, \"stack\")) try {\n\t\tObject.defineProperty(err, \"stack\", { get() {\n\t\t\treturn input.stack;\n\t\t} });\n\t} catch {\n\t\ttry {\n\t\t\terr.stack = input.stack;\n\t\t} catch {}\n\t}\n\tif (input.data) err.data = input.data;\n\tif (input.statusCode) err.statusCode = sanitizeStatusCode(input.statusCode, err.statusCode);\n\telse if (input.status) err.statusCode = sanitizeStatusCode(input.status, err.statusCode);\n\tif (input.statusMessage) err.statusMessage = input.statusMessage;\n\telse if (input.statusText) err.statusMessage = input.statusText;\n\tif (err.statusMessage) {\n\t\tconst originalMessage = err.statusMessage;\n\t\tif (sanitizeStatusMessage(err.statusMessage) !== originalMessage) console.warn(\"[h3] Please prefer using `message` for longer error messages instead of `statusMessage`. In the future, `statusMessage` will be sanitized by default.\");\n\t}\n\tif (input.fatal !== void 0) err.fatal = input.fatal;\n\tif (input.unhandled !== void 0) err.unhandled = input.unhandled;\n\treturn err;\n}\nfunction sendError(event, error, debug) {\n\tif (event.handled) return;\n\tconst h3Error = isError(error) ? error : createError(error);\n\tconst responseBody = {\n\t\tstatusCode: h3Error.statusCode,\n\t\tstatusMessage: h3Error.statusMessage,\n\t\tstack: [],\n\t\tdata: h3Error.data\n\t};\n\tif (debug) responseBody.stack = (h3Error.stack || \"\").split(\"\\n\").map((l) => l.trim());\n\tif (event.handled) return;\n\tsetResponseStatus(event, Number.parseInt(h3Error.statusCode), h3Error.statusMessage);\n\tevent.node.res.setHeader(\"content-type\", MIMES.json);\n\tevent.node.res.end(JSON.stringify(responseBody, void 0, 2));\n}\nfunction isError(input) {\n\treturn input?.constructor?.__h3_error__ === true;\n}\nfunction parse$1(multipartBodyBuffer, boundary) {\n\tlet lastline = \"\";\n\tlet state = 0;\n\tlet buffer = [];\n\tconst allParts = [];\n\tlet currentPartHeaders = [];\n\tfor (let i = 0; i < multipartBodyBuffer.length; i++) {\n\t\tconst prevByte = i > 0 ? multipartBodyBuffer[i - 1] : null;\n\t\tconst currByte = multipartBodyBuffer[i];\n\t\tif (!(currByte === 10 || currByte === 13)) lastline += String.fromCodePoint(currByte);\n\t\tconst newLineDetected = currByte === 10 && prevByte === 13;\n\t\tif (0 === state && newLineDetected) {\n\t\t\tif (\"--\" + boundary === lastline) state = 1;\n\t\t\tlastline = \"\";\n\t\t} else if (1 === state && newLineDetected) {\n\t\t\tif (lastline.length > 0) {\n\t\t\t\tconst i2 = lastline.indexOf(\":\");\n\t\t\t\tif (i2 > 0) {\n\t\t\t\t\tconst name = lastline.slice(0, i2).toLowerCase();\n\t\t\t\t\tconst value = lastline.slice(i2 + 1).trim();\n\t\t\t\t\tcurrentPartHeaders.push([name, value]);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tstate = 2;\n\t\t\t\tbuffer = [];\n\t\t\t}\n\t\t\tlastline = \"\";\n\t\t} else if (2 === state) {\n\t\t\tif (lastline.length > boundary.length + 4) lastline = \"\";\n\t\t\tif (\"--\" + boundary === lastline) {\n\t\t\t\tconst j = buffer.length - lastline.length;\n\t\t\t\tconst part = buffer.slice(0, j - 1);\n\t\t\t\tallParts.push(process(part, currentPartHeaders));\n\t\t\t\tbuffer = [];\n\t\t\t\tcurrentPartHeaders = [];\n\t\t\t\tlastline = \"\";\n\t\t\t\tstate = 3;\n\t\t\t} else buffer.push(currByte);\n\t\t\tif (newLineDetected) lastline = \"\";\n\t\t} else if (3 === state && newLineDetected) state = 1;\n\t}\n\treturn allParts;\n}\nfunction process(data, headers) {\n\tconst dataObj = {};\n\tconst contentDispositionHeader = headers.find((h) => h[0] === \"content-disposition\")?.[1] || \"\";\n\tfor (const i of contentDispositionHeader.split(\";\")) {\n\t\tconst s = i.split(\"=\");\n\t\tif (s.length !== 2) continue;\n\t\tconst key = (s[0] || \"\").trim();\n\t\tif (key === \"name\" || key === \"filename\") {\n\t\t\tconst _value = (s[1] || \"\").trim().replace(/\"/g, \"\");\n\t\t\tdataObj[key] = Buffer.from(_value, \"latin1\").toString(\"utf8\");\n\t\t}\n\t}\n\tconst contentType = headers.find((h) => h[0] === \"content-type\")?.[1] || \"\";\n\tif (contentType) dataObj.type = contentType;\n\tdataObj.data = Buffer.from(data);\n\treturn dataObj;\n}\nasync function validateData(data, fn) {\n\ttry {\n\t\tconst res = await fn(data);\n\t\tif (res === false) throw createValidationError();\n\t\tif (res === true) return data;\n\t\treturn res ?? data;\n\t} catch (error) {\n\t\tthrow createValidationError(error);\n\t}\n}\nfunction createValidationError(validateError) {\n\tthrow createError({\n\t\tstatus: 400,\n\t\tstatusMessage: \"Validation Error\",\n\t\tmessage: validateError?.message || \"Validation Error\",\n\t\tdata: validateError\n\t});\n}\nfunction getQuery(event) {\n\treturn getQuery$2(event.path || \"\");\n}\nfunction getValidatedQuery(event, validate) {\n\treturn validateData(getQuery(event), validate);\n}\nfunction getRouterParams(event, opts = {}) {\n\tlet params = event.context.params || {};\n\tif (opts.decode) {\n\t\tparams = { ...params };\n\t\tfor (const key in params) params[key] = decode(params[key]);\n\t}\n\treturn params;\n}\nfunction getValidatedRouterParams(event, validate, opts = {}) {\n\treturn validateData(getRouterParams(event, opts), validate);\n}\nfunction getRouterParam(event, name, opts = {}) {\n\treturn getRouterParams(event, opts)[name];\n}\nfunction isMethod(event, expected, allowHead) {\n\tif (allowHead && event.method === \"HEAD\") return true;\n\tif (typeof expected === \"string\") {\n\t\tif (event.method === expected) return true;\n\t} else if (expected.includes(event.method)) return true;\n\treturn false;\n}\nfunction assertMethod(event, expected, allowHead) {\n\tif (!isMethod(event, expected, allowHead)) throw createError({\n\t\tstatusCode: 405,\n\t\tstatusMessage: \"HTTP method is not allowed.\"\n\t});\n}\nfunction getRequestHeaders(event) {\n\tconst _headers = {};\n\tfor (const key in event.node.req.headers) {\n\t\tconst val = event.node.req.headers[key];\n\t\t_headers[key] = Array.isArray(val) ? val.filter(Boolean).join(\", \") : val;\n\t}\n\treturn _headers;\n}\nconst getHeaders = getRequestHeaders;\nfunction getRequestHeader(event, name) {\n\treturn getRequestHeaders(event)[name.toLowerCase()];\n}\nconst getHeader = getRequestHeader;\nfunction getRequestHost(event, opts = {}) {\n\tif (opts.xForwardedHost) {\n\t\tconst xForwardedHost = event.node.req.headers[\"x-forwarded-host\"];\n\t\tif (xForwardedHost) return xForwardedHost;\n\t}\n\treturn event.node.req.headers.host || \"localhost\";\n}\nfunction getRequestProtocol(event, opts = {}) {\n\tif (opts.xForwardedProto !== false && event.node.req.headers[\"x-forwarded-proto\"] === \"https\") return \"https\";\n\treturn event.node.req.connection?.encrypted ? \"https\" : \"http\";\n}\nfunction getRequestURL(event, opts = {}) {\n\tconst host = getRequestHost(event, opts);\n\tconst protocol = getRequestProtocol(event, opts);\n\tconst path = (event.node.req.originalUrl || event.path).replace(/^[/\\\\]+/g, \"/\");\n\treturn new URL(path, `${protocol}://${host}`);\n}\nfunction toWebRequest(event) {\n\treturn event.web?.request || new Request(getRequestURL(event), {\n\t\tduplex: \"half\",\n\t\tmethod: event.method,\n\t\theaders: event.headers,\n\t\tbody: getRequestWebStream(event)\n\t});\n}\nfunction getRequestIP(event, opts = {}) {\n\tif (event.context.clientAddress) return event.context.clientAddress;\n\tif (opts.xForwardedFor) {\n\t\tconst xForwardedFor = getRequestHeader(event, \"x-forwarded-for\")?.split(\",\").shift()?.trim();\n\t\tif (xForwardedFor) return xForwardedFor;\n\t}\n\tif (event.node.req.socket.remoteAddress) return event.node.req.socket.remoteAddress;\n}\nconst RawBodySymbol = Symbol.for(\"h3RawBody\");\nconst ParsedBodySymbol = Symbol.for(\"h3ParsedBody\");\nconst PayloadMethods$1 = [\n\t\"PATCH\",\n\t\"POST\",\n\t\"PUT\",\n\t\"DELETE\"\n];\nfunction readRawBody(event, encoding = \"utf8\") {\n\tassertMethod(event, PayloadMethods$1);\n\tconst _rawBody = event._requestBody || event.web?.request?.body || event.node.req[RawBodySymbol] || event.node.req.rawBody || event.node.req.body;\n\tif (_rawBody) {\n\t\tconst promise2 = Promise.resolve(_rawBody).then((_resolved) => {\n\t\t\tif (Buffer.isBuffer(_resolved)) return _resolved;\n\t\t\tif (typeof _resolved.pipeTo === \"function\") return new Promise((resolve, reject) => {\n\t\t\t\tconst chunks = [];\n\t\t\t\t_resolved.pipeTo(new WritableStream({\n\t\t\t\t\twrite(chunk) {\n\t\t\t\t\t\tchunks.push(chunk);\n\t\t\t\t\t},\n\t\t\t\t\tclose() {\n\t\t\t\t\t\tresolve(Buffer.concat(chunks));\n\t\t\t\t\t},\n\t\t\t\t\tabort(reason) {\n\t\t\t\t\t\treject(reason);\n\t\t\t\t\t}\n\t\t\t\t})).catch(reject);\n\t\t\t});\n\t\t\telse if (typeof _resolved.pipe === \"function\") return new Promise((resolve, reject) => {\n\t\t\t\tconst chunks = [];\n\t\t\t\t_resolved.on(\"data\", (chunk) => {\n\t\t\t\t\tchunks.push(chunk);\n\t\t\t\t}).on(\"end\", () => {\n\t\t\t\t\tresolve(Buffer.concat(chunks));\n\t\t\t\t}).on(\"error\", reject);\n\t\t\t});\n\t\t\tif (_resolved.constructor === Object) return Buffer.from(JSON.stringify(_resolved));\n\t\t\tif (_resolved instanceof URLSearchParams) return Buffer.from(_resolved.toString());\n\t\t\treturn Buffer.from(_resolved);\n\t\t});\n\t\treturn encoding ? promise2.then((buff) => buff.toString(encoding)) : promise2;\n\t}\n\tif (!Number.parseInt(event.node.req.headers[\"content-length\"] || \"\") && !String(event.node.req.headers[\"transfer-encoding\"] ?? \"\").split(\",\").map((e) => e.trim()).filter(Boolean).includes(\"chunked\")) return Promise.resolve(void 0);\n\tconst promise = event.node.req[RawBodySymbol] = new Promise((resolve, reject) => {\n\t\tconst bodyData = [];\n\t\tevent.node.req.on(\"error\", (err) => {\n\t\t\treject(err);\n\t\t}).on(\"data\", (chunk) => {\n\t\t\tbodyData.push(chunk);\n\t\t}).on(\"end\", () => {\n\t\t\tresolve(Buffer.concat(bodyData));\n\t\t});\n\t});\n\treturn encoding ? promise.then((buff) => buff.toString(encoding)) : promise;\n}\nasync function readBody(event, options = {}) {\n\tconst request = event.node.req;\n\tif (hasProp(request, ParsedBodySymbol)) return request[ParsedBodySymbol];\n\tconst contentType = request.headers[\"content-type\"] || \"\";\n\tconst body = await readRawBody(event);\n\tlet parsed;\n\tif (contentType === \"application/json\") parsed = _parseJSON(body, options.strict ?? true);\n\telse if (contentType.startsWith(\"application/x-www-form-urlencoded\")) parsed = _parseURLEncodedBody(body);\n\telse if (contentType.startsWith(\"text/\")) parsed = body;\n\telse parsed = _parseJSON(body, options.strict ?? false);\n\trequest[ParsedBodySymbol] = parsed;\n\treturn parsed;\n}\nasync function readValidatedBody(event, validate) {\n\treturn validateData(await readBody(event, { strict: true }), validate);\n}\nasync function readMultipartFormData(event) {\n\tconst contentType = getRequestHeader(event, \"content-type\");\n\tif (!contentType || !contentType.startsWith(\"multipart/form-data\")) return;\n\tconst boundary = contentType.match(/boundary=([^;]*)(;|$)/i)?.[1];\n\tif (!boundary) return;\n\tconst body = await readRawBody(event, false);\n\tif (!body) return;\n\treturn parse$1(body, boundary);\n}\nasync function readFormData(event) {\n\treturn await toWebRequest(event).formData();\n}\nfunction getRequestWebStream(event) {\n\tif (!PayloadMethods$1.includes(event.method)) return;\n\tconst bodyStream = event.web?.request?.body || event._requestBody;\n\tif (bodyStream) return bodyStream;\n\tif (RawBodySymbol in event.node.req || \"rawBody\" in event.node.req || \"body\" in event.node.req || \"__unenv__\" in event.node.req) return new ReadableStream({ async start(controller) {\n\t\tconst _rawBody = await readRawBody(event, false);\n\t\tif (_rawBody) controller.enqueue(_rawBody);\n\t\tcontroller.close();\n\t} });\n\treturn new ReadableStream({ start: (controller) => {\n\t\tevent.node.req.on(\"data\", (chunk) => {\n\t\t\tcontroller.enqueue(chunk);\n\t\t});\n\t\tevent.node.req.on(\"end\", () => {\n\t\t\tcontroller.close();\n\t\t});\n\t\tevent.node.req.on(\"error\", (err) => {\n\t\t\tcontroller.error(err);\n\t\t});\n\t} });\n}\nfunction _parseJSON(body = \"\", strict) {\n\tif (!body) return;\n\ttry {\n\t\treturn destr(body, { strict });\n\t} catch {\n\t\tthrow createError({\n\t\t\tstatusCode: 400,\n\t\t\tstatusMessage: \"Bad Request\",\n\t\t\tmessage: \"Invalid JSON body\"\n\t\t});\n\t}\n}\nfunction _parseURLEncodedBody(body) {\n\tconst form = new URLSearchParams(body);\n\tconst parsedForm = /* @__PURE__ */ Object.create(null);\n\tfor (const [key, value] of form.entries()) if (hasProp(parsedForm, key)) {\n\t\tif (!Array.isArray(parsedForm[key])) parsedForm[key] = [parsedForm[key]];\n\t\tparsedForm[key].push(value);\n\t} else parsedForm[key] = value;\n\treturn parsedForm;\n}\nfunction handleCacheHeaders(event, opts) {\n\tconst cacheControls = [\"public\", ...opts.cacheControls || []];\n\tlet cacheMatched = false;\n\tif (opts.maxAge !== void 0) cacheControls.push(`max-age=${+opts.maxAge}`, `s-maxage=${+opts.maxAge}`);\n\tif (opts.modifiedTime) {\n\t\tconst modifiedTime = new Date(opts.modifiedTime);\n\t\tconst ifModifiedSince = event.node.req.headers[\"if-modified-since\"];\n\t\tevent.node.res.setHeader(\"last-modified\", modifiedTime.toUTCString());\n\t\tif (ifModifiedSince && new Date(ifModifiedSince) >= opts.modifiedTime) cacheMatched = true;\n\t}\n\tif (opts.etag) {\n\t\tevent.node.res.setHeader(\"etag\", opts.etag);\n\t\tif (event.node.req.headers[\"if-none-match\"] === opts.etag) cacheMatched = true;\n\t}\n\tevent.node.res.setHeader(\"cache-control\", cacheControls.join(\", \"));\n\tif (cacheMatched) {\n\t\tevent.node.res.statusCode = 304;\n\t\tif (!event.handled) event.node.res.end();\n\t\treturn true;\n\t}\n\treturn false;\n}\nconst MIMES = {\n\thtml: \"text/html\",\n\tjson: \"application/json\"\n};\nconst DISALLOWED_STATUS_CHARS = /[^\\u0009\\u0020-\\u007E]/g;\nfunction sanitizeStatusMessage(statusMessage = \"\") {\n\treturn statusMessage.replace(DISALLOWED_STATUS_CHARS, \"\");\n}\nfunction sanitizeStatusCode(statusCode, defaultStatusCode = 200) {\n\tif (!statusCode) return defaultStatusCode;\n\tif (typeof statusCode === \"string\") statusCode = Number.parseInt(statusCode, 10);\n\tif (statusCode < 100 || statusCode > 999) return defaultStatusCode;\n\treturn statusCode;\n}\nfunction parseCookies(event) {\n\treturn parse(event.node.req.headers.cookie || \"\");\n}\nfunction getCookie(event, name) {\n\treturn parseCookies(event)[name];\n}\nfunction setCookie$1(event, name, value, serializeOptions) {\n\tserializeOptions = {\n\t\tpath: \"/\",\n\t\t...serializeOptions\n\t};\n\tconst cookieStr = serialize(name, value, serializeOptions);\n\tlet setCookies = event.node.res.getHeader(\"set-cookie\");\n\tif (!Array.isArray(setCookies)) setCookies = [setCookies];\n\tconst _optionsHash = objectHash(serializeOptions);\n\tsetCookies = setCookies.filter((cookieValue) => {\n\t\treturn cookieValue && _optionsHash !== objectHash(parse(cookieValue));\n\t});\n\tevent.node.res.setHeader(\"set-cookie\", [...setCookies, cookieStr]);\n}\nfunction deleteCookie(event, name, serializeOptions) {\n\tsetCookie$1(event, name, \"\", {\n\t\t...serializeOptions,\n\t\tmaxAge: 0\n\t});\n}\nfunction splitCookiesString(cookiesString) {\n\tif (Array.isArray(cookiesString)) return cookiesString.flatMap((c) => splitCookiesString(c));\n\tif (typeof cookiesString !== \"string\") return [];\n\tconst cookiesStrings = [];\n\tlet pos = 0;\n\tlet start;\n\tlet ch;\n\tlet lastComma;\n\tlet nextStart;\n\tlet cookiesSeparatorFound;\n\tconst skipWhitespace = () => {\n\t\twhile (pos < cookiesString.length && /\\s/.test(cookiesString.charAt(pos))) pos += 1;\n\t\treturn pos < cookiesString.length;\n\t};\n\tconst notSpecialChar = () => {\n\t\tch = cookiesString.charAt(pos);\n\t\treturn ch !== \"=\" && ch !== \";\" && ch !== \",\";\n\t};\n\twhile (pos < cookiesString.length) {\n\t\tstart = pos;\n\t\tcookiesSeparatorFound = false;\n\t\twhile (skipWhitespace()) {\n\t\t\tch = cookiesString.charAt(pos);\n\t\t\tif (ch === \",\") {\n\t\t\t\tlastComma = pos;\n\t\t\t\tpos += 1;\n\t\t\t\tskipWhitespace();\n\t\t\t\tnextStart = pos;\n\t\t\t\twhile (pos < cookiesString.length && notSpecialChar()) pos += 1;\n\t\t\t\tif (pos < cookiesString.length && cookiesString.charAt(pos) === \"=\") {\n\t\t\t\t\tcookiesSeparatorFound = true;\n\t\t\t\t\tpos = nextStart;\n\t\t\t\t\tcookiesStrings.push(cookiesString.slice(start, lastComma));\n\t\t\t\t\tstart = pos;\n\t\t\t\t} else pos = lastComma + 1;\n\t\t\t} else pos += 1;\n\t\t}\n\t\tif (!cookiesSeparatorFound || pos >= cookiesString.length) cookiesStrings.push(cookiesString.slice(start));\n\t}\n\treturn cookiesStrings;\n}\nconst defer = typeof setImmediate === \"undefined\" ? (fn) => fn() : setImmediate;\nfunction send(event, data, type) {\n\tif (type) defaultContentType(event, type);\n\treturn new Promise((resolve) => {\n\t\tdefer(() => {\n\t\t\tif (!event.handled) event.node.res.end(data);\n\t\t\tresolve();\n\t\t});\n\t});\n}\nfunction sendNoContent(event, code) {\n\tif (event.handled) return;\n\tif (!code && event.node.res.statusCode !== 200) code = event.node.res.statusCode;\n\tconst _code = sanitizeStatusCode(code, 204);\n\tif (_code === 204) event.node.res.removeHeader(\"content-length\");\n\tevent.node.res.writeHead(_code);\n\tevent.node.res.end();\n}\nfunction setResponseStatus(event, code, text) {\n\tif (code) event.node.res.statusCode = sanitizeStatusCode(code, event.node.res.statusCode);\n\tif (text) event.node.res.statusMessage = sanitizeStatusMessage(text);\n}\nfunction getResponseStatus(event) {\n\treturn event.node.res.statusCode;\n}\nfunction getResponseStatusText(event) {\n\treturn event.node.res.statusMessage;\n}\nfunction defaultContentType(event, type) {\n\tif (type && event.node.res.statusCode !== 304 && !event.node.res.getHeader(\"content-type\")) event.node.res.setHeader(\"content-type\", type);\n}\nfunction sendRedirect(event, location, code = 302) {\n\tevent.node.res.statusCode = sanitizeStatusCode(code, event.node.res.statusCode);\n\tevent.node.res.setHeader(\"location\", location);\n\treturn send(event, `<!DOCTYPE html><html><head><meta http-equiv=\"refresh\" content=\"0; url=${location.replace(/\"/g, \"%22\")}\"></head></html>`, MIMES.html);\n}\nfunction getResponseHeaders(event) {\n\treturn event.node.res.getHeaders();\n}\nfunction getResponseHeader(event, name) {\n\treturn event.node.res.getHeader(name);\n}\nfunction setResponseHeaders(event, headers) {\n\tfor (const [name, value] of Object.entries(headers)) event.node.res.setHeader(name, value);\n}\nconst setHeaders = setResponseHeaders;\nfunction setResponseHeader(event, name, value) {\n\tevent.node.res.setHeader(name, value);\n}\nconst setHeader = setResponseHeader;\nfunction appendResponseHeaders(event, headers) {\n\tfor (const [name, value] of Object.entries(headers)) appendResponseHeader(event, name, value);\n}\nconst appendHeaders = appendResponseHeaders;\nfunction appendResponseHeader(event, name, value) {\n\tlet current = event.node.res.getHeader(name);\n\tif (!current) {\n\t\tevent.node.res.setHeader(name, value);\n\t\treturn;\n\t}\n\tif (!Array.isArray(current)) current = [current.toString()];\n\tevent.node.res.setHeader(name, [...current, value]);\n}\nconst appendHeader = appendResponseHeader;\nfunction clearResponseHeaders(event, headerNames) {\n\tif (headerNames && headerNames.length > 0) for (const name of headerNames) removeResponseHeader(event, name);\n\telse for (const [name] of Object.entries(getResponseHeaders(event))) removeResponseHeader(event, name);\n}\nfunction removeResponseHeader(event, name) {\n\treturn event.node.res.removeHeader(name);\n}\nfunction sendStream(event, stream) {\n\tif (!stream || typeof stream !== \"object\") throw new Error(\"[h3] Invalid stream provided.\");\n\tevent.node.res._data = stream;\n\tif (!event.node.res.socket) {\n\t\tevent._handled = true;\n\t\treturn Promise.resolve();\n\t}\n\tif (hasProp(stream, \"pipeTo\") && typeof stream.pipeTo === \"function\") return stream.pipeTo(new WritableStream({ write(chunk) {\n\t\tevent.node.res.write(chunk);\n\t} })).then(() => {\n\t\tevent.node.res.end();\n\t});\n\tif (hasProp(stream, \"pipe\") && typeof stream.pipe === \"function\") return new Promise((resolve, reject) => {\n\t\tstream.pipe(event.node.res);\n\t\tif (stream.on) {\n\t\t\tstream.on(\"end\", () => {\n\t\t\t\tevent.node.res.end();\n\t\t\t\tresolve();\n\t\t\t});\n\t\t\tstream.on(\"error\", (error) => {\n\t\t\t\treject(error);\n\t\t\t});\n\t\t}\n\t\tevent.node.res.on(\"close\", () => {\n\t\t\tif (stream.abort) stream.abort();\n\t\t});\n\t});\n\tthrow new Error(\"[h3] Invalid or incompatible stream provided.\");\n}\nconst noop = () => {};\nfunction writeEarlyHints(event, hints, cb = noop) {\n\tif (!event.node.res.socket) {\n\t\tcb();\n\t\treturn;\n\t}\n\tif (typeof hints === \"string\" || Array.isArray(hints)) hints = { link: hints };\n\tif (hints.link) hints.link = Array.isArray(hints.link) ? hints.link : hints.link.split(\",\");\n\tconst headers = Object.entries(hints).map((e) => [e[0].toLowerCase(), e[1]]);\n\tif (headers.length === 0) {\n\t\tcb();\n\t\treturn;\n\t}\n\tlet hint = \"HTTP/1.1 103 Early Hints\";\n\tif (hints.link) hint += `\\r\nLink: ${hints.link.join(\", \")}`;\n\tfor (const [header, value] of headers) {\n\t\tif (header === \"link\") continue;\n\t\thint += `\\r\n${header}: ${value}`;\n\t}\n\tif (event.node.res.socket) event.node.res.socket.write(`${hint}\\r\n\\r\n`, \"utf8\", cb);\n\telse cb();\n}\nfunction sendWebResponse(event, response) {\n\tfor (const [key, value] of response.headers) if (key === \"set-cookie\") event.node.res.appendHeader(key, splitCookiesString(value));\n\telse event.node.res.setHeader(key, value);\n\tif (response.status) event.node.res.statusCode = sanitizeStatusCode(response.status, event.node.res.statusCode);\n\tif (response.statusText) event.node.res.statusMessage = sanitizeStatusMessage(response.statusText);\n\tif (response.redirected) event.node.res.setHeader(\"location\", response.url);\n\tif (!response.body) {\n\t\tevent.node.res.end();\n\t\treturn;\n\t}\n\treturn sendStream(event, response.body);\n}\nfunction resolveCorsOptions(options = {}) {\n\treturn defu(options, {\n\t\torigin: \"*\",\n\t\tmethods: \"*\",\n\t\tallowHeaders: \"*\",\n\t\texposeHeaders: \"*\",\n\t\tcredentials: false,\n\t\tmaxAge: false,\n\t\tpreflight: { statusCode: 204 }\n\t});\n}\nfunction isPreflightRequest(event) {\n\tconst origin = getRequestHeader(event, \"origin\");\n\tconst accessControlRequestMethod = getRequestHeader(event, \"access-control-request-method\");\n\treturn event.method === \"OPTIONS\" && !!origin && !!accessControlRequestMethod;\n}\nfunction isCorsOriginAllowed(origin, options) {\n\tconst { origin: originOption } = options;\n\tif (!origin || !originOption || originOption === \"*\" || originOption === \"null\") return true;\n\tif (Array.isArray(originOption)) return originOption.some((_origin) => {\n\t\tif (_origin instanceof RegExp) return _origin.test(origin);\n\t\treturn origin === _origin;\n\t});\n\treturn originOption(origin);\n}\nfunction createOriginHeaders(event, options) {\n\tconst { origin: originOption } = options;\n\tconst origin = getRequestHeader(event, \"origin\");\n\tif (!origin || !originOption || originOption === \"*\") return { \"access-control-allow-origin\": \"*\" };\n\tif (typeof originOption === \"string\") return {\n\t\t\"access-control-allow-origin\": originOption,\n\t\tvary: \"origin\"\n\t};\n\treturn isCorsOriginAllowed(origin, options) ? {\n\t\t\"access-control-allow-origin\": origin,\n\t\tvary: \"origin\"\n\t} : {};\n}\nfunction createMethodsHeaders(options) {\n\tconst { methods } = options;\n\tif (!methods) return {};\n\tif (methods === \"*\") return { \"access-control-allow-methods\": \"*\" };\n\treturn methods.length > 0 ? { \"access-control-allow-methods\": methods.join(\",\") } : {};\n}\nfunction createCredentialsHeaders(options) {\n\tconst { credentials } = options;\n\tif (credentials) return { \"access-control-allow-credentials\": \"true\" };\n\treturn {};\n}\nfunction createAllowHeaderHeaders(event, options) {\n\tconst { allowHeaders } = options;\n\tif (!allowHeaders || allowHeaders === \"*\" || allowHeaders.length === 0) {\n\t\tconst header = getRequestHeader(event, \"access-control-request-headers\");\n\t\treturn header ? {\n\t\t\t\"access-control-allow-headers\": header,\n\t\t\tvary: \"access-control-request-headers\"\n\t\t} : {};\n\t}\n\treturn {\n\t\t\"access-control-allow-headers\": allowHeaders.join(\",\"),\n\t\tvary: \"access-control-request-headers\"\n\t};\n}\nfunction createExposeHeaders(options) {\n\tconst { exposeHeaders } = options;\n\tif (!exposeHeaders) return {};\n\tif (exposeHeaders === \"*\") return { \"access-control-expose-headers\": exposeHeaders };\n\treturn { \"access-control-expose-headers\": exposeHeaders.join(\",\") };\n}\nfunction appendCorsPreflightHeaders(event, options) {\n\tappendHeaders(event, createOriginHeaders(event, options));\n\tappendHeaders(event, createCredentialsHeaders(options));\n\tappendHeaders(event, createExposeHeaders(options));\n\tappendHeaders(event, createMethodsHeaders(options));\n\tappendHeaders(event, createAllowHeaderHeaders(event, options));\n}\nfunction appendCorsHeaders(event, options) {\n\tappendHeaders(event, createOriginHeaders(event, options));\n\tappendHeaders(event, createCredentialsHeaders(options));\n\tappendHeaders(event, createExposeHeaders(options));\n}\nfunction handleCors(event, options) {\n\tconst _options = resolveCorsOptions(options);\n\tif (isPreflightRequest(event)) {\n\t\tappendCorsPreflightHeaders(event, options);\n\t\tsendNoContent(event, _options.preflight.statusCode);\n\t\treturn true;\n\t}\n\tappendCorsHeaders(event, options);\n\treturn false;\n}\nasync function getRequestFingerprint(event, opts = {}) {\n\tconst fingerprint = [];\n\tif (opts.ip !== false) fingerprint.push(getRequestIP(event, { xForwardedFor: opts.xForwardedFor }));\n\tif (opts.method === true) fingerprint.push(event.method);\n\tif (opts.path === true) fingerprint.push(event.path);\n\tif (opts.userAgent === true) fingerprint.push(getRequestHeader(event, \"user-agent\"));\n\tconst fingerprintString = fingerprint.filter(Boolean).join(\"|\");\n\tif (!fingerprintString) return null;\n\tif (opts.hash === false) return fingerprintString;\n\tconst buffer = await _crypto.subtle.digest(opts.hash || \"SHA-1\", new TextEncoder().encode(fingerprintString));\n\treturn [...new Uint8Array(buffer)].map((b) => b.toString(16).padStart(2, \"0\")).join(\"\");\n}\nconst PayloadMethods = /* @__PURE__ */ new Set([\n\t\"PATCH\",\n\t\"POST\",\n\t\"PUT\",\n\t\"DELETE\"\n]);\nconst ignoredHeaders = /* @__PURE__ */ new Set([\n\t\"transfer-encoding\",\n\t\"connection\",\n\t\"keep-alive\",\n\t\"upgrade\",\n\t\"expect\",\n\t\"host\",\n\t\"accept\"\n]);\nasync function proxyRequest(event, target, opts = {}) {\n\tlet body;\n\tlet duplex;\n\tif (PayloadMethods.has(event.method)) if (opts.streamRequest) {\n\t\tbody = getRequestWebStream(event);\n\t\tduplex = \"half\";\n\t} else body = await readRawBody(event, false).catch(() => void 0);\n\tconst method = opts.fetchOptions?.method || event.method;\n\tconst fetchHeaders = mergeHeaders(getProxyRequestHeaders(event), opts.fetchOptions?.headers, opts.headers);\n\treturn sendProxy(event, target, {\n\t\t...opts,\n\t\tfetchOptions: {\n\t\t\tmethod,\n\t\t\tbody,\n\t\t\tduplex,\n\t\t\t...opts.fetchOptions,\n\t\t\theaders: fetchHeaders\n\t\t}\n\t});\n}\nasync function sendProxy(event, target, opts = {}) {\n\tlet response;\n\ttry {\n\t\tresponse = await _getFetch(opts.fetch)(target, {\n\t\t\theaders: opts.headers,\n\t\t\tignoreResponseError: true,\n\t\t\t...opts.fetchOptions\n\t\t});\n\t} catch (error) {\n\t\tthrow createError({\n\t\t\tstatus: 502,\n\t\t\tstatusMessage: \"Bad Gateway\",\n\t\t\tcause: error\n\t\t});\n\t}\n\tevent.node.res.statusCode = sanitizeStatusCode(response.status, event.node.res.statusCode);\n\tevent.node.res.statusMessage = sanitizeStatusMessage(response.statusText);\n\tconst cookies = [];\n\tfor (const [key, value] of response.headers.entries()) {\n\t\tif (key === \"content-encoding\") continue;\n\t\tif (key === \"content-length\") continue;\n\t\tif (key === \"set-cookie\") {\n\t\t\tcookies.push(...splitCookiesString(value));\n\t\t\tcontinue;\n\t\t}\n\t\tevent.node.res.setHeader(key, value);\n\t}\n\tif (cookies.length > 0) event.node.res.setHeader(\"set-cookie\", cookies.map((cookie) => {\n\t\tif (opts.cookieDomainRewrite) cookie = rewriteCookieProperty(cookie, opts.cookieDomainRewrite, \"domain\");\n\t\tif (opts.cookiePathRewrite) cookie = rewriteCookieProperty(cookie, opts.cookiePathRewrite, \"path\");\n\t\treturn cookie;\n\t}));\n\tif (opts.onResponse) await opts.onResponse(event, response);\n\tif (response._data !== void 0) return response._data;\n\tif (event.handled) return;\n\tif (opts.sendStream === false) {\n\t\tconst data = new Uint8Array(await response.arrayBuffer());\n\t\treturn event.node.res.end(data);\n\t}\n\tif (response.body) for await (const chunk of response.body) event.node.res.write(chunk);\n\treturn event.node.res.end();\n}\nfunction getProxyRequestHeaders(event) {\n\tconst headers = /* @__PURE__ */ Object.create(null);\n\tconst reqHeaders = getRequestHeaders(event);\n\tfor (const name in reqHeaders) if (!ignoredHeaders.has(name)) headers[name] = reqHeaders[name];\n\treturn headers;\n}\nfunction fetchWithEvent(event, req, init, options) {\n\treturn _getFetch(options?.fetch)(req, {\n\t\t...init,\n\t\tcontext: init?.context || event.context,\n\t\theaders: {\n\t\t\t...getProxyRequestHeaders(event),\n\t\t\t...init?.headers\n\t\t}\n\t});\n}\nfunction _getFetch(_fetch) {\n\tif (_fetch) return _fetch;\n\tif (globalThis.fetch) return globalThis.fetch;\n\tthrow new Error(\"fetch is not available. Try importing `node-fetch-native/polyfill` for Node.js.\");\n}\nfunction rewriteCookieProperty(header, map, property) {\n\tconst _map = typeof map === \"string\" ? { \"*\": map } : map;\n\treturn header.replace(new RegExp(`(;\\\\s*${property}=)([^;]+)`, \"gi\"), (match, prefix, previousValue) => {\n\t\tlet newValue;\n\t\tif (previousValue in _map) newValue = _map[previousValue];\n\t\telse if (\"*\" in _map) newValue = _map[\"*\"];\n\t\telse return match;\n\t\treturn newValue ? prefix + newValue : \"\";\n\t});\n}\nfunction mergeHeaders(defaults$2, ...inputs) {\n\tconst _inputs = inputs.filter(Boolean);\n\tif (_inputs.length === 0) return defaults$2;\n\tconst merged = new Headers(defaults$2);\n\tfor (const input of _inputs) for (const [key, value] of Object.entries(input)) if (value !== void 0) merged.set(key, value);\n\treturn merged;\n}\nconst getSessionPromise = Symbol(\"getSession\");\nconst DEFAULT_NAME = \"h3\";\nconst DEFAULT_COOKIE = {\n\tpath: \"/\",\n\tsecure: true,\n\thttpOnly: true\n};\nasync function useSession(event, config) {\n\tconst sessionName = config.name || DEFAULT_NAME;\n\tawait getSession(event, config);\n\tconst sessionManager = {\n\t\tget id() {\n\t\t\treturn event.context.sessions?.[sessionName]?.id;\n\t\t},\n\t\tget data() {\n\t\t\treturn event.context.sessions?.[sessionName]?.data || {};\n\t\t},\n\t\tupdate: async (update) => {\n\t\t\tawait updateSession(event, config, update);\n\t\t\treturn sessionManager;\n\t\t},\n\t\tclear: () => {\n\t\t\tclearSession(event, config);\n\t\t\treturn Promise.resolve(sessionManager);\n\t\t}\n\t};\n\treturn sessionManager;\n}\nasync function getSession(event, config) {\n\tconst sessionName = config.name || DEFAULT_NAME;\n\tif (!event.context.sessions) event.context.sessions = /* @__PURE__ */ Object.create(null);\n\tconst existingSession = event.context.sessions[sessionName];\n\tif (existingSession) return existingSession[getSessionPromise] || existingSession;\n\tconst session = {\n\t\tid: \"\",\n\t\tcreatedAt: 0,\n\t\tdata: /* @__PURE__ */ Object.create(null)\n\t};\n\tevent.context.sessions[sessionName] = session;\n\tlet sealedSession;\n\tif (config.sessionHeader !== false) {\n\t\tconst headerName = typeof config.sessionHeader === \"string\" ? config.sessionHeader.toLowerCase() : `x-${sessionName.toLowerCase()}-session`;\n\t\tconst headerValue = event.node.req.headers[headerName];\n\t\tif (typeof headerValue === \"string\") sealedSession = headerValue;\n\t}\n\tif (!sealedSession) sealedSession = getCookie(event, sessionName);\n\tif (sealedSession) {\n\t\tconst promise = unsealSession(event, config, sealedSession).catch(() => {}).then((unsealed) => {\n\t\t\tObject.assign(session, unsealed);\n\t\t\tdelete event.context.sessions[sessionName][getSessionPromise];\n\t\t\treturn session;\n\t\t});\n\t\tevent.context.sessions[sessionName][getSessionPromise] = promise;\n\t\tawait promise;\n\t}\n\tif (!session.id) {\n\t\tsession.id = config.generateId?.() ?? (config.crypto || _crypto).randomUUID();\n\t\tsession.createdAt = Date.now();\n\t\tawait updateSession(event, config);\n\t}\n\treturn session;\n}\nasync function updateSession(event, config, update) {\n\tconst sessionName = config.name || DEFAULT_NAME;\n\tconst session = event.context.sessions?.[sessionName] || await getSession(event, config);\n\tif (typeof update === \"function\") update = update(session.data);\n\tif (update) Object.assign(session.data, update);\n\tif (config.cookie !== false) setCookie$1(event, sessionName, await sealSession(event, config), {\n\t\t...DEFAULT_COOKIE,\n\t\texpires: config.maxAge ? new Date(session.createdAt + config.maxAge * 1e3) : void 0,\n\t\t...config.cookie\n\t});\n\treturn session;\n}\nasync function sealSession(event, config) {\n\tconst sessionName = config.name || DEFAULT_NAME;\n\tconst session = event.context.sessions?.[sessionName] || await getSession(event, config);\n\treturn await seal(config.crypto || _crypto, session, config.password, {\n\t\t...defaults,\n\t\tttl: config.maxAge ? config.maxAge * 1e3 : 0,\n\t\t...config.seal\n\t});\n}\nasync function unsealSession(_event, config, sealed) {\n\tconst unsealed = await unseal(config.crypto || _crypto, sealed, config.password, {\n\t\t...defaults,\n\t\tttl: config.maxAge ? config.maxAge * 1e3 : 0,\n\t\t...config.seal\n\t});\n\tif (config.maxAge) {\n\t\tif (Date.now() - (unsealed.createdAt || Number.NEGATIVE_INFINITY) > config.maxAge * 1e3) throw new Error(\"Session expired!\");\n\t}\n\treturn unsealed;\n}\nfunction clearSession(event, config) {\n\tconst sessionName = config.name || DEFAULT_NAME;\n\tif (event.context.sessions?.[sessionName]) delete event.context.sessions[sessionName];\n\tsetCookie$1(event, sessionName, \"\", {\n\t\t...DEFAULT_COOKIE,\n\t\t...config.cookie\n\t});\n\treturn Promise.resolve();\n}\nvar __defProp = Object.defineProperty;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, {\n\tenumerable: true,\n\tconfigurable: true,\n\twritable: true,\n\tvalue\n}) : obj[key] = value;\nvar __publicField = (obj, key, value) => {\n\t__defNormalProp(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\n\treturn value;\n};\nvar H3Event = class {\n\tconstructor(req, res) {\n\t\t__publicField(this, \"__is_event__\", true);\n\t\t__publicField(this, \"node\");\n\t\t__publicField(this, \"web\");\n\t\t__publicField(this, \"context\", {});\n\t\t__publicField(this, \"_method\");\n\t\t__publicField(this, \"_path\");\n\t\t__publicField(this, \"_headers\");\n\t\t__publicField(this, \"_requestBody\");\n\t\t__publicField(this, \"_handled\", false);\n\t\t__publicField(this, \"_onBeforeResponseCalled\");\n\t\t__publicField(this, \"_onAfterResponseCalled\");\n\t\tthis.node = {\n\t\t\treq,\n\t\t\tres\n\t\t};\n\t}\n\tget method() {\n\t\tif (!this._method) this._method = (this.node.req.method || \"GET\").toUpperCase();\n\t\treturn this._method;\n\t}\n\tget path() {\n\t\treturn this._path || this.node.req.url || \"/\";\n\t}\n\tget headers() {\n\t\tif (!this._headers) this._headers = _normalizeNodeHeaders(this.node.req.headers);\n\t\treturn this._headers;\n\t}\n\tget handled() {\n\t\treturn this._handled || this.node.res.writableEnded || this.node.res.headersSent;\n\t}\n\trespondWith(response) {\n\t\treturn Promise.resolve(response).then((_response) => sendWebResponse(this, _response));\n\t}\n\ttoString() {\n\t\treturn `[${this.method}] ${this.path}`;\n\t}\n\ttoJSON() {\n\t\treturn this.toString();\n\t}\n\t/** @deprecated Please use `event.node.req` instead. */\n\tget req() {\n\t\treturn this.node.req;\n\t}\n\t/** @deprecated Please use `event.node.res` instead. */\n\tget res() {\n\t\treturn this.node.res;\n\t}\n};\nfunction _normalizeNodeHeaders(nodeHeaders) {\n\tconst headers = new Headers();\n\tfor (const [name, value] of Object.entries(nodeHeaders)) if (Array.isArray(value)) for (const item of value) headers.append(name, item);\n\telse if (value) headers.set(name, value);\n\treturn headers;\n}\nconst H3Headers = globalThis.Headers;\nconst H3Response = globalThis.Response;\n\n//#endregion\n//#region ../../node_modules/.pnpm/@tanstack+start-server-core@1.131.27/node_modules/@tanstack/start-server-core/dist/esm/h3.js\nconst eventStorage = new AsyncLocalStorage();\nfunction _setContext(event, key, value) {\n\tevent.context[key] = value;\n}\nfunction _getContext(event, key) {\n\treturn event.context[key];\n}\nfunction getEvent() {\n\tconst event = eventStorage.getStore();\n\tif (!event) throw new Error(`No HTTPEvent found in AsyncLocalStorage. Make sure you are using the function within the server runtime.`);\n\treturn event;\n}\nconst HTTPEventSymbol = Symbol(\"$HTTPEvent\");\nfunction isEvent(obj) {\n\treturn typeof obj === \"object\" && (obj instanceof H3Event || (obj == null ? void 0 : obj[HTTPEventSymbol]) instanceof H3Event || (obj == null ? void 0 : obj.__is_event__) === true);\n}\nfunction createWrapperFunction(h3Function) {\n\treturn function(...args) {\n\t\tconst event = args[0];\n\t\tif (!isEvent(event)) args.unshift(getEvent());\n\t\telse args[0] = event instanceof H3Event || event.__is_event__ ? event : event[HTTPEventSymbol];\n\t\treturn h3Function(...args);\n\t};\n}\nconst readRawBody$1 = createWrapperFunction(readRawBody);\nconst readBody$1 = createWrapperFunction(readBody);\nconst getQuery$1 = createWrapperFunction(getQuery);\nconst isMethod$1 = createWrapperFunction(isMethod);\nconst isPreflightRequest$1 = createWrapperFunction(isPreflightRequest);\nconst getValidatedQuery$1 = createWrapperFunction(getValidatedQuery);\nconst getRouterParams$1 = createWrapperFunction(getRouterParams);\nconst getRouterParam$1 = createWrapperFunction(getRouterParam);\nconst getValidatedRouterParams$1 = createWrapperFunction(getValidatedRouterParams);\nconst assertMethod$1 = createWrapperFunction(assertMethod);\nconst getRequestHeaders$1 = createWrapperFunction(getRequestHeaders);\nconst getRequestHeader$1 = createWrapperFunction(getRequestHeader);\nconst getRequestURL$1 = createWrapperFunction(getRequestURL);\nconst getRequestHost$1 = createWrapperFunction(getRequestHost);\nconst getRequestProtocol$1 = createWrapperFunction(getRequestProtocol);\nconst getRequestIP$1 = createWrapperFunction(getRequestIP);\nconst send$1 = createWrapperFunction(send);\nconst sendNoContent$1 = createWrapperFunction(sendNoContent);\nconst setResponseStatus$1 = createWrapperFunction(setResponseStatus);\nconst getResponseStatus$1 = createWrapperFunction(getResponseStatus);\nconst getResponseStatusText$1 = createWrapperFunction(getResponseStatusText);\nconst getResponseHeaders$1 = createWrapperFunction(getResponseHeaders);\nconst getResponseHeader$1 = createWrapperFunction(getResponseHeader);\nconst setResponseHeaders$1 = createWrapperFunction(setResponseHeaders);\nconst setResponseHeader$1 = createWrapperFunction(setResponseHeader);\nconst appendResponseHeaders$1 = createWrapperFunction(appendResponseHeaders);\nconst appendResponseHeader$1 = createWrapperFunction(appendResponseHeader);\nconst defaultContentType$1 = createWrapperFunction(defaultContentType);\nconst sendRedirect$1 = createWrapperFunction(sendRedirect);\nconst sendStream$1 = createWrapperFunction(sendStream);\nconst writeEarlyHints$1 = createWrapperFunction(writeEarlyHints);\nconst sendError$1 = createWrapperFunction(sendError);\nconst sendProxy$1 = createWrapperFunction(sendProxy);\nconst proxyRequest$1 = createWrapperFunction(proxyRequest);\nconst fetchWithEvent$1 = createWrapperFunction(fetchWithEvent);\nconst getProxyRequestHeaders$1 = createWrapperFunction(getProxyRequestHeaders);\nconst parseCookies$1 = createWrapperFunction(parseCookies);\nconst getCookie$1 = createWrapperFunction(getCookie);\nconst setCookie = createWrapperFunction(setCookie$1);\nconst deleteCookie$1 = createWrapperFunction(deleteCookie);\nconst useSession$1 = createWrapperFunction(useSession);\nconst getSession$1 = createWrapperFunction(getSession);\nconst updateSession$1 = createWrapperFunction(updateSession);\nconst sealSession$1 = createWrapperFunction(sealSession);\nconst unsealSession$1 = createWrapperFunction(unsealSession);\nconst clearSession$1 = createWrapperFunction(clearSession);\nconst handleCacheHeaders$1 = createWrapperFunction(handleCacheHeaders);\nconst handleCors$1 = createWrapperFunction(handleCors);\nconst appendCorsHeaders$1 = createWrapperFunction(appendCorsHeaders);\nconst appendCorsPreflightHeaders$1 = createWrapperFunction(appendCorsPreflightHeaders);\nconst sendWebResponse$1 = createWrapperFunction(sendWebResponse);\nconst appendHeader$1 = createWrapperFunction(appendHeader);\nconst appendHeaders$1 = createWrapperFunction(appendHeaders);\nconst setHeader$1 = createWrapperFunction(setHeader);\nconst setHeaders$1 = createWrapperFunction(setHeaders);\nconst getHeader$1 = createWrapperFunction(getHeader);\nconst getHeaders$1 = createWrapperFunction(getHeaders);\nconst getRequestFingerprint$1 = createWrapperFunction(getRequestFingerprint);\nconst getRequestWebStream$1 = createWrapperFunction(getRequestWebStream);\nconst readFormData$1 = createWrapperFunction(readFormData);\nconst readMultipartFormData$1 = createWrapperFunction(readMultipartFormData);\nconst readValidatedBody$1 = createWrapperFunction(readValidatedBody);\nconst removeResponseHeader$1 = createWrapperFunction(removeResponseHeader);\nconst getContext = createWrapperFunction(_getContext);\nconst setContext = createWrapperFunction(_setContext);\nconst clearResponseHeaders$1 = createWrapperFunction(clearResponseHeaders);\nconst getWebRequest = createWrapperFunction(toWebRequest);\n\n//#endregion\nexport { setCookie };"],"names":[],"mappings":"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","x_google_ignoreList":[0]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils-DKyKGba7.js","sources":["../src/lib/utils.ts"],"sourcesContent":["import axios from \"axios\";\nimport type { AnyFieldApi } from \"@tanstack/react-form\";\nimport { clientEnv } from \"~/env\";\n\nexport class Platform {\n static get isAndroid() { return /android/i.test(this.userAgent); }\n static get isIOS() { return /iPad|iPhone|iPod/.test(this.userAgent); }\n static get isWindows() { return /windows/i.test(this.userAgent); }\n static get isMacOS() { return /Macintosh|MacIntel|MacPPC|Mac68K/.test(this.userAgent); }\n\n private static get userAgent() { return typeof navigator === \"undefined\" ? \"\" : navigator.userAgent; }\n}\n\nexport const rootRouteHead = () => ({\n meta: [\n { charSet: \"utf-8\" },\n { name: \"viewport\", content: \"width=device-width, initial-scale=1\" },\n { title: clientEnv.VITE_APP_TITLE },\n { name: \"og:type\", content: \"website\" },\n { name: \"og:title\", content: clientEnv.VITE_APP_TITLE },\n { name: \"og:image\", content: \"/favicon-32x32.png\" }\n ],\n links: [\n { rel: \"apple-touch-icon\", sizes: \"180x180\", href: \"/apple-touch-icon.png\", },\n { rel: \"icon\", type: \"image/png\", sizes: \"32x32\", href: \"/favicon-32x32.png\", },\n { rel: \"icon\", type: \"image/png\", sizes: \"16x16\", href: \"/favicon-16x16.png\", },\n { rel: \"manifest\", href: \"/manifest.webmanifest\" },\n { rel: \"icon\", href: \"/favicon.ico\" },\n ],\n});\n\nexport const httpClient = axios.create({\n baseURL: clientEnv.VITE_API_URL // TODO: Not working in children projects\n});\n\n/* Internal Utils */\nexport type FormOmittedProps =\n \"name\" |\n \"value\" |\n \"onChange\" |\n \"onBlur\" |\n \"error\" |\n \"helperText\" |\n \"renderInput\" |\n \"type\" |\n \"aria-label\";\n\nexport const getFieldStatus = (field: AnyFieldApi) => {\n const { meta } = field.state;\n\n const isTouched = meta.isTouched;\n const hasError = !!meta.errors.length;\n const helperText = meta.errors[0]?.message;\n\n return { isTouched, hasError, helperText };\n};\n\nexport const toKebabCase = (str: string): string => {\n return str\n .replaceAll(/([a-z])([A-Z])/g, \"$1-$2\")\n .replaceAll(/[\\s_]+/g, \"-\")\n .replaceAll(/[^a-zA-Z0-9-]/g, \"\")\n .toLowerCase()\n .replaceAll(/-+/g, \"-\")\n .replaceAll(/(^-|-$)/g, \"\");\n};\n"],"names":[],"mappings":";;AAIO,MAAM,SAAS;AAAA,EAClB,WAAW,YAAY;AAAE,WAAO,WAAW,KAAK,KAAK,SAAS;AAAA,EAAG;AAAA,EACjE,WAAW,QAAQ;AAAE,WAAO,mBAAmB,KAAK,KAAK,SAAS;AAAA,EAAG;AAAA,EACrE,WAAW,YAAY;AAAE,WAAO,WAAW,KAAK,KAAK,SAAS;AAAA,EAAG;AAAA,EACjE,WAAW,UAAU;AAAE,WAAO,mCAAmC,KAAK,KAAK,SAAS;AAAA,EAAG;AAAA,EAEvF,WAAmB,YAAY;AAAE,WAAO,OAAO,cAAc,cAAc,KAAK,UAAU;AAAA,EAAW;AACzG;AAEO,MAAM,gBAAgB,OAAO;AAAA,EAChC,MAAM;AAAA,IACF,EAAE,SAAS,QAAA;AAAA,IACX,EAAE,MAAM,YAAY,SAAS,sCAAA;AAAA,IAC7B,EAAE,OAAO,UAAU,eAAA;AAAA,IACnB,EAAE,MAAM,WAAW,SAAS,UAAA;AAAA,IAC5B,EAAE,MAAM,YAAY,SAAS,UAAU,eAAA;AAAA,IACvC,EAAE,MAAM,YAAY,SAAS,qBAAA;AAAA,EAAqB;AAAA,EAEtD,OAAO;AAAA,IACH,EAAE,KAAK,oBAAoB,OAAO,WAAW,MAAM,wBAAA;AAAA,IACnD,EAAE,KAAK,QAAQ,MAAM,aAAa,OAAO,SAAS,MAAM,qBAAA;AAAA,IACxD,EAAE,KAAK,QAAQ,MAAM,aAAa,OAAO,SAAS,MAAM,qBAAA;AAAA,IACxD,EAAE,KAAK,YAAY,MAAM,wBAAA;AAAA,IACzB,EAAE,KAAK,QAAQ,MAAM,eAAA;AAAA,EAAe;AAE5C;AAEO,MAAM,aAAa,MAAM,OAAO;AAAA,EACnC,SAAS,UAAU;AAAA;AACvB,CAAC;AAcM,MAAM,iBAAiB,CAAC,UAAuB;AAClD,QAAM,EAAE,SAAS,MAAM;AAEvB,QAAM,YAAY,KAAK;AACvB,QAAM,WAAW,CAAC,CAAC,KAAK,OAAO;AAC/B,QAAM,aAAa,KAAK,OAAO,CAAC,GAAG;AAEnC,SAAO,EAAE,WAAW,UAAU,WAAA;AAClC;AAEO,MAAM,cAAc,CAAC,QAAwB;AAChD,SAAO,IACF,WAAW,mBAAmB,OAAO,EACrC,WAAW,WAAW,GAAG,EACzB,WAAW,kBAAkB,EAAE,EAC/B,cACA,WAAW,OAAO,GAAG,EACrB,WAAW,YAAY,EAAE;AAClC;"}