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.
Files changed (141) hide show
  1. package/dist/cjs/compose.js +82 -66
  2. package/dist/cjs/context.js +159 -144
  3. package/dist/cjs/hono.js +173 -150
  4. package/dist/cjs/index.js +31 -11
  5. package/dist/cjs/middleware/basic-auth/index.js +70 -39
  6. package/dist/cjs/middleware/bearer-auth/index.js +69 -51
  7. package/dist/cjs/middleware/cache/index.js +49 -28
  8. package/dist/cjs/middleware/compress/index.js +39 -16
  9. package/dist/cjs/middleware/cors/index.js +89 -71
  10. package/dist/cjs/middleware/etag/index.js +46 -24
  11. package/dist/cjs/middleware/html/index.js +50 -30
  12. package/dist/cjs/middleware/jsx/index.js +178 -166
  13. package/dist/cjs/middleware/jsx/jsx-dev-runtime.js +30 -7
  14. package/dist/cjs/middleware/jsx/jsx-runtime.js +30 -6
  15. package/dist/cjs/middleware/jwt/index.js +74 -54
  16. package/dist/cjs/middleware/logger/index.js +59 -38
  17. package/dist/cjs/middleware/powered-by/index.js +30 -7
  18. package/dist/cjs/middleware/pretty-json/index.js +31 -8
  19. package/dist/cjs/middleware/serve-static/bun.js +56 -38
  20. package/dist/cjs/middleware/serve-static/index.js +27 -4
  21. package/dist/cjs/middleware/serve-static/module.js +42 -0
  22. package/dist/cjs/middleware/serve-static/serve-static.js +58 -39
  23. package/dist/cjs/middleware/validator/index.js +27 -4
  24. package/dist/cjs/middleware/validator/middleware.js +125 -91
  25. package/dist/cjs/package.json +3 -0
  26. package/dist/cjs/request.js +129 -116
  27. package/dist/cjs/router/reg-exp-router/index.js +27 -4
  28. package/dist/cjs/router/reg-exp-router/node.js +108 -97
  29. package/dist/cjs/router/reg-exp-router/router.js +158 -141
  30. package/dist/cjs/router/reg-exp-router/trie.js +55 -39
  31. package/dist/cjs/router/smart-router/index.js +27 -4
  32. package/dist/cjs/router/smart-router/router.js +70 -49
  33. package/dist/cjs/router/static-router/index.js +27 -4
  34. package/dist/cjs/router/static-router/router.js +78 -64
  35. package/dist/cjs/router/trie-router/index.js +27 -4
  36. package/dist/cjs/router/trie-router/node.js +167 -159
  37. package/dist/cjs/router/trie-router/router.js +43 -20
  38. package/dist/cjs/router.js +35 -6
  39. package/dist/cjs/types.js +16 -0
  40. package/dist/cjs/utils/body.js +36 -15
  41. package/dist/cjs/utils/buffer.js +56 -31
  42. package/dist/cjs/utils/cloudflare.js +53 -34
  43. package/dist/cjs/utils/cookie.js +59 -35
  44. package/dist/cjs/utils/crypto.js +69 -43
  45. package/dist/cjs/utils/encode.js +92 -65
  46. package/dist/cjs/utils/filepath.js +39 -22
  47. package/dist/cjs/utils/html.js +54 -33
  48. package/dist/cjs/utils/http-status.js +68 -45
  49. package/dist/cjs/utils/json.js +91 -76
  50. package/dist/cjs/utils/jwt/index.js +32 -25
  51. package/dist/cjs/utils/jwt/jwt.js +124 -93
  52. package/dist/cjs/utils/jwt/types.js +65 -38
  53. package/dist/cjs/utils/mime.js +110 -87
  54. package/dist/cjs/utils/object.js +53 -35
  55. package/dist/cjs/utils/types.js +15 -1
  56. package/dist/cjs/utils/url.js +89 -78
  57. package/dist/cjs/validator/rule.js +78 -64
  58. package/dist/cjs/validator/sanitizer.js +28 -4
  59. package/dist/cjs/validator/schema.js +15 -1
  60. package/dist/cjs/validator/validator.js +405 -386
  61. package/dist/compose.d.ts +1 -1
  62. package/dist/compose.js +61 -64
  63. package/dist/context.d.ts +4 -4
  64. package/dist/context.js +139 -143
  65. package/dist/hono.d.ts +1 -17
  66. package/dist/hono.js +153 -149
  67. package/dist/index.d.ts +3 -1
  68. package/dist/index.js +9 -9
  69. package/dist/middleware/basic-auth/index.d.ts +1 -1
  70. package/dist/middleware/basic-auth/index.js +52 -40
  71. package/dist/middleware/bearer-auth/index.d.ts +1 -1
  72. package/dist/middleware/bearer-auth/index.js +48 -49
  73. package/dist/middleware/cache/index.d.ts +1 -1
  74. package/dist/middleware/cache/index.js +28 -26
  75. package/dist/middleware/compress/index.d.ts +1 -1
  76. package/dist/middleware/compress/index.js +18 -14
  77. package/dist/middleware/cors/index.d.ts +1 -1
  78. package/dist/middleware/cors/index.js +68 -69
  79. package/dist/middleware/etag/index.d.ts +1 -1
  80. package/dist/middleware/etag/index.js +25 -22
  81. package/dist/middleware/html/index.js +29 -28
  82. package/dist/middleware/jsx/index.js +164 -172
  83. package/dist/middleware/jsx/jsx-dev-runtime.js +9 -5
  84. package/dist/middleware/jsx/jsx-runtime.js +7 -2
  85. package/dist/middleware/jwt/index.d.ts +1 -1
  86. package/dist/middleware/jwt/index.js +53 -52
  87. package/dist/middleware/logger/index.d.ts +1 -1
  88. package/dist/middleware/logger/index.js +35 -39
  89. package/dist/middleware/powered-by/index.d.ts +1 -1
  90. package/dist/middleware/powered-by/index.js +9 -5
  91. package/dist/middleware/pretty-json/index.d.ts +1 -1
  92. package/dist/middleware/pretty-json/index.js +10 -6
  93. package/dist/middleware/serve-static/bun.d.ts +1 -1
  94. package/dist/middleware/serve-static/bun.js +35 -36
  95. package/dist/middleware/serve-static/index.js +5 -1
  96. package/dist/middleware/serve-static/{module.d.mts → module.d.ts} +1 -1
  97. package/dist/middleware/serve-static/module.js +13 -0
  98. package/dist/middleware/serve-static/serve-static.d.ts +1 -1
  99. package/dist/middleware/serve-static/serve-static.js +36 -36
  100. package/dist/middleware/validator/index.js +5 -2
  101. package/dist/middleware/validator/middleware.d.ts +1 -1
  102. package/dist/middleware/validator/middleware.js +104 -89
  103. package/dist/request.js +108 -114
  104. package/dist/router/reg-exp-router/index.js +5 -1
  105. package/dist/router/reg-exp-router/node.js +87 -96
  106. package/dist/router/reg-exp-router/router.js +140 -142
  107. package/dist/router/reg-exp-router/trie.js +35 -38
  108. package/dist/router/smart-router/index.js +5 -1
  109. package/dist/router/smart-router/router.js +50 -48
  110. package/dist/router/static-router/index.js +5 -1
  111. package/dist/router/static-router/router.js +58 -63
  112. package/dist/router/trie-router/index.js +5 -1
  113. package/dist/router/trie-router/node.js +147 -158
  114. package/dist/router/trie-router/router.js +23 -19
  115. package/dist/router.js +12 -5
  116. package/dist/types.d.ts +22 -0
  117. package/dist/types.js +0 -0
  118. package/dist/utils/body.js +15 -13
  119. package/dist/utils/buffer.js +35 -29
  120. package/dist/utils/cloudflare.js +32 -32
  121. package/dist/utils/cookie.js +38 -33
  122. package/dist/utils/crypto.js +48 -41
  123. package/dist/utils/encode.js +70 -62
  124. package/dist/utils/filepath.js +18 -20
  125. package/dist/utils/html.js +34 -32
  126. package/dist/utils/http-status.js +48 -44
  127. package/dist/utils/json.js +71 -75
  128. package/dist/utils/jwt/index.js +5 -1
  129. package/dist/utils/jwt/jwt.js +95 -90
  130. package/dist/utils/jwt/types.js +47 -41
  131. package/dist/utils/mime.js +90 -86
  132. package/dist/utils/object.js +31 -32
  133. package/dist/utils/types.js +0 -1
  134. package/dist/utils/url.js +69 -77
  135. package/dist/validator/rule.js +56 -62
  136. package/dist/validator/sanitizer.js +6 -2
  137. package/dist/validator/schema.js +0 -1
  138. package/dist/validator/validator.d.ts +5 -4
  139. package/dist/validator/validator.js +393 -393
  140. package/package.json +14 -8
  141. 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(exports, "__esModule", { value: true });
