repocairn 0.1.11 → 0.1.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/llm.js +10 -0
- package/dist/llm.js.map +1 -1
- package/node_modules/hono/dist/cjs/client/client.js +25 -11
- package/node_modules/hono/dist/cjs/client/utils.js +3 -0
- package/node_modules/hono/dist/cjs/helper/accepts/accepts.js +36 -2
- package/node_modules/hono/dist/cjs/jsx/dom/render.js +2 -0
- package/node_modules/hono/dist/cjs/middleware/etag/index.js +1 -1
- package/node_modules/hono/dist/cjs/request.js +8 -4
- package/node_modules/hono/dist/cjs/router/reg-exp-router/node.js +10 -3
- package/node_modules/hono/dist/cjs/router/reg-exp-router/router.js +47 -83
- package/node_modules/hono/dist/cjs/router/reg-exp-router/trie.js +2 -1
- package/node_modules/hono/dist/cjs/router/trie-router/node.js +4 -3
- package/node_modules/hono/dist/cjs/router/utils.js +27 -0
- package/node_modules/hono/dist/cjs/utils/cookie.js +1 -1
- package/node_modules/hono/dist/cjs/utils/stream.js +7 -1
- package/node_modules/hono/dist/client/client.js +25 -11
- package/node_modules/hono/dist/client/utils.js +3 -0
- package/node_modules/hono/dist/helper/accepts/accepts.js +36 -2
- package/node_modules/hono/dist/jsx/dom/render.js +2 -0
- package/node_modules/hono/dist/middleware/etag/index.js +1 -1
- package/node_modules/hono/dist/request.js +8 -4
- package/node_modules/hono/dist/router/reg-exp-router/node.js +6 -2
- package/node_modules/hono/dist/router/reg-exp-router/router.js +53 -84
- package/node_modules/hono/dist/router/reg-exp-router/trie.js +2 -1
- package/node_modules/hono/dist/router/trie-router/node.js +4 -3
- package/node_modules/hono/dist/router/utils.js +5 -0
- package/node_modules/hono/dist/types/router/reg-exp-router/node.d.ts +3 -0
- package/node_modules/hono/dist/types/router/utils.d.ts +1 -0
- package/node_modules/hono/dist/utils/cookie.js +1 -1
- package/node_modules/hono/dist/utils/stream.js +7 -1
- package/node_modules/hono/package.json +1 -1
- package/package.json +1 -1
package/dist/llm.js
CHANGED
|
@@ -274,6 +274,16 @@ function tryParse(schema, content) {
|
|
|
274
274
|
const parsed = schema.safeParse(raw);
|
|
275
275
|
if (parsed.success)
|
|
276
276
|
return { ok: true, value: parsed.data };
|
|
277
|
+
// Some agent CLIs (`cursor-agent -p --output-format json`, `claude -p
|
|
278
|
+
// --output-format json`) wrap the model's answer in a result envelope
|
|
279
|
+
// (`{ type: "result", result: "<our JSON>", ... }`) instead of emitting
|
|
280
|
+
// it directly — unwrap and retry once before giving up.
|
|
281
|
+
const result = raw?.result;
|
|
282
|
+
if (typeof result === "string") {
|
|
283
|
+
const unwrapped = tryParse(schema, result);
|
|
284
|
+
if (unwrapped.ok)
|
|
285
|
+
return unwrapped;
|
|
286
|
+
}
|
|
277
287
|
return {
|
|
278
288
|
ok: false,
|
|
279
289
|
error: parsed.error.issues.map((i) => `${i.path.join(".")}: ${i.message}`).join("; "),
|
package/dist/llm.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"llm.js","sourceRoot":"","sources":["../src/llm.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"llm.js","sourceRoot":"","sources":["../src/llm.ts"],"names":[],"mappings":"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"}
|
|
@@ -40,6 +40,10 @@ const createProxy = (callback, path) => {
|
|
|
40
40
|
});
|
|
41
41
|
return proxy;
|
|
42
42
|
};
|
|
43
|
+
const appendQueryParams = (url, searchParams) => {
|
|
44
|
+
const queryString = searchParams.toString();
|
|
45
|
+
return queryString ? `${url}?${queryString}` : url;
|
|
46
|
+
};
|
|
43
47
|
class ClientRequestImpl {
|
|
44
48
|
url;
|
|
45
49
|
method;
|
|
@@ -66,6 +70,9 @@ class ClientRequestImpl {
|
|
|
66
70
|
}
|
|
67
71
|
if (Array.isArray(v)) {
|
|
68
72
|
for (const v2 of v) {
|
|
73
|
+
if (v2 === void 0) {
|
|
74
|
+
continue;
|
|
75
|
+
}
|
|
69
76
|
form.append(k, v2);
|
|
70
77
|
}
|
|
71
78
|
} else {
|
|
@@ -90,19 +97,29 @@ class ClientRequestImpl {
|
|
|
90
97
|
if (args?.cookie) {
|
|
91
98
|
const cookies = [];
|
|
92
99
|
for (const [key, value] of Object.entries(args.cookie)) {
|
|
100
|
+
if (value === void 0) {
|
|
101
|
+
continue;
|
|
102
|
+
}
|
|
93
103
|
cookies.push((0, import_cookie.serialize)(key, value));
|
|
94
104
|
}
|
|
95
|
-
|
|
105
|
+
if (cookies.length > 0) {
|
|
106
|
+
headerValues["Cookie"] = cookies.join("; ");
|
|
107
|
+
}
|
|
96
108
|
}
|
|
97
109
|
if (this.cType) {
|
|
98
110
|
headerValues["Content-Type"] = this.cType;
|
|
99
111
|
}
|
|
100
|
-
const headers = new Headers(
|
|
112
|
+
const headers = new Headers();
|
|
113
|
+
for (const [key, value] of Object.entries(headerValues)) {
|
|
114
|
+
if (value !== void 0) {
|
|
115
|
+
headers.set(key, value);
|
|
116
|
+
}
|
|
117
|
+
}
|
|
101
118
|
let url = this.url;
|
|
102
119
|
url = (0, import_utils.removeIndexString)(url);
|
|
103
120
|
url = (0, import_utils.replaceUrlParam)(url, this.pathParams);
|
|
104
121
|
if (this.queryParams) {
|
|
105
|
-
url = url
|
|
122
|
+
url = appendQueryParams(url, this.queryParams);
|
|
106
123
|
}
|
|
107
124
|
methodUpperCase = this.method.toUpperCase();
|
|
108
125
|
const setBody = !(methodUpperCase === "GET" || methodUpperCase === "HEAD");
|
|
@@ -146,7 +163,7 @@ const hc = (baseUrl, options) => createProxy(function proxyCallback(opts) {
|
|
|
146
163
|
result = (0, import_utils.replaceUrlParam)(url, opts.args[0].param);
|
|
147
164
|
}
|
|
148
165
|
if (opts.args[0].query) {
|
|
149
|
-
result = result
|
|
166
|
+
result = appendQueryParams(result, buildSearchParamsOption(opts.args[0].query));
|
|
150
167
|
}
|
|
151
168
|
}
|
|
152
169
|
result = (0, import_utils.removeIndexString)(result);
|
|
@@ -157,18 +174,15 @@ const hc = (baseUrl, options) => createProxy(function proxyCallback(opts) {
|
|
|
157
174
|
}
|
|
158
175
|
if (method === "ws") {
|
|
159
176
|
const webSocketUrl = (0, import_utils.replaceUrlProtocol)(
|
|
160
|
-
opts.args[0]
|
|
177
|
+
opts.args[0]?.param ? (0, import_utils.replaceUrlParam)(url, opts.args[0].param) : url,
|
|
161
178
|
"ws"
|
|
162
179
|
);
|
|
163
180
|
const targetUrl = new URL(webSocketUrl);
|
|
164
181
|
const queryParams = opts.args[0]?.query;
|
|
165
182
|
if (queryParams) {
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
} else {
|
|
170
|
-
targetUrl.searchParams.set(key, value);
|
|
171
|
-
}
|
|
183
|
+
const searchParams = buildSearchParamsOption(queryParams);
|
|
184
|
+
searchParams.forEach((value, key) => {
|
|
185
|
+
targetUrl.searchParams.append(key, value);
|
|
172
186
|
});
|
|
173
187
|
}
|
|
174
188
|
const establishWebSocket = (...args) => {
|
|
@@ -22,10 +22,44 @@ __export(accepts_exports, {
|
|
|
22
22
|
});
|
|
23
23
|
module.exports = __toCommonJS(accepts_exports);
|
|
24
24
|
var import_accept = require("../../utils/accept");
|
|
25
|
+
const matchType = (acceptType, supportedType) => {
|
|
26
|
+
if (acceptType === supportedType) {
|
|
27
|
+
return true;
|
|
28
|
+
}
|
|
29
|
+
if (acceptType === "*/*" || acceptType === "*") {
|
|
30
|
+
return false;
|
|
31
|
+
}
|
|
32
|
+
if (acceptType.endsWith("/*")) {
|
|
33
|
+
const [acceptMain] = acceptType.split("/");
|
|
34
|
+
const [supportedMain] = supportedType.split("/");
|
|
35
|
+
return acceptMain === supportedMain;
|
|
36
|
+
}
|
|
37
|
+
return false;
|
|
38
|
+
};
|
|
39
|
+
const getSpecificity = (type) => {
|
|
40
|
+
if (type === "*/*" || type === "*") {
|
|
41
|
+
return 1;
|
|
42
|
+
}
|
|
43
|
+
if (type.endsWith("/*")) {
|
|
44
|
+
return 2;
|
|
45
|
+
}
|
|
46
|
+
return 3;
|
|
47
|
+
};
|
|
25
48
|
const defaultMatch = (accepts2, config) => {
|
|
26
49
|
const { supports, default: defaultSupport } = config;
|
|
27
|
-
const
|
|
28
|
-
|
|
50
|
+
const sortedAccepts = accepts2.slice().sort((a, b) => {
|
|
51
|
+
if (b.q !== a.q) {
|
|
52
|
+
return b.q - a.q;
|
|
53
|
+
}
|
|
54
|
+
return getSpecificity(b.type) - getSpecificity(a.type);
|
|
55
|
+
});
|
|
56
|
+
for (const accept of sortedAccepts) {
|
|
57
|
+
const matched = supports.find((supported) => matchType(accept.type, supported));
|
|
58
|
+
if (matched) {
|
|
59
|
+
return matched;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
return defaultSupport;
|
|
29
63
|
};
|
|
30
64
|
const accepts = (c, options) => {
|
|
31
65
|
const acceptHeader = c.req.header(options.header);
|
|
@@ -101,6 +101,7 @@ const applyProps = (container, attributes, oldAttributes) => {
|
|
|
101
101
|
} else if (key === "dangerouslySetInnerHTML" && value) {
|
|
102
102
|
container.innerHTML = value.__html;
|
|
103
103
|
} else if (key === "ref") {
|
|
104
|
+
refCleanupMap.get(container)?.();
|
|
104
105
|
let cleanup;
|
|
105
106
|
if (typeof value === "function") {
|
|
106
107
|
cleanup = value(container) || (() => value(null));
|
|
@@ -165,6 +166,7 @@ const applyProps = (container, attributes, oldAttributes) => {
|
|
|
165
166
|
container.removeEventListener(eventSpec[0], value, eventSpec[1]);
|
|
166
167
|
} else if (key === "ref") {
|
|
167
168
|
refCleanupMap.get(container)?.();
|
|
169
|
+
refCleanupMap.delete(container);
|
|
168
170
|
} else {
|
|
169
171
|
try {
|
|
170
172
|
container.removeAttribute(toAttributeName(container, key));
|
|
@@ -32,7 +32,7 @@ const RETAINED_304_HEADERS = [
|
|
|
32
32
|
];
|
|
33
33
|
const stripWeak = (tag) => tag.replace(/^W\//, "");
|
|
34
34
|
function etagMatches(etag2, ifNoneMatch) {
|
|
35
|
-
return ifNoneMatch != null && ifNoneMatch.split(
|
|
35
|
+
return ifNoneMatch != null && ifNoneMatch.split(",").some((t) => stripWeak(t.trim()) === stripWeak(etag2));
|
|
36
36
|
}
|
|
37
37
|
function initializeGenerator(generator) {
|
|
38
38
|
if (!generator) {
|
|
@@ -68,13 +68,13 @@ class HonoRequest {
|
|
|
68
68
|
return key ? this.#getDecodedParam(key) : this.#getAllDecodedParams();
|
|
69
69
|
}
|
|
70
70
|
#getDecodedParam(key) {
|
|
71
|
-
const paramKey = this.#matchResult[0][this.routeIndex][1][key];
|
|
71
|
+
const paramKey = this.#matchResult[0][this.routeIndex]?.[1][key];
|
|
72
72
|
const param = this.#getParamValue(paramKey);
|
|
73
73
|
return param && (0, import_url.tryDecodeURIComponent)(param);
|
|
74
74
|
}
|
|
75
75
|
#getAllDecodedParams() {
|
|
76
76
|
const decoded = {};
|
|
77
|
-
const keys = Object.keys(this.#matchResult[0][this.routeIndex][1]);
|
|
77
|
+
const keys = Object.keys(this.#matchResult[0][this.routeIndex]?.[1] ?? {});
|
|
78
78
|
for (const key of keys) {
|
|
79
79
|
const value = this.#getParamValue(this.#matchResult[0][this.routeIndex][1][key]);
|
|
80
80
|
if (value !== void 0) {
|
|
@@ -314,10 +314,14 @@ const cloneRawRequest = async (req) => {
|
|
|
314
314
|
message: "Cannot clone request: body was already consumed and not cached. Please use HonoRequest methods (e.g., req.json(), req.text()) instead of consuming req.raw directly."
|
|
315
315
|
});
|
|
316
316
|
}
|
|
317
|
-
|
|
317
|
+
let body = await req[cacheKey]();
|
|
318
318
|
const headers = req.header();
|
|
319
|
-
if (
|
|
319
|
+
if (cacheKey === "json") {
|
|
320
|
+
body = JSON.stringify(body);
|
|
321
|
+
delete headers["content-length"];
|
|
322
|
+
} else if (body instanceof FormData) {
|
|
320
323
|
delete headers["content-type"];
|
|
324
|
+
delete headers["content-length"];
|
|
321
325
|
}
|
|
322
326
|
const requestInit = {
|
|
323
327
|
body,
|
|
@@ -17,10 +17,14 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
17
17
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
18
18
|
var node_exports = {};
|
|
19
19
|
__export(node_exports, {
|
|
20
|
+
LABEL_REG_EXP_STR: () => LABEL_REG_EXP_STR,
|
|
20
21
|
Node: () => Node,
|
|
21
|
-
|
|
22
|
+
ONLY_WILDCARD_REG_EXP_STR: () => ONLY_WILDCARD_REG_EXP_STR,
|
|
23
|
+
PATH_ERROR: () => PATH_ERROR,
|
|
24
|
+
TAIL_WILDCARD_REG_EXP_STR: () => TAIL_WILDCARD_REG_EXP_STR
|
|
22
25
|
});
|
|
23
26
|
module.exports = __toCommonJS(node_exports);
|
|
27
|
+
var import_utils = require("../utils");
|
|
24
28
|
const LABEL_REG_EXP_STR = "[^/]+";
|
|
25
29
|
const ONLY_WILDCARD_REG_EXP_STR = ".*";
|
|
26
30
|
const TAIL_WILDCARD_REG_EXP_STR = "(?:|/.*)";
|
|
@@ -49,7 +53,7 @@ class Node {
|
|
|
49
53
|
// handler index of a dynamic path, or -1 for a static path terminal
|
|
50
54
|
#index;
|
|
51
55
|
#varIndex;
|
|
52
|
-
#children =
|
|
56
|
+
#children = (0, import_utils.createNullObject)();
|
|
53
57
|
insert(tokens, index, paramMap, context, isStatic) {
|
|
54
58
|
let node = this;
|
|
55
59
|
for (let i = 0, len = tokens.length; i < len; i++) {
|
|
@@ -128,6 +132,9 @@ class Node {
|
|
|
128
132
|
}
|
|
129
133
|
// Annotate the CommonJS export names for ESM import in node:
|
|
130
134
|
0 && (module.exports = {
|
|
135
|
+
LABEL_REG_EXP_STR,
|
|
131
136
|
Node,
|
|
132
|
-
|
|
137
|
+
ONLY_WILDCARD_REG_EXP_STR,
|
|
138
|
+
PATH_ERROR,
|
|
139
|
+
TAIL_WILDCARD_REG_EXP_STR
|
|
133
140
|
});
|
|
@@ -22,25 +22,20 @@ __export(router_exports, {
|
|
|
22
22
|
module.exports = __toCommonJS(router_exports);
|
|
23
23
|
var import_router = require("../../router");
|
|
24
24
|
var import_url = require("../../utils/url");
|
|
25
|
+
var import_utils = require("../utils");
|
|
25
26
|
var import_matcher = require("./matcher");
|
|
26
27
|
var import_node = require("./node");
|
|
27
28
|
var import_trie = require("./trie");
|
|
28
|
-
let wildcardRegExpCache =
|
|
29
|
+
let wildcardRegExpCache = (0, import_utils.createNullObject)();
|
|
29
30
|
function buildWildcardRegExp(path) {
|
|
30
31
|
return wildcardRegExpCache[path] ??= new RegExp(
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
(
|
|
32
|
+
`^${path.replace(
|
|
33
|
+
/\/:[^/{}]+(?:\{\[\^\/]\+})?(?=[/{]|$)|\/?\*$|([.\\+*[^\]$()?{}|])/g,
|
|
34
|
+
(match2, metaChar) => metaChar ? `\\${metaChar}` : match2 === "/*" ? import_node.TAIL_WILDCARD_REG_EXP_STR : match2 === "*" ? import_node.ONLY_WILDCARD_REG_EXP_STR : `/:${import_node.LABEL_REG_EXP_STR}`
|
|
34
35
|
)}$`
|
|
35
36
|
);
|
|
36
37
|
}
|
|
37
|
-
function clearWildcardRegExpCache() {
|
|
38
|
-
wildcardRegExpCache = /* @__PURE__ */ Object.create(null);
|
|
39
|
-
}
|
|
40
38
|
function findMiddleware(middleware, path) {
|
|
41
|
-
if (!middleware) {
|
|
42
|
-
return void 0;
|
|
43
|
-
}
|
|
44
39
|
for (const k of Object.keys(middleware).sort((a, b) => b.length - a.length)) {
|
|
45
40
|
if (buildWildcardRegExp(k).test(path)) {
|
|
46
41
|
return [...middleware[k]];
|
|
@@ -54,8 +49,8 @@ class RegExpRouter {
|
|
|
54
49
|
#routes;
|
|
55
50
|
#tries;
|
|
56
51
|
constructor() {
|
|
57
|
-
this.#middleware = { [import_router.METHOD_NAME_ALL]:
|
|
58
|
-
this.#routes = { [import_router.METHOD_NAME_ALL]:
|
|
52
|
+
this.#middleware = { [import_router.METHOD_NAME_ALL]: (0, import_utils.createNullObject)() };
|
|
53
|
+
this.#routes = { [import_router.METHOD_NAME_ALL]: (0, import_utils.createNullObject)() };
|
|
59
54
|
this.#tries = { [import_router.METHOD_NAME_ALL]: new import_trie.Trie() };
|
|
60
55
|
}
|
|
61
56
|
#insertPath(method, path) {
|
|
@@ -68,117 +63,86 @@ class RegExpRouter {
|
|
|
68
63
|
add(method, path, handler) {
|
|
69
64
|
const middleware = this.#middleware;
|
|
70
65
|
const routes = this.#routes;
|
|
71
|
-
if (!middleware
|
|
66
|
+
if (!middleware) {
|
|
72
67
|
throw new Error(import_router.MESSAGE_MATCHER_IS_ALREADY_BUILT);
|
|
73
68
|
}
|
|
74
69
|
if (!middleware[method]) {
|
|
75
70
|
this.#tries[method] = new import_trie.Trie();
|
|
76
|
-
[middleware, routes]
|
|
77
|
-
handlerMap[method] =
|
|
78
|
-
|
|
71
|
+
for (const handlerMap of [middleware, routes]) {
|
|
72
|
+
handlerMap[method] = (0, import_utils.createNullObject)();
|
|
73
|
+
for (const p in handlerMap[import_router.METHOD_NAME_ALL]) {
|
|
79
74
|
handlerMap[method][p] = [...handlerMap[import_router.METHOD_NAME_ALL][p]];
|
|
80
75
|
this.#insertPath(method, p);
|
|
81
|
-
}
|
|
82
|
-
}
|
|
76
|
+
}
|
|
77
|
+
}
|
|
83
78
|
}
|
|
84
79
|
if (path === "/*") {
|
|
85
80
|
path = "*";
|
|
86
81
|
}
|
|
87
|
-
const
|
|
82
|
+
const methods = method === import_router.METHOD_NAME_ALL ? Object.keys(middleware) : [method];
|
|
88
83
|
if (/\*$/.test(path)) {
|
|
89
84
|
const re = buildWildcardRegExp(path);
|
|
90
|
-
|
|
91
|
-
if (
|
|
85
|
+
for (const m of methods) {
|
|
86
|
+
if (!middleware[m][path]) {
|
|
92
87
|
this.#insertPath(m, path);
|
|
93
88
|
middleware[m][path] = findMiddleware(middleware[m], path) || findMiddleware(middleware[import_router.METHOD_NAME_ALL], path) || [];
|
|
94
89
|
}
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
re.test(p) &&
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
});
|
|
103
|
-
Object.keys(routes).forEach((m) => {
|
|
104
|
-
if (method === import_router.METHOD_NAME_ALL || method === m) {
|
|
105
|
-
Object.keys(routes[m]).forEach(
|
|
106
|
-
(p) => re.test(p) && routes[m][p].push([handler, paramCount])
|
|
107
|
-
);
|
|
90
|
+
}
|
|
91
|
+
for (const handlerMap of [middleware, routes]) {
|
|
92
|
+
for (const m of methods) {
|
|
93
|
+
for (const p in handlerMap[m]) {
|
|
94
|
+
re.test(p) && handlerMap[m][p].push([handler, path]);
|
|
95
|
+
}
|
|
108
96
|
}
|
|
109
|
-
}
|
|
97
|
+
}
|
|
110
98
|
return;
|
|
111
99
|
}
|
|
112
100
|
const paths = (0, import_url.checkOptionalParameter)(path) || [path];
|
|
113
|
-
for (
|
|
114
|
-
const
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
this.#insertPath(m, path2);
|
|
119
|
-
routes[m][path2] = [
|
|
120
|
-
...findMiddleware(middleware[m], path2) || findMiddleware(middleware[import_router.METHOD_NAME_ALL], path2) || []
|
|
121
|
-
];
|
|
122
|
-
}
|
|
123
|
-
routes[m][path2].push([handler, paramCount - len + i + 1]);
|
|
101
|
+
for (const path2 of paths) {
|
|
102
|
+
for (const m of methods) {
|
|
103
|
+
if (!routes[m][path2]) {
|
|
104
|
+
this.#insertPath(m, path2);
|
|
105
|
+
routes[m][path2] = findMiddleware(middleware[m], path2) || findMiddleware(middleware[import_router.METHOD_NAME_ALL], path2) || [];
|
|
124
106
|
}
|
|
125
|
-
|
|
107
|
+
routes[m][path2].push([handler, path2]);
|
|
108
|
+
}
|
|
126
109
|
}
|
|
127
110
|
}
|
|
128
111
|
match = import_matcher.match;
|
|
129
112
|
buildAllMatchers() {
|
|
130
|
-
const matchers =
|
|
131
|
-
Object.keys(this.#routes)
|
|
132
|
-
matchers[method]
|
|
133
|
-
}
|
|
113
|
+
const matchers = (0, import_utils.createNullObject)();
|
|
114
|
+
for (const method of Object.keys(this.#routes)) {
|
|
115
|
+
matchers[method] = this.#buildMatcher(method);
|
|
116
|
+
}
|
|
134
117
|
this.#middleware = this.#routes = this.#tries = void 0;
|
|
135
|
-
|
|
118
|
+
wildcardRegExpCache = (0, import_utils.createNullObject)();
|
|
136
119
|
return matchers;
|
|
137
120
|
}
|
|
138
121
|
#buildMatcher(method) {
|
|
139
122
|
const middleware = this.#middleware[method];
|
|
140
123
|
const routes = this.#routes[method];
|
|
141
124
|
const trie = this.#tries[method];
|
|
142
|
-
const staticMap =
|
|
125
|
+
const staticMap = (0, import_utils.createNullObject)();
|
|
143
126
|
const handlerData = [];
|
|
144
|
-
[
|
|
127
|
+
const [regexp, indexReplacementMap, paramReplacementMap] = trie.buildRegExp();
|
|
128
|
+
for (const r of [middleware, routes]) {
|
|
145
129
|
for (const path in r) {
|
|
146
130
|
const handlers = r[path];
|
|
147
131
|
const pathData = trie.paths[path];
|
|
148
132
|
if (!pathData) {
|
|
149
|
-
staticMap[path] = [handlers.map(([h]) => [h,
|
|
133
|
+
staticMap[path] = [handlers.map(([h]) => [h, (0, import_utils.createNullObject)()]), import_matcher.emptyParam];
|
|
150
134
|
continue;
|
|
151
135
|
}
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
}
|
|
160
|
-
return [h, paramIndexMap];
|
|
161
|
-
});
|
|
136
|
+
handlerData[pathData[0]] = handlers.map(([h, handlerPath]) => [
|
|
137
|
+
h,
|
|
138
|
+
trie.paths[handlerPath][1].reduceRight((map, [key], i) => {
|
|
139
|
+
map[key] = paramReplacementMap[pathData[1][i][1]];
|
|
140
|
+
return map;
|
|
141
|
+
}, (0, import_utils.createNullObject)())
|
|
142
|
+
]);
|
|
162
143
|
}
|
|
163
|
-
});
|
|
164
|
-
const [regexp, indexReplacementMap, paramReplacementMap] = trie.buildRegExp();
|
|
165
|
-
for (let i = 0, len = handlerData.length; i < len; i++) {
|
|
166
|
-
for (let j = 0, len2 = handlerData[i].length; j < len2; j++) {
|
|
167
|
-
const map = handlerData[i][j]?.[1];
|
|
168
|
-
if (!map) {
|
|
169
|
-
continue;
|
|
170
|
-
}
|
|
171
|
-
const keys = Object.keys(map);
|
|
172
|
-
for (let k = 0, len3 = keys.length; k < len3; k++) {
|
|
173
|
-
map[keys[k]] = paramReplacementMap[map[keys[k]]];
|
|
174
|
-
}
|
|
175
|
-
}
|
|
176
|
-
}
|
|
177
|
-
const handlerMap = [];
|
|
178
|
-
for (const i in indexReplacementMap) {
|
|
179
|
-
handlerMap[i] = handlerData[indexReplacementMap[i]];
|
|
180
144
|
}
|
|
181
|
-
return [regexp,
|
|
145
|
+
return [regexp, indexReplacementMap.map((i) => handlerData[i]), staticMap];
|
|
182
146
|
}
|
|
183
147
|
}
|
|
184
148
|
// Annotate the CommonJS export names for ESM import in node:
|
|
@@ -20,13 +20,14 @@ __export(trie_exports, {
|
|
|
20
20
|
Trie: () => Trie
|
|
21
21
|
});
|
|
22
22
|
module.exports = __toCommonJS(trie_exports);
|
|
23
|
+
var import_utils = require("../utils");
|
|
23
24
|
var import_node = require("./node");
|
|
24
25
|
class Trie {
|
|
25
26
|
#context = { varIndex: 0 };
|
|
26
27
|
#root = new import_node.Node();
|
|
27
28
|
#index = 0;
|
|
28
29
|
// dynamic path -> [handler index, param assoc]; static paths are not registered
|
|
29
|
-
paths =
|
|
30
|
+
paths = (0, import_utils.createNullObject)();
|
|
30
31
|
insert(path, isStatic) {
|
|
31
32
|
if (isStatic) {
|
|
32
33
|
this.#root.insert(path.split(""), 0, [], this.#context, true);
|
|
@@ -22,11 +22,12 @@ __export(node_exports, {
|
|
|
22
22
|
module.exports = __toCommonJS(node_exports);
|
|
23
23
|
var import_router = require("../../router");
|
|
24
24
|
var import_url = require("../../utils/url");
|
|
25
|
-
|
|
25
|
+
var import_utils = require("../utils");
|
|
26
|
+
const emptyParams = (0, import_utils.createNullObject)();
|
|
26
27
|
let order = 0;
|
|
27
28
|
class Node {
|
|
28
29
|
#methods = [];
|
|
29
|
-
#children =
|
|
30
|
+
#children = (0, import_utils.createNullObject)();
|
|
30
31
|
#patterns = [];
|
|
31
32
|
#pattern;
|
|
32
33
|
#params = emptyParams;
|
|
@@ -63,7 +64,7 @@ class Node {
|
|
|
63
64
|
const m = node.#methods[i];
|
|
64
65
|
const handlerSet = m[method] || m[import_router.METHOD_NAME_ALL];
|
|
65
66
|
if (handlerSet) {
|
|
66
|
-
handlerSet.params =
|
|
67
|
+
handlerSet.params = (0, import_utils.createNullObject)();
|
|
67
68
|
handlerSets.push(handlerSet);
|
|
68
69
|
for (let i2 = 0, len2 = handlerSet.possibleKeys.length; i2 < len2; i2++) {
|
|
69
70
|
const key = handlerSet.possibleKeys[i2];
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
+
var __export = (target, all) => {
|
|
6
|
+
for (var name in all)
|
|
7
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
8
|
+
};
|
|
9
|
+
var __copyProps = (to, from, except, desc) => {
|
|
10
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
11
|
+
for (let key of __getOwnPropNames(from))
|
|
12
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
13
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
14
|
+
}
|
|
15
|
+
return to;
|
|
16
|
+
};
|
|
17
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
18
|
+
var utils_exports = {};
|
|
19
|
+
__export(utils_exports, {
|
|
20
|
+
createNullObject: () => createNullObject
|
|
21
|
+
});
|
|
22
|
+
module.exports = __toCommonJS(utils_exports);
|
|
23
|
+
const createNullObject = () => /* @__PURE__ */ Object.create(null);
|
|
24
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
25
|
+
0 && (module.exports = {
|
|
26
|
+
createNullObject
|
|
27
|
+
});
|
|
@@ -101,7 +101,7 @@ const parseSigned = async (cookie, secret, name) => {
|
|
|
101
101
|
const secretKey = await getCryptoKey(secret);
|
|
102
102
|
for (const [key, value] of Object.entries(parse(cookie, name))) {
|
|
103
103
|
const signatureStartPos = value.lastIndexOf(".");
|
|
104
|
-
if (signatureStartPos <
|
|
104
|
+
if (signatureStartPos < 0) {
|
|
105
105
|
continue;
|
|
106
106
|
}
|
|
107
107
|
const signedValue = value.substring(0, signatureStartPos);
|
|
@@ -96,7 +96,13 @@ class StreamingApi {
|
|
|
96
96
|
abort() {
|
|
97
97
|
if (!this.aborted) {
|
|
98
98
|
this.aborted = true;
|
|
99
|
-
this.abortSubscribers.forEach((subscriber) =>
|
|
99
|
+
this.abortSubscribers.forEach((subscriber) => {
|
|
100
|
+
try {
|
|
101
|
+
void Promise.resolve(subscriber()).catch(() => {
|
|
102
|
+
});
|
|
103
|
+
} catch {
|
|
104
|
+
}
|
|
105
|
+
});
|
|
100
106
|
}
|
|
101
107
|
}
|
|
102
108
|
}
|
|
@@ -26,6 +26,10 @@ var createProxy = (callback, path) => {
|
|
|
26
26
|
});
|
|
27
27
|
return proxy;
|
|
28
28
|
};
|
|
29
|
+
var appendQueryParams = (url, searchParams) => {
|
|
30
|
+
const queryString = searchParams.toString();
|
|
31
|
+
return queryString ? `${url}?${queryString}` : url;
|
|
32
|
+
};
|
|
29
33
|
var ClientRequestImpl = class {
|
|
30
34
|
url;
|
|
31
35
|
method;
|
|
@@ -52,6 +56,9 @@ var ClientRequestImpl = class {
|
|
|
52
56
|
}
|
|
53
57
|
if (Array.isArray(v)) {
|
|
54
58
|
for (const v2 of v) {
|
|
59
|
+
if (v2 === void 0) {
|
|
60
|
+
continue;
|
|
61
|
+
}
|
|
55
62
|
form.append(k, v2);
|
|
56
63
|
}
|
|
57
64
|
} else {
|
|
@@ -76,19 +83,29 @@ var ClientRequestImpl = class {
|
|
|
76
83
|
if (args?.cookie) {
|
|
77
84
|
const cookies = [];
|
|
78
85
|
for (const [key, value] of Object.entries(args.cookie)) {
|
|
86
|
+
if (value === void 0) {
|
|
87
|
+
continue;
|
|
88
|
+
}
|
|
79
89
|
cookies.push(serialize(key, value));
|
|
80
90
|
}
|
|
81
|
-
|
|
91
|
+
if (cookies.length > 0) {
|
|
92
|
+
headerValues["Cookie"] = cookies.join("; ");
|
|
93
|
+
}
|
|
82
94
|
}
|
|
83
95
|
if (this.cType) {
|
|
84
96
|
headerValues["Content-Type"] = this.cType;
|
|
85
97
|
}
|
|
86
|
-
const headers = new Headers(
|
|
98
|
+
const headers = new Headers();
|
|
99
|
+
for (const [key, value] of Object.entries(headerValues)) {
|
|
100
|
+
if (value !== void 0) {
|
|
101
|
+
headers.set(key, value);
|
|
102
|
+
}
|
|
103
|
+
}
|
|
87
104
|
let url = this.url;
|
|
88
105
|
url = removeIndexString(url);
|
|
89
106
|
url = replaceUrlParam(url, this.pathParams);
|
|
90
107
|
if (this.queryParams) {
|
|
91
|
-
url = url
|
|
108
|
+
url = appendQueryParams(url, this.queryParams);
|
|
92
109
|
}
|
|
93
110
|
methodUpperCase = this.method.toUpperCase();
|
|
94
111
|
const setBody = !(methodUpperCase === "GET" || methodUpperCase === "HEAD");
|
|
@@ -132,7 +149,7 @@ var hc = (baseUrl, options) => createProxy(function proxyCallback(opts) {
|
|
|
132
149
|
result = replaceUrlParam(url, opts.args[0].param);
|
|
133
150
|
}
|
|
134
151
|
if (opts.args[0].query) {
|
|
135
|
-
result = result
|
|
152
|
+
result = appendQueryParams(result, buildSearchParamsOption(opts.args[0].query));
|
|
136
153
|
}
|
|
137
154
|
}
|
|
138
155
|
result = removeIndexString(result);
|
|
@@ -143,18 +160,15 @@ var hc = (baseUrl, options) => createProxy(function proxyCallback(opts) {
|
|
|
143
160
|
}
|
|
144
161
|
if (method === "ws") {
|
|
145
162
|
const webSocketUrl = replaceUrlProtocol(
|
|
146
|
-
opts.args[0]
|
|
163
|
+
opts.args[0]?.param ? replaceUrlParam(url, opts.args[0].param) : url,
|
|
147
164
|
"ws"
|
|
148
165
|
);
|
|
149
166
|
const targetUrl = new URL(webSocketUrl);
|
|
150
167
|
const queryParams = opts.args[0]?.query;
|
|
151
168
|
if (queryParams) {
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
} else {
|
|
156
|
-
targetUrl.searchParams.set(key, value);
|
|
157
|
-
}
|
|
169
|
+
const searchParams = buildSearchParamsOption(queryParams);
|
|
170
|
+
searchParams.forEach((value, key) => {
|
|
171
|
+
targetUrl.searchParams.append(key, value);
|
|
158
172
|
});
|
|
159
173
|
}
|
|
160
174
|
const establishWebSocket = (...args) => {
|
|
@@ -1,9 +1,43 @@
|
|
|
1
1
|
// src/helper/accepts/accepts.ts
|
|
2
2
|
import { parseAccept } from "../../utils/accept.js";
|
|
3
|
+
var matchType = (acceptType, supportedType) => {
|
|
4
|
+
if (acceptType === supportedType) {
|
|
5
|
+
return true;
|
|
6
|
+
}
|
|
7
|
+
if (acceptType === "*/*" || acceptType === "*") {
|
|
8
|
+
return false;
|
|
9
|
+
}
|
|
10
|
+
if (acceptType.endsWith("/*")) {
|
|
11
|
+
const [acceptMain] = acceptType.split("/");
|
|
12
|
+
const [supportedMain] = supportedType.split("/");
|
|
13
|
+
return acceptMain === supportedMain;
|
|
14
|
+
}
|
|
15
|
+
return false;
|
|
16
|
+
};
|
|
17
|
+
var getSpecificity = (type) => {
|
|
18
|
+
if (type === "*/*" || type === "*") {
|
|
19
|
+
return 1;
|
|
20
|
+
}
|
|
21
|
+
if (type.endsWith("/*")) {
|
|
22
|
+
return 2;
|
|
23
|
+
}
|
|
24
|
+
return 3;
|
|
25
|
+
};
|
|
3
26
|
var defaultMatch = (accepts2, config) => {
|
|
4
27
|
const { supports, default: defaultSupport } = config;
|
|
5
|
-
const
|
|
6
|
-
|
|
28
|
+
const sortedAccepts = accepts2.slice().sort((a, b) => {
|
|
29
|
+
if (b.q !== a.q) {
|
|
30
|
+
return b.q - a.q;
|
|
31
|
+
}
|
|
32
|
+
return getSpecificity(b.type) - getSpecificity(a.type);
|
|
33
|
+
});
|
|
34
|
+
for (const accept of sortedAccepts) {
|
|
35
|
+
const matched = supports.find((supported) => matchType(accept.type, supported));
|
|
36
|
+
if (matched) {
|
|
37
|
+
return matched;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
return defaultSupport;
|
|
7
41
|
};
|
|
8
42
|
var accepts = (c, options) => {
|
|
9
43
|
const acceptHeader = c.req.header(options.header);
|
|
@@ -78,6 +78,7 @@ var applyProps = (container, attributes, oldAttributes) => {
|
|
|
78
78
|
} else if (key === "dangerouslySetInnerHTML" && value) {
|
|
79
79
|
container.innerHTML = value.__html;
|
|
80
80
|
} else if (key === "ref") {
|
|
81
|
+
refCleanupMap.get(container)?.();
|
|
81
82
|
let cleanup;
|
|
82
83
|
if (typeof value === "function") {
|
|
83
84
|
cleanup = value(container) || (() => value(null));
|
|
@@ -142,6 +143,7 @@ var applyProps = (container, attributes, oldAttributes) => {
|
|
|
142
143
|
container.removeEventListener(eventSpec[0], value, eventSpec[1]);
|
|
143
144
|
} else if (key === "ref") {
|
|
144
145
|
refCleanupMap.get(container)?.();
|
|
146
|
+
refCleanupMap.delete(container);
|
|
145
147
|
} else {
|
|
146
148
|
try {
|
|
147
149
|
container.removeAttribute(toAttributeName(container, key));
|
|
@@ -10,7 +10,7 @@ var RETAINED_304_HEADERS = [
|
|
|
10
10
|
];
|
|
11
11
|
var stripWeak = (tag) => tag.replace(/^W\//, "");
|
|
12
12
|
function etagMatches(etag2, ifNoneMatch) {
|
|
13
|
-
return ifNoneMatch != null && ifNoneMatch.split(
|
|
13
|
+
return ifNoneMatch != null && ifNoneMatch.split(",").some((t) => stripWeak(t.trim()) === stripWeak(etag2));
|
|
14
14
|
}
|
|
15
15
|
function initializeGenerator(generator) {
|
|
16
16
|
if (!generator) {
|
|
@@ -46,13 +46,13 @@ var HonoRequest = class {
|
|
|
46
46
|
return key ? this.#getDecodedParam(key) : this.#getAllDecodedParams();
|
|
47
47
|
}
|
|
48
48
|
#getDecodedParam(key) {
|
|
49
|
-
const paramKey = this.#matchResult[0][this.routeIndex][1][key];
|
|
49
|
+
const paramKey = this.#matchResult[0][this.routeIndex]?.[1][key];
|
|
50
50
|
const param = this.#getParamValue(paramKey);
|
|
51
51
|
return param && tryDecodeURIComponent(param);
|
|
52
52
|
}
|
|
53
53
|
#getAllDecodedParams() {
|
|
54
54
|
const decoded = {};
|
|
55
|
-
const keys = Object.keys(this.#matchResult[0][this.routeIndex][1]);
|
|
55
|
+
const keys = Object.keys(this.#matchResult[0][this.routeIndex]?.[1] ?? {});
|
|
56
56
|
for (const key of keys) {
|
|
57
57
|
const value = this.#getParamValue(this.#matchResult[0][this.routeIndex][1][key]);
|
|
58
58
|
if (value !== void 0) {
|
|
@@ -292,10 +292,14 @@ var cloneRawRequest = async (req) => {
|
|
|
292
292
|
message: "Cannot clone request: body was already consumed and not cached. Please use HonoRequest methods (e.g., req.json(), req.text()) instead of consuming req.raw directly."
|
|
293
293
|
});
|
|
294
294
|
}
|
|
295
|
-
|
|
295
|
+
let body = await req[cacheKey]();
|
|
296
296
|
const headers = req.header();
|
|
297
|
-
if (
|
|
297
|
+
if (cacheKey === "json") {
|
|
298
|
+
body = JSON.stringify(body);
|
|
299
|
+
delete headers["content-length"];
|
|
300
|
+
} else if (body instanceof FormData) {
|
|
298
301
|
delete headers["content-type"];
|
|
302
|
+
delete headers["content-length"];
|
|
299
303
|
}
|
|
300
304
|
const requestInit = {
|
|
301
305
|
body,
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
// src/router/reg-exp-router/node.ts
|
|
2
|
+
import { createNullObject } from "../utils.js";
|
|
2
3
|
var LABEL_REG_EXP_STR = "[^/]+";
|
|
3
4
|
var ONLY_WILDCARD_REG_EXP_STR = ".*";
|
|
4
5
|
var TAIL_WILDCARD_REG_EXP_STR = "(?:|/.*)";
|
|
@@ -27,7 +28,7 @@ var Node = class _Node {
|
|
|
27
28
|
// handler index of a dynamic path, or -1 for a static path terminal
|
|
28
29
|
#index;
|
|
29
30
|
#varIndex;
|
|
30
|
-
#children =
|
|
31
|
+
#children = createNullObject();
|
|
31
32
|
insert(tokens, index, paramMap, context, isStatic) {
|
|
32
33
|
let node = this;
|
|
33
34
|
for (let i = 0, len = tokens.length; i < len; i++) {
|
|
@@ -105,6 +106,9 @@ var Node = class _Node {
|
|
|
105
106
|
}
|
|
106
107
|
};
|
|
107
108
|
export {
|
|
109
|
+
LABEL_REG_EXP_STR,
|
|
108
110
|
Node,
|
|
109
|
-
|
|
111
|
+
ONLY_WILDCARD_REG_EXP_STR,
|
|
112
|
+
PATH_ERROR,
|
|
113
|
+
TAIL_WILDCARD_REG_EXP_STR
|
|
110
114
|
};
|
|
@@ -5,25 +5,25 @@ import {
|
|
|
5
5
|
UnsupportedPathError
|
|
6
6
|
} from "../../router.js";
|
|
7
7
|
import { checkOptionalParameter } from "../../utils/url.js";
|
|
8
|
+
import { createNullObject } from "../utils.js";
|
|
8
9
|
import { match, emptyParam } from "./matcher.js";
|
|
9
|
-
import {
|
|
10
|
+
import {
|
|
11
|
+
LABEL_REG_EXP_STR,
|
|
12
|
+
ONLY_WILDCARD_REG_EXP_STR,
|
|
13
|
+
PATH_ERROR,
|
|
14
|
+
TAIL_WILDCARD_REG_EXP_STR
|
|
15
|
+
} from "./node.js";
|
|
10
16
|
import { Trie } from "./trie.js";
|
|
11
|
-
var wildcardRegExpCache =
|
|
17
|
+
var wildcardRegExpCache = createNullObject();
|
|
12
18
|
function buildWildcardRegExp(path) {
|
|
13
19
|
return wildcardRegExpCache[path] ??= new RegExp(
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
(
|
|
20
|
+
`^${path.replace(
|
|
21
|
+
/\/:[^/{}]+(?:\{\[\^\/]\+})?(?=[/{]|$)|\/?\*$|([.\\+*[^\]$()?{}|])/g,
|
|
22
|
+
(match2, metaChar) => metaChar ? `\\${metaChar}` : match2 === "/*" ? TAIL_WILDCARD_REG_EXP_STR : match2 === "*" ? ONLY_WILDCARD_REG_EXP_STR : `/:${LABEL_REG_EXP_STR}`
|
|
17
23
|
)}$`
|
|
18
24
|
);
|
|
19
25
|
}
|
|
20
|
-
function clearWildcardRegExpCache() {
|
|
21
|
-
wildcardRegExpCache = /* @__PURE__ */ Object.create(null);
|
|
22
|
-
}
|
|
23
26
|
function findMiddleware(middleware, path) {
|
|
24
|
-
if (!middleware) {
|
|
25
|
-
return void 0;
|
|
26
|
-
}
|
|
27
27
|
for (const k of Object.keys(middleware).sort((a, b) => b.length - a.length)) {
|
|
28
28
|
if (buildWildcardRegExp(k).test(path)) {
|
|
29
29
|
return [...middleware[k]];
|
|
@@ -37,8 +37,8 @@ var RegExpRouter = class {
|
|
|
37
37
|
#routes;
|
|
38
38
|
#tries;
|
|
39
39
|
constructor() {
|
|
40
|
-
this.#middleware = { [METHOD_NAME_ALL]:
|
|
41
|
-
this.#routes = { [METHOD_NAME_ALL]:
|
|
40
|
+
this.#middleware = { [METHOD_NAME_ALL]: createNullObject() };
|
|
41
|
+
this.#routes = { [METHOD_NAME_ALL]: createNullObject() };
|
|
42
42
|
this.#tries = { [METHOD_NAME_ALL]: new Trie() };
|
|
43
43
|
}
|
|
44
44
|
#insertPath(method, path) {
|
|
@@ -51,117 +51,86 @@ var RegExpRouter = class {
|
|
|
51
51
|
add(method, path, handler) {
|
|
52
52
|
const middleware = this.#middleware;
|
|
53
53
|
const routes = this.#routes;
|
|
54
|
-
if (!middleware
|
|
54
|
+
if (!middleware) {
|
|
55
55
|
throw new Error(MESSAGE_MATCHER_IS_ALREADY_BUILT);
|
|
56
56
|
}
|
|
57
57
|
if (!middleware[method]) {
|
|
58
58
|
this.#tries[method] = new Trie();
|
|
59
|
-
[middleware, routes]
|
|
60
|
-
handlerMap[method] =
|
|
61
|
-
|
|
59
|
+
for (const handlerMap of [middleware, routes]) {
|
|
60
|
+
handlerMap[method] = createNullObject();
|
|
61
|
+
for (const p in handlerMap[METHOD_NAME_ALL]) {
|
|
62
62
|
handlerMap[method][p] = [...handlerMap[METHOD_NAME_ALL][p]];
|
|
63
63
|
this.#insertPath(method, p);
|
|
64
|
-
}
|
|
65
|
-
}
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
66
|
}
|
|
67
67
|
if (path === "/*") {
|
|
68
68
|
path = "*";
|
|
69
69
|
}
|
|
70
|
-
const
|
|
70
|
+
const methods = method === METHOD_NAME_ALL ? Object.keys(middleware) : [method];
|
|
71
71
|
if (/\*$/.test(path)) {
|
|
72
72
|
const re = buildWildcardRegExp(path);
|
|
73
|
-
|
|
74
|
-
if (
|
|
73
|
+
for (const m of methods) {
|
|
74
|
+
if (!middleware[m][path]) {
|
|
75
75
|
this.#insertPath(m, path);
|
|
76
76
|
middleware[m][path] = findMiddleware(middleware[m], path) || findMiddleware(middleware[METHOD_NAME_ALL], path) || [];
|
|
77
77
|
}
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
re.test(p) &&
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
});
|
|
86
|
-
Object.keys(routes).forEach((m) => {
|
|
87
|
-
if (method === METHOD_NAME_ALL || method === m) {
|
|
88
|
-
Object.keys(routes[m]).forEach(
|
|
89
|
-
(p) => re.test(p) && routes[m][p].push([handler, paramCount])
|
|
90
|
-
);
|
|
78
|
+
}
|
|
79
|
+
for (const handlerMap of [middleware, routes]) {
|
|
80
|
+
for (const m of methods) {
|
|
81
|
+
for (const p in handlerMap[m]) {
|
|
82
|
+
re.test(p) && handlerMap[m][p].push([handler, path]);
|
|
83
|
+
}
|
|
91
84
|
}
|
|
92
|
-
}
|
|
85
|
+
}
|
|
93
86
|
return;
|
|
94
87
|
}
|
|
95
88
|
const paths = checkOptionalParameter(path) || [path];
|
|
96
|
-
for (
|
|
97
|
-
const
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
this.#insertPath(m, path2);
|
|
102
|
-
routes[m][path2] = [
|
|
103
|
-
...findMiddleware(middleware[m], path2) || findMiddleware(middleware[METHOD_NAME_ALL], path2) || []
|
|
104
|
-
];
|
|
105
|
-
}
|
|
106
|
-
routes[m][path2].push([handler, paramCount - len + i + 1]);
|
|
89
|
+
for (const path2 of paths) {
|
|
90
|
+
for (const m of methods) {
|
|
91
|
+
if (!routes[m][path2]) {
|
|
92
|
+
this.#insertPath(m, path2);
|
|
93
|
+
routes[m][path2] = findMiddleware(middleware[m], path2) || findMiddleware(middleware[METHOD_NAME_ALL], path2) || [];
|
|
107
94
|
}
|
|
108
|
-
|
|
95
|
+
routes[m][path2].push([handler, path2]);
|
|
96
|
+
}
|
|
109
97
|
}
|
|
110
98
|
}
|
|
111
99
|
match = match;
|
|
112
100
|
buildAllMatchers() {
|
|
113
|
-
const matchers =
|
|
114
|
-
Object.keys(this.#routes)
|
|
115
|
-
matchers[method]
|
|
116
|
-
}
|
|
101
|
+
const matchers = createNullObject();
|
|
102
|
+
for (const method of Object.keys(this.#routes)) {
|
|
103
|
+
matchers[method] = this.#buildMatcher(method);
|
|
104
|
+
}
|
|
117
105
|
this.#middleware = this.#routes = this.#tries = void 0;
|
|
118
|
-
|
|
106
|
+
wildcardRegExpCache = createNullObject();
|
|
119
107
|
return matchers;
|
|
120
108
|
}
|
|
121
109
|
#buildMatcher(method) {
|
|
122
110
|
const middleware = this.#middleware[method];
|
|
123
111
|
const routes = this.#routes[method];
|
|
124
112
|
const trie = this.#tries[method];
|
|
125
|
-
const staticMap =
|
|
113
|
+
const staticMap = createNullObject();
|
|
126
114
|
const handlerData = [];
|
|
127
|
-
[
|
|
115
|
+
const [regexp, indexReplacementMap, paramReplacementMap] = trie.buildRegExp();
|
|
116
|
+
for (const r of [middleware, routes]) {
|
|
128
117
|
for (const path in r) {
|
|
129
118
|
const handlers = r[path];
|
|
130
119
|
const pathData = trie.paths[path];
|
|
131
120
|
if (!pathData) {
|
|
132
|
-
staticMap[path] = [handlers.map(([h]) => [h,
|
|
133
|
-
continue;
|
|
134
|
-
}
|
|
135
|
-
const paramAssoc = pathData[1];
|
|
136
|
-
handlerData[pathData[0]] = handlers.map(([h, paramCount]) => {
|
|
137
|
-
const paramIndexMap = /* @__PURE__ */ Object.create(null);
|
|
138
|
-
paramCount -= 1;
|
|
139
|
-
for (; paramCount >= 0; paramCount--) {
|
|
140
|
-
const [key, value] = paramAssoc[paramCount];
|
|
141
|
-
paramIndexMap[key] = value;
|
|
142
|
-
}
|
|
143
|
-
return [h, paramIndexMap];
|
|
144
|
-
});
|
|
145
|
-
}
|
|
146
|
-
});
|
|
147
|
-
const [regexp, indexReplacementMap, paramReplacementMap] = trie.buildRegExp();
|
|
148
|
-
for (let i = 0, len = handlerData.length; i < len; i++) {
|
|
149
|
-
for (let j = 0, len2 = handlerData[i].length; j < len2; j++) {
|
|
150
|
-
const map = handlerData[i][j]?.[1];
|
|
151
|
-
if (!map) {
|
|
121
|
+
staticMap[path] = [handlers.map(([h]) => [h, createNullObject()]), emptyParam];
|
|
152
122
|
continue;
|
|
153
123
|
}
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
124
|
+
handlerData[pathData[0]] = handlers.map(([h, handlerPath]) => [
|
|
125
|
+
h,
|
|
126
|
+
trie.paths[handlerPath][1].reduceRight((map, [key], i) => {
|
|
127
|
+
map[key] = paramReplacementMap[pathData[1][i][1]];
|
|
128
|
+
return map;
|
|
129
|
+
}, createNullObject())
|
|
130
|
+
]);
|
|
158
131
|
}
|
|
159
132
|
}
|
|
160
|
-
|
|
161
|
-
for (const i in indexReplacementMap) {
|
|
162
|
-
handlerMap[i] = handlerData[indexReplacementMap[i]];
|
|
163
|
-
}
|
|
164
|
-
return [regexp, handlerMap, staticMap];
|
|
133
|
+
return [regexp, indexReplacementMap.map((i) => handlerData[i]), staticMap];
|
|
165
134
|
}
|
|
166
135
|
};
|
|
167
136
|
export {
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
// src/router/reg-exp-router/trie.ts
|
|
2
|
+
import { createNullObject } from "../utils.js";
|
|
2
3
|
import { Node } from "./node.js";
|
|
3
4
|
var Trie = class {
|
|
4
5
|
#context = { varIndex: 0 };
|
|
5
6
|
#root = new Node();
|
|
6
7
|
#index = 0;
|
|
7
8
|
// dynamic path -> [handler index, param assoc]; static paths are not registered
|
|
8
|
-
paths =
|
|
9
|
+
paths = createNullObject();
|
|
9
10
|
insert(path, isStatic) {
|
|
10
11
|
if (isStatic) {
|
|
11
12
|
this.#root.insert(path.split(""), 0, [], this.#context, true);
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
// src/router/trie-router/node.ts
|
|
2
2
|
import { METHOD_NAME_ALL } from "../../router.js";
|
|
3
3
|
import { getPattern, splitPath, splitRoutingPath } from "../../utils/url.js";
|
|
4
|
-
|
|
4
|
+
import { createNullObject } from "../utils.js";
|
|
5
|
+
var emptyParams = createNullObject();
|
|
5
6
|
var order = 0;
|
|
6
7
|
var Node = class _Node {
|
|
7
8
|
#methods = [];
|
|
8
|
-
#children =
|
|
9
|
+
#children = createNullObject();
|
|
9
10
|
#patterns = [];
|
|
10
11
|
#pattern;
|
|
11
12
|
#params = emptyParams;
|
|
@@ -42,7 +43,7 @@ var Node = class _Node {
|
|
|
42
43
|
const m = node.#methods[i];
|
|
43
44
|
const handlerSet = m[method] || m[METHOD_NAME_ALL];
|
|
44
45
|
if (handlerSet) {
|
|
45
|
-
handlerSet.params =
|
|
46
|
+
handlerSet.params = createNullObject();
|
|
46
47
|
handlerSets.push(handlerSet);
|
|
47
48
|
for (let i2 = 0, len2 = handlerSet.possibleKeys.length; i2 < len2; i2++) {
|
|
48
49
|
const key = handlerSet.possibleKeys[i2];
|
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
export declare const LABEL_REG_EXP_STR = "[^/]+";
|
|
2
|
+
export declare const ONLY_WILDCARD_REG_EXP_STR = ".*";
|
|
3
|
+
export declare const TAIL_WILDCARD_REG_EXP_STR = "(?:|/.*)";
|
|
1
4
|
export declare const PATH_ERROR: unique symbol;
|
|
2
5
|
export type ParamAssocArray = [string, number][];
|
|
3
6
|
export interface Context {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const createNullObject: () => any;
|
|
@@ -77,7 +77,7 @@ var parseSigned = async (cookie, secret, name) => {
|
|
|
77
77
|
const secretKey = await getCryptoKey(secret);
|
|
78
78
|
for (const [key, value] of Object.entries(parse(cookie, name))) {
|
|
79
79
|
const signatureStartPos = value.lastIndexOf(".");
|
|
80
|
-
if (signatureStartPos <
|
|
80
|
+
if (signatureStartPos < 0) {
|
|
81
81
|
continue;
|
|
82
82
|
}
|
|
83
83
|
const signedValue = value.substring(0, signatureStartPos);
|
|
@@ -75,7 +75,13 @@ var StreamingApi = class {
|
|
|
75
75
|
abort() {
|
|
76
76
|
if (!this.aborted) {
|
|
77
77
|
this.aborted = true;
|
|
78
|
-
this.abortSubscribers.forEach((subscriber) =>
|
|
78
|
+
this.abortSubscribers.forEach((subscriber) => {
|
|
79
|
+
try {
|
|
80
|
+
void Promise.resolve(subscriber()).catch(() => {
|
|
81
|
+
});
|
|
82
|
+
} catch {
|
|
83
|
+
}
|
|
84
|
+
});
|
|
79
85
|
}
|
|
80
86
|
}
|
|
81
87
|
};
|
package/package.json
CHANGED