{"version":3,"sources":["/../../node_modules/hono/dist/client/utils.js","/../../node_modules/hono/dist/client/client.js","/../../node_modules/hono/dist/utils/cookie.js","/../../node_modules/hono/dist/client/index.js"],"sourcesContent":["// src/client/utils.ts\nvar mergePath = (base, path) => {\n base = base.replace(/\\/+$/, \"\");\n base = base + \"/\";\n path = path.replace(/^\\/+/, \"\");\n return base + path;\n};\nvar replaceUrlParam = (urlString, params) => {\n for (const [k, v] of Object.entries(params)) {\n const reg = new RegExp(\"/:\" + k + \"(?:{[^/]+})?\\\\??\");\n urlString = urlString.replace(reg, v ? `/${v}` : \"\");\n }\n return urlString;\n};\nvar replaceUrlProtocol = (urlString, protocol) => {\n switch (protocol) {\n case \"ws\":\n return urlString.replace(/^http/, \"ws\");\n case \"http\":\n return urlString.replace(/^ws/, \"http\");\n }\n};\nvar removeIndexString = (urlSting) => {\n if (/^https?:\\/\\/[^\\/]+?\\/index$/.test(urlSting)) {\n return urlSting.replace(/\\/index$/, \"/\");\n }\n return urlSting.replace(/\\/index$/, \"\");\n};\nfunction isObject(item) {\n return typeof item === \"object\" && item !== null && !Array.isArray(item);\n}\nfunction deepMerge(target, source) {\n if (!isObject(target) && !isObject(source)) {\n return source;\n }\n const merged = { ...target };\n for (const key in source) {\n const value = source[key];\n if (isObject(merged[key]) && isObject(value)) {\n merged[key] = deepMerge(merged[key], value);\n } else {\n merged[key] = value;\n }\n }\n return merged;\n}\nexport {\n deepMerge,\n mergePath,\n removeIndexString,\n replaceUrlParam,\n replaceUrlProtocol\n};\n","// src/client/client.ts\nimport { serialize } from \"../utils/cookie.js\";\nimport {\n deepMerge,\n mergePath,\n removeIndexString,\n replaceUrlParam,\n replaceUrlProtocol\n} from \"./utils.js\";\nvar createProxy = (callback, path) => {\n const proxy = new Proxy(() => {\n }, {\n get(_obj, key) {\n if (typeof key !== \"string\" || key === \"then\") {\n return void 0;\n }\n return createProxy(callback, [...path, key]);\n },\n apply(_1, _2, args) {\n return callback({\n path,\n args\n });\n }\n });\n return proxy;\n};\nvar ClientRequestImpl = class {\n url;\n method;\n queryParams = void 0;\n pathParams = {};\n rBody;\n cType = void 0;\n constructor(url, method) {\n this.url = url;\n this.method = method;\n }\n fetch = async (args, opt) => {\n if (args) {\n if (args.query) {\n for (const [k, v] of Object.entries(args.query)) {\n if (v === void 0) {\n continue;\n }\n this.queryParams ||= new URLSearchParams();\n if (Array.isArray(v)) {\n for (const v2 of v) {\n this.queryParams.append(k, v2);\n }\n } else {\n this.queryParams.set(k, v);\n }\n }\n }\n if (args.form) {\n const form = new FormData();\n for (const [k, v] of Object.entries(args.form)) {\n if (Array.isArray(v)) {\n for (const v2 of v) {\n form.append(k, v2);\n }\n } else {\n form.append(k, v);\n }\n }\n this.rBody = form;\n }\n if (args.json) {\n this.rBody = JSON.stringify(args.json);\n this.cType = \"application/json\";\n }\n if (args.param) {\n this.pathParams = args.param;\n }\n }\n let methodUpperCase = this.method.toUpperCase();\n const headerValues = {\n ...args?.header ?? {},\n ...typeof opt?.headers === \"function\" ? await opt.headers() : opt?.headers ? opt.headers : {}\n };\n if (args?.cookie) {\n const cookies = [];\n for (const [key, value] of Object.entries(args.cookie)) {\n cookies.push(serialize(key, value, { path: \"/\" }));\n }\n headerValues[\"Cookie\"] = cookies.join(\",\");\n }\n if (this.cType) {\n headerValues[\"Content-Type\"] = this.cType;\n }\n const headers = new Headers(headerValues ?? void 0);\n let url = this.url;\n url = removeIndexString(url);\n url = replaceUrlParam(url, this.pathParams);\n if (this.queryParams) {\n url = url + \"?\" + this.queryParams.toString();\n }\n methodUpperCase = this.method.toUpperCase();\n const setBody = !(methodUpperCase === \"GET\" || methodUpperCase === \"HEAD\");\n return (opt?.fetch || fetch)(url, {\n body: setBody ? this.rBody : void 0,\n method: methodUpperCase,\n headers,\n ...opt?.init\n });\n };\n};\nvar hc = (baseUrl, options) => createProxy(function proxyCallback(opts) {\n const parts = [...opts.path];\n if (parts[parts.length - 1] === \"toString\") {\n if (parts[parts.length - 2] === \"name\") {\n return parts[parts.length - 3] || \"\";\n }\n return proxyCallback.toString();\n }\n if (parts[parts.length - 1] === \"valueOf\") {\n if (parts[parts.length - 2] === \"name\") {\n return parts[parts.length - 3] || \"\";\n }\n return proxyCallback;\n }\n let method = \"\";\n if (/^\\$/.test(parts[parts.length - 1])) {\n const last = parts.pop();\n if (last) {\n method = last.replace(/^\\$/, \"\");\n }\n }\n const path = parts.join(\"/\");\n const url = mergePath(baseUrl, path);\n if (method === \"url\") {\n if (opts.args[0] && opts.args[0].param) {\n return new URL(replaceUrlParam(url, opts.args[0].param));\n }\n return new URL(url);\n }\n if (method === \"ws\") {\n const webSocketUrl = replaceUrlProtocol(\n opts.args[0] && opts.args[0].param ? replaceUrlParam(url, opts.args[0].param) : url,\n \"ws\"\n );\n const targetUrl = new URL(webSocketUrl);\n const queryParams = opts.args[0]?.query;\n if (queryParams) {\n Object.entries(queryParams).forEach(([key, value]) => {\n if (Array.isArray(value)) {\n value.forEach((item) => targetUrl.searchParams.append(key, item));\n } else {\n targetUrl.searchParams.set(key, value);\n }\n });\n }\n const establishWebSocket = (...args) => {\n if (options?.webSocket !== void 0 && typeof options.webSocket === \"function\") {\n return options.webSocket(...args);\n }\n return new WebSocket(...args);\n };\n return establishWebSocket(targetUrl.toString());\n }\n const req = new ClientRequestImpl(url, method);\n if (method) {\n options ??= {};\n const args = deepMerge(options, { ...opts.args[1] ?? {} });\n return req.fetch(opts.args[0], args);\n }\n return req;\n}, []);\nexport {\n hc\n};\n","// src/utils/cookie.ts\nimport { decodeURIComponent_ } from \"./url.js\";\nvar algorithm = { name: \"HMAC\", hash: \"SHA-256\" };\nvar getCryptoKey = async (secret) => {\n const secretBuf = typeof secret === \"string\" ? new TextEncoder().encode(secret) : secret;\n return await crypto.subtle.importKey(\"raw\", secretBuf, algorithm, false, [\"sign\", \"verify\"]);\n};\nvar makeSignature = async (value, secret) => {\n const key = await getCryptoKey(secret);\n const signature = await crypto.subtle.sign(algorithm.name, key, new TextEncoder().encode(value));\n return btoa(String.fromCharCode(...new Uint8Array(signature)));\n};\nvar verifySignature = async (base64Signature, value, secret) => {\n try {\n const signatureBinStr = atob(base64Signature);\n const signature = new Uint8Array(signatureBinStr.length);\n for (let i = 0, len = signatureBinStr.length; i < len; i++) {\n signature[i] = signatureBinStr.charCodeAt(i);\n }\n return await crypto.subtle.verify(algorithm, secret, signature, new TextEncoder().encode(value));\n } catch {\n return false;\n }\n};\nvar validCookieNameRegEx = /^[\\w!#$%&'*.^`|~+-]+$/;\nvar validCookieValueRegEx = /^[ !#-:<-[\\]-~]*$/;\nvar parse = (cookie, name) => {\n const pairs = cookie.trim().split(\";\");\n return pairs.reduce((parsedCookie, pairStr) => {\n pairStr = pairStr.trim();\n const valueStartPos = pairStr.indexOf(\"=\");\n if (valueStartPos === -1) {\n return parsedCookie;\n }\n const cookieName = pairStr.substring(0, valueStartPos).trim();\n if (name && name !== cookieName || !validCookieNameRegEx.test(cookieName)) {\n return parsedCookie;\n }\n let cookieValue = pairStr.substring(valueStartPos + 1).trim();\n if (cookieValue.startsWith('\"') && cookieValue.endsWith('\"')) {\n cookieValue = cookieValue.slice(1, -1);\n }\n if (validCookieValueRegEx.test(cookieValue)) {\n parsedCookie[cookieName] = decodeURIComponent_(cookieValue);\n }\n return parsedCookie;\n }, {});\n};\nvar parseSigned = async (cookie, secret, name) => {\n const parsedCookie = {};\n const secretKey = await getCryptoKey(secret);\n for (const [key, value] of Object.entries(parse(cookie, name))) {\n const signatureStartPos = value.lastIndexOf(\".\");\n if (signatureStartPos < 1) {\n continue;\n }\n const signedValue = value.substring(0, signatureStartPos);\n const signature = value.substring(signatureStartPos + 1);\n if (signature.length !== 44 || !signature.endsWith(\"=\")) {\n continue;\n }\n const isVerified = await verifySignature(signature, signedValue, secretKey);\n parsedCookie[key] = isVerified ? signedValue : false;\n }\n return parsedCookie;\n};\nvar _serialize = (name, value, opt = {}) => {\n let cookie = `${name}=${value}`;\n if (name.startsWith(\"__Secure-\") && !opt.secure) {\n throw new Error(\"__Secure- Cookie must have Secure attributes\");\n }\n if (name.startsWith(\"__Host-\")) {\n if (!opt.secure) {\n throw new Error(\"__Host- Cookie must have Secure attributes\");\n }\n if (opt.path !== \"/\") {\n throw new Error('__Host- Cookie must have Path attributes with \"/\"');\n }\n if (opt.domain) {\n throw new Error(\"__Host- Cookie must not have Domain attributes\");\n }\n }\n if (opt && typeof opt.maxAge === \"number\" && opt.maxAge >= 0) {\n if (opt.maxAge > 3456e4) {\n throw new Error(\n \"Cookies Max-Age SHOULD NOT be greater than 400 days (34560000 seconds) in duration.\"\n );\n }\n cookie += `; Max-Age=${Math.floor(opt.maxAge)}`;\n }\n if (opt.domain && opt.prefix !== \"host\") {\n cookie += `; Domain=${opt.domain}`;\n }\n if (opt.path) {\n cookie += `; Path=${opt.path}`;\n }\n if (opt.expires) {\n if (opt.expires.getTime() - Date.now() > 3456e7) {\n throw new Error(\n \"Cookies Expires SHOULD NOT be greater than 400 days (34560000 seconds) in the future.\"\n );\n }\n cookie += `; Expires=${opt.expires.toUTCString()}`;\n }\n if (opt.httpOnly) {\n cookie += \"; HttpOnly\";\n }\n if (opt.secure) {\n cookie += \"; Secure\";\n }\n if (opt.sameSite) {\n cookie += `; SameSite=${opt.sameSite.charAt(0).toUpperCase() + opt.sameSite.slice(1)}`;\n }\n if (opt.partitioned) {\n if (!opt.secure) {\n throw new Error(\"Partitioned Cookie must have Secure attributes\");\n }\n cookie += \"; Partitioned\";\n }\n return cookie;\n};\nvar serialize = (name, value, opt) => {\n value = encodeURIComponent(value);\n return _serialize(name, value, opt);\n};\nvar serializeSigned = async (name, value, secret, opt = {}) => {\n const signature = await makeSignature(value, secret);\n value = `${value}.${signature}`;\n value = encodeURIComponent(value);\n return _serialize(name, value, opt);\n};\nexport {\n parse,\n parseSigned,\n serialize,\n serializeSigned\n};\n","function c(c,a,d,h){c._m(a),c.o(a,\"hc\",()=>n.hc);var n=d(\"598da7d4\");}"],"names":[],"mappings":"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"}