3
- exports.Hono = void 0;
4
- const compose_1 = require("./compose");
5
- const context_1 = require("./context");
6
- const request_1 = require("./request");
7
- const router_1 = require("./router");
8
- const router_2 = require("./router");
9
- const reg_exp_router_1 = require("./router/reg-exp-router");
10
- const smart_router_1 = require("./router/smart-router");
11
- const static_router_1 = require("./router/static-router");
12
- const trie_router_1 = require("./router/trie-router");
13
- const url_1 = require("./utils/url");
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
- return class {
16
- };
34
+ return class {
35
+ };
17
36
  }
18
37
  class Hono extends defineDynamicClass() {
19
- constructor(init = {}) {
20
- super();
21
- this.router = new smart_router_1.SmartRouter({
22
- routers: [new static_router_1.StaticRouter(), new reg_exp_router_1.RegExpRouter(), new trie_router_1.TrieRouter()],
23
- });
24
- this.strict = true; // strict routing - default is true
25
- this._tempPath = '';
26
- this.path = '/';
27
- this.routes = [];
28
- this.notFoundHandler = (c) => {
29
- return c.text('404 Not Found', 404);
30
- };
31
- this.errorHandler = (err, c) => {
32
- console.trace(err.message);
33
- const message = 'Internal Server Error';
34
- return c.text(message, 500);
35
- };
36
- this.handleEvent = (event) => {
37
- return this.dispatch(event.request, event);
38
- };
39
- this.fetch = (request, Environment, executionCtx) => {
40
- return this.dispatch(request, executionCtx, Environment);
41
- };
42
- this.request = async (input, requestInit) => {
43
- const req = input instanceof Request ? input : new Request(input, requestInit);
44
- return await this.fetch(req);
45
- };
46
- (0, request_1.extendRequestPrototype)();
47
- const allMethods = [...router_1.METHODS, router_2.METHOD_NAME_ALL_LOWERCASE];
48
- allMethods.map((method) => {
49
- this[method] = (args1, ...args) => {
50
- if (typeof args1 === 'string') {
51
- this.path = args1;
52
- }
53
- else {
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
- handlers.map((handler) => {
84
- this.addRoute(router_2.METHOD_NAME_ALL, this.path, handler);
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
- onError(handler) {
89
- this.errorHandler = handler;
90
- return this;
91
- }
92
- notFound(handler) {
93
- this.notFoundHandler = handler;
94
- return this;
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
- addRoute(method, path, handler) {
97
- method = method.toUpperCase();
98
- if (this._tempPath) {
99
- path = (0, url_1.mergePath)(this._tempPath, path);
100
- }
101
- this.router.add(method, path, handler);
102
- const r = { path: path, method: method, handler: handler };
103
- this.routes.push(r);
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
- matchRoute(method, path) {
106
- return this.router.match(method, path);
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
- handleError(err, c) {
109
- if (err instanceof Error) {
110
- return this.errorHandler(err, c);
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
- throw err;
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
- const handlers = result ? result.handlers : [this.notFoundHandler];
149
- const composed = (0, compose_1.compose)(handlers, this.notFoundHandler, this.errorHandler);
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
- exports.Hono = Hono;
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
- // @denoify-ignore
3
- // eslint-disable-next-line @typescript-eslint/triple-slash-reference
4
- /// <reference path="./request.ts" /> Import "declare global" for the Request interface.
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.Hono = void 0;
7
- const hono_1 = require("./hono");
8
- Object.defineProperty(exports, "Hono", { enumerable: true, get: function () { return hono_1.Hono; } });
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(exports, "__esModule", { value: true });
3
- exports.basicAuth = void 0;
4
- const buffer_1 = require("../../utils/buffer");
5
- const encode_1 = require("../../utils/encode");
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
- const match = CREDENTIALS_REGEXP.exec(req.headers.get('Authorization') || '');
10
- if (!match) {
11
- return undefined;
12
- }
13
- const userPass = USER_PASS_REGEXP.exec((0, encode_1.decodeBase64)(match[1]));
14
- if (!userPass) {
15
- return undefined;
16
- }
17
- return { username: userPass[1], password: userPass[2] };
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
- if (!options) {
21
- throw new Error('basic auth middleware requires options for "username and password"');
22
- }
23
- if (!options.realm) {
24
- options.realm = 'Secure Area';
25
- }
26
- users.unshift({ username: options.username, password: options.password });
27
- return async (ctx, next) => {
28
- const requestUser = auth(ctx.req);
29
- if (requestUser) {
30
- for (const user of users) {
31
- const usernameEqual = await (0, buffer_1.timingSafeEqual)(user.username, requestUser.username, options.hashFunction);
32
- const passwordEqual = await (0, buffer_1.timingSafeEqual)(user.password, requestUser.password, options.hashFunction);
33
- if (usernameEqual && passwordEqual) {
34
- await next();
35
- return;
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
- return new Response('Unauthorized', {
40
- status: 401,
41
- headers: {
42
- 'WWW-Authenticate': 'Basic realm="' + options.realm?.replace(/"/g, '\\"') + '"',
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
- exports.basicAuth = basicAuth;
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(exports, "__esModule", { value: true });
3
- exports.bearerAuth = void 0;
4
- const buffer_1 = require("../../utils/buffer");
5
- const TOKEN_STRINGS = '[A-Za-z0-9._~+/-]+=*';
6
- const PREFIX = 'Bearer';
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
- if (!options.token) {
9
- throw new Error('bearer auth middleware requires options for "token"');
10
- }
11
- if (!options.realm) {
12
- options.realm = '';
13
- }
14
- if (!options.prefix) {
15
- options.prefix = PREFIX;
16
- }
17
- const realm = options.realm?.replace(/"/g, '\\"');
18
- return async (c, next) => {
19
- const headerToken = c.req.headers.get('Authorization');
20
- if (!headerToken) {
21
- // No Authorization header
22
- return new Response('Unauthorized', {
23
- status: 401,
24
- headers: {
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
- else {
30
- const regexp = new RegExp('^' + options.prefix + ' +(' + TOKEN_STRINGS + ') *$');
31
- const match = regexp.exec(headerToken);
32
- if (!match) {
33
- // Invalid Request
34
- return new Response('Bad Request', {
35
- status: 400,
36
- headers: {
37
- 'WWW-Authenticate': `${options.prefix} error="invalid_request"`,
38
- },
39
- });
40
- }
41
- else {
42
- const equal = await (0, buffer_1.timingSafeEqual)(options.token, match[1], options.hashFunction);
43
- if (!equal) {
44
- // Invalid Token
45
- return new Response('Unauthorized', {
46
- status: 401,
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
- await next();
55
- };
67
+ }
68
+ }
69
+ await next();
70
+ };
56
71
  };
57
- exports.bearerAuth = bearerAuth;
72
+ // Annotate the CommonJS export names for ESM import in node:
73
+ 0 && (module.exports = {
74
+ bearerAuth
75
+ });