@hsupu/copilot-api 0.8.1-beta.1 → 0.8.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/config.example.yaml +25 -0
- package/dist/{dist-8vhX0s4a.mjs → dist-B3gFwWti.mjs} +2 -3
- package/dist/{dist-8vhX0s4a.mjs.map → dist-B3gFwWti.mjs.map} +1 -1
- package/dist/main.mjs +7006 -5185
- package/dist/main.mjs.map +1 -1
- package/package.json +53 -23
- package/ui/history-v3/dist/assets/LogsPage-CkzMEjbU.css +1 -0
- package/ui/history-v3/dist/assets/LogsPage-CyM6vZyg.js +1 -0
- package/ui/history-v3/dist/assets/VActivityPage-DGZYvP1d.css +1 -0
- package/ui/history-v3/dist/assets/VActivityPage-qSJRqJGU.js +3 -0
- package/ui/history-v3/dist/assets/VCard-B2q0rBgl.js +1 -0
- package/ui/history-v3/dist/assets/VCard-v_d_q0Rh.css +1 -0
- package/ui/history-v3/dist/assets/VConfigPage-DisddwD3.css +1 -0
- package/ui/history-v3/dist/assets/VConfigPage-zQu5b6tC.js +1 -0
- package/ui/history-v3/dist/assets/VDashboardPage-CsNfE_go.js +1 -0
- package/ui/history-v3/dist/assets/VDashboardPage-oAbMfN9y.css +1 -0
- package/ui/history-v3/dist/assets/VDialog-B5tAv-4d.js +1 -0
- package/ui/history-v3/dist/assets/VDialog-CFhCWS_I.css +1 -0
- package/ui/history-v3/dist/assets/VModelsPage-C1y0gG_S.js +1 -0
- package/ui/history-v3/dist/assets/VModelsPage-DMPq4SEZ.css +1 -0
- package/ui/history-v3/dist/assets/VSelect-CahLC2X3.js +1 -0
- package/ui/history-v3/dist/assets/VSelect-CiSADOyl.css +1 -0
- package/ui/history-v3/dist/assets/VSheet-BhXOOy9y.js +1 -0
- package/ui/history-v3/dist/assets/VSheet-DI_DMcjz.css +1 -0
- package/ui/history-v3/dist/assets/index-Cxye_z0t.js +18 -0
- package/ui/history-v3/dist/assets/index-sVLYkWM6.css +1 -0
- package/ui/history-v3/dist/assets/materialdesignicons-webfont-B7mPwVP_.ttf +0 -0
- package/ui/history-v3/dist/assets/materialdesignicons-webfont-CSr8KVlo.eot +0 -0
- package/ui/history-v3/dist/assets/materialdesignicons-webfont-Dp5v-WZN.woff2 +0 -0
- package/ui/history-v3/dist/assets/materialdesignicons-webfont-PXm3-2wK.woff +0 -0
- package/ui/history-v3/dist/assets/useLogs-C_hg5wZk.js +1 -0
- package/ui/history-v3/dist/assets/{vendor-BJ2Uq5vY.js → vendor-tLv7SZ-i.js} +15 -15
- package/ui/history-v3/dist/assets/vue-McY99x0M.js +1 -0
- package/ui/history-v3/dist/assets/ws-status-BJ5xglsi.js +1 -0
- package/ui/history-v3/dist/index.html +3 -3
- package/ui/history-v3/dist/assets/DashboardPage-B1uByGH4.js +0 -1
- package/ui/history-v3/dist/assets/DashboardPage-CabImjCg.css +0 -1
- package/ui/history-v3/dist/assets/HistoryPage-CcuFI_7q.js +0 -3
- package/ui/history-v3/dist/assets/HistoryPage-MBmz_wrp.css +0 -1
- package/ui/history-v3/dist/assets/LogsPage-CTboGme2.js +0 -1
- package/ui/history-v3/dist/assets/LogsPage-DnfMvMyI.css +0 -1
- package/ui/history-v3/dist/assets/ModelsPage-BCijEIH1.css +0 -1
- package/ui/history-v3/dist/assets/ModelsPage-B_sjc_hg.js +0 -1
- package/ui/history-v3/dist/assets/ProgressBar-BQxTnwIj.js +0 -1
- package/ui/history-v3/dist/assets/ProgressBar-B_0VSeE9.css +0 -1
- package/ui/history-v3/dist/assets/UsagePage-Nx_clyfV.css +0 -1
- package/ui/history-v3/dist/assets/UsagePage-Nxy64EGo.js +0 -1
- package/ui/history-v3/dist/assets/index-D5HcAJB-.css +0 -1
- package/ui/history-v3/dist/assets/index-DOp9l2lW.js +0 -2
- package/ui/history-v3/dist/assets/vue-CYcm9SLm.js +0 -1
package/config.example.yaml
CHANGED
|
@@ -63,6 +63,10 @@ fetch_timeout: 600
|
|
|
63
63
|
# Safety net for requests that never complete/fail normally.
|
|
64
64
|
stale_request_max_age: 600
|
|
65
65
|
|
|
66
|
+
# Seconds between background model list refreshes (0 = disabled).
|
|
67
|
+
# Keeps /models cache fresh for long-running instances without requiring a restart.
|
|
68
|
+
model_refresh_interval: 600
|
|
69
|
+
|
|
66
70
|
# ============================================================================
|
|
67
71
|
# Shutdown
|
|
68
72
|
# ============================================================================
|
|
@@ -113,6 +117,25 @@ anthropic:
|
|
|
113
117
|
# Only effective for models that support context editing.
|
|
114
118
|
context_editing: off
|
|
115
119
|
|
|
120
|
+
# Input token threshold that triggers clear_tool_uses when context_editing includes tool clearing.
|
|
121
|
+
context_editing_trigger: 100000
|
|
122
|
+
|
|
123
|
+
# Number of most recent tool_use pairs to keep after clear_tool_uses runs.
|
|
124
|
+
context_editing_keep_tools: 3
|
|
125
|
+
|
|
126
|
+
# Number of most recent thinking turns to keep after clear_thinking runs.
|
|
127
|
+
context_editing_keep_thinking: 1
|
|
128
|
+
|
|
129
|
+
# Inject Copilot tool_search helper when the model supports it.
|
|
130
|
+
tool_search: true
|
|
131
|
+
|
|
132
|
+
# Inject cache_control breakpoints on stable tools/system blocks for prompt caching.
|
|
133
|
+
auto_cache_control: true
|
|
134
|
+
|
|
135
|
+
# Additional tool names that should never be deferred when tool_search is enabled.
|
|
136
|
+
# non_deferred_tools:
|
|
137
|
+
# - my_custom_tool
|
|
138
|
+
|
|
116
139
|
# Rewrite system-reminder tags in messages. false = keep all (default), true = remove all.
|
|
117
140
|
# Or provide rewrite rules (first match wins, top-down).
|
|
118
141
|
# Note: `model` field is NOT supported here (only in system_prompt_overrides).
|
|
@@ -133,6 +156,8 @@ openai-responses:
|
|
|
133
156
|
# Convert `call_xxx` IDs to `fc_xxx` in input. Required when clients send conversation history with
|
|
134
157
|
# Chat Completions-format tool call IDs to the Responses API (which requires `fc_` prefix). Default: true.
|
|
135
158
|
normalize_call_ids: true
|
|
159
|
+
# Use upstream WebSocket transport for streaming /responses when the model supports it. Default: false.
|
|
160
|
+
upstream_websocket: false
|
|
136
161
|
|
|
137
162
|
# ============================================================================
|
|
138
163
|
# Rate Limiter
|
|
@@ -2,7 +2,6 @@ import { createServer } from "http";
|
|
|
2
2
|
import { Http2ServerRequest } from "http2";
|
|
3
3
|
import { Readable } from "stream";
|
|
4
4
|
import crypto from "crypto";
|
|
5
|
-
|
|
6
5
|
//#region node_modules/@hono/node-server/dist/index.mjs
|
|
7
6
|
var RequestError = class extends Error {
|
|
8
7
|
constructor(message, options) {
|
|
@@ -423,7 +422,7 @@ var createAdaptorServer = (options) => {
|
|
|
423
422
|
});
|
|
424
423
|
return (options.createServer || createServer)(options.serverOptions || {}, requestListener);
|
|
425
424
|
};
|
|
426
|
-
|
|
427
425
|
//#endregion
|
|
428
426
|
export { createAdaptorServer };
|
|
429
|
-
|
|
427
|
+
|
|
428
|
+
//# sourceMappingURL=dist-B3gFwWti.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dist-8vhX0s4a.mjs","names":["#body","#init","Http2ServerRequest2","createServerHTTP"],"sources":["../node_modules/@hono/node-server/dist/index.mjs"],"sourcesContent":["// src/server.ts\nimport { createServer as createServerHTTP } from \"http\";\n\n// src/listener.ts\nimport { Http2ServerRequest as Http2ServerRequest2 } from \"http2\";\n\n// src/request.ts\nimport { Http2ServerRequest } from \"http2\";\nimport { Readable } from \"stream\";\nvar RequestError = class extends Error {\n constructor(message, options) {\n super(message, options);\n this.name = \"RequestError\";\n }\n};\nvar toRequestError = (e) => {\n if (e instanceof RequestError) {\n return e;\n }\n return new RequestError(e.message, { cause: e });\n};\nvar GlobalRequest = global.Request;\nvar Request = class extends GlobalRequest {\n constructor(input, options) {\n if (typeof input === \"object\" && getRequestCache in input) {\n input = input[getRequestCache]();\n }\n if (typeof options?.body?.getReader !== \"undefined\") {\n ;\n options.duplex ??= \"half\";\n }\n super(input, options);\n }\n};\nvar newHeadersFromIncoming = (incoming) => {\n const headerRecord = [];\n const rawHeaders = incoming.rawHeaders;\n for (let i = 0; i < rawHeaders.length; i += 2) {\n const { [i]: key, [i + 1]: value } = rawHeaders;\n if (key.charCodeAt(0) !== /*:*/\n 58) {\n headerRecord.push([key, value]);\n }\n }\n return new Headers(headerRecord);\n};\nvar wrapBodyStream = Symbol(\"wrapBodyStream\");\nvar newRequestFromIncoming = (method, url, headers, incoming, abortController) => {\n const init = {\n method,\n headers,\n signal: abortController.signal\n };\n if (method === \"TRACE\") {\n init.method = \"GET\";\n const req = new Request(url, init);\n Object.defineProperty(req, \"method\", {\n get() {\n return \"TRACE\";\n }\n });\n return req;\n }\n if (!(method === \"GET\" || method === \"HEAD\")) {\n if (\"rawBody\" in incoming && incoming.rawBody instanceof Buffer) {\n init.body = new ReadableStream({\n start(controller) {\n controller.enqueue(incoming.rawBody);\n controller.close();\n }\n });\n } else if (incoming[wrapBodyStream]) {\n let reader;\n init.body = new ReadableStream({\n async pull(controller) {\n try {\n reader ||= Readable.toWeb(incoming).getReader();\n const { done, value } = await reader.read();\n if (done) {\n controller.close();\n } else {\n controller.enqueue(value);\n }\n } catch (error) {\n controller.error(error);\n }\n }\n });\n } else {\n init.body = Readable.toWeb(incoming);\n }\n }\n return new Request(url, init);\n};\nvar getRequestCache = Symbol(\"getRequestCache\");\nvar requestCache = Symbol(\"requestCache\");\nvar incomingKey = Symbol(\"incomingKey\");\nvar urlKey = Symbol(\"urlKey\");\nvar headersKey = Symbol(\"headersKey\");\nvar abortControllerKey = Symbol(\"abortControllerKey\");\nvar getAbortController = Symbol(\"getAbortController\");\nvar requestPrototype = {\n get method() {\n return this[incomingKey].method || \"GET\";\n },\n get url() {\n return this[urlKey];\n },\n get headers() {\n return this[headersKey] ||= newHeadersFromIncoming(this[incomingKey]);\n },\n [getAbortController]() {\n this[getRequestCache]();\n return this[abortControllerKey];\n },\n [getRequestCache]() {\n this[abortControllerKey] ||= new AbortController();\n return this[requestCache] ||= newRequestFromIncoming(\n this.method,\n this[urlKey],\n this.headers,\n this[incomingKey],\n this[abortControllerKey]\n );\n }\n};\n[\n \"body\",\n \"bodyUsed\",\n \"cache\",\n \"credentials\",\n \"destination\",\n \"integrity\",\n \"mode\",\n \"redirect\",\n \"referrer\",\n \"referrerPolicy\",\n \"signal\",\n \"keepalive\"\n].forEach((k) => {\n Object.defineProperty(requestPrototype, k, {\n get() {\n return this[getRequestCache]()[k];\n }\n });\n});\n[\"arrayBuffer\", \"blob\", \"clone\", \"formData\", \"json\", \"text\"].forEach((k) => {\n Object.defineProperty(requestPrototype, k, {\n value: function() {\n return this[getRequestCache]()[k]();\n }\n });\n});\nObject.setPrototypeOf(requestPrototype, Request.prototype);\nvar newRequest = (incoming, defaultHostname) => {\n const req = Object.create(requestPrototype);\n req[incomingKey] = incoming;\n const incomingUrl = incoming.url || \"\";\n if (incomingUrl[0] !== \"/\" && // short-circuit for performance. most requests are relative URL.\n (incomingUrl.startsWith(\"http://\") || incomingUrl.startsWith(\"https://\"))) {\n if (incoming instanceof Http2ServerRequest) {\n throw new RequestError(\"Absolute URL for :path is not allowed in HTTP/2\");\n }\n try {\n const url2 = new URL(incomingUrl);\n req[urlKey] = url2.href;\n } catch (e) {\n throw new RequestError(\"Invalid absolute URL\", { cause: e });\n }\n return req;\n }\n const host = (incoming instanceof Http2ServerRequest ? incoming.authority : incoming.headers.host) || defaultHostname;\n if (!host) {\n throw new RequestError(\"Missing host header\");\n }\n let scheme;\n if (incoming instanceof Http2ServerRequest) {\n scheme = incoming.scheme;\n if (!(scheme === \"http\" || scheme === \"https\")) {\n throw new RequestError(\"Unsupported scheme\");\n }\n } else {\n scheme = incoming.socket && incoming.socket.encrypted ? \"https\" : \"http\";\n }\n const url = new URL(`${scheme}://${host}${incomingUrl}`);\n if (url.hostname.length !== host.length && url.hostname !== host.replace(/:\\d+$/, \"\")) {\n throw new RequestError(\"Invalid host header\");\n }\n req[urlKey] = url.href;\n return req;\n};\n\n// src/response.ts\nvar responseCache = Symbol(\"responseCache\");\nvar getResponseCache = Symbol(\"getResponseCache\");\nvar cacheKey = Symbol(\"cache\");\nvar GlobalResponse = global.Response;\nvar Response2 = class _Response {\n #body;\n #init;\n [getResponseCache]() {\n delete this[cacheKey];\n return this[responseCache] ||= new GlobalResponse(this.#body, this.#init);\n }\n constructor(body, init) {\n let headers;\n this.#body = body;\n if (init instanceof _Response) {\n const cachedGlobalResponse = init[responseCache];\n if (cachedGlobalResponse) {\n this.#init = cachedGlobalResponse;\n this[getResponseCache]();\n return;\n } else {\n this.#init = init.#init;\n headers = new Headers(init.#init.headers);\n }\n } else {\n this.#init = init;\n }\n if (typeof body === \"string\" || typeof body?.getReader !== \"undefined\" || body instanceof Blob || body instanceof Uint8Array) {\n headers ||= init?.headers || { \"content-type\": \"text/plain; charset=UTF-8\" };\n this[cacheKey] = [init?.status || 200, body, headers];\n }\n }\n get headers() {\n const cache = this[cacheKey];\n if (cache) {\n if (!(cache[2] instanceof Headers)) {\n cache[2] = new Headers(cache[2]);\n }\n return cache[2];\n }\n return this[getResponseCache]().headers;\n }\n get status() {\n return this[cacheKey]?.[0] ?? this[getResponseCache]().status;\n }\n get ok() {\n const status = this.status;\n return status >= 200 && status < 300;\n }\n};\n[\"body\", \"bodyUsed\", \"redirected\", \"statusText\", \"trailers\", \"type\", \"url\"].forEach((k) => {\n Object.defineProperty(Response2.prototype, k, {\n get() {\n return this[getResponseCache]()[k];\n }\n });\n});\n[\"arrayBuffer\", \"blob\", \"clone\", \"formData\", \"json\", \"text\"].forEach((k) => {\n Object.defineProperty(Response2.prototype, k, {\n value: function() {\n return this[getResponseCache]()[k]();\n }\n });\n});\nObject.setPrototypeOf(Response2, GlobalResponse);\nObject.setPrototypeOf(Response2.prototype, GlobalResponse.prototype);\n\n// src/utils.ts\nasync function readWithoutBlocking(readPromise) {\n return Promise.race([readPromise, Promise.resolve().then(() => Promise.resolve(void 0))]);\n}\nfunction writeFromReadableStreamDefaultReader(reader, writable, currentReadPromise) {\n const cancel = (error) => {\n reader.cancel(error).catch(() => {\n });\n };\n writable.on(\"close\", cancel);\n writable.on(\"error\", cancel);\n (currentReadPromise ?? reader.read()).then(flow, handleStreamError);\n return reader.closed.finally(() => {\n writable.off(\"close\", cancel);\n writable.off(\"error\", cancel);\n });\n function handleStreamError(error) {\n if (error) {\n writable.destroy(error);\n }\n }\n function onDrain() {\n reader.read().then(flow, handleStreamError);\n }\n function flow({ done, value }) {\n try {\n if (done) {\n writable.end();\n } else if (!writable.write(value)) {\n writable.once(\"drain\", onDrain);\n } else {\n return reader.read().then(flow, handleStreamError);\n }\n } catch (e) {\n handleStreamError(e);\n }\n }\n}\nfunction writeFromReadableStream(stream, writable) {\n if (stream.locked) {\n throw new TypeError(\"ReadableStream is locked.\");\n } else if (writable.destroyed) {\n return;\n }\n return writeFromReadableStreamDefaultReader(stream.getReader(), writable);\n}\nvar buildOutgoingHttpHeaders = (headers) => {\n const res = {};\n if (!(headers instanceof Headers)) {\n headers = new Headers(headers ?? void 0);\n }\n const cookies = [];\n for (const [k, v] of headers) {\n if (k === \"set-cookie\") {\n cookies.push(v);\n } else {\n res[k] = v;\n }\n }\n if (cookies.length > 0) {\n res[\"set-cookie\"] = cookies;\n }\n res[\"content-type\"] ??= \"text/plain; charset=UTF-8\";\n return res;\n};\n\n// src/utils/response/constants.ts\nvar X_ALREADY_SENT = \"x-hono-already-sent\";\n\n// src/globals.ts\nimport crypto from \"crypto\";\nif (typeof global.crypto === \"undefined\") {\n global.crypto = crypto;\n}\n\n// src/listener.ts\nvar outgoingEnded = Symbol(\"outgoingEnded\");\nvar handleRequestError = () => new Response(null, {\n status: 400\n});\nvar handleFetchError = (e) => new Response(null, {\n status: e instanceof Error && (e.name === \"TimeoutError\" || e.constructor.name === \"TimeoutError\") ? 504 : 500\n});\nvar handleResponseError = (e, outgoing) => {\n const err = e instanceof Error ? e : new Error(\"unknown error\", { cause: e });\n if (err.code === \"ERR_STREAM_PREMATURE_CLOSE\") {\n console.info(\"The user aborted a request.\");\n } else {\n console.error(e);\n if (!outgoing.headersSent) {\n outgoing.writeHead(500, { \"Content-Type\": \"text/plain\" });\n }\n outgoing.end(`Error: ${err.message}`);\n outgoing.destroy(err);\n }\n};\nvar flushHeaders = (outgoing) => {\n if (\"flushHeaders\" in outgoing && outgoing.writable) {\n outgoing.flushHeaders();\n }\n};\nvar responseViaCache = async (res, outgoing) => {\n let [status, body, header] = res[cacheKey];\n if (header instanceof Headers) {\n header = buildOutgoingHttpHeaders(header);\n }\n if (typeof body === \"string\") {\n header[\"Content-Length\"] = Buffer.byteLength(body);\n } else if (body instanceof Uint8Array) {\n header[\"Content-Length\"] = body.byteLength;\n } else if (body instanceof Blob) {\n header[\"Content-Length\"] = body.size;\n }\n outgoing.writeHead(status, header);\n if (typeof body === \"string\" || body instanceof Uint8Array) {\n outgoing.end(body);\n } else if (body instanceof Blob) {\n outgoing.end(new Uint8Array(await body.arrayBuffer()));\n } else {\n flushHeaders(outgoing);\n await writeFromReadableStream(body, outgoing)?.catch(\n (e) => handleResponseError(e, outgoing)\n );\n }\n ;\n outgoing[outgoingEnded]?.();\n};\nvar isPromise = (res) => typeof res.then === \"function\";\nvar responseViaResponseObject = async (res, outgoing, options = {}) => {\n if (isPromise(res)) {\n if (options.errorHandler) {\n try {\n res = await res;\n } catch (err) {\n const errRes = await options.errorHandler(err);\n if (!errRes) {\n return;\n }\n res = errRes;\n }\n } else {\n res = await res.catch(handleFetchError);\n }\n }\n if (cacheKey in res) {\n return responseViaCache(res, outgoing);\n }\n const resHeaderRecord = buildOutgoingHttpHeaders(res.headers);\n if (res.body) {\n const reader = res.body.getReader();\n const values = [];\n let done = false;\n let currentReadPromise = void 0;\n if (resHeaderRecord[\"transfer-encoding\"] !== \"chunked\") {\n let maxReadCount = 2;\n for (let i = 0; i < maxReadCount; i++) {\n currentReadPromise ||= reader.read();\n const chunk = await readWithoutBlocking(currentReadPromise).catch((e) => {\n console.error(e);\n done = true;\n });\n if (!chunk) {\n if (i === 1) {\n await new Promise((resolve) => setTimeout(resolve));\n maxReadCount = 3;\n continue;\n }\n break;\n }\n currentReadPromise = void 0;\n if (chunk.value) {\n values.push(chunk.value);\n }\n if (chunk.done) {\n done = true;\n break;\n }\n }\n if (done && !(\"content-length\" in resHeaderRecord)) {\n resHeaderRecord[\"content-length\"] = values.reduce((acc, value) => acc + value.length, 0);\n }\n }\n outgoing.writeHead(res.status, resHeaderRecord);\n values.forEach((value) => {\n ;\n outgoing.write(value);\n });\n if (done) {\n outgoing.end();\n } else {\n if (values.length === 0) {\n flushHeaders(outgoing);\n }\n await writeFromReadableStreamDefaultReader(reader, outgoing, currentReadPromise);\n }\n } else if (resHeaderRecord[X_ALREADY_SENT]) {\n } else {\n outgoing.writeHead(res.status, resHeaderRecord);\n outgoing.end();\n }\n ;\n outgoing[outgoingEnded]?.();\n};\nvar getRequestListener = (fetchCallback, options = {}) => {\n const autoCleanupIncoming = options.autoCleanupIncoming ?? true;\n if (options.overrideGlobalObjects !== false && global.Request !== Request) {\n Object.defineProperty(global, \"Request\", {\n value: Request\n });\n Object.defineProperty(global, \"Response\", {\n value: Response2\n });\n }\n return async (incoming, outgoing) => {\n let res, req;\n try {\n req = newRequest(incoming, options.hostname);\n let incomingEnded = !autoCleanupIncoming || incoming.method === \"GET\" || incoming.method === \"HEAD\";\n if (!incomingEnded) {\n ;\n incoming[wrapBodyStream] = true;\n incoming.on(\"end\", () => {\n incomingEnded = true;\n });\n if (incoming instanceof Http2ServerRequest2) {\n ;\n outgoing[outgoingEnded] = () => {\n if (!incomingEnded) {\n setTimeout(() => {\n if (!incomingEnded) {\n setTimeout(() => {\n incoming.destroy();\n outgoing.destroy();\n });\n }\n });\n }\n };\n }\n }\n outgoing.on(\"close\", () => {\n const abortController = req[abortControllerKey];\n if (abortController) {\n if (incoming.errored) {\n req[abortControllerKey].abort(incoming.errored.toString());\n } else if (!outgoing.writableFinished) {\n req[abortControllerKey].abort(\"Client connection prematurely closed.\");\n }\n }\n if (!incomingEnded) {\n setTimeout(() => {\n if (!incomingEnded) {\n setTimeout(() => {\n incoming.destroy();\n });\n }\n });\n }\n });\n res = fetchCallback(req, { incoming, outgoing });\n if (cacheKey in res) {\n return responseViaCache(res, outgoing);\n }\n } catch (e) {\n if (!res) {\n if (options.errorHandler) {\n res = await options.errorHandler(req ? e : toRequestError(e));\n if (!res) {\n return;\n }\n } else if (!req) {\n res = handleRequestError();\n } else {\n res = handleFetchError(e);\n }\n } else {\n return handleResponseError(e, outgoing);\n }\n }\n try {\n return await responseViaResponseObject(res, outgoing, options);\n } catch (e) {\n return handleResponseError(e, outgoing);\n }\n };\n};\n\n// src/server.ts\nvar createAdaptorServer = (options) => {\n const fetchCallback = options.fetch;\n const requestListener = getRequestListener(fetchCallback, {\n hostname: options.hostname,\n overrideGlobalObjects: options.overrideGlobalObjects,\n autoCleanupIncoming: options.autoCleanupIncoming\n });\n const createServer = options.createServer || createServerHTTP;\n const server = createServer(options.serverOptions || {}, requestListener);\n return server;\n};\nvar serve = (options, listeningListener) => {\n const server = createAdaptorServer(options);\n server.listen(options?.port ?? 3e3, options.hostname, () => {\n const serverInfo = server.address();\n listeningListener && listeningListener(serverInfo);\n });\n return server;\n};\nexport {\n RequestError,\n createAdaptorServer,\n getRequestListener,\n serve\n};\n"],"x_google_ignoreList":[0],"mappings":";;;;;;AASA,IAAI,eAAe,cAAc,MAAM;CACrC,YAAY,SAAS,SAAS;AAC5B,QAAM,SAAS,QAAQ;AACvB,OAAK,OAAO;;;AAGhB,IAAI,kBAAkB,MAAM;AAC1B,KAAI,aAAa,aACf,QAAO;AAET,QAAO,IAAI,aAAa,EAAE,SAAS,EAAE,OAAO,GAAG,CAAC;;AAElD,IAAI,gBAAgB,OAAO;AAC3B,IAAI,UAAU,cAAc,cAAc;CACxC,YAAY,OAAO,SAAS;AAC1B,MAAI,OAAO,UAAU,YAAY,mBAAmB,MAClD,SAAQ,MAAM,kBAAkB;AAElC,MAAI,OAAO,SAAS,MAAM,cAAc,YAEtC,SAAQ,WAAW;AAErB,QAAM,OAAO,QAAQ;;;AAGzB,IAAI,0BAA0B,aAAa;CACzC,MAAM,eAAe,EAAE;CACvB,MAAM,aAAa,SAAS;AAC5B,MAAK,IAAI,IAAI,GAAG,IAAI,WAAW,QAAQ,KAAK,GAAG;EAC7C,MAAM,GAAG,IAAI,MAAM,IAAI,IAAI,UAAU;AACrC,MAAI,IAAI,WAAW,EAAE,KACrB,GACE,cAAa,KAAK,CAAC,KAAK,MAAM,CAAC;;AAGnC,QAAO,IAAI,QAAQ,aAAa;;AAElC,IAAI,iBAAiB,OAAO,iBAAiB;AAC7C,IAAI,0BAA0B,QAAQ,KAAK,SAAS,UAAU,oBAAoB;CAChF,MAAM,OAAO;EACX;EACA;EACA,QAAQ,gBAAgB;EACzB;AACD,KAAI,WAAW,SAAS;AACtB,OAAK,SAAS;EACd,MAAM,MAAM,IAAI,QAAQ,KAAK,KAAK;AAClC,SAAO,eAAe,KAAK,UAAU,EACnC,MAAM;AACJ,UAAO;KAEV,CAAC;AACF,SAAO;;AAET,KAAI,EAAE,WAAW,SAAS,WAAW,QACnC,KAAI,aAAa,YAAY,SAAS,mBAAmB,OACvD,MAAK,OAAO,IAAI,eAAe,EAC7B,MAAM,YAAY;AAChB,aAAW,QAAQ,SAAS,QAAQ;AACpC,aAAW,OAAO;IAErB,CAAC;UACO,SAAS,iBAAiB;EACnC,IAAI;AACJ,OAAK,OAAO,IAAI,eAAe,EAC7B,MAAM,KAAK,YAAY;AACrB,OAAI;AACF,eAAW,SAAS,MAAM,SAAS,CAAC,WAAW;IAC/C,MAAM,EAAE,MAAM,UAAU,MAAM,OAAO,MAAM;AAC3C,QAAI,KACF,YAAW,OAAO;QAElB,YAAW,QAAQ,MAAM;YAEpB,OAAO;AACd,eAAW,MAAM,MAAM;;KAG5B,CAAC;OAEF,MAAK,OAAO,SAAS,MAAM,SAAS;AAGxC,QAAO,IAAI,QAAQ,KAAK,KAAK;;AAE/B,IAAI,kBAAkB,OAAO,kBAAkB;AAC/C,IAAI,eAAe,OAAO,eAAe;AACzC,IAAI,cAAc,OAAO,cAAc;AACvC,IAAI,SAAS,OAAO,SAAS;AAC7B,IAAI,aAAa,OAAO,aAAa;AACrC,IAAI,qBAAqB,OAAO,qBAAqB;AAErD,IAAI,mBAAmB;CACrB,IAAI,SAAS;AACX,SAAO,KAAK,aAAa,UAAU;;CAErC,IAAI,MAAM;AACR,SAAO,KAAK;;CAEd,IAAI,UAAU;AACZ,SAAO,KAAK,gBAAgB,uBAAuB,KAAK,aAAa;;CAEvE,CAXuB,OAAO,qBAAqB,IAW5B;AACrB,OAAK,kBAAkB;AACvB,SAAO,KAAK;;CAEd,CAAC,mBAAmB;AAClB,OAAK,wBAAwB,IAAI,iBAAiB;AAClD,SAAO,KAAK,kBAAkB,uBAC5B,KAAK,QACL,KAAK,SACL,KAAK,SACL,KAAK,cACL,KAAK,oBACN;;CAEJ;AACD;CACE;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACD,CAAC,SAAS,MAAM;AACf,QAAO,eAAe,kBAAkB,GAAG,EACzC,MAAM;AACJ,SAAO,KAAK,kBAAkB,CAAC;IAElC,CAAC;EACF;AACF;CAAC;CAAe;CAAQ;CAAS;CAAY;CAAQ;CAAO,CAAC,SAAS,MAAM;AAC1E,QAAO,eAAe,kBAAkB,GAAG,EACzC,OAAO,WAAW;AAChB,SAAO,KAAK,kBAAkB,CAAC,IAAI;IAEtC,CAAC;EACF;AACF,OAAO,eAAe,kBAAkB,QAAQ,UAAU;AAC1D,IAAI,cAAc,UAAU,oBAAoB;CAC9C,MAAM,MAAM,OAAO,OAAO,iBAAiB;AAC3C,KAAI,eAAe;CACnB,MAAM,cAAc,SAAS,OAAO;AACpC,KAAI,YAAY,OAAO,QACtB,YAAY,WAAW,UAAU,IAAI,YAAY,WAAW,WAAW,GAAG;AACzE,MAAI,oBAAoB,mBACtB,OAAM,IAAI,aAAa,kDAAkD;AAE3E,MAAI;AAEF,OAAI,UADS,IAAI,IAAI,YAAY,CACd;WACZ,GAAG;AACV,SAAM,IAAI,aAAa,wBAAwB,EAAE,OAAO,GAAG,CAAC;;AAE9D,SAAO;;CAET,MAAM,QAAQ,oBAAoB,qBAAqB,SAAS,YAAY,SAAS,QAAQ,SAAS;AACtG,KAAI,CAAC,KACH,OAAM,IAAI,aAAa,sBAAsB;CAE/C,IAAI;AACJ,KAAI,oBAAoB,oBAAoB;AAC1C,WAAS,SAAS;AAClB,MAAI,EAAE,WAAW,UAAU,WAAW,SACpC,OAAM,IAAI,aAAa,qBAAqB;OAG9C,UAAS,SAAS,UAAU,SAAS,OAAO,YAAY,UAAU;CAEpE,MAAM,MAAM,IAAI,IAAI,GAAG,OAAO,KAAK,OAAO,cAAc;AACxD,KAAI,IAAI,SAAS,WAAW,KAAK,UAAU,IAAI,aAAa,KAAK,QAAQ,SAAS,GAAG,CACnF,OAAM,IAAI,aAAa,sBAAsB;AAE/C,KAAI,UAAU,IAAI;AAClB,QAAO;;AAIT,IAAI,gBAAgB,OAAO,gBAAgB;AAC3C,IAAI,mBAAmB,OAAO,mBAAmB;AACjD,IAAI,WAAW,OAAO,QAAQ;AAC9B,IAAI,iBAAiB,OAAO;AAC5B,IAAI,YAAY,MAAM,UAAU;CAC9B;CACA;CACA,CAAC,oBAAoB;AACnB,SAAO,KAAK;AACZ,SAAO,KAAK,mBAAmB,IAAI,eAAe,MAAKA,MAAO,MAAKC,KAAM;;CAE3E,YAAY,MAAM,MAAM;EACtB,IAAI;AACJ,QAAKD,OAAQ;AACb,MAAI,gBAAgB,WAAW;GAC7B,MAAM,uBAAuB,KAAK;AAClC,OAAI,sBAAsB;AACxB,UAAKC,OAAQ;AACb,SAAK,mBAAmB;AACxB;UACK;AACL,UAAKA,OAAQ,MAAKA;AAClB,cAAU,IAAI,QAAQ,MAAKA,KAAM,QAAQ;;QAG3C,OAAKA,OAAQ;AAEf,MAAI,OAAO,SAAS,YAAY,OAAO,MAAM,cAAc,eAAe,gBAAgB,QAAQ,gBAAgB,YAAY;AAC5H,eAAY,MAAM,WAAW,EAAE,gBAAgB,6BAA6B;AAC5E,QAAK,YAAY;IAAC,MAAM,UAAU;IAAK;IAAM;IAAQ;;;CAGzD,IAAI,UAAU;EACZ,MAAM,QAAQ,KAAK;AACnB,MAAI,OAAO;AACT,OAAI,EAAE,MAAM,cAAc,SACxB,OAAM,KAAK,IAAI,QAAQ,MAAM,GAAG;AAElC,UAAO,MAAM;;AAEf,SAAO,KAAK,mBAAmB,CAAC;;CAElC,IAAI,SAAS;AACX,SAAO,KAAK,YAAY,MAAM,KAAK,mBAAmB,CAAC;;CAEzD,IAAI,KAAK;EACP,MAAM,SAAS,KAAK;AACpB,SAAO,UAAU,OAAO,SAAS;;;AAGrC;CAAC;CAAQ;CAAY;CAAc;CAAc;CAAY;CAAQ;CAAM,CAAC,SAAS,MAAM;AACzF,QAAO,eAAe,UAAU,WAAW,GAAG,EAC5C,MAAM;AACJ,SAAO,KAAK,mBAAmB,CAAC;IAEnC,CAAC;EACF;AACF;CAAC;CAAe;CAAQ;CAAS;CAAY;CAAQ;CAAO,CAAC,SAAS,MAAM;AAC1E,QAAO,eAAe,UAAU,WAAW,GAAG,EAC5C,OAAO,WAAW;AAChB,SAAO,KAAK,mBAAmB,CAAC,IAAI;IAEvC,CAAC;EACF;AACF,OAAO,eAAe,WAAW,eAAe;AAChD,OAAO,eAAe,UAAU,WAAW,eAAe,UAAU;AAGpE,eAAe,oBAAoB,aAAa;AAC9C,QAAO,QAAQ,KAAK,CAAC,aAAa,QAAQ,SAAS,CAAC,WAAW,QAAQ,QAAQ,KAAK,EAAE,CAAC,CAAC,CAAC;;AAE3F,SAAS,qCAAqC,QAAQ,UAAU,oBAAoB;CAClF,MAAM,UAAU,UAAU;AACxB,SAAO,OAAO,MAAM,CAAC,YAAY,GAC/B;;AAEJ,UAAS,GAAG,SAAS,OAAO;AAC5B,UAAS,GAAG,SAAS,OAAO;AAC5B,EAAC,sBAAsB,OAAO,MAAM,EAAE,KAAK,MAAM,kBAAkB;AACnE,QAAO,OAAO,OAAO,cAAc;AACjC,WAAS,IAAI,SAAS,OAAO;AAC7B,WAAS,IAAI,SAAS,OAAO;GAC7B;CACF,SAAS,kBAAkB,OAAO;AAChC,MAAI,MACF,UAAS,QAAQ,MAAM;;CAG3B,SAAS,UAAU;AACjB,SAAO,MAAM,CAAC,KAAK,MAAM,kBAAkB;;CAE7C,SAAS,KAAK,EAAE,MAAM,SAAS;AAC7B,MAAI;AACF,OAAI,KACF,UAAS,KAAK;YACL,CAAC,SAAS,MAAM,MAAM,CAC/B,UAAS,KAAK,SAAS,QAAQ;OAE/B,QAAO,OAAO,MAAM,CAAC,KAAK,MAAM,kBAAkB;WAE7C,GAAG;AACV,qBAAkB,EAAE;;;;AAI1B,SAAS,wBAAwB,QAAQ,UAAU;AACjD,KAAI,OAAO,OACT,OAAM,IAAI,UAAU,4BAA4B;UACvC,SAAS,UAClB;AAEF,QAAO,qCAAqC,OAAO,WAAW,EAAE,SAAS;;AAE3E,IAAI,4BAA4B,YAAY;CAC1C,MAAM,MAAM,EAAE;AACd,KAAI,EAAE,mBAAmB,SACvB,WAAU,IAAI,QAAQ,WAAW,KAAK,EAAE;CAE1C,MAAM,UAAU,EAAE;AAClB,MAAK,MAAM,CAAC,GAAG,MAAM,QACnB,KAAI,MAAM,aACR,SAAQ,KAAK,EAAE;KAEf,KAAI,KAAK;AAGb,KAAI,QAAQ,SAAS,EACnB,KAAI,gBAAgB;AAEtB,KAAI,oBAAoB;AACxB,QAAO;;AAIT,IAAI,iBAAiB;AAIrB,IAAI,OAAO,OAAO,WAAW,YAC3B,QAAO,SAAS;AAIlB,IAAI,gBAAgB,OAAO,gBAAgB;AAC3C,IAAI,2BAA2B,IAAI,SAAS,MAAM,EAChD,QAAQ,KACT,CAAC;AACF,IAAI,oBAAoB,MAAM,IAAI,SAAS,MAAM,EAC/C,QAAQ,aAAa,UAAU,EAAE,SAAS,kBAAkB,EAAE,YAAY,SAAS,kBAAkB,MAAM,KAC5G,CAAC;AACF,IAAI,uBAAuB,GAAG,aAAa;CACzC,MAAM,MAAM,aAAa,QAAQ,IAAI,IAAI,MAAM,iBAAiB,EAAE,OAAO,GAAG,CAAC;AAC7E,KAAI,IAAI,SAAS,6BACf,SAAQ,KAAK,8BAA8B;MACtC;AACL,UAAQ,MAAM,EAAE;AAChB,MAAI,CAAC,SAAS,YACZ,UAAS,UAAU,KAAK,EAAE,gBAAgB,cAAc,CAAC;AAE3D,WAAS,IAAI,UAAU,IAAI,UAAU;AACrC,WAAS,QAAQ,IAAI;;;AAGzB,IAAI,gBAAgB,aAAa;AAC/B,KAAI,kBAAkB,YAAY,SAAS,SACzC,UAAS,cAAc;;AAG3B,IAAI,mBAAmB,OAAO,KAAK,aAAa;CAC9C,IAAI,CAAC,QAAQ,MAAM,UAAU,IAAI;AACjC,KAAI,kBAAkB,QACpB,UAAS,yBAAyB,OAAO;AAE3C,KAAI,OAAO,SAAS,SAClB,QAAO,oBAAoB,OAAO,WAAW,KAAK;UACzC,gBAAgB,WACzB,QAAO,oBAAoB,KAAK;UACvB,gBAAgB,KACzB,QAAO,oBAAoB,KAAK;AAElC,UAAS,UAAU,QAAQ,OAAO;AAClC,KAAI,OAAO,SAAS,YAAY,gBAAgB,WAC9C,UAAS,IAAI,KAAK;UACT,gBAAgB,KACzB,UAAS,IAAI,IAAI,WAAW,MAAM,KAAK,aAAa,CAAC,CAAC;MACjD;AACL,eAAa,SAAS;AACtB,QAAM,wBAAwB,MAAM,SAAS,EAAE,OAC5C,MAAM,oBAAoB,GAAG,SAAS,CACxC;;AAGH,UAAS,kBAAkB;;AAE7B,IAAI,aAAa,QAAQ,OAAO,IAAI,SAAS;AAC7C,IAAI,4BAA4B,OAAO,KAAK,UAAU,UAAU,EAAE,KAAK;AACrE,KAAI,UAAU,IAAI,CAChB,KAAI,QAAQ,aACV,KAAI;AACF,QAAM,MAAM;UACL,KAAK;EACZ,MAAM,SAAS,MAAM,QAAQ,aAAa,IAAI;AAC9C,MAAI,CAAC,OACH;AAEF,QAAM;;KAGR,OAAM,MAAM,IAAI,MAAM,iBAAiB;AAG3C,KAAI,YAAY,IACd,QAAO,iBAAiB,KAAK,SAAS;CAExC,MAAM,kBAAkB,yBAAyB,IAAI,QAAQ;AAC7D,KAAI,IAAI,MAAM;EACZ,MAAM,SAAS,IAAI,KAAK,WAAW;EACnC,MAAM,SAAS,EAAE;EACjB,IAAI,OAAO;EACX,IAAI,qBAAqB,KAAK;AAC9B,MAAI,gBAAgB,yBAAyB,WAAW;GACtD,IAAI,eAAe;AACnB,QAAK,IAAI,IAAI,GAAG,IAAI,cAAc,KAAK;AACrC,2BAAuB,OAAO,MAAM;IACpC,MAAM,QAAQ,MAAM,oBAAoB,mBAAmB,CAAC,OAAO,MAAM;AACvE,aAAQ,MAAM,EAAE;AAChB,YAAO;MACP;AACF,QAAI,CAAC,OAAO;AACV,SAAI,MAAM,GAAG;AACX,YAAM,IAAI,SAAS,YAAY,WAAW,QAAQ,CAAC;AACnD,qBAAe;AACf;;AAEF;;AAEF,yBAAqB,KAAK;AAC1B,QAAI,MAAM,MACR,QAAO,KAAK,MAAM,MAAM;AAE1B,QAAI,MAAM,MAAM;AACd,YAAO;AACP;;;AAGJ,OAAI,QAAQ,EAAE,oBAAoB,iBAChC,iBAAgB,oBAAoB,OAAO,QAAQ,KAAK,UAAU,MAAM,MAAM,QAAQ,EAAE;;AAG5F,WAAS,UAAU,IAAI,QAAQ,gBAAgB;AAC/C,SAAO,SAAS,UAAU;AAExB,YAAS,MAAM,MAAM;IACrB;AACF,MAAI,KACF,UAAS,KAAK;OACT;AACL,OAAI,OAAO,WAAW,EACpB,cAAa,SAAS;AAExB,SAAM,qCAAqC,QAAQ,UAAU,mBAAmB;;YAEzE,gBAAgB,iBAAiB,QACrC;AACL,WAAS,UAAU,IAAI,QAAQ,gBAAgB;AAC/C,WAAS,KAAK;;AAGhB,UAAS,kBAAkB;;AAE7B,IAAI,sBAAsB,eAAe,UAAU,EAAE,KAAK;CACxD,MAAM,sBAAsB,QAAQ,uBAAuB;AAC3D,KAAI,QAAQ,0BAA0B,SAAS,OAAO,YAAY,SAAS;AACzE,SAAO,eAAe,QAAQ,WAAW,EACvC,OAAO,SACR,CAAC;AACF,SAAO,eAAe,QAAQ,YAAY,EACxC,OAAO,WACR,CAAC;;AAEJ,QAAO,OAAO,UAAU,aAAa;EACnC,IAAI,KAAK;AACT,MAAI;AACF,SAAM,WAAW,UAAU,QAAQ,SAAS;GAC5C,IAAI,gBAAgB,CAAC,uBAAuB,SAAS,WAAW,SAAS,SAAS,WAAW;AAC7F,OAAI,CAAC,eAAe;AAElB,aAAS,kBAAkB;AAC3B,aAAS,GAAG,aAAa;AACvB,qBAAgB;MAChB;AACF,QAAI,oBAAoBC,mBAEtB,UAAS,uBAAuB;AAC9B,SAAI,CAAC,cACH,kBAAiB;AACf,UAAI,CAAC,cACH,kBAAiB;AACf,gBAAS,SAAS;AAClB,gBAAS,SAAS;QAClB;OAEJ;;;AAKV,YAAS,GAAG,eAAe;AAEzB,QADwB,IAAI,qBAE1B;SAAI,SAAS,QACX,KAAI,oBAAoB,MAAM,SAAS,QAAQ,UAAU,CAAC;cACjD,CAAC,SAAS,iBACnB,KAAI,oBAAoB,MAAM,wCAAwC;;AAG1E,QAAI,CAAC,cACH,kBAAiB;AACf,SAAI,CAAC,cACH,kBAAiB;AACf,eAAS,SAAS;OAClB;MAEJ;KAEJ;AACF,SAAM,cAAc,KAAK;IAAE;IAAU;IAAU,CAAC;AAChD,OAAI,YAAY,IACd,QAAO,iBAAiB,KAAK,SAAS;WAEjC,GAAG;AACV,OAAI,CAAC,IACH,KAAI,QAAQ,cAAc;AACxB,UAAM,MAAM,QAAQ,aAAa,MAAM,IAAI,eAAe,EAAE,CAAC;AAC7D,QAAI,CAAC,IACH;cAEO,CAAC,IACV,OAAM,oBAAoB;OAE1B,OAAM,iBAAiB,EAAE;OAG3B,QAAO,oBAAoB,GAAG,SAAS;;AAG3C,MAAI;AACF,UAAO,MAAM,0BAA0B,KAAK,UAAU,QAAQ;WACvD,GAAG;AACV,UAAO,oBAAoB,GAAG,SAAS;;;;AAM7C,IAAI,uBAAuB,YAAY;CACrC,MAAM,gBAAgB,QAAQ;CAC9B,MAAM,kBAAkB,mBAAmB,eAAe;EACxD,UAAU,QAAQ;EAClB,uBAAuB,QAAQ;EAC/B,qBAAqB,QAAQ;EAC9B,CAAC;AAGF,SAFqB,QAAQ,gBAAgBC,cACjB,QAAQ,iBAAiB,EAAE,EAAE,gBAAgB"}
|
|
1
|
+
{"version":3,"file":"dist-B3gFwWti.mjs","names":["#body","#init","Http2ServerRequest2","createServerHTTP"],"sources":["../node_modules/@hono/node-server/dist/index.mjs"],"sourcesContent":["// src/server.ts\nimport { createServer as createServerHTTP } from \"http\";\n\n// src/listener.ts\nimport { Http2ServerRequest as Http2ServerRequest2 } from \"http2\";\n\n// src/request.ts\nimport { Http2ServerRequest } from \"http2\";\nimport { Readable } from \"stream\";\nvar RequestError = class extends Error {\n constructor(message, options) {\n super(message, options);\n this.name = \"RequestError\";\n }\n};\nvar toRequestError = (e) => {\n if (e instanceof RequestError) {\n return e;\n }\n return new RequestError(e.message, { cause: e });\n};\nvar GlobalRequest = global.Request;\nvar Request = class extends GlobalRequest {\n constructor(input, options) {\n if (typeof input === \"object\" && getRequestCache in input) {\n input = input[getRequestCache]();\n }\n if (typeof options?.body?.getReader !== \"undefined\") {\n ;\n options.duplex ??= \"half\";\n }\n super(input, options);\n }\n};\nvar newHeadersFromIncoming = (incoming) => {\n const headerRecord = [];\n const rawHeaders = incoming.rawHeaders;\n for (let i = 0; i < rawHeaders.length; i += 2) {\n const { [i]: key, [i + 1]: value } = rawHeaders;\n if (key.charCodeAt(0) !== /*:*/\n 58) {\n headerRecord.push([key, value]);\n }\n }\n return new Headers(headerRecord);\n};\nvar wrapBodyStream = Symbol(\"wrapBodyStream\");\nvar newRequestFromIncoming = (method, url, headers, incoming, abortController) => {\n const init = {\n method,\n headers,\n signal: abortController.signal\n };\n if (method === \"TRACE\") {\n init.method = \"GET\";\n const req = new Request(url, init);\n Object.defineProperty(req, \"method\", {\n get() {\n return \"TRACE\";\n }\n });\n return req;\n }\n if (!(method === \"GET\" || method === \"HEAD\")) {\n if (\"rawBody\" in incoming && incoming.rawBody instanceof Buffer) {\n init.body = new ReadableStream({\n start(controller) {\n controller.enqueue(incoming.rawBody);\n controller.close();\n }\n });\n } else if (incoming[wrapBodyStream]) {\n let reader;\n init.body = new ReadableStream({\n async pull(controller) {\n try {\n reader ||= Readable.toWeb(incoming).getReader();\n const { done, value } = await reader.read();\n if (done) {\n controller.close();\n } else {\n controller.enqueue(value);\n }\n } catch (error) {\n controller.error(error);\n }\n }\n });\n } else {\n init.body = Readable.toWeb(incoming);\n }\n }\n return new Request(url, init);\n};\nvar getRequestCache = Symbol(\"getRequestCache\");\nvar requestCache = Symbol(\"requestCache\");\nvar incomingKey = Symbol(\"incomingKey\");\nvar urlKey = Symbol(\"urlKey\");\nvar headersKey = Symbol(\"headersKey\");\nvar abortControllerKey = Symbol(\"abortControllerKey\");\nvar getAbortController = Symbol(\"getAbortController\");\nvar requestPrototype = {\n get method() {\n return this[incomingKey].method || \"GET\";\n },\n get url() {\n return this[urlKey];\n },\n get headers() {\n return this[headersKey] ||= newHeadersFromIncoming(this[incomingKey]);\n },\n [getAbortController]() {\n this[getRequestCache]();\n return this[abortControllerKey];\n },\n [getRequestCache]() {\n this[abortControllerKey] ||= new AbortController();\n return this[requestCache] ||= newRequestFromIncoming(\n this.method,\n this[urlKey],\n this.headers,\n this[incomingKey],\n this[abortControllerKey]\n );\n }\n};\n[\n \"body\",\n \"bodyUsed\",\n \"cache\",\n \"credentials\",\n \"destination\",\n \"integrity\",\n \"mode\",\n \"redirect\",\n \"referrer\",\n \"referrerPolicy\",\n \"signal\",\n \"keepalive\"\n].forEach((k) => {\n Object.defineProperty(requestPrototype, k, {\n get() {\n return this[getRequestCache]()[k];\n }\n });\n});\n[\"arrayBuffer\", \"blob\", \"clone\", \"formData\", \"json\", \"text\"].forEach((k) => {\n Object.defineProperty(requestPrototype, k, {\n value: function() {\n return this[getRequestCache]()[k]();\n }\n });\n});\nObject.setPrototypeOf(requestPrototype, Request.prototype);\nvar newRequest = (incoming, defaultHostname) => {\n const req = Object.create(requestPrototype);\n req[incomingKey] = incoming;\n const incomingUrl = incoming.url || \"\";\n if (incomingUrl[0] !== \"/\" && // short-circuit for performance. most requests are relative URL.\n (incomingUrl.startsWith(\"http://\") || incomingUrl.startsWith(\"https://\"))) {\n if (incoming instanceof Http2ServerRequest) {\n throw new RequestError(\"Absolute URL for :path is not allowed in HTTP/2\");\n }\n try {\n const url2 = new URL(incomingUrl);\n req[urlKey] = url2.href;\n } catch (e) {\n throw new RequestError(\"Invalid absolute URL\", { cause: e });\n }\n return req;\n }\n const host = (incoming instanceof Http2ServerRequest ? incoming.authority : incoming.headers.host) || defaultHostname;\n if (!host) {\n throw new RequestError(\"Missing host header\");\n }\n let scheme;\n if (incoming instanceof Http2ServerRequest) {\n scheme = incoming.scheme;\n if (!(scheme === \"http\" || scheme === \"https\")) {\n throw new RequestError(\"Unsupported scheme\");\n }\n } else {\n scheme = incoming.socket && incoming.socket.encrypted ? \"https\" : \"http\";\n }\n const url = new URL(`${scheme}://${host}${incomingUrl}`);\n if (url.hostname.length !== host.length && url.hostname !== host.replace(/:\\d+$/, \"\")) {\n throw new RequestError(\"Invalid host header\");\n }\n req[urlKey] = url.href;\n return req;\n};\n\n// src/response.ts\nvar responseCache = Symbol(\"responseCache\");\nvar getResponseCache = Symbol(\"getResponseCache\");\nvar cacheKey = Symbol(\"cache\");\nvar GlobalResponse = global.Response;\nvar Response2 = class _Response {\n #body;\n #init;\n [getResponseCache]() {\n delete this[cacheKey];\n return this[responseCache] ||= new GlobalResponse(this.#body, this.#init);\n }\n constructor(body, init) {\n let headers;\n this.#body = body;\n if (init instanceof _Response) {\n const cachedGlobalResponse = init[responseCache];\n if (cachedGlobalResponse) {\n this.#init = cachedGlobalResponse;\n this[getResponseCache]();\n return;\n } else {\n this.#init = init.#init;\n headers = new Headers(init.#init.headers);\n }\n } else {\n this.#init = init;\n }\n if (typeof body === \"string\" || typeof body?.getReader !== \"undefined\" || body instanceof Blob || body instanceof Uint8Array) {\n headers ||= init?.headers || { \"content-type\": \"text/plain; charset=UTF-8\" };\n this[cacheKey] = [init?.status || 200, body, headers];\n }\n }\n get headers() {\n const cache = this[cacheKey];\n if (cache) {\n if (!(cache[2] instanceof Headers)) {\n cache[2] = new Headers(cache[2]);\n }\n return cache[2];\n }\n return this[getResponseCache]().headers;\n }\n get status() {\n return this[cacheKey]?.[0] ?? this[getResponseCache]().status;\n }\n get ok() {\n const status = this.status;\n return status >= 200 && status < 300;\n }\n};\n[\"body\", \"bodyUsed\", \"redirected\", \"statusText\", \"trailers\", \"type\", \"url\"].forEach((k) => {\n Object.defineProperty(Response2.prototype, k, {\n get() {\n return this[getResponseCache]()[k];\n }\n });\n});\n[\"arrayBuffer\", \"blob\", \"clone\", \"formData\", \"json\", \"text\"].forEach((k) => {\n Object.defineProperty(Response2.prototype, k, {\n value: function() {\n return this[getResponseCache]()[k]();\n }\n });\n});\nObject.setPrototypeOf(Response2, GlobalResponse);\nObject.setPrototypeOf(Response2.prototype, GlobalResponse.prototype);\n\n// src/utils.ts\nasync function readWithoutBlocking(readPromise) {\n return Promise.race([readPromise, Promise.resolve().then(() => Promise.resolve(void 0))]);\n}\nfunction writeFromReadableStreamDefaultReader(reader, writable, currentReadPromise) {\n const cancel = (error) => {\n reader.cancel(error).catch(() => {\n });\n };\n writable.on(\"close\", cancel);\n writable.on(\"error\", cancel);\n (currentReadPromise ?? reader.read()).then(flow, handleStreamError);\n return reader.closed.finally(() => {\n writable.off(\"close\", cancel);\n writable.off(\"error\", cancel);\n });\n function handleStreamError(error) {\n if (error) {\n writable.destroy(error);\n }\n }\n function onDrain() {\n reader.read().then(flow, handleStreamError);\n }\n function flow({ done, value }) {\n try {\n if (done) {\n writable.end();\n } else if (!writable.write(value)) {\n writable.once(\"drain\", onDrain);\n } else {\n return reader.read().then(flow, handleStreamError);\n }\n } catch (e) {\n handleStreamError(e);\n }\n }\n}\nfunction writeFromReadableStream(stream, writable) {\n if (stream.locked) {\n throw new TypeError(\"ReadableStream is locked.\");\n } else if (writable.destroyed) {\n return;\n }\n return writeFromReadableStreamDefaultReader(stream.getReader(), writable);\n}\nvar buildOutgoingHttpHeaders = (headers) => {\n const res = {};\n if (!(headers instanceof Headers)) {\n headers = new Headers(headers ?? void 0);\n }\n const cookies = [];\n for (const [k, v] of headers) {\n if (k === \"set-cookie\") {\n cookies.push(v);\n } else {\n res[k] = v;\n }\n }\n if (cookies.length > 0) {\n res[\"set-cookie\"] = cookies;\n }\n res[\"content-type\"] ??= \"text/plain; charset=UTF-8\";\n return res;\n};\n\n// src/utils/response/constants.ts\nvar X_ALREADY_SENT = \"x-hono-already-sent\";\n\n// src/globals.ts\nimport crypto from \"crypto\";\nif (typeof global.crypto === \"undefined\") {\n global.crypto = crypto;\n}\n\n// src/listener.ts\nvar outgoingEnded = Symbol(\"outgoingEnded\");\nvar handleRequestError = () => new Response(null, {\n status: 400\n});\nvar handleFetchError = (e) => new Response(null, {\n status: e instanceof Error && (e.name === \"TimeoutError\" || e.constructor.name === \"TimeoutError\") ? 504 : 500\n});\nvar handleResponseError = (e, outgoing) => {\n const err = e instanceof Error ? e : new Error(\"unknown error\", { cause: e });\n if (err.code === \"ERR_STREAM_PREMATURE_CLOSE\") {\n console.info(\"The user aborted a request.\");\n } else {\n console.error(e);\n if (!outgoing.headersSent) {\n outgoing.writeHead(500, { \"Content-Type\": \"text/plain\" });\n }\n outgoing.end(`Error: ${err.message}`);\n outgoing.destroy(err);\n }\n};\nvar flushHeaders = (outgoing) => {\n if (\"flushHeaders\" in outgoing && outgoing.writable) {\n outgoing.flushHeaders();\n }\n};\nvar responseViaCache = async (res, outgoing) => {\n let [status, body, header] = res[cacheKey];\n if (header instanceof Headers) {\n header = buildOutgoingHttpHeaders(header);\n }\n if (typeof body === \"string\") {\n header[\"Content-Length\"] = Buffer.byteLength(body);\n } else if (body instanceof Uint8Array) {\n header[\"Content-Length\"] = body.byteLength;\n } else if (body instanceof Blob) {\n header[\"Content-Length\"] = body.size;\n }\n outgoing.writeHead(status, header);\n if (typeof body === \"string\" || body instanceof Uint8Array) {\n outgoing.end(body);\n } else if (body instanceof Blob) {\n outgoing.end(new Uint8Array(await body.arrayBuffer()));\n } else {\n flushHeaders(outgoing);\n await writeFromReadableStream(body, outgoing)?.catch(\n (e) => handleResponseError(e, outgoing)\n );\n }\n ;\n outgoing[outgoingEnded]?.();\n};\nvar isPromise = (res) => typeof res.then === \"function\";\nvar responseViaResponseObject = async (res, outgoing, options = {}) => {\n if (isPromise(res)) {\n if (options.errorHandler) {\n try {\n res = await res;\n } catch (err) {\n const errRes = await options.errorHandler(err);\n if (!errRes) {\n return;\n }\n res = errRes;\n }\n } else {\n res = await res.catch(handleFetchError);\n }\n }\n if (cacheKey in res) {\n return responseViaCache(res, outgoing);\n }\n const resHeaderRecord = buildOutgoingHttpHeaders(res.headers);\n if (res.body) {\n const reader = res.body.getReader();\n const values = [];\n let done = false;\n let currentReadPromise = void 0;\n if (resHeaderRecord[\"transfer-encoding\"] !== \"chunked\") {\n let maxReadCount = 2;\n for (let i = 0; i < maxReadCount; i++) {\n currentReadPromise ||= reader.read();\n const chunk = await readWithoutBlocking(currentReadPromise).catch((e) => {\n console.error(e);\n done = true;\n });\n if (!chunk) {\n if (i === 1) {\n await new Promise((resolve) => setTimeout(resolve));\n maxReadCount = 3;\n continue;\n }\n break;\n }\n currentReadPromise = void 0;\n if (chunk.value) {\n values.push(chunk.value);\n }\n if (chunk.done) {\n done = true;\n break;\n }\n }\n if (done && !(\"content-length\" in resHeaderRecord)) {\n resHeaderRecord[\"content-length\"] = values.reduce((acc, value) => acc + value.length, 0);\n }\n }\n outgoing.writeHead(res.status, resHeaderRecord);\n values.forEach((value) => {\n ;\n outgoing.write(value);\n });\n if (done) {\n outgoing.end();\n } else {\n if (values.length === 0) {\n flushHeaders(outgoing);\n }\n await writeFromReadableStreamDefaultReader(reader, outgoing, currentReadPromise);\n }\n } else if (resHeaderRecord[X_ALREADY_SENT]) {\n } else {\n outgoing.writeHead(res.status, resHeaderRecord);\n outgoing.end();\n }\n ;\n outgoing[outgoingEnded]?.();\n};\nvar getRequestListener = (fetchCallback, options = {}) => {\n const autoCleanupIncoming = options.autoCleanupIncoming ?? true;\n if (options.overrideGlobalObjects !== false && global.Request !== Request) {\n Object.defineProperty(global, \"Request\", {\n value: Request\n });\n Object.defineProperty(global, \"Response\", {\n value: Response2\n });\n }\n return async (incoming, outgoing) => {\n let res, req;\n try {\n req = newRequest(incoming, options.hostname);\n let incomingEnded = !autoCleanupIncoming || incoming.method === \"GET\" || incoming.method === \"HEAD\";\n if (!incomingEnded) {\n ;\n incoming[wrapBodyStream] = true;\n incoming.on(\"end\", () => {\n incomingEnded = true;\n });\n if (incoming instanceof Http2ServerRequest2) {\n ;\n outgoing[outgoingEnded] = () => {\n if (!incomingEnded) {\n setTimeout(() => {\n if (!incomingEnded) {\n setTimeout(() => {\n incoming.destroy();\n outgoing.destroy();\n });\n }\n });\n }\n };\n }\n }\n outgoing.on(\"close\", () => {\n const abortController = req[abortControllerKey];\n if (abortController) {\n if (incoming.errored) {\n req[abortControllerKey].abort(incoming.errored.toString());\n } else if (!outgoing.writableFinished) {\n req[abortControllerKey].abort(\"Client connection prematurely closed.\");\n }\n }\n if (!incomingEnded) {\n setTimeout(() => {\n if (!incomingEnded) {\n setTimeout(() => {\n incoming.destroy();\n });\n }\n });\n }\n });\n res = fetchCallback(req, { incoming, outgoing });\n if (cacheKey in res) {\n return responseViaCache(res, outgoing);\n }\n } catch (e) {\n if (!res) {\n if (options.errorHandler) {\n res = await options.errorHandler(req ? e : toRequestError(e));\n if (!res) {\n return;\n }\n } else if (!req) {\n res = handleRequestError();\n } else {\n res = handleFetchError(e);\n }\n } else {\n return handleResponseError(e, outgoing);\n }\n }\n try {\n return await responseViaResponseObject(res, outgoing, options);\n } catch (e) {\n return handleResponseError(e, outgoing);\n }\n };\n};\n\n// src/server.ts\nvar createAdaptorServer = (options) => {\n const fetchCallback = options.fetch;\n const requestListener = getRequestListener(fetchCallback, {\n hostname: options.hostname,\n overrideGlobalObjects: options.overrideGlobalObjects,\n autoCleanupIncoming: options.autoCleanupIncoming\n });\n const createServer = options.createServer || createServerHTTP;\n const server = createServer(options.serverOptions || {}, requestListener);\n return server;\n};\nvar serve = (options, listeningListener) => {\n const server = createAdaptorServer(options);\n server.listen(options?.port ?? 3e3, options.hostname, () => {\n const serverInfo = server.address();\n listeningListener && listeningListener(serverInfo);\n });\n return server;\n};\nexport {\n RequestError,\n createAdaptorServer,\n getRequestListener,\n serve\n};\n"],"x_google_ignoreList":[0],"mappings":";;;;;AASA,IAAI,eAAe,cAAc,MAAM;CACrC,YAAY,SAAS,SAAS;AAC5B,QAAM,SAAS,QAAQ;AACvB,OAAK,OAAO;;;AAGhB,IAAI,kBAAkB,MAAM;AAC1B,KAAI,aAAa,aACf,QAAO;AAET,QAAO,IAAI,aAAa,EAAE,SAAS,EAAE,OAAO,GAAG,CAAC;;AAElD,IAAI,gBAAgB,OAAO;AAC3B,IAAI,UAAU,cAAc,cAAc;CACxC,YAAY,OAAO,SAAS;AAC1B,MAAI,OAAO,UAAU,YAAY,mBAAmB,MAClD,SAAQ,MAAM,kBAAkB;AAElC,MAAI,OAAO,SAAS,MAAM,cAAc,YAEtC,SAAQ,WAAW;AAErB,QAAM,OAAO,QAAQ;;;AAGzB,IAAI,0BAA0B,aAAa;CACzC,MAAM,eAAe,EAAE;CACvB,MAAM,aAAa,SAAS;AAC5B,MAAK,IAAI,IAAI,GAAG,IAAI,WAAW,QAAQ,KAAK,GAAG;EAC7C,MAAM,GAAG,IAAI,MAAM,IAAI,IAAI,UAAU;AACrC,MAAI,IAAI,WAAW,EAAE,KACrB,GACE,cAAa,KAAK,CAAC,KAAK,MAAM,CAAC;;AAGnC,QAAO,IAAI,QAAQ,aAAa;;AAElC,IAAI,iBAAiB,OAAO,iBAAiB;AAC7C,IAAI,0BAA0B,QAAQ,KAAK,SAAS,UAAU,oBAAoB;CAChF,MAAM,OAAO;EACX;EACA;EACA,QAAQ,gBAAgB;EACzB;AACD,KAAI,WAAW,SAAS;AACtB,OAAK,SAAS;EACd,MAAM,MAAM,IAAI,QAAQ,KAAK,KAAK;AAClC,SAAO,eAAe,KAAK,UAAU,EACnC,MAAM;AACJ,UAAO;KAEV,CAAC;AACF,SAAO;;AAET,KAAI,EAAE,WAAW,SAAS,WAAW,QACnC,KAAI,aAAa,YAAY,SAAS,mBAAmB,OACvD,MAAK,OAAO,IAAI,eAAe,EAC7B,MAAM,YAAY;AAChB,aAAW,QAAQ,SAAS,QAAQ;AACpC,aAAW,OAAO;IAErB,CAAC;UACO,SAAS,iBAAiB;EACnC,IAAI;AACJ,OAAK,OAAO,IAAI,eAAe,EAC7B,MAAM,KAAK,YAAY;AACrB,OAAI;AACF,eAAW,SAAS,MAAM,SAAS,CAAC,WAAW;IAC/C,MAAM,EAAE,MAAM,UAAU,MAAM,OAAO,MAAM;AAC3C,QAAI,KACF,YAAW,OAAO;QAElB,YAAW,QAAQ,MAAM;YAEpB,OAAO;AACd,eAAW,MAAM,MAAM;;KAG5B,CAAC;OAEF,MAAK,OAAO,SAAS,MAAM,SAAS;AAGxC,QAAO,IAAI,QAAQ,KAAK,KAAK;;AAE/B,IAAI,kBAAkB,OAAO,kBAAkB;AAC/C,IAAI,eAAe,OAAO,eAAe;AACzC,IAAI,cAAc,OAAO,cAAc;AACvC,IAAI,SAAS,OAAO,SAAS;AAC7B,IAAI,aAAa,OAAO,aAAa;AACrC,IAAI,qBAAqB,OAAO,qBAAqB;AAErD,IAAI,mBAAmB;CACrB,IAAI,SAAS;AACX,SAAO,KAAK,aAAa,UAAU;;CAErC,IAAI,MAAM;AACR,SAAO,KAAK;;CAEd,IAAI,UAAU;AACZ,SAAO,KAAK,gBAAgB,uBAAuB,KAAK,aAAa;;CAEvE,CAXuB,OAAO,qBAAqB,IAW5B;AACrB,OAAK,kBAAkB;AACvB,SAAO,KAAK;;CAEd,CAAC,mBAAmB;AAClB,OAAK,wBAAwB,IAAI,iBAAiB;AAClD,SAAO,KAAK,kBAAkB,uBAC5B,KAAK,QACL,KAAK,SACL,KAAK,SACL,KAAK,cACL,KAAK,oBACN;;CAEJ;AACD;CACE;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACD,CAAC,SAAS,MAAM;AACf,QAAO,eAAe,kBAAkB,GAAG,EACzC,MAAM;AACJ,SAAO,KAAK,kBAAkB,CAAC;IAElC,CAAC;EACF;AACF;CAAC;CAAe;CAAQ;CAAS;CAAY;CAAQ;CAAO,CAAC,SAAS,MAAM;AAC1E,QAAO,eAAe,kBAAkB,GAAG,EACzC,OAAO,WAAW;AAChB,SAAO,KAAK,kBAAkB,CAAC,IAAI;IAEtC,CAAC;EACF;AACF,OAAO,eAAe,kBAAkB,QAAQ,UAAU;AAC1D,IAAI,cAAc,UAAU,oBAAoB;CAC9C,MAAM,MAAM,OAAO,OAAO,iBAAiB;AAC3C,KAAI,eAAe;CACnB,MAAM,cAAc,SAAS,OAAO;AACpC,KAAI,YAAY,OAAO,QACtB,YAAY,WAAW,UAAU,IAAI,YAAY,WAAW,WAAW,GAAG;AACzE,MAAI,oBAAoB,mBACtB,OAAM,IAAI,aAAa,kDAAkD;AAE3E,MAAI;AAEF,OAAI,UADS,IAAI,IAAI,YAAY,CACd;WACZ,GAAG;AACV,SAAM,IAAI,aAAa,wBAAwB,EAAE,OAAO,GAAG,CAAC;;AAE9D,SAAO;;CAET,MAAM,QAAQ,oBAAoB,qBAAqB,SAAS,YAAY,SAAS,QAAQ,SAAS;AACtG,KAAI,CAAC,KACH,OAAM,IAAI,aAAa,sBAAsB;CAE/C,IAAI;AACJ,KAAI,oBAAoB,oBAAoB;AAC1C,WAAS,SAAS;AAClB,MAAI,EAAE,WAAW,UAAU,WAAW,SACpC,OAAM,IAAI,aAAa,qBAAqB;OAG9C,UAAS,SAAS,UAAU,SAAS,OAAO,YAAY,UAAU;CAEpE,MAAM,MAAM,IAAI,IAAI,GAAG,OAAO,KAAK,OAAO,cAAc;AACxD,KAAI,IAAI,SAAS,WAAW,KAAK,UAAU,IAAI,aAAa,KAAK,QAAQ,SAAS,GAAG,CACnF,OAAM,IAAI,aAAa,sBAAsB;AAE/C,KAAI,UAAU,IAAI;AAClB,QAAO;;AAIT,IAAI,gBAAgB,OAAO,gBAAgB;AAC3C,IAAI,mBAAmB,OAAO,mBAAmB;AACjD,IAAI,WAAW,OAAO,QAAQ;AAC9B,IAAI,iBAAiB,OAAO;AAC5B,IAAI,YAAY,MAAM,UAAU;CAC9B;CACA;CACA,CAAC,oBAAoB;AACnB,SAAO,KAAK;AACZ,SAAO,KAAK,mBAAmB,IAAI,eAAe,MAAA,MAAY,MAAA,KAAW;;CAE3E,YAAY,MAAM,MAAM;EACtB,IAAI;AACJ,QAAA,OAAa;AACb,MAAI,gBAAgB,WAAW;GAC7B,MAAM,uBAAuB,KAAK;AAClC,OAAI,sBAAsB;AACxB,UAAA,OAAa;AACb,SAAK,mBAAmB;AACxB;UACK;AACL,UAAA,OAAa,MAAA;AACb,cAAU,IAAI,QAAQ,MAAA,KAAW,QAAQ;;QAG3C,OAAA,OAAa;AAEf,MAAI,OAAO,SAAS,YAAY,OAAO,MAAM,cAAc,eAAe,gBAAgB,QAAQ,gBAAgB,YAAY;AAC5H,eAAY,MAAM,WAAW,EAAE,gBAAgB,6BAA6B;AAC5E,QAAK,YAAY;IAAC,MAAM,UAAU;IAAK;IAAM;IAAQ;;;CAGzD,IAAI,UAAU;EACZ,MAAM,QAAQ,KAAK;AACnB,MAAI,OAAO;AACT,OAAI,EAAE,MAAM,cAAc,SACxB,OAAM,KAAK,IAAI,QAAQ,MAAM,GAAG;AAElC,UAAO,MAAM;;AAEf,SAAO,KAAK,mBAAmB,CAAC;;CAElC,IAAI,SAAS;AACX,SAAO,KAAK,YAAY,MAAM,KAAK,mBAAmB,CAAC;;CAEzD,IAAI,KAAK;EACP,MAAM,SAAS,KAAK;AACpB,SAAO,UAAU,OAAO,SAAS;;;AAGrC;CAAC;CAAQ;CAAY;CAAc;CAAc;CAAY;CAAQ;CAAM,CAAC,SAAS,MAAM;AACzF,QAAO,eAAe,UAAU,WAAW,GAAG,EAC5C,MAAM;AACJ,SAAO,KAAK,mBAAmB,CAAC;IAEnC,CAAC;EACF;AACF;CAAC;CAAe;CAAQ;CAAS;CAAY;CAAQ;CAAO,CAAC,SAAS,MAAM;AAC1E,QAAO,eAAe,UAAU,WAAW,GAAG,EAC5C,OAAO,WAAW;AAChB,SAAO,KAAK,mBAAmB,CAAC,IAAI;IAEvC,CAAC;EACF;AACF,OAAO,eAAe,WAAW,eAAe;AAChD,OAAO,eAAe,UAAU,WAAW,eAAe,UAAU;AAGpE,eAAe,oBAAoB,aAAa;AAC9C,QAAO,QAAQ,KAAK,CAAC,aAAa,QAAQ,SAAS,CAAC,WAAW,QAAQ,QAAQ,KAAK,EAAE,CAAC,CAAC,CAAC;;AAE3F,SAAS,qCAAqC,QAAQ,UAAU,oBAAoB;CAClF,MAAM,UAAU,UAAU;AACxB,SAAO,OAAO,MAAM,CAAC,YAAY,GAC/B;;AAEJ,UAAS,GAAG,SAAS,OAAO;AAC5B,UAAS,GAAG,SAAS,OAAO;AAC5B,EAAC,sBAAsB,OAAO,MAAM,EAAE,KAAK,MAAM,kBAAkB;AACnE,QAAO,OAAO,OAAO,cAAc;AACjC,WAAS,IAAI,SAAS,OAAO;AAC7B,WAAS,IAAI,SAAS,OAAO;GAC7B;CACF,SAAS,kBAAkB,OAAO;AAChC,MAAI,MACF,UAAS,QAAQ,MAAM;;CAG3B,SAAS,UAAU;AACjB,SAAO,MAAM,CAAC,KAAK,MAAM,kBAAkB;;CAE7C,SAAS,KAAK,EAAE,MAAM,SAAS;AAC7B,MAAI;AACF,OAAI,KACF,UAAS,KAAK;YACL,CAAC,SAAS,MAAM,MAAM,CAC/B,UAAS,KAAK,SAAS,QAAQ;OAE/B,QAAO,OAAO,MAAM,CAAC,KAAK,MAAM,kBAAkB;WAE7C,GAAG;AACV,qBAAkB,EAAE;;;;AAI1B,SAAS,wBAAwB,QAAQ,UAAU;AACjD,KAAI,OAAO,OACT,OAAM,IAAI,UAAU,4BAA4B;UACvC,SAAS,UAClB;AAEF,QAAO,qCAAqC,OAAO,WAAW,EAAE,SAAS;;AAE3E,IAAI,4BAA4B,YAAY;CAC1C,MAAM,MAAM,EAAE;AACd,KAAI,EAAE,mBAAmB,SACvB,WAAU,IAAI,QAAQ,WAAW,KAAK,EAAE;CAE1C,MAAM,UAAU,EAAE;AAClB,MAAK,MAAM,CAAC,GAAG,MAAM,QACnB,KAAI,MAAM,aACR,SAAQ,KAAK,EAAE;KAEf,KAAI,KAAK;AAGb,KAAI,QAAQ,SAAS,EACnB,KAAI,gBAAgB;AAEtB,KAAI,oBAAoB;AACxB,QAAO;;AAIT,IAAI,iBAAiB;AAIrB,IAAI,OAAO,OAAO,WAAW,YAC3B,QAAO,SAAS;AAIlB,IAAI,gBAAgB,OAAO,gBAAgB;AAC3C,IAAI,2BAA2B,IAAI,SAAS,MAAM,EAChD,QAAQ,KACT,CAAC;AACF,IAAI,oBAAoB,MAAM,IAAI,SAAS,MAAM,EAC/C,QAAQ,aAAa,UAAU,EAAE,SAAS,kBAAkB,EAAE,YAAY,SAAS,kBAAkB,MAAM,KAC5G,CAAC;AACF,IAAI,uBAAuB,GAAG,aAAa;CACzC,MAAM,MAAM,aAAa,QAAQ,IAAI,IAAI,MAAM,iBAAiB,EAAE,OAAO,GAAG,CAAC;AAC7E,KAAI,IAAI,SAAS,6BACf,SAAQ,KAAK,8BAA8B;MACtC;AACL,UAAQ,MAAM,EAAE;AAChB,MAAI,CAAC,SAAS,YACZ,UAAS,UAAU,KAAK,EAAE,gBAAgB,cAAc,CAAC;AAE3D,WAAS,IAAI,UAAU,IAAI,UAAU;AACrC,WAAS,QAAQ,IAAI;;;AAGzB,IAAI,gBAAgB,aAAa;AAC/B,KAAI,kBAAkB,YAAY,SAAS,SACzC,UAAS,cAAc;;AAG3B,IAAI,mBAAmB,OAAO,KAAK,aAAa;CAC9C,IAAI,CAAC,QAAQ,MAAM,UAAU,IAAI;AACjC,KAAI,kBAAkB,QACpB,UAAS,yBAAyB,OAAO;AAE3C,KAAI,OAAO,SAAS,SAClB,QAAO,oBAAoB,OAAO,WAAW,KAAK;UACzC,gBAAgB,WACzB,QAAO,oBAAoB,KAAK;UACvB,gBAAgB,KACzB,QAAO,oBAAoB,KAAK;AAElC,UAAS,UAAU,QAAQ,OAAO;AAClC,KAAI,OAAO,SAAS,YAAY,gBAAgB,WAC9C,UAAS,IAAI,KAAK;UACT,gBAAgB,KACzB,UAAS,IAAI,IAAI,WAAW,MAAM,KAAK,aAAa,CAAC,CAAC;MACjD;AACL,eAAa,SAAS;AACtB,QAAM,wBAAwB,MAAM,SAAS,EAAE,OAC5C,MAAM,oBAAoB,GAAG,SAAS,CACxC;;AAGH,UAAS,kBAAkB;;AAE7B,IAAI,aAAa,QAAQ,OAAO,IAAI,SAAS;AAC7C,IAAI,4BAA4B,OAAO,KAAK,UAAU,UAAU,EAAE,KAAK;AACrE,KAAI,UAAU,IAAI,CAChB,KAAI,QAAQ,aACV,KAAI;AACF,QAAM,MAAM;UACL,KAAK;EACZ,MAAM,SAAS,MAAM,QAAQ,aAAa,IAAI;AAC9C,MAAI,CAAC,OACH;AAEF,QAAM;;KAGR,OAAM,MAAM,IAAI,MAAM,iBAAiB;AAG3C,KAAI,YAAY,IACd,QAAO,iBAAiB,KAAK,SAAS;CAExC,MAAM,kBAAkB,yBAAyB,IAAI,QAAQ;AAC7D,KAAI,IAAI,MAAM;EACZ,MAAM,SAAS,IAAI,KAAK,WAAW;EACnC,MAAM,SAAS,EAAE;EACjB,IAAI,OAAO;EACX,IAAI,qBAAqB,KAAK;AAC9B,MAAI,gBAAgB,yBAAyB,WAAW;GACtD,IAAI,eAAe;AACnB,QAAK,IAAI,IAAI,GAAG,IAAI,cAAc,KAAK;AACrC,2BAAuB,OAAO,MAAM;IACpC,MAAM,QAAQ,MAAM,oBAAoB,mBAAmB,CAAC,OAAO,MAAM;AACvE,aAAQ,MAAM,EAAE;AAChB,YAAO;MACP;AACF,QAAI,CAAC,OAAO;AACV,SAAI,MAAM,GAAG;AACX,YAAM,IAAI,SAAS,YAAY,WAAW,QAAQ,CAAC;AACnD,qBAAe;AACf;;AAEF;;AAEF,yBAAqB,KAAK;AAC1B,QAAI,MAAM,MACR,QAAO,KAAK,MAAM,MAAM;AAE1B,QAAI,MAAM,MAAM;AACd,YAAO;AACP;;;AAGJ,OAAI,QAAQ,EAAE,oBAAoB,iBAChC,iBAAgB,oBAAoB,OAAO,QAAQ,KAAK,UAAU,MAAM,MAAM,QAAQ,EAAE;;AAG5F,WAAS,UAAU,IAAI,QAAQ,gBAAgB;AAC/C,SAAO,SAAS,UAAU;AAExB,YAAS,MAAM,MAAM;IACrB;AACF,MAAI,KACF,UAAS,KAAK;OACT;AACL,OAAI,OAAO,WAAW,EACpB,cAAa,SAAS;AAExB,SAAM,qCAAqC,QAAQ,UAAU,mBAAmB;;YAEzE,gBAAgB,iBAAiB,QACrC;AACL,WAAS,UAAU,IAAI,QAAQ,gBAAgB;AAC/C,WAAS,KAAK;;AAGhB,UAAS,kBAAkB;;AAE7B,IAAI,sBAAsB,eAAe,UAAU,EAAE,KAAK;CACxD,MAAM,sBAAsB,QAAQ,uBAAuB;AAC3D,KAAI,QAAQ,0BAA0B,SAAS,OAAO,YAAY,SAAS;AACzE,SAAO,eAAe,QAAQ,WAAW,EACvC,OAAO,SACR,CAAC;AACF,SAAO,eAAe,QAAQ,YAAY,EACxC,OAAO,WACR,CAAC;;AAEJ,QAAO,OAAO,UAAU,aAAa;EACnC,IAAI,KAAK;AACT,MAAI;AACF,SAAM,WAAW,UAAU,QAAQ,SAAS;GAC5C,IAAI,gBAAgB,CAAC,uBAAuB,SAAS,WAAW,SAAS,SAAS,WAAW;AAC7F,OAAI,CAAC,eAAe;AAElB,aAAS,kBAAkB;AAC3B,aAAS,GAAG,aAAa;AACvB,qBAAgB;MAChB;AACF,QAAI,oBAAoBE,mBAEtB,UAAS,uBAAuB;AAC9B,SAAI,CAAC,cACH,kBAAiB;AACf,UAAI,CAAC,cACH,kBAAiB;AACf,gBAAS,SAAS;AAClB,gBAAS,SAAS;QAClB;OAEJ;;;AAKV,YAAS,GAAG,eAAe;AAEzB,QADwB,IAAI;SAEtB,SAAS,QACX,KAAI,oBAAoB,MAAM,SAAS,QAAQ,UAAU,CAAC;cACjD,CAAC,SAAS,iBACnB,KAAI,oBAAoB,MAAM,wCAAwC;;AAG1E,QAAI,CAAC,cACH,kBAAiB;AACf,SAAI,CAAC,cACH,kBAAiB;AACf,eAAS,SAAS;OAClB;MAEJ;KAEJ;AACF,SAAM,cAAc,KAAK;IAAE;IAAU;IAAU,CAAC;AAChD,OAAI,YAAY,IACd,QAAO,iBAAiB,KAAK,SAAS;WAEjC,GAAG;AACV,OAAI,CAAC,IACH,KAAI,QAAQ,cAAc;AACxB,UAAM,MAAM,QAAQ,aAAa,MAAM,IAAI,eAAe,EAAE,CAAC;AAC7D,QAAI,CAAC,IACH;cAEO,CAAC,IACV,OAAM,oBAAoB;OAE1B,OAAM,iBAAiB,EAAE;OAG3B,QAAO,oBAAoB,GAAG,SAAS;;AAG3C,MAAI;AACF,UAAO,MAAM,0BAA0B,KAAK,UAAU,QAAQ;WACvD,GAAG;AACV,UAAO,oBAAoB,GAAG,SAAS;;;;AAM7C,IAAI,uBAAuB,YAAY;CACrC,MAAM,gBAAgB,QAAQ;CAC9B,MAAM,kBAAkB,mBAAmB,eAAe;EACxD,UAAU,QAAQ;EAClB,uBAAuB,QAAQ;EAC/B,qBAAqB,QAAQ;EAC9B,CAAC;AAGF,SAFqB,QAAQ,gBAAgBC,cACjB,QAAQ,iBAAiB,EAAE,EAAE,gBAAgB"}
|