hono 2.3.2 → 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 +15 -1
- package/dist/cjs/utils/url.js +89 -78
- package/dist/cjs/validator/rule.js +78 -64
- package/dist/cjs/validator/sanitizer.js +28 -4
- package/dist/cjs/validator/schema.js +15 -1
- package/dist/cjs/validator/validator.js +405 -386
- package/dist/compose.d.ts +1 -1
- package/dist/compose.js +61 -64
- package/dist/context.d.ts +4 -4
- package/dist/context.js +139 -143
- package/dist/hono.d.ts +1 -17
- package/dist/hono.js +153 -149
- package/dist/index.d.ts +3 -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.mts → module.d.ts} +1 -1
- package/dist/middleware/serve-static/module.js +13 -0
- package/dist/middleware/serve-static/serve-static.d.ts +1 -1
- 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 +1 -1
- package/dist/middleware/validator/middleware.js +104 -89
- 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.js +0 -1
- package/dist/utils/url.js +69 -77
- package/dist/validator/rule.js +56 -62
- package/dist/validator/sanitizer.js +6 -2
- package/dist/validator/schema.js +0 -1
- package/dist/validator/validator.d.ts +5 -4
- package/dist/validator/validator.js +393 -393
- package/package.json +14 -8
- package/dist/middleware/serve-static/module.mjs +0 -13
package/dist/cjs/hono.js
CHANGED
|
@@ -1,165 +1,188 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
Object.defineProperty
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
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 hono_exports = {};
|
|
20
|
+
__export(hono_exports, {
|
|
21
|
+
Hono: () => Hono
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(hono_exports);
|
|
24
|
+
var import_compose = require("./compose");
|
|
25
|
+
var import_context = require("./context");
|
|
26
|
+
var import_request = require("./request");
|
|
27
|
+
var import_router = require("./router");
|
|
28
|
+
var import_reg_exp_router = require("./router/reg-exp-router");
|
|
29
|
+
var import_smart_router = require("./router/smart-router");
|
|
30
|
+
var import_static_router = require("./router/static-router");
|
|
31
|
+
var import_trie_router = require("./router/trie-router");
|
|
32
|
+
var import_url = require("./utils/url");
|
|
14
33
|
function defineDynamicClass() {
|
|
15
|
-
|
|
16
|
-
|
|
34
|
+
return class {
|
|
35
|
+
};
|
|
17
36
|
}
|
|
18
37
|
class Hono extends defineDynamicClass() {
|
|
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
|
-
this.addRoute(method, this.path, args1);
|
|
55
|
-
}
|
|
56
|
-
args.map((handler) => {
|
|
57
|
-
if (typeof handler !== 'string') {
|
|
58
|
-
this.addRoute(method, this.path, handler);
|
|
59
|
-
}
|
|
60
|
-
});
|
|
61
|
-
return this;
|
|
62
|
-
};
|
|
63
|
-
});
|
|
64
|
-
Object.assign(this, init);
|
|
65
|
-
}
|
|
66
|
-
route(path, app) {
|
|
67
|
-
this._tempPath = path;
|
|
68
|
-
if (app) {
|
|
69
|
-
app.routes.map((r) => {
|
|
70
|
-
this.addRoute(r.method, r.path, r.handler);
|
|
71
|
-
});
|
|
72
|
-
this._tempPath = '';
|
|
73
|
-
}
|
|
74
|
-
return this;
|
|
75
|
-
}
|
|
76
|
-
use(arg1, ...handlers) {
|
|
77
|
-
if (typeof arg1 === 'string') {
|
|
78
|
-
this.path = arg1;
|
|
79
|
-
}
|
|
80
|
-
else {
|
|
81
|
-
handlers.unshift(arg1);
|
|
38
|
+
constructor(init = {}) {
|
|
39
|
+
super();
|
|
40
|
+
this.router = new import_smart_router.SmartRouter({
|
|
41
|
+
routers: [new import_static_router.StaticRouter(), new import_reg_exp_router.RegExpRouter(), new import_trie_router.TrieRouter()]
|
|
42
|
+
});
|
|
43
|
+
this.strict = true;
|
|
44
|
+
this._tempPath = "";
|
|
45
|
+
this.path = "/";
|
|
46
|
+
this.routes = [];
|
|
47
|
+
this.notFoundHandler = (c) => {
|
|
48
|
+
return c.text("404 Not Found", 404);
|
|
49
|
+
};
|
|
50
|
+
this.errorHandler = (err, c) => {
|
|
51
|
+
console.trace(err.message);
|
|
52
|
+
const message = "Internal Server Error";
|
|
53
|
+
return c.text(message, 500);
|
|
54
|
+
};
|
|
55
|
+
this.handleEvent = (event) => {
|
|
56
|
+
return this.dispatch(event.request, event);
|
|
57
|
+
};
|
|
58
|
+
this.fetch = (request, Environment, executionCtx) => {
|
|
59
|
+
return this.dispatch(request, executionCtx, Environment);
|
|
60
|
+
};
|
|
61
|
+
this.request = async (input, requestInit) => {
|
|
62
|
+
const req = input instanceof Request ? input : new Request(input, requestInit);
|
|
63
|
+
return await this.fetch(req);
|
|
64
|
+
};
|
|
65
|
+
(0, import_request.extendRequestPrototype)();
|
|
66
|
+
const allMethods = [...import_router.METHODS, import_router.METHOD_NAME_ALL_LOWERCASE];
|
|
67
|
+
allMethods.map((method) => {
|
|
68
|
+
this[method] = (args1, ...args) => {
|
|
69
|
+
if (typeof args1 === "string") {
|
|
70
|
+
this.path = args1;
|
|
71
|
+
} else {
|
|
72
|
+
this.addRoute(method, this.path, args1);
|
|
82
73
|
}
|
|
83
|
-
|
|
84
|
-
|
|
74
|
+
args.map((handler) => {
|
|
75
|
+
if (typeof handler !== "string") {
|
|
76
|
+
this.addRoute(method, this.path, handler);
|
|
77
|
+
}
|
|
85
78
|
});
|
|
86
79
|
return this;
|
|
80
|
+
};
|
|
81
|
+
});
|
|
82
|
+
Object.assign(this, init);
|
|
83
|
+
}
|
|
84
|
+
route(path, app) {
|
|
85
|
+
this._tempPath = path;
|
|
86
|
+
if (app) {
|
|
87
|
+
app.routes.map((r) => {
|
|
88
|
+
this.addRoute(r.method, r.path, r.handler);
|
|
89
|
+
});
|
|
90
|
+
this._tempPath = "";
|
|
87
91
|
}
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
92
|
+
return this;
|
|
93
|
+
}
|
|
94
|
+
use(arg1, ...handlers) {
|
|
95
|
+
if (typeof arg1 === "string") {
|
|
96
|
+
this.path = arg1;
|
|
97
|
+
} else {
|
|
98
|
+
handlers.unshift(arg1);
|
|
95
99
|
}
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
100
|
+
handlers.map((handler) => {
|
|
101
|
+
this.addRoute(import_router.METHOD_NAME_ALL, this.path, handler);
|
|
102
|
+
});
|
|
103
|
+
return this;
|
|
104
|
+
}
|
|
105
|
+
onError(handler) {
|
|
106
|
+
this.errorHandler = handler;
|
|
107
|
+
return this;
|
|
108
|
+
}
|
|
109
|
+
notFound(handler) {
|
|
110
|
+
this.notFoundHandler = handler;
|
|
111
|
+
return this;
|
|
112
|
+
}
|
|
113
|
+
addRoute(method, path, handler) {
|
|
114
|
+
method = method.toUpperCase();
|
|
115
|
+
if (this._tempPath) {
|
|
116
|
+
path = (0, import_url.mergePath)(this._tempPath, path);
|
|
104
117
|
}
|
|
105
|
-
|
|
106
|
-
|
|
118
|
+
this.router.add(method, path, handler);
|
|
119
|
+
const r = { path, method, handler };
|
|
120
|
+
this.routes.push(r);
|
|
121
|
+
}
|
|
122
|
+
matchRoute(method, path) {
|
|
123
|
+
return this.router.match(method, path);
|
|
124
|
+
}
|
|
125
|
+
handleError(err, c) {
|
|
126
|
+
if (err instanceof Error) {
|
|
127
|
+
return this.errorHandler(err, c);
|
|
107
128
|
}
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
129
|
+
throw err;
|
|
130
|
+
}
|
|
131
|
+
dispatch(request, eventOrExecutionCtx, env) {
|
|
132
|
+
const path = (0, import_url.getPathFromURL)(request.url, this.strict);
|
|
133
|
+
const method = request.method;
|
|
134
|
+
const result = this.matchRoute(method, path);
|
|
135
|
+
request.paramData = result?.params;
|
|
136
|
+
const c = new import_context.HonoContext(request, env, eventOrExecutionCtx, this.notFoundHandler);
|
|
137
|
+
if (result && result.handlers.length === 1) {
|
|
138
|
+
const handler = result.handlers[0];
|
|
139
|
+
let res;
|
|
140
|
+
try {
|
|
141
|
+
res = handler(c, async () => {
|
|
142
|
+
});
|
|
143
|
+
if (!res)
|
|
144
|
+
return this.notFoundHandler(c);
|
|
145
|
+
} catch (err) {
|
|
146
|
+
return this.handleError(err, c);
|
|
147
|
+
}
|
|
148
|
+
if (res instanceof Response)
|
|
149
|
+
return res;
|
|
150
|
+
return (async () => {
|
|
151
|
+
let awaited;
|
|
152
|
+
try {
|
|
153
|
+
awaited = await res;
|
|
154
|
+
} catch (err) {
|
|
155
|
+
return this.handleError(err, c);
|
|
111
156
|
}
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
dispatch(request, eventOrExecutionCtx, env) {
|
|
115
|
-
const path = (0, url_1.getPathFromURL)(request.url, this.strict);
|
|
116
|
-
const method = request.method;
|
|
117
|
-
const result = this.matchRoute(method, path);
|
|
118
|
-
request.paramData = result?.params;
|
|
119
|
-
const c = new context_1.HonoContext(request, env, eventOrExecutionCtx, this.notFoundHandler);
|
|
120
|
-
// Do not `compose` if it has only one handler
|
|
121
|
-
if (result && result.handlers.length === 1) {
|
|
122
|
-
const handler = result.handlers[0];
|
|
123
|
-
let res;
|
|
124
|
-
try {
|
|
125
|
-
res = handler(c, async () => { });
|
|
126
|
-
if (!res)
|
|
127
|
-
return this.notFoundHandler(c);
|
|
128
|
-
}
|
|
129
|
-
catch (err) {
|
|
130
|
-
return this.handleError(err, c);
|
|
131
|
-
}
|
|
132
|
-
if (res instanceof Response)
|
|
133
|
-
return res;
|
|
134
|
-
return (async () => {
|
|
135
|
-
let awaited;
|
|
136
|
-
try {
|
|
137
|
-
awaited = await res;
|
|
138
|
-
}
|
|
139
|
-
catch (err) {
|
|
140
|
-
return this.handleError(err, c);
|
|
141
|
-
}
|
|
142
|
-
if (!awaited) {
|
|
143
|
-
return this.notFoundHandler(c);
|
|
144
|
-
}
|
|
145
|
-
return awaited;
|
|
146
|
-
})();
|
|
157
|
+
if (!awaited) {
|
|
158
|
+
return this.notFoundHandler(c);
|
|
147
159
|
}
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
return (async () => {
|
|
151
|
-
try {
|
|
152
|
-
const tmp = composed(c);
|
|
153
|
-
const context = tmp instanceof Promise ? await tmp : tmp;
|
|
154
|
-
if (!context.finalized) {
|
|
155
|
-
throw new Error('Context is not finalized. You may forget returning Response object or `await next()`');
|
|
156
|
-
}
|
|
157
|
-
return context.res;
|
|
158
|
-
}
|
|
159
|
-
catch (err) {
|
|
160
|
-
return this.handleError(err, c);
|
|
161
|
-
}
|
|
162
|
-
})();
|
|
160
|
+
return awaited;
|
|
161
|
+
})();
|
|
163
162
|
}
|
|
163
|
+
const handlers = result ? result.handlers : [this.notFoundHandler];
|
|
164
|
+
const composed = (0, import_compose.compose)(
|
|
165
|
+
handlers,
|
|
166
|
+
this.notFoundHandler,
|
|
167
|
+
this.errorHandler
|
|
168
|
+
);
|
|
169
|
+
return (async () => {
|
|
170
|
+
try {
|
|
171
|
+
const tmp = composed(c);
|
|
172
|
+
const context = tmp instanceof Promise ? await tmp : tmp;
|
|
173
|
+
if (!context.finalized) {
|
|
174
|
+
throw new Error(
|
|
175
|
+
"Context is not finalized. You may forget returning Response object or `await next()`"
|
|
176
|
+
);
|
|
177
|
+
}
|
|
178
|
+
return context.res;
|
|
179
|
+
} catch (err) {
|
|
180
|
+
return this.handleError(err, c);
|
|
181
|
+
}
|
|
182
|
+
})();
|
|
183
|
+
}
|
|
164
184
|
}
|
|
165
|
-
|
|
185
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
186
|
+
0 && (module.exports = {
|
|
187
|
+
Hono
|
|
188
|
+
});
|
package/dist/cjs/index.js
CHANGED
|
@@ -1,13 +1,33 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
hono_1.Hono.prototype.fire = function () {
|
|
10
|
-
addEventListener('fetch', (event) => {
|
|
11
|
-
void event.respondWith(this.handleEvent(event));
|
|
12
|
-
});
|
|
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 });
|
|
13
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 src_exports = {};
|
|
20
|
+
__export(src_exports, {
|
|
21
|
+
Hono: () => import_hono.Hono
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(src_exports);
|
|
24
|
+
var import_hono = require("./hono");
|
|
25
|
+
import_hono.Hono.prototype.fire = function() {
|
|
26
|
+
addEventListener("fetch", (event) => {
|
|
27
|
+
void event.respondWith(this.handleEvent(event));
|
|
28
|
+
});
|
|
29
|
+
};
|
|
30
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
31
|
+
0 && (module.exports = {
|
|
32
|
+
Hono
|
|
33
|
+
});
|
|
@@ -1,47 +1,78 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
Object.defineProperty
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
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 basic_auth_exports = {};
|
|
20
|
+
__export(basic_auth_exports, {
|
|
21
|
+
basicAuth: () => basicAuth
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(basic_auth_exports);
|
|
24
|
+
var import_buffer = require("../../utils/buffer");
|
|
25
|
+
var import_encode = require("../../utils/encode");
|
|
6
26
|
const CREDENTIALS_REGEXP = /^ *(?:[Bb][Aa][Ss][Ii][Cc]) +([A-Za-z0-9._~+/-]+=*) *$/;
|
|
7
27
|
const USER_PASS_REGEXP = /^([^:]*):(.*)$/;
|
|
8
28
|
const auth = (req) => {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
29
|
+
const match = CREDENTIALS_REGEXP.exec(req.headers.get("Authorization") || "");
|
|
30
|
+
if (!match) {
|
|
31
|
+
return void 0;
|
|
32
|
+
}
|
|
33
|
+
const userPass = USER_PASS_REGEXP.exec((0, import_encode.decodeBase64)(match[1]));
|
|
34
|
+
if (!userPass) {
|
|
35
|
+
return void 0;
|
|
36
|
+
}
|
|
37
|
+
return { username: userPass[1], password: userPass[2] };
|
|
18
38
|
};
|
|
19
39
|
const basicAuth = (options, ...users) => {
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
40
|
+
if (!options) {
|
|
41
|
+
throw new Error('basic auth middleware requires options for "username and password"');
|
|
42
|
+
}
|
|
43
|
+
if (!options.realm) {
|
|
44
|
+
options.realm = "Secure Area";
|
|
45
|
+
}
|
|
46
|
+
users.unshift({ username: options.username, password: options.password });
|
|
47
|
+
return async (ctx, next) => {
|
|
48
|
+
const requestUser = auth(ctx.req);
|
|
49
|
+
if (requestUser) {
|
|
50
|
+
for (const user of users) {
|
|
51
|
+
const usernameEqual = await (0, import_buffer.timingSafeEqual)(
|
|
52
|
+
user.username,
|
|
53
|
+
requestUser.username,
|
|
54
|
+
options.hashFunction
|
|
55
|
+
);
|
|
56
|
+
const passwordEqual = await (0, import_buffer.timingSafeEqual)(
|
|
57
|
+
user.password,
|
|
58
|
+
requestUser.password,
|
|
59
|
+
options.hashFunction
|
|
60
|
+
);
|
|
61
|
+
if (usernameEqual && passwordEqual) {
|
|
62
|
+
await next();
|
|
63
|
+
return;
|
|
38
64
|
}
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
return new Response("Unauthorized", {
|
|
68
|
+
status: 401,
|
|
69
|
+
headers: {
|
|
70
|
+
"WWW-Authenticate": 'Basic realm="' + options.realm?.replace(/"/g, '\\"') + '"'
|
|
71
|
+
}
|
|
72
|
+
});
|
|
73
|
+
};
|
|
46
74
|
};
|
|
47
|
-
|
|
75
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
76
|
+
0 && (module.exports = {
|
|
77
|
+
basicAuth
|
|
78
|
+
});
|
|
@@ -1,57 +1,75 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
Object.defineProperty
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
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 bearer_auth_exports = {};
|
|
20
|
+
__export(bearer_auth_exports, {
|
|
21
|
+
bearerAuth: () => bearerAuth
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(bearer_auth_exports);
|
|
24
|
+
var import_buffer = require("../../utils/buffer");
|
|
25
|
+
const TOKEN_STRINGS = "[A-Za-z0-9._~+/-]+=*";
|
|
26
|
+
const PREFIX = "Bearer";
|
|
7
27
|
const bearerAuth = (options) => {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
'WWW-Authenticate': `${options.prefix} realm="` + realm + '"',
|
|
26
|
-
},
|
|
27
|
-
});
|
|
28
|
+
if (!options.token) {
|
|
29
|
+
throw new Error('bearer auth middleware requires options for "token"');
|
|
30
|
+
}
|
|
31
|
+
if (!options.realm) {
|
|
32
|
+
options.realm = "";
|
|
33
|
+
}
|
|
34
|
+
if (!options.prefix) {
|
|
35
|
+
options.prefix = PREFIX;
|
|
36
|
+
}
|
|
37
|
+
const realm = options.realm?.replace(/"/g, '\\"');
|
|
38
|
+
return async (c, next) => {
|
|
39
|
+
const headerToken = c.req.headers.get("Authorization");
|
|
40
|
+
if (!headerToken) {
|
|
41
|
+
return new Response("Unauthorized", {
|
|
42
|
+
status: 401,
|
|
43
|
+
headers: {
|
|
44
|
+
"WWW-Authenticate": `${options.prefix} realm="` + realm + '"'
|
|
28
45
|
}
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
headers: {
|
|
48
|
-
'WWW-Authenticate': `${options.prefix} error="invalid_token"`,
|
|
49
|
-
},
|
|
50
|
-
});
|
|
51
|
-
}
|
|
46
|
+
});
|
|
47
|
+
} else {
|
|
48
|
+
const regexp = new RegExp("^" + options.prefix + " +(" + TOKEN_STRINGS + ") *$");
|
|
49
|
+
const match = regexp.exec(headerToken);
|
|
50
|
+
if (!match) {
|
|
51
|
+
return new Response("Bad Request", {
|
|
52
|
+
status: 400,
|
|
53
|
+
headers: {
|
|
54
|
+
"WWW-Authenticate": `${options.prefix} error="invalid_request"`
|
|
55
|
+
}
|
|
56
|
+
});
|
|
57
|
+
} else {
|
|
58
|
+
const equal = await (0, import_buffer.timingSafeEqual)(options.token, match[1], options.hashFunction);
|
|
59
|
+
if (!equal) {
|
|
60
|
+
return new Response("Unauthorized", {
|
|
61
|
+
status: 401,
|
|
62
|
+
headers: {
|
|
63
|
+
"WWW-Authenticate": `${options.prefix} error="invalid_token"`
|
|
52
64
|
}
|
|
65
|
+
});
|
|
53
66
|
}
|
|
54
|
-
|
|
55
|
-
}
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
await next();
|
|
70
|
+
};
|
|
56
71
|
};
|
|
57
|
-
|
|
72
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
73
|
+
0 && (module.exports = {
|
|
74
|
+
bearerAuth
|
|
75
|
+
});
|