hono 2.3.1 → 2.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/compose.js +82 -66
- package/dist/cjs/context.js +159 -144
- package/dist/cjs/hono.js +173 -150
- package/dist/cjs/index.js +31 -11
- package/dist/cjs/middleware/basic-auth/index.js +70 -39
- package/dist/cjs/middleware/bearer-auth/index.js +69 -51
- package/dist/cjs/middleware/cache/index.js +49 -28
- package/dist/cjs/middleware/compress/index.js +39 -16
- package/dist/cjs/middleware/cors/index.js +89 -71
- package/dist/cjs/middleware/etag/index.js +46 -24
- package/dist/cjs/middleware/html/index.js +50 -30
- package/dist/cjs/middleware/jsx/index.js +178 -166
- package/dist/cjs/middleware/jsx/jsx-dev-runtime.js +30 -7
- package/dist/cjs/middleware/jsx/jsx-runtime.js +30 -6
- package/dist/cjs/middleware/jwt/index.js +74 -54
- package/dist/cjs/middleware/logger/index.js +59 -38
- package/dist/cjs/middleware/powered-by/index.js +30 -7
- package/dist/cjs/middleware/pretty-json/index.js +31 -8
- package/dist/cjs/middleware/serve-static/bun.js +56 -38
- package/dist/cjs/middleware/serve-static/index.js +27 -4
- package/dist/cjs/middleware/serve-static/module.js +42 -0
- package/dist/cjs/middleware/serve-static/serve-static.js +58 -39
- package/dist/cjs/middleware/validator/index.js +27 -4
- package/dist/cjs/middleware/validator/middleware.js +125 -91
- package/dist/cjs/package.json +3 -0
- package/dist/cjs/request.js +129 -116
- package/dist/cjs/router/reg-exp-router/index.js +27 -4
- package/dist/cjs/router/reg-exp-router/node.js +108 -97
- package/dist/cjs/router/reg-exp-router/router.js +158 -141
- package/dist/cjs/router/reg-exp-router/trie.js +55 -39
- package/dist/cjs/router/smart-router/index.js +27 -4
- package/dist/cjs/router/smart-router/router.js +70 -49
- package/dist/cjs/router/static-router/index.js +27 -4
- package/dist/cjs/router/static-router/router.js +78 -64
- package/dist/cjs/router/trie-router/index.js +27 -4
- package/dist/cjs/router/trie-router/node.js +167 -159
- package/dist/cjs/router/trie-router/router.js +43 -20
- package/dist/cjs/router.js +35 -6
- package/dist/cjs/types.js +16 -0
- package/dist/cjs/utils/body.js +36 -15
- package/dist/cjs/utils/buffer.js +56 -31
- package/dist/cjs/utils/cloudflare.js +53 -34
- package/dist/cjs/utils/cookie.js +59 -35
- package/dist/cjs/utils/crypto.js +69 -43
- package/dist/cjs/utils/encode.js +92 -65
- package/dist/cjs/utils/filepath.js +39 -22
- package/dist/cjs/utils/html.js +54 -33
- package/dist/cjs/utils/http-status.js +68 -45
- package/dist/cjs/utils/json.js +91 -76
- package/dist/cjs/utils/jwt/index.js +32 -25
- package/dist/cjs/utils/jwt/jwt.js +124 -93
- package/dist/cjs/utils/jwt/types.js +65 -38
- package/dist/cjs/utils/mime.js +110 -87
- package/dist/cjs/utils/object.js +53 -35
- package/dist/cjs/utils/types.js +16 -0
- package/dist/cjs/utils/url.js +89 -78
- package/dist/cjs/validator/rule.js +80 -0
- package/dist/cjs/validator/sanitizer.js +30 -0
- package/dist/cjs/validator/schema.js +16 -0
- package/dist/cjs/validator/validator.js +439 -0
- package/dist/compose.d.ts +4 -3
- package/dist/compose.js +61 -64
- package/dist/context.d.ts +10 -9
- package/dist/context.js +139 -143
- package/dist/hono.d.ts +27 -42
- package/dist/hono.js +153 -149
- package/dist/index.d.ts +4 -1
- package/dist/index.js +9 -9
- package/dist/middleware/basic-auth/index.d.ts +1 -1
- package/dist/middleware/basic-auth/index.js +52 -40
- package/dist/middleware/bearer-auth/index.d.ts +1 -1
- package/dist/middleware/bearer-auth/index.js +48 -49
- package/dist/middleware/cache/index.d.ts +1 -1
- package/dist/middleware/cache/index.js +28 -26
- package/dist/middleware/compress/index.d.ts +1 -1
- package/dist/middleware/compress/index.js +18 -14
- package/dist/middleware/cors/index.d.ts +1 -1
- package/dist/middleware/cors/index.js +68 -69
- package/dist/middleware/etag/index.d.ts +1 -1
- package/dist/middleware/etag/index.js +25 -22
- package/dist/middleware/html/index.js +29 -28
- package/dist/middleware/jsx/index.js +164 -172
- package/dist/middleware/jsx/jsx-dev-runtime.js +9 -5
- package/dist/middleware/jsx/jsx-runtime.js +7 -2
- package/dist/middleware/jwt/index.d.ts +1 -1
- package/dist/middleware/jwt/index.js +53 -52
- package/dist/middleware/logger/index.d.ts +1 -1
- package/dist/middleware/logger/index.js +35 -39
- package/dist/middleware/powered-by/index.d.ts +1 -1
- package/dist/middleware/powered-by/index.js +9 -5
- package/dist/middleware/pretty-json/index.d.ts +1 -1
- package/dist/middleware/pretty-json/index.js +10 -6
- package/dist/middleware/serve-static/bun.d.ts +1 -1
- package/dist/middleware/serve-static/bun.js +35 -36
- package/dist/middleware/serve-static/index.js +5 -1
- package/dist/middleware/serve-static/module.d.ts +3 -0
- package/dist/middleware/serve-static/module.js +13 -0
- package/dist/middleware/serve-static/serve-static.d.ts +2 -3
- package/dist/middleware/serve-static/serve-static.js +36 -36
- package/dist/middleware/validator/index.js +5 -2
- package/dist/middleware/validator/middleware.d.ts +9 -15
- package/dist/middleware/validator/middleware.js +104 -89
- package/dist/request.d.ts +2 -2
- package/dist/request.js +108 -114
- package/dist/router/reg-exp-router/index.js +5 -1
- package/dist/router/reg-exp-router/node.js +87 -96
- package/dist/router/reg-exp-router/router.js +140 -142
- package/dist/router/reg-exp-router/trie.js +35 -38
- package/dist/router/smart-router/index.js +5 -1
- package/dist/router/smart-router/router.js +50 -48
- package/dist/router/static-router/index.js +5 -1
- package/dist/router/static-router/router.js +58 -63
- package/dist/router/trie-router/index.js +5 -1
- package/dist/router/trie-router/node.js +147 -158
- package/dist/router/trie-router/router.js +23 -19
- package/dist/router.js +12 -5
- package/dist/types.d.ts +22 -0
- package/dist/types.js +0 -0
- package/dist/utils/body.js +15 -13
- package/dist/utils/buffer.js +35 -29
- package/dist/utils/cloudflare.js +32 -32
- package/dist/utils/cookie.js +38 -33
- package/dist/utils/crypto.js +48 -41
- package/dist/utils/encode.js +70 -62
- package/dist/utils/filepath.js +18 -20
- package/dist/utils/html.js +34 -32
- package/dist/utils/http-status.js +48 -44
- package/dist/utils/json.js +71 -75
- package/dist/utils/jwt/index.js +5 -1
- package/dist/utils/jwt/jwt.js +95 -90
- package/dist/utils/jwt/types.js +47 -41
- package/dist/utils/mime.js +90 -86
- package/dist/utils/object.js +31 -32
- package/dist/utils/types.d.ts +3 -0
- package/dist/utils/types.js +0 -0
- package/dist/utils/url.js +69 -77
- package/dist/{middleware/validator → validator}/rule.d.ts +0 -0
- package/dist/validator/rule.js +57 -0
- package/dist/{middleware/validator → validator}/sanitizer.d.ts +0 -0
- package/dist/validator/sanitizer.js +7 -0
- package/dist/validator/schema.d.ts +7 -0
- package/dist/validator/schema.js +0 -0
- package/dist/{middleware/validator → validator}/validator.d.ts +10 -7
- package/dist/validator/validator.js +406 -0
- package/package.json +14 -8
- package/dist/cjs/middleware/validator/rule.js +0 -66
- package/dist/cjs/middleware/validator/sanitizer.js +0 -6
- package/dist/cjs/middleware/validator/validator.js +0 -417
- package/dist/middleware/serve-static/module.d.mts +0 -3
- package/dist/middleware/serve-static/module.mjs +0 -13
- package/dist/middleware/validator/rule.js +0 -63
- package/dist/middleware/validator/sanitizer.js +0 -3
- package/dist/middleware/validator/validator.js +0 -403
|
@@ -1,32 +1,53 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
Object.defineProperty
|
|
3
|
-
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var cache_exports = {};
|
|
20
|
+
__export(cache_exports, {
|
|
21
|
+
cache: () => cache
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(cache_exports);
|
|
4
24
|
const cache = (options) => {
|
|
5
|
-
|
|
6
|
-
|
|
25
|
+
if (options.wait === void 0) {
|
|
26
|
+
options.wait = false;
|
|
27
|
+
}
|
|
28
|
+
const addHeader = (response) => {
|
|
29
|
+
if (options.cacheControl)
|
|
30
|
+
response.headers.append("Cache-Control", options.cacheControl);
|
|
31
|
+
};
|
|
32
|
+
return async (c, next) => {
|
|
33
|
+
const key = c.req;
|
|
34
|
+
const cache2 = await caches.open(options.cacheName);
|
|
35
|
+
const response = await cache2.match(key);
|
|
36
|
+
if (!response) {
|
|
37
|
+
await next();
|
|
38
|
+
addHeader(c.res);
|
|
39
|
+
const response2 = c.res.clone();
|
|
40
|
+
if (options.wait) {
|
|
41
|
+
await cache2.put(key, response2);
|
|
42
|
+
} else {
|
|
43
|
+
c.executionCtx.waitUntil(cache2.put(key, response2));
|
|
44
|
+
}
|
|
45
|
+
} else {
|
|
46
|
+
return response;
|
|
7
47
|
}
|
|
8
|
-
|
|
9
|
-
if (options.cacheControl)
|
|
10
|
-
response.headers.append('Cache-Control', options.cacheControl);
|
|
11
|
-
};
|
|
12
|
-
return async (c, next) => {
|
|
13
|
-
const key = c.req;
|
|
14
|
-
const cache = await caches.open(options.cacheName);
|
|
15
|
-
const response = await cache.match(key);
|
|
16
|
-
if (!response) {
|
|
17
|
-
await next();
|
|
18
|
-
addHeader(c.res);
|
|
19
|
-
const response = c.res.clone();
|
|
20
|
-
if (options.wait) {
|
|
21
|
-
await cache.put(key, response);
|
|
22
|
-
}
|
|
23
|
-
else {
|
|
24
|
-
c.executionCtx.waitUntil(cache.put(key, response));
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
else {
|
|
28
|
-
return response;
|
|
29
|
-
}
|
|
30
|
-
};
|
|
48
|
+
};
|
|
31
49
|
};
|
|
32
|
-
|
|
50
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
51
|
+
0 && (module.exports = {
|
|
52
|
+
cache
|
|
53
|
+
});
|
|
@@ -1,19 +1,42 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
Object.defineProperty
|
|
3
|
-
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var compress_exports = {};
|
|
20
|
+
__export(compress_exports, {
|
|
21
|
+
compress: () => compress
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(compress_exports);
|
|
4
24
|
const compress = (options) => {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
25
|
+
return async (ctx, next) => {
|
|
26
|
+
await next();
|
|
27
|
+
const accepted = ctx.req.headers.get("Accept-Encoding");
|
|
28
|
+
const pattern = options?.encoding ?? /gzip|deflate/;
|
|
29
|
+
const match = accepted?.match(pattern);
|
|
30
|
+
if (!accepted || !match || !ctx.res.body) {
|
|
31
|
+
return;
|
|
32
|
+
}
|
|
33
|
+
const encoding = match[0];
|
|
34
|
+
const stream = new CompressionStream(encoding);
|
|
35
|
+
ctx.res = new Response(ctx.res.body.pipeThrough(stream), ctx.res);
|
|
36
|
+
ctx.res.headers.set("Content-Encoding", encoding);
|
|
37
|
+
};
|
|
18
38
|
};
|
|
19
|
-
|
|
39
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
40
|
+
0 && (module.exports = {
|
|
41
|
+
compress
|
|
42
|
+
});
|
|
@@ -1,75 +1,93 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
Object.defineProperty
|
|
3
|
-
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var cors_exports = {};
|
|
20
|
+
__export(cors_exports, {
|
|
21
|
+
cors: () => cors
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(cors_exports);
|
|
4
24
|
const cors = (options) => {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
let headers = opts.allowHeaders;
|
|
55
|
-
if (!headers?.length) {
|
|
56
|
-
const requestHeaders = c.req.headers.get('Access-Control-Request-Headers');
|
|
57
|
-
if (requestHeaders) {
|
|
58
|
-
headers = requestHeaders.split(/\s*,\s*/);
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
if (headers?.length) {
|
|
62
|
-
set('Access-Control-Allow-Headers', headers.join(','));
|
|
63
|
-
set('Vary', 'Access-Control-Request-Headers');
|
|
64
|
-
}
|
|
65
|
-
c.res.headers.delete('Content-Length');
|
|
66
|
-
c.res.headers.delete('Content-Type');
|
|
67
|
-
c.res = new Response(null, {
|
|
68
|
-
headers: c.res.headers,
|
|
69
|
-
status: 204,
|
|
70
|
-
statusText: c.res.statusText,
|
|
71
|
-
});
|
|
25
|
+
const defaults = {
|
|
26
|
+
origin: "*",
|
|
27
|
+
allowMethods: ["GET", "HEAD", "PUT", "POST", "DELETE", "PATCH"],
|
|
28
|
+
allowHeaders: [],
|
|
29
|
+
exposeHeaders: []
|
|
30
|
+
};
|
|
31
|
+
const opts = {
|
|
32
|
+
...defaults,
|
|
33
|
+
...options
|
|
34
|
+
};
|
|
35
|
+
const findAllowOrigin = ((optsOrigin) => {
|
|
36
|
+
if (typeof optsOrigin === "string") {
|
|
37
|
+
return () => optsOrigin;
|
|
38
|
+
} else if (typeof optsOrigin === "function") {
|
|
39
|
+
return optsOrigin;
|
|
40
|
+
} else {
|
|
41
|
+
return (origin) => optsOrigin.includes(origin) ? origin : optsOrigin[0];
|
|
42
|
+
}
|
|
43
|
+
})(opts.origin);
|
|
44
|
+
return async (c, next) => {
|
|
45
|
+
await next();
|
|
46
|
+
function set(key, value) {
|
|
47
|
+
c.res.headers.append(key, value);
|
|
48
|
+
}
|
|
49
|
+
const allowOrigin = findAllowOrigin(c.req.headers.get("origin") || "");
|
|
50
|
+
if (allowOrigin) {
|
|
51
|
+
set("Access-Control-Allow-Origin", allowOrigin);
|
|
52
|
+
}
|
|
53
|
+
if (opts.origin !== "*") {
|
|
54
|
+
set("Vary", "Origin");
|
|
55
|
+
}
|
|
56
|
+
if (opts.credentials) {
|
|
57
|
+
set("Access-Control-Allow-Credentials", "true");
|
|
58
|
+
}
|
|
59
|
+
if (opts.exposeHeaders?.length) {
|
|
60
|
+
set("Access-Control-Expose-Headers", opts.exposeHeaders.join(","));
|
|
61
|
+
}
|
|
62
|
+
if (c.req.method === "OPTIONS") {
|
|
63
|
+
if (opts.maxAge != null) {
|
|
64
|
+
set("Access-Control-Max-Age", opts.maxAge.toString());
|
|
65
|
+
}
|
|
66
|
+
if (opts.allowMethods?.length) {
|
|
67
|
+
set("Access-Control-Allow-Methods", opts.allowMethods.join(","));
|
|
68
|
+
}
|
|
69
|
+
let headers = opts.allowHeaders;
|
|
70
|
+
if (!headers?.length) {
|
|
71
|
+
const requestHeaders = c.req.headers.get("Access-Control-Request-Headers");
|
|
72
|
+
if (requestHeaders) {
|
|
73
|
+
headers = requestHeaders.split(/\s*,\s*/);
|
|
72
74
|
}
|
|
73
|
-
|
|
75
|
+
}
|
|
76
|
+
if (headers?.length) {
|
|
77
|
+
set("Access-Control-Allow-Headers", headers.join(","));
|
|
78
|
+
set("Vary", "Access-Control-Request-Headers");
|
|
79
|
+
}
|
|
80
|
+
c.res.headers.delete("Content-Length");
|
|
81
|
+
c.res.headers.delete("Content-Type");
|
|
82
|
+
c.res = new Response(null, {
|
|
83
|
+
headers: c.res.headers,
|
|
84
|
+
status: 204,
|
|
85
|
+
statusText: c.res.statusText
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
};
|
|
74
89
|
};
|
|
75
|
-
|
|
90
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
91
|
+
0 && (module.exports = {
|
|
92
|
+
cors
|
|
93
|
+
});
|
|
@@ -1,27 +1,49 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
Object.defineProperty
|
|
3
|
-
|
|
4
|
-
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var etag_exports = {};
|
|
20
|
+
__export(etag_exports, {
|
|
21
|
+
etag: () => etag
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(etag_exports);
|
|
24
|
+
var import_crypto = require("../../utils/crypto");
|
|
5
25
|
const etag = (options = { weak: false }) => {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
};
|
|
26
|
+
return async (c, next) => {
|
|
27
|
+
const ifNoneMatch = c.req.header("If-None-Match") || c.req.header("if-none-match");
|
|
28
|
+
await next();
|
|
29
|
+
const res = c.res;
|
|
30
|
+
const clone = res.clone();
|
|
31
|
+
const hash = await (0, import_crypto.sha1)(res.body || "");
|
|
32
|
+
const etag2 = options.weak ? `W/"${hash}"` : `"${hash}"`;
|
|
33
|
+
if (ifNoneMatch && ifNoneMatch === etag2) {
|
|
34
|
+
await clone.blob();
|
|
35
|
+
c.res = new Response(null, {
|
|
36
|
+
status: 304,
|
|
37
|
+
statusText: "Not Modified"
|
|
38
|
+
});
|
|
39
|
+
c.res.headers.delete("Content-Length");
|
|
40
|
+
} else {
|
|
41
|
+
c.res = new Response(clone.body, clone);
|
|
42
|
+
c.res.headers.append("ETag", etag2);
|
|
43
|
+
}
|
|
44
|
+
};
|
|
26
45
|
};
|
|
27
|
-
|
|
46
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
47
|
+
0 && (module.exports = {
|
|
48
|
+
etag
|
|
49
|
+
});
|
|
@@ -1,36 +1,56 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
Object.defineProperty
|
|
3
|
-
|
|
4
|
-
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var html_exports = {};
|
|
20
|
+
__export(html_exports, {
|
|
21
|
+
html: () => html,
|
|
22
|
+
raw: () => raw
|
|
23
|
+
});
|
|
24
|
+
module.exports = __toCommonJS(html_exports);
|
|
25
|
+
var import_html = require("../../utils/html");
|
|
5
26
|
const raw = (value) => {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
27
|
+
const escapedString = new String(value);
|
|
28
|
+
escapedString.isEscaped = true;
|
|
29
|
+
return escapedString;
|
|
9
30
|
};
|
|
10
|
-
exports.raw = raw;
|
|
11
31
|
const html = (strings, ...values) => {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
}
|
|
28
|
-
else {
|
|
29
|
-
(0, html_1.escapeToBuffer)(child.toString(), buffer);
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
+
const buffer = [""];
|
|
33
|
+
for (let i = 0, len = strings.length - 1; i < len; i++) {
|
|
34
|
+
buffer[0] += strings[i];
|
|
35
|
+
const children = values[i] instanceof Array ? values[i].flat(Infinity) : [values[i]];
|
|
36
|
+
for (let i2 = 0, len2 = children.length; i2 < len2; i2++) {
|
|
37
|
+
const child = children[i2];
|
|
38
|
+
if (typeof child === "string") {
|
|
39
|
+
(0, import_html.escapeToBuffer)(child, buffer);
|
|
40
|
+
} else if (typeof child === "boolean" || child === null || child === void 0) {
|
|
41
|
+
continue;
|
|
42
|
+
} else if (typeof child === "object" && child.isEscaped || typeof child === "number") {
|
|
43
|
+
buffer[0] += child;
|
|
44
|
+
} else {
|
|
45
|
+
(0, import_html.escapeToBuffer)(child.toString(), buffer);
|
|
46
|
+
}
|
|
32
47
|
}
|
|
33
|
-
|
|
34
|
-
|
|
48
|
+
}
|
|
49
|
+
buffer[0] += strings[strings.length - 1];
|
|
50
|
+
return raw(buffer[0]);
|
|
35
51
|
};
|
|
36
|
-
|
|
52
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
53
|
+
0 && (module.exports = {
|
|
54
|
+
html,
|
|
55
|
+
raw
|
|
56
|
+
});
|