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,50 +1,73 @@
|
|
|
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 http_status_exports = {};
|
|
20
|
+
__export(http_status_exports, {
|
|
21
|
+
getStatusText: () => getStatusText
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(http_status_exports);
|
|
4
24
|
const getStatusText = (statusCode) => {
|
|
5
|
-
|
|
6
|
-
|
|
25
|
+
const text = statuses[statusCode];
|
|
26
|
+
return text;
|
|
7
27
|
};
|
|
8
|
-
exports.getStatusText = getStatusText;
|
|
9
28
|
const statuses = {
|
|
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
|
-
|
|
29
|
+
100: "Continue",
|
|
30
|
+
101: "Switching Protocols",
|
|
31
|
+
102: "Processing",
|
|
32
|
+
103: "Early Hints",
|
|
33
|
+
200: "OK",
|
|
34
|
+
201: "Created",
|
|
35
|
+
202: "Accepted",
|
|
36
|
+
204: "No Content",
|
|
37
|
+
206: "Partial Content",
|
|
38
|
+
301: "Moved Permanently",
|
|
39
|
+
302: "Moved Temporarily",
|
|
40
|
+
303: "See Other",
|
|
41
|
+
304: "Not Modified",
|
|
42
|
+
307: "Temporary Redirect",
|
|
43
|
+
308: "Permanent Redirect",
|
|
44
|
+
400: "Bad Request",
|
|
45
|
+
401: "Unauthorized",
|
|
46
|
+
402: "Payment Required",
|
|
47
|
+
403: "Forbidden",
|
|
48
|
+
404: "Not Found",
|
|
49
|
+
405: "Not Allowed",
|
|
50
|
+
406: "Not Acceptable",
|
|
51
|
+
408: "Request Time-out",
|
|
52
|
+
409: "Conflict",
|
|
53
|
+
410: "Gone",
|
|
54
|
+
411: "Length Required",
|
|
55
|
+
412: "Precondition Failed",
|
|
56
|
+
413: "Request Entity Too Large",
|
|
57
|
+
414: "Request-URI Too Large",
|
|
58
|
+
415: "Unsupported Media Type",
|
|
59
|
+
416: "Requested Range Not Satisfiable",
|
|
60
|
+
421: "Misdirected Request",
|
|
61
|
+
429: "Too Many Requests",
|
|
62
|
+
500: "Internal Server Error",
|
|
63
|
+
501: "Not Implemented",
|
|
64
|
+
502: "Bad Gateway",
|
|
65
|
+
503: "Service Temporarily Unavailable",
|
|
66
|
+
504: "Gateway Time-out",
|
|
67
|
+
505: "HTTP Version Not Supported",
|
|
68
|
+
507: "Insufficient Storage"
|
|
50
69
|
};
|
|
70
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
71
|
+
0 && (module.exports = {
|
|
72
|
+
getStatusText
|
|
73
|
+
});
|
package/dist/cjs/utils/json.js
CHANGED
|
@@ -1,87 +1,102 @@
|
|
|
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 json_exports = {};
|
|
20
|
+
__export(json_exports, {
|
|
21
|
+
JSONPathCopy: () => JSONPathCopy
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(json_exports);
|
|
4
24
|
const JSONPathCopyInternal = (src, dst, parts, results) => {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
else {
|
|
29
|
-
const res = [];
|
|
30
|
-
for (let i2 = 0; i2 < restLength; i2++) {
|
|
31
|
-
if (typeof srcVal[i2] !== 'object' || srcVal[i2] === undefined) {
|
|
32
|
-
res.push(srcVal[i2]);
|
|
33
|
-
}
|
|
34
|
-
else {
|
|
35
|
-
const srcVal2 = srcVal[i2];
|
|
36
|
-
const dst2 = {};
|
|
37
|
-
const res2 = JSONPathCopyInternal(srcVal2, dst2, restParts, results);
|
|
38
|
-
if (res2 === undefined)
|
|
39
|
-
results.push(undefined);
|
|
40
|
-
dstVal[i2] = dst2;
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
if (res.length) {
|
|
44
|
-
Object.assign(dstVal, srcVal);
|
|
45
|
-
results.push(...res);
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
return results;
|
|
49
|
-
}
|
|
50
|
-
if (typeof srcVal[p] === 'object') {
|
|
51
|
-
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
52
|
-
// @ts-ignore
|
|
53
|
-
dstVal[p] || (dstVal[p] = new srcVal[p].constructor());
|
|
25
|
+
let srcVal = src;
|
|
26
|
+
let dstVal = dst;
|
|
27
|
+
const length = parts.length;
|
|
28
|
+
for (let i = 0; i < length && srcVal !== void 0 && dstVal; i++) {
|
|
29
|
+
const p = parts[i];
|
|
30
|
+
if (typeof srcVal !== "object") {
|
|
31
|
+
return srcVal;
|
|
32
|
+
}
|
|
33
|
+
if (srcVal === null) {
|
|
34
|
+
return void 0;
|
|
35
|
+
}
|
|
36
|
+
if (p === "*") {
|
|
37
|
+
const restParts = parts.slice(i + 1);
|
|
38
|
+
const restLength = srcVal.length;
|
|
39
|
+
if (restLength === void 0) {
|
|
40
|
+
parts = Object.keys(srcVal);
|
|
41
|
+
for (const p2 of parts) {
|
|
42
|
+
const srcVal2 = srcVal;
|
|
43
|
+
const dst2 = {};
|
|
44
|
+
JSONPathCopyInternal(srcVal2, dst2, [p2], results);
|
|
45
|
+
dstVal[p2] = dst2[p2];
|
|
54
46
|
}
|
|
55
|
-
|
|
56
|
-
|
|
47
|
+
} else {
|
|
48
|
+
const res = [];
|
|
49
|
+
for (let i2 = 0; i2 < restLength; i2++) {
|
|
50
|
+
if (typeof srcVal[i2] !== "object" || srcVal[i2] === void 0) {
|
|
51
|
+
res.push(srcVal[i2]);
|
|
52
|
+
} else {
|
|
53
|
+
const srcVal2 = srcVal[i2];
|
|
54
|
+
const dst2 = {};
|
|
55
|
+
const res2 = JSONPathCopyInternal(srcVal2, dst2, restParts, results);
|
|
56
|
+
if (res2 === void 0)
|
|
57
|
+
results.push(void 0);
|
|
58
|
+
dstVal[i2] = dst2;
|
|
59
|
+
}
|
|
57
60
|
}
|
|
58
|
-
|
|
59
|
-
|
|
61
|
+
if (res.length) {
|
|
62
|
+
Object.assign(dstVal, srcVal);
|
|
63
|
+
results.push(...res);
|
|
60
64
|
}
|
|
61
|
-
|
|
62
|
-
|
|
65
|
+
}
|
|
66
|
+
return results;
|
|
63
67
|
}
|
|
64
|
-
if (typeof srcVal ===
|
|
65
|
-
|
|
68
|
+
if (typeof srcVal[p] === "object") {
|
|
69
|
+
dstVal[p] || (dstVal[p] = new srcVal[p].constructor());
|
|
70
|
+
} else if (typeof srcVal[p] !== "undefined") {
|
|
71
|
+
dstVal[p] = srcVal[p];
|
|
72
|
+
} else {
|
|
73
|
+
return void 0;
|
|
66
74
|
}
|
|
67
|
-
|
|
68
|
-
|
|
75
|
+
srcVal = srcVal[p];
|
|
76
|
+
dstVal = dstVal[p];
|
|
77
|
+
}
|
|
78
|
+
if (typeof srcVal === "object" && dstVal) {
|
|
79
|
+
Object.assign(dstVal, srcVal);
|
|
80
|
+
}
|
|
81
|
+
results.push(srcVal);
|
|
82
|
+
return results;
|
|
69
83
|
};
|
|
70
84
|
const JSONPathCopy = (src, dst, path) => {
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
return results[0];
|
|
80
|
-
}
|
|
81
|
-
return results;
|
|
82
|
-
}
|
|
83
|
-
catch (e) {
|
|
84
|
-
return undefined;
|
|
85
|
+
const results = [];
|
|
86
|
+
const parts = path.replace(/\.?\[(.*?)\]/g, ".$1").split(/\./);
|
|
87
|
+
try {
|
|
88
|
+
JSONPathCopyInternal(src, dst, parts, results);
|
|
89
|
+
if (results.length === 0) {
|
|
90
|
+
return void 0;
|
|
91
|
+
} else if (results.length === 1 && !parts.includes("*")) {
|
|
92
|
+
return results[0];
|
|
85
93
|
}
|
|
94
|
+
return results;
|
|
95
|
+
} catch (e) {
|
|
96
|
+
return void 0;
|
|
97
|
+
}
|
|
86
98
|
};
|
|
87
|
-
|
|
99
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
100
|
+
0 && (module.exports = {
|
|
101
|
+
JSONPathCopy
|
|
102
|
+
});
|
|
@@ -1,27 +1,34 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
if (mod && mod.__esModule) return mod;
|
|
20
|
-
var result = {};
|
|
21
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
-
__setModuleDefault(result, mod);
|
|
23
|
-
return result;
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __export = (target, all) => {
|
|
9
|
+
for (var name in all)
|
|
10
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
+
};
|
|
12
|
+
var __copyProps = (to, from, except, desc) => {
|
|
13
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
+
for (let key of __getOwnPropNames(from))
|
|
15
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
+
}
|
|
18
|
+
return to;
|
|
24
19
|
};
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
20
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
22
|
+
mod
|
|
23
|
+
));
|
|
24
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
25
|
+
var jwt_exports = {};
|
|
26
|
+
__export(jwt_exports, {
|
|
27
|
+
Jwt: () => Jwt
|
|
28
|
+
});
|
|
29
|
+
module.exports = __toCommonJS(jwt_exports);
|
|
30
|
+
var Jwt = __toESM(require("./jwt"), 1);
|
|
31
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
32
|
+
0 && (module.exports = {
|
|
33
|
+
Jwt
|
|
34
|
+
});
|
|
@@ -1,101 +1,132 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
Object.defineProperty
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
var
|
|
8
|
-
(
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
})
|
|
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 jwt_exports = {};
|
|
20
|
+
__export(jwt_exports, {
|
|
21
|
+
decode: () => decode,
|
|
22
|
+
sign: () => sign,
|
|
23
|
+
verify: () => verify
|
|
24
|
+
});
|
|
25
|
+
module.exports = __toCommonJS(jwt_exports);
|
|
26
|
+
var import_encode = require("../../utils/encode");
|
|
27
|
+
var import_types = require("./types");
|
|
28
|
+
var import_types2 = require("./types");
|
|
29
|
+
var CryptoKeyFormat = /* @__PURE__ */ ((CryptoKeyFormat2) => {
|
|
30
|
+
CryptoKeyFormat2["RAW"] = "raw";
|
|
31
|
+
CryptoKeyFormat2["PKCS8"] = "pkcs8";
|
|
32
|
+
CryptoKeyFormat2["SPKI"] = "spki";
|
|
33
|
+
CryptoKeyFormat2["JWK"] = "jwk";
|
|
34
|
+
return CryptoKeyFormat2;
|
|
35
|
+
})(CryptoKeyFormat || {});
|
|
36
|
+
var CryptoKeyUsage = /* @__PURE__ */ ((CryptoKeyUsage2) => {
|
|
37
|
+
CryptoKeyUsage2["Ecrypt"] = "encrypt";
|
|
38
|
+
CryptoKeyUsage2["Decrypt"] = "decrypt";
|
|
39
|
+
CryptoKeyUsage2["Sign"] = "sign";
|
|
40
|
+
CryptoKeyUsage2["Verify"] = "verify";
|
|
41
|
+
CryptoKeyUsage2["Deriverkey"] = "deriveKey";
|
|
42
|
+
CryptoKeyUsage2["DeriveBits"] = "deriveBits";
|
|
43
|
+
CryptoKeyUsage2["WrapKey"] = "wrapKey";
|
|
44
|
+
CryptoKeyUsage2["UnwrapKey"] = "unwrapKey";
|
|
45
|
+
return CryptoKeyUsage2;
|
|
46
|
+
})(CryptoKeyUsage || {});
|
|
25
47
|
const param = (name) => {
|
|
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
|
-
|
|
48
|
+
switch (name.toUpperCase()) {
|
|
49
|
+
case "HS256":
|
|
50
|
+
return {
|
|
51
|
+
name: "HMAC",
|
|
52
|
+
hash: {
|
|
53
|
+
name: "SHA-256"
|
|
54
|
+
}
|
|
55
|
+
};
|
|
56
|
+
case "HS384":
|
|
57
|
+
return {
|
|
58
|
+
name: "HMAC",
|
|
59
|
+
hash: {
|
|
60
|
+
name: "SHA-384"
|
|
61
|
+
}
|
|
62
|
+
};
|
|
63
|
+
case "HS512":
|
|
64
|
+
return {
|
|
65
|
+
name: "HMAC",
|
|
66
|
+
hash: {
|
|
67
|
+
name: "SHA-512"
|
|
68
|
+
}
|
|
69
|
+
};
|
|
70
|
+
default:
|
|
71
|
+
throw new import_types2.JwtAlgorithmNotImplemented(name);
|
|
72
|
+
}
|
|
51
73
|
};
|
|
52
|
-
const signing = async (data, secret, alg =
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
74
|
+
const signing = async (data, secret, alg = import_types.AlgorithmTypes.HS256) => {
|
|
75
|
+
if (!crypto.subtle || !crypto.subtle.importKey) {
|
|
76
|
+
throw new Error("`crypto.subtle.importKey` is undefined. JWT auth middleware requires it.");
|
|
77
|
+
}
|
|
78
|
+
const cryptoKey = await crypto.subtle.importKey(
|
|
79
|
+
"raw" /* RAW */,
|
|
80
|
+
(0, import_encode.utf8ToUint8Array)(secret),
|
|
81
|
+
param(alg),
|
|
82
|
+
false,
|
|
83
|
+
["sign" /* Sign */]
|
|
84
|
+
);
|
|
85
|
+
return await crypto.subtle.sign(param(alg), cryptoKey, (0, import_encode.utf8ToUint8Array)(data));
|
|
58
86
|
};
|
|
59
|
-
const sign = async (payload, secret, alg =
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
87
|
+
const sign = async (payload, secret, alg = import_types.AlgorithmTypes.HS256) => {
|
|
88
|
+
const encodedPayload = await (0, import_encode.encodeBase64URL)(JSON.stringify(payload));
|
|
89
|
+
const encodedHeader = await (0, import_encode.encodeBase64URL)(JSON.stringify({ alg, typ: "JWT" }));
|
|
90
|
+
const partialToken = `${encodedHeader}.${encodedPayload}`;
|
|
91
|
+
const signature = await (0, import_encode.arrayBufferToBase64URL)(await signing(partialToken, secret, alg));
|
|
92
|
+
return `${partialToken}.${signature}`;
|
|
65
93
|
};
|
|
66
|
-
|
|
67
|
-
const
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
94
|
+
const verify = async (token, secret, alg = import_types.AlgorithmTypes.HS256) => {
|
|
95
|
+
const tokenParts = token.split(".");
|
|
96
|
+
if (tokenParts.length !== 3) {
|
|
97
|
+
throw new import_types2.JwtTokenInvalid(token);
|
|
98
|
+
}
|
|
99
|
+
const { payload } = decode(token);
|
|
100
|
+
if (payload.nbf && payload.nbf > Math.floor(Date.now() / 1e3)) {
|
|
101
|
+
throw new import_types2.JwtTokenNotBefore(token);
|
|
102
|
+
}
|
|
103
|
+
if (payload.exp && payload.exp <= Math.floor(Date.now() / 1e3)) {
|
|
104
|
+
throw new import_types2.JwtTokenExpired(token);
|
|
105
|
+
}
|
|
106
|
+
const signature = await (0, import_encode.arrayBufferToBase64URL)(
|
|
107
|
+
await signing(tokenParts.slice(0, 2).join("."), secret, alg)
|
|
108
|
+
);
|
|
109
|
+
if (signature !== tokenParts[2]) {
|
|
110
|
+
throw new import_types2.JwtTokenSignatureMismatched(token);
|
|
111
|
+
}
|
|
112
|
+
return true;
|
|
84
113
|
};
|
|
85
|
-
exports.verify = verify;
|
|
86
|
-
// eslint-disable-next-line
|
|
87
114
|
const decode = (token) => {
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
}
|
|
115
|
+
try {
|
|
116
|
+
const [h, p] = token.split(".");
|
|
117
|
+
const header = JSON.parse((0, import_encode.decodeBase64URL)(h));
|
|
118
|
+
const payload = JSON.parse((0, import_encode.decodeBase64URL)(p));
|
|
119
|
+
return {
|
|
120
|
+
header,
|
|
121
|
+
payload
|
|
122
|
+
};
|
|
123
|
+
} catch (e) {
|
|
124
|
+
throw new import_types2.JwtTokenInvalid(token);
|
|
125
|
+
}
|
|
100
126
|
};
|
|
101
|
-
|
|
127
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
128
|
+
0 && (module.exports = {
|
|
129
|
+
decode,
|
|
130
|
+
sign,
|
|
131
|
+
verify
|
|
132
|
+
});
|