gemi 0.4.13 → 0.4.14

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 (90) hide show
  1. package/dist/app/App.d.ts.map +1 -1
  2. package/dist/app/createFlatApiRoutes.d.ts.map +1 -1
  3. package/dist/app/index.js +220 -608
  4. package/dist/auth/AuthenticationServiceProvider.d.ts +54 -0
  5. package/dist/auth/AuthenticationServiceProvider.d.ts.map +1 -0
  6. package/dist/auth/adapters/blank.d.ts +10 -0
  7. package/dist/auth/adapters/blank.d.ts.map +1 -0
  8. package/dist/auth/adapters/types.d.ts +77 -0
  9. package/dist/auth/adapters/types.d.ts.map +1 -0
  10. package/dist/bin/index.js +13 -0
  11. package/dist/client/ClientRouter.d.ts.map +1 -1
  12. package/dist/client/ClientRouterContext.d.ts +2 -0
  13. package/dist/client/ClientRouterContext.d.ts.map +1 -1
  14. package/dist/client/Mutation.d.ts +25 -7
  15. package/dist/client/Mutation.d.ts.map +1 -1
  16. package/dist/client/QueryManager.d.ts +24 -0
  17. package/dist/client/QueryManager.d.ts.map +1 -0
  18. package/dist/client/QueryManagerContext.d.ts +8 -0
  19. package/dist/client/QueryManagerContext.d.ts.map +1 -0
  20. package/dist/client/ServerDataProvider.d.ts +1 -0
  21. package/dist/client/ServerDataProvider.d.ts.map +1 -1
  22. package/dist/client/{Form.d.ts → _Form.d.ts} +1 -1
  23. package/dist/client/_Form.d.ts.map +1 -0
  24. package/dist/client/auth/useForgotPassword.d.ts +17 -0
  25. package/dist/client/auth/useForgotPassword.d.ts.map +1 -0
  26. package/dist/client/auth/useResetPassword.d.ts +17 -0
  27. package/dist/client/auth/useResetPassword.d.ts.map +1 -0
  28. package/dist/client/auth/useSignIn.d.ts +24 -0
  29. package/dist/client/auth/useSignIn.d.ts.map +1 -0
  30. package/dist/client/auth/useSignOut.d.ts +17 -0
  31. package/dist/client/auth/useSignOut.d.ts.map +1 -0
  32. package/dist/client/auth/useSignUp.d.ts +21 -0
  33. package/dist/client/auth/useSignUp.d.ts.map +1 -0
  34. package/dist/client/auth/useUser.d.ts +2 -0
  35. package/dist/client/auth/useUser.d.ts.map +1 -0
  36. package/dist/client/index.d.ts +8 -4
  37. package/dist/client/index.d.ts.map +1 -1
  38. package/dist/client/index.js +392 -278
  39. package/dist/client/rpc.d.ts +3 -1
  40. package/dist/client/rpc.d.ts.map +1 -1
  41. package/dist/client/useMutation.d.ts +12 -3
  42. package/dist/client/useMutation.d.ts.map +1 -1
  43. package/dist/client/useQuery.d.ts +16 -6
  44. package/dist/client/useQuery.d.ts.map +1 -1
  45. package/dist/email/EmailServiceProvider.d.ts +1 -1
  46. package/dist/email/EmailServiceProvider.d.ts.map +1 -1
  47. package/dist/email/index.js +4745 -12
  48. package/dist/email/providers.d.ts +1 -1
  49. package/dist/email/providers.d.ts.map +1 -1
  50. package/dist/facades/Auth.d.ts +5 -0
  51. package/dist/facades/Auth.d.ts.map +1 -0
  52. package/dist/facades/Redirect.d.ts +4 -0
  53. package/dist/facades/Redirect.d.ts.map +1 -0
  54. package/dist/facades/index.d.ts +3 -0
  55. package/dist/facades/index.d.ts.map +1 -0
  56. package/dist/facades/index.js +81 -4
  57. package/dist/http/ApiRouter.d.ts +321 -15
  58. package/dist/http/ApiRouter.d.ts.map +1 -1
  59. package/dist/http/AuthenticationMiddlware.d.ts +6 -0
  60. package/dist/http/AuthenticationMiddlware.d.ts.map +1 -0
  61. package/dist/http/Controller.d.ts +10 -1
  62. package/dist/http/Controller.d.ts.map +1 -1
  63. package/dist/http/Cookie.d.ts +18 -0
  64. package/dist/http/Cookie.d.ts.map +1 -0
  65. package/dist/http/HttpRequest.d.ts +9 -1
  66. package/dist/http/HttpRequest.d.ts.map +1 -1
  67. package/dist/http/Middleware.d.ts +1 -1
  68. package/dist/http/Middleware.d.ts.map +1 -1
  69. package/dist/http/MiddlewareServiceProvider.d.ts +5 -0
  70. package/dist/http/MiddlewareServiceProvider.d.ts.map +1 -0
  71. package/dist/http/ViewRouter.d.ts +11 -11
  72. package/dist/http/ViewRouter.d.ts.map +1 -1
  73. package/dist/http/index.d.ts +3 -1
  74. package/dist/http/index.d.ts.map +1 -1
  75. package/dist/http/index.js +147 -13
  76. package/dist/http/requestContext.d.ts +17 -2
  77. package/dist/http/requestContext.d.ts.map +1 -1
  78. package/dist/kernel/KernelContext.d.ts +4 -0
  79. package/dist/kernel/KernelContext.d.ts.map +1 -0
  80. package/dist/kernel/context.d.ts +9 -0
  81. package/dist/kernel/context.d.ts.map +1 -0
  82. package/dist/server/index.js +13 -0
  83. package/dist/utils/autobind.d.ts +2 -0
  84. package/dist/utils/autobind.d.ts.map +1 -0
  85. package/dist/utils/debounce.d.ts +2 -0
  86. package/dist/utils/debounce.d.ts.map +1 -0
  87. package/dist/utils/type.d.ts +5 -0
  88. package/dist/utils/type.d.ts.map +1 -1
  89. package/package.json +3 -1
  90. package/dist/client/Form.d.ts.map +0 -1
package/dist/app/index.js CHANGED
@@ -18,477 +18,6 @@ var __toESM = (mod, isNodeMode, target) => {
18
18
  var __commonJS = (cb, mod) => () => (mod || cb((mod = { exports: {} }).exports, mod), mod.exports);
19
19
  var __require = createRequire(import.meta.url);
20
20
 
21
- // ../../node_modules/uuid/dist/rng.js
22
- var require_rng = __commonJS((exports) => {
23
- var _interopRequireDefault = function(obj) {
24
- return obj && obj.__esModule ? obj : { default: obj };
25
- };
26
- var rng = function() {
27
- if (poolPtr > rnds8Pool.length - 16) {
28
- _crypto.default.randomFillSync(rnds8Pool);
29
- poolPtr = 0;
30
- }
31
- return rnds8Pool.slice(poolPtr, poolPtr += 16);
32
- };
33
- Object.defineProperty(exports, "__esModule", {
34
- value: true
35
- });
36
- exports.default = rng;
37
- var _crypto = _interopRequireDefault(__require("crypto"));
38
- var rnds8Pool = new Uint8Array(256);
39
- var poolPtr = rnds8Pool.length;
40
- });
41
-
42
- // ../../node_modules/uuid/dist/regex.js
43
- var require_regex = __commonJS((exports) => {
44
- Object.defineProperty(exports, "__esModule", {
45
- value: true
46
- });
47
- exports.default = undefined;
48
- var _default = /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;
49
- exports.default = _default;
50
- });
51
-
52
- // ../../node_modules/uuid/dist/validate.js
53
- var require_validate = __commonJS((exports) => {
54
- var _interopRequireDefault = function(obj) {
55
- return obj && obj.__esModule ? obj : { default: obj };
56
- };
57
- var validate2 = function(uuid) {
58
- return typeof uuid === "string" && _regex.default.test(uuid);
59
- };
60
- Object.defineProperty(exports, "__esModule", {
61
- value: true
62
- });
63
- exports.default = undefined;
64
- var _regex = _interopRequireDefault(require_regex());
65
- var _default = validate2;
66
- exports.default = _default;
67
- });
68
-
69
- // ../../node_modules/uuid/dist/stringify.js
70
- var require_stringify = __commonJS((exports) => {
71
- var _interopRequireDefault = function(obj) {
72
- return obj && obj.__esModule ? obj : { default: obj };
73
- };
74
- var unsafeStringify = function(arr, offset = 0) {
75
- return byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + "-" + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + "-" + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + "-" + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + "-" + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]];
76
- };
77
- var stringify = function(arr, offset = 0) {
78
- const uuid = unsafeStringify(arr, offset);
79
- if (!(0, _validate.default)(uuid)) {
80
- throw TypeError("Stringified UUID is invalid");
81
- }
82
- return uuid;
83
- };
84
- Object.defineProperty(exports, "__esModule", {
85
- value: true
86
- });
87
- exports.default = undefined;
88
- exports.unsafeStringify = unsafeStringify;
89
- var _validate = _interopRequireDefault(require_validate());
90
- var byteToHex = [];
91
- for (let i = 0;i < 256; ++i) {
92
- byteToHex.push((i + 256).toString(16).slice(1));
93
- }
94
- var _default = stringify;
95
- exports.default = _default;
96
- });
97
-
98
- // ../../node_modules/uuid/dist/v1.js
99
- var require_v1 = __commonJS((exports) => {
100
- var _interopRequireDefault = function(obj) {
101
- return obj && obj.__esModule ? obj : { default: obj };
102
- };
103
- var v1 = function(options, buf, offset) {
104
- let i = buf && offset || 0;
105
- const b2 = buf || new Array(16);
106
- options = options || {};
107
- let node = options.node || _nodeId;
108
- let clockseq = options.clockseq !== undefined ? options.clockseq : _clockseq;
109
- if (node == null || clockseq == null) {
110
- const seedBytes = options.random || (options.rng || _rng.default)();
111
- if (node == null) {
112
- node = _nodeId = [seedBytes[0] | 1, seedBytes[1], seedBytes[2], seedBytes[3], seedBytes[4], seedBytes[5]];
113
- }
114
- if (clockseq == null) {
115
- clockseq = _clockseq = (seedBytes[6] << 8 | seedBytes[7]) & 16383;
116
- }
117
- }
118
- let msecs = options.msecs !== undefined ? options.msecs : Date.now();
119
- let nsecs = options.nsecs !== undefined ? options.nsecs : _lastNSecs + 1;
120
- const dt = msecs - _lastMSecs + (nsecs - _lastNSecs) / 1e4;
121
- if (dt < 0 && options.clockseq === undefined) {
122
- clockseq = clockseq + 1 & 16383;
123
- }
124
- if ((dt < 0 || msecs > _lastMSecs) && options.nsecs === undefined) {
125
- nsecs = 0;
126
- }
127
- if (nsecs >= 1e4) {
128
- throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");
129
- }
130
- _lastMSecs = msecs;
131
- _lastNSecs = nsecs;
132
- _clockseq = clockseq;
133
- msecs += 12219292800000;
134
- const tl = ((msecs & 268435455) * 1e4 + nsecs) % 4294967296;
135
- b2[i++] = tl >>> 24 & 255;
136
- b2[i++] = tl >>> 16 & 255;
137
- b2[i++] = tl >>> 8 & 255;
138
- b2[i++] = tl & 255;
139
- const tmh = msecs / 4294967296 * 1e4 & 268435455;
140
- b2[i++] = tmh >>> 8 & 255;
141
- b2[i++] = tmh & 255;
142
- b2[i++] = tmh >>> 24 & 15 | 16;
143
- b2[i++] = tmh >>> 16 & 255;
144
- b2[i++] = clockseq >>> 8 | 128;
145
- b2[i++] = clockseq & 255;
146
- for (let n = 0;n < 6; ++n) {
147
- b2[i + n] = node[n];
148
- }
149
- return buf || (0, _stringify.unsafeStringify)(b2);
150
- };
151
- Object.defineProperty(exports, "__esModule", {
152
- value: true
153
- });
154
- exports.default = undefined;
155
- var _rng = _interopRequireDefault(require_rng());
156
- var _stringify = require_stringify();
157
- var _nodeId;
158
- var _clockseq;
159
- var _lastMSecs = 0;
160
- var _lastNSecs = 0;
161
- var _default = v1;
162
- exports.default = _default;
163
- });
164
-
165
- // ../../node_modules/uuid/dist/parse.js
166
- var require_parse = __commonJS((exports) => {
167
- var _interopRequireDefault = function(obj) {
168
- return obj && obj.__esModule ? obj : { default: obj };
169
- };
170
- var parse = function(uuid) {
171
- if (!(0, _validate.default)(uuid)) {
172
- throw TypeError("Invalid UUID");
173
- }
174
- let v2;
175
- const arr = new Uint8Array(16);
176
- arr[0] = (v2 = parseInt(uuid.slice(0, 8), 16)) >>> 24;
177
- arr[1] = v2 >>> 16 & 255;
178
- arr[2] = v2 >>> 8 & 255;
179
- arr[3] = v2 & 255;
180
- arr[4] = (v2 = parseInt(uuid.slice(9, 13), 16)) >>> 8;
181
- arr[5] = v2 & 255;
182
- arr[6] = (v2 = parseInt(uuid.slice(14, 18), 16)) >>> 8;
183
- arr[7] = v2 & 255;
184
- arr[8] = (v2 = parseInt(uuid.slice(19, 23), 16)) >>> 8;
185
- arr[9] = v2 & 255;
186
- arr[10] = (v2 = parseInt(uuid.slice(24, 36), 16)) / 1099511627776 & 255;
187
- arr[11] = v2 / 4294967296 & 255;
188
- arr[12] = v2 >>> 24 & 255;
189
- arr[13] = v2 >>> 16 & 255;
190
- arr[14] = v2 >>> 8 & 255;
191
- arr[15] = v2 & 255;
192
- return arr;
193
- };
194
- Object.defineProperty(exports, "__esModule", {
195
- value: true
196
- });
197
- exports.default = undefined;
198
- var _validate = _interopRequireDefault(require_validate());
199
- var _default = parse;
200
- exports.default = _default;
201
- });
202
-
203
- // ../../node_modules/uuid/dist/v35.js
204
- var require_v35 = __commonJS((exports) => {
205
- var _interopRequireDefault = function(obj) {
206
- return obj && obj.__esModule ? obj : { default: obj };
207
- };
208
- var stringToBytes = function(str) {
209
- str = unescape(encodeURIComponent(str));
210
- const bytes = [];
211
- for (let i = 0;i < str.length; ++i) {
212
- bytes.push(str.charCodeAt(i));
213
- }
214
- return bytes;
215
- };
216
- var v35 = function(name, version, hashfunc) {
217
- function generateUUID(value, namespace, buf, offset) {
218
- var _namespace;
219
- if (typeof value === "string") {
220
- value = stringToBytes(value);
221
- }
222
- if (typeof namespace === "string") {
223
- namespace = (0, _parse.default)(namespace);
224
- }
225
- if (((_namespace = namespace) === null || _namespace === undefined ? undefined : _namespace.length) !== 16) {
226
- throw TypeError("Namespace must be array-like (16 iterable integer values, 0-255)");
227
- }
228
- let bytes = new Uint8Array(16 + value.length);
229
- bytes.set(namespace);
230
- bytes.set(value, namespace.length);
231
- bytes = hashfunc(bytes);
232
- bytes[6] = bytes[6] & 15 | version;
233
- bytes[8] = bytes[8] & 63 | 128;
234
- if (buf) {
235
- offset = offset || 0;
236
- for (let i = 0;i < 16; ++i) {
237
- buf[offset + i] = bytes[i];
238
- }
239
- return buf;
240
- }
241
- return (0, _stringify.unsafeStringify)(bytes);
242
- }
243
- try {
244
- generateUUID.name = name;
245
- } catch (err) {
246
- }
247
- generateUUID.DNS = DNS;
248
- generateUUID.URL = URL2;
249
- return generateUUID;
250
- };
251
- Object.defineProperty(exports, "__esModule", {
252
- value: true
253
- });
254
- exports.URL = exports.DNS = undefined;
255
- exports.default = v35;
256
- var _stringify = require_stringify();
257
- var _parse = _interopRequireDefault(require_parse());
258
- var DNS = "6ba7b810-9dad-11d1-80b4-00c04fd430c8";
259
- exports.DNS = DNS;
260
- var URL2 = "6ba7b811-9dad-11d1-80b4-00c04fd430c8";
261
- exports.URL = URL2;
262
- });
263
-
264
- // ../../node_modules/uuid/dist/md5.js
265
- var require_md5 = __commonJS((exports) => {
266
- var _interopRequireDefault = function(obj) {
267
- return obj && obj.__esModule ? obj : { default: obj };
268
- };
269
- var md5 = function(bytes) {
270
- if (Array.isArray(bytes)) {
271
- bytes = Buffer.from(bytes);
272
- } else if (typeof bytes === "string") {
273
- bytes = Buffer.from(bytes, "utf8");
274
- }
275
- return _crypto.default.createHash("md5").update(bytes).digest();
276
- };
277
- Object.defineProperty(exports, "__esModule", {
278
- value: true
279
- });
280
- exports.default = undefined;
281
- var _crypto = _interopRequireDefault(__require("crypto"));
282
- var _default = md5;
283
- exports.default = _default;
284
- });
285
-
286
- // ../../node_modules/uuid/dist/v3.js
287
- var require_v3 = __commonJS((exports) => {
288
- var _interopRequireDefault = function(obj) {
289
- return obj && obj.__esModule ? obj : { default: obj };
290
- };
291
- Object.defineProperty(exports, "__esModule", {
292
- value: true
293
- });
294
- exports.default = undefined;
295
- var _v = _interopRequireDefault(require_v35());
296
- var _md = _interopRequireDefault(require_md5());
297
- var v3 = (0, _v.default)("v3", 48, _md.default);
298
- var _default = v3;
299
- exports.default = _default;
300
- });
301
-
302
- // ../../node_modules/uuid/dist/native.js
303
- var require_native = __commonJS((exports) => {
304
- var _interopRequireDefault = function(obj) {
305
- return obj && obj.__esModule ? obj : { default: obj };
306
- };
307
- Object.defineProperty(exports, "__esModule", {
308
- value: true
309
- });
310
- exports.default = undefined;
311
- var _crypto = _interopRequireDefault(__require("crypto"));
312
- var _default = {
313
- randomUUID: _crypto.default.randomUUID
314
- };
315
- exports.default = _default;
316
- });
317
-
318
- // ../../node_modules/uuid/dist/v4.js
319
- var require_v4 = __commonJS((exports) => {
320
- var _interopRequireDefault = function(obj) {
321
- return obj && obj.__esModule ? obj : { default: obj };
322
- };
323
- var v4 = function(options, buf, offset) {
324
- if (_native.default.randomUUID && !buf && !options) {
325
- return _native.default.randomUUID();
326
- }
327
- options = options || {};
328
- const rnds = options.random || (options.rng || _rng.default)();
329
- rnds[6] = rnds[6] & 15 | 64;
330
- rnds[8] = rnds[8] & 63 | 128;
331
- if (buf) {
332
- offset = offset || 0;
333
- for (let i = 0;i < 16; ++i) {
334
- buf[offset + i] = rnds[i];
335
- }
336
- return buf;
337
- }
338
- return (0, _stringify.unsafeStringify)(rnds);
339
- };
340
- Object.defineProperty(exports, "__esModule", {
341
- value: true
342
- });
343
- exports.default = undefined;
344
- var _native = _interopRequireDefault(require_native());
345
- var _rng = _interopRequireDefault(require_rng());
346
- var _stringify = require_stringify();
347
- var _default = v4;
348
- exports.default = _default;
349
- });
350
-
351
- // ../../node_modules/uuid/dist/sha1.js
352
- var require_sha1 = __commonJS((exports) => {
353
- var _interopRequireDefault = function(obj) {
354
- return obj && obj.__esModule ? obj : { default: obj };
355
- };
356
- var sha1 = function(bytes) {
357
- if (Array.isArray(bytes)) {
358
- bytes = Buffer.from(bytes);
359
- } else if (typeof bytes === "string") {
360
- bytes = Buffer.from(bytes, "utf8");
361
- }
362
- return _crypto.default.createHash("sha1").update(bytes).digest();
363
- };
364
- Object.defineProperty(exports, "__esModule", {
365
- value: true
366
- });
367
- exports.default = undefined;
368
- var _crypto = _interopRequireDefault(__require("crypto"));
369
- var _default = sha1;
370
- exports.default = _default;
371
- });
372
-
373
- // ../../node_modules/uuid/dist/v5.js
374
- var require_v5 = __commonJS((exports) => {
375
- var _interopRequireDefault = function(obj) {
376
- return obj && obj.__esModule ? obj : { default: obj };
377
- };
378
- Object.defineProperty(exports, "__esModule", {
379
- value: true
380
- });
381
- exports.default = undefined;
382
- var _v = _interopRequireDefault(require_v35());
383
- var _sha = _interopRequireDefault(require_sha1());
384
- var v5 = (0, _v.default)("v5", 80, _sha.default);
385
- var _default = v5;
386
- exports.default = _default;
387
- });
388
-
389
- // ../../node_modules/uuid/dist/nil.js
390
- var require_nil = __commonJS((exports) => {
391
- Object.defineProperty(exports, "__esModule", {
392
- value: true
393
- });
394
- exports.default = undefined;
395
- var _default = "00000000-0000-0000-0000-000000000000";
396
- exports.default = _default;
397
- });
398
-
399
- // ../../node_modules/uuid/dist/version.js
400
- var require_version = __commonJS((exports) => {
401
- var _interopRequireDefault = function(obj) {
402
- return obj && obj.__esModule ? obj : { default: obj };
403
- };
404
- var version = function(uuid) {
405
- if (!(0, _validate.default)(uuid)) {
406
- throw TypeError("Invalid UUID");
407
- }
408
- return parseInt(uuid.slice(14, 15), 16);
409
- };
410
- Object.defineProperty(exports, "__esModule", {
411
- value: true
412
- });
413
- exports.default = undefined;
414
- var _validate = _interopRequireDefault(require_validate());
415
- var _default = version;
416
- exports.default = _default;
417
- });
418
-
419
- // ../../node_modules/uuid/dist/index.js
420
- var require_dist = __commonJS((exports) => {
421
- var _interopRequireDefault = function(obj) {
422
- return obj && obj.__esModule ? obj : { default: obj };
423
- };
424
- Object.defineProperty(exports, "__esModule", {
425
- value: true
426
- });
427
- Object.defineProperty(exports, "NIL", {
428
- enumerable: true,
429
- get: function() {
430
- return _nil.default;
431
- }
432
- });
433
- Object.defineProperty(exports, "parse", {
434
- enumerable: true,
435
- get: function() {
436
- return _parse.default;
437
- }
438
- });
439
- Object.defineProperty(exports, "stringify", {
440
- enumerable: true,
441
- get: function() {
442
- return _stringify.default;
443
- }
444
- });
445
- Object.defineProperty(exports, "v1", {
446
- enumerable: true,
447
- get: function() {
448
- return _v.default;
449
- }
450
- });
451
- Object.defineProperty(exports, "v3", {
452
- enumerable: true,
453
- get: function() {
454
- return _v2.default;
455
- }
456
- });
457
- Object.defineProperty(exports, "v4", {
458
- enumerable: true,
459
- get: function() {
460
- return _v3.default;
461
- }
462
- });
463
- Object.defineProperty(exports, "v5", {
464
- enumerable: true,
465
- get: function() {
466
- return _v4.default;
467
- }
468
- });
469
- Object.defineProperty(exports, "validate", {
470
- enumerable: true,
471
- get: function() {
472
- return _validate.default;
473
- }
474
- });
475
- Object.defineProperty(exports, "version", {
476
- enumerable: true,
477
- get: function() {
478
- return _version.default;
479
- }
480
- });
481
- var _v = _interopRequireDefault(require_v1());
482
- var _v2 = _interopRequireDefault(require_v3());
483
- var _v3 = _interopRequireDefault(require_v4());
484
- var _v4 = _interopRequireDefault(require_v5());
485
- var _nil = _interopRequireDefault(require_nil());
486
- var _version = _interopRequireDefault(require_version());
487
- var _validate = _interopRequireDefault(require_validate());
488
- var _stringify = _interopRequireDefault(require_stringify());
489
- var _parse = _interopRequireDefault(require_parse());
490
- });
491
-
492
21
  // http/Controller.ts
493
22
  class Controller {
494
23
  requests = {};
@@ -496,6 +25,12 @@ class Controller {
496
25
  constructor() {
497
26
  }
498
27
  }
28
+
29
+ class ResourceController extends Controller {
30
+ constructor() {
31
+ super(...arguments);
32
+ }
33
+ }
499
34
  // internal/isConstructor.ts
500
35
  function isConstructor(value) {
501
36
  return typeof value === "function" && value.prototype !== undefined;
@@ -515,6 +50,9 @@ class RouteHandler {
515
50
  this.method = method;
516
51
  this.handler = handler;
517
52
  this.methodName = methodName;
53
+ this.handler = handler;
54
+ this.methodName = methodName;
55
+ this.method = method;
518
56
  }
519
57
  run(req) {
520
58
  let httpRequest = req;
@@ -553,6 +91,26 @@ class ApiRouter {
553
91
  delete(handler, methodName) {
554
92
  return new RouteHandler("DELETE", handler, methodName);
555
93
  }
94
+ resource(Controller2) {
95
+
96
+ class ResourceRouter extends ApiRouter {
97
+ constructor() {
98
+ super(...arguments);
99
+ }
100
+ routes = {
101
+ "/": {
102
+ list: this.get(Controller2, "list"),
103
+ create: this.post(Controller2, "create")
104
+ },
105
+ "/:id": {
106
+ show: this.get(Controller2, "show"),
107
+ update: this.put(Controller2, "update"),
108
+ delete: this.delete(Controller2, "delete")
109
+ }
110
+ };
111
+ }
112
+ return ResourceRouter;
113
+ }
556
114
  }
557
115
  // http/ViewRouter.ts
558
116
  class ViewRouter {
@@ -567,7 +125,7 @@ class ViewRouter {
567
125
  _children = handler;
568
126
  }
569
127
  return {
570
- exec: async (req, params, app) => {
128
+ exec: async (req) => {
571
129
  let _handler = () => Promise.resolve({
572
130
  data: { [viewPath]: {} },
573
131
  headers: {},
@@ -581,7 +139,7 @@ class ViewRouter {
581
139
  const instance = new controller(app);
582
140
  _handler = instance[methodName].bind(instance);
583
141
  }
584
- const data = await _handler(req, params);
142
+ const data = await _handler(req);
585
143
  return { [viewPath]: data };
586
144
  },
587
145
  children: _children,
@@ -604,7 +162,7 @@ class ViewRouter {
604
162
  _children = handler;
605
163
  }
606
164
  return {
607
- exec: async (req, params, app) => {
165
+ exec: async (req) => {
608
166
  let _handler = () => Promise.resolve({
609
167
  data: { [viewPath]: {} },
610
168
  headers: {},
@@ -618,7 +176,7 @@ class ViewRouter {
618
176
  const instance = new controller(app);
619
177
  _handler = instance[methodName].bind(instance);
620
178
  }
621
- const data = await _handler(req, params);
179
+ const data = await _handler(req);
622
180
  return { [viewPath]: data };
623
181
  },
624
182
  children: _children,
@@ -692,13 +250,73 @@ class ValidationError extends RequestBreakerError {
692
250
  };
693
251
  }
694
252
  }
253
+ // http/requestContext.ts
254
+ import {AsyncLocalStorage} from "async_hooks";
255
+
256
+ // http/Cookie.ts
257
+ class Cookie {
258
+ name;
259
+ value;
260
+ options;
261
+ constructor(name, value, options = {}) {
262
+ this.name = name;
263
+ this.value = value;
264
+ this.options = options;
265
+ }
266
+ toString() {
267
+ return [
268
+ `${this.name}=${this.value}`,
269
+ this.options.maxAge ? `Max-Age=${this.options.maxAge}` : "",
270
+ this.options.httpOnly ? "HttpOnly" : "",
271
+ this.options.secure ? "Secure" : "",
272
+ this.options.sameSite ? `SameSite=${this.options.sameSite}` : "SameSite=Strict",
273
+ this.options.path ? `Path=${this.options.path}` : "Path=/",
274
+ this.options.domain ? `Domain=${this.options.domain}` : "",
275
+ this.options.expires ? `Expires=${this.options.expires.toUTCString()}` : "",
276
+ this.options.partitioned ? "Partitioned" : ""
277
+ ].filter((i) => i !== "").join("; ");
278
+ }
279
+ }
280
+
281
+ // http/requestContext.ts
282
+ var requestContext = new AsyncLocalStorage;
283
+
284
+ class Store {
285
+ cookies = new Set;
286
+ user = null;
287
+ req = null;
288
+ constructor() {
289
+ }
290
+ setCookie(name, value, options = {}) {
291
+ this.cookies.add(new Cookie(name, value, options));
292
+ }
293
+ setUser(user) {
294
+ this.user = user;
295
+ }
296
+ setRequest(req) {
297
+ this.req = req;
298
+ }
299
+ }
300
+
301
+ class RequestContext {
302
+ static getStore() {
303
+ return requestContext.getStore();
304
+ }
305
+ static setRequest(req) {
306
+ requestContext.getStore().req = req;
307
+ }
308
+ static async run(fn) {
309
+ return requestContext.run(new Store, fn);
310
+ }
311
+ }
312
+
695
313
  // http/HttpRequest.ts
696
314
  var validate = function(ruleName) {
697
315
  const [rule, param] = ruleName.split(":");
698
316
  switch (rule) {
699
317
  case "required":
700
318
  return (value) => {
701
- return value !== null && value !== undefined;
319
+ return value !== null && value !== undefined && value?.length > 0;
702
320
  };
703
321
  case "password":
704
322
  return (value) => {
@@ -713,11 +331,11 @@ var validate = function(ruleName) {
713
331
  };
714
332
  case "min":
715
333
  return (value) => {
716
- return value.length >= parseInt(param);
334
+ return value?.length >= parseInt(param);
717
335
  };
718
336
  case "max":
719
337
  return (value) => {
720
- return value.length <= parseInt(param);
338
+ return value?.length <= parseInt(param);
721
339
  };
722
340
  case "email":
723
341
  return (value) => {
@@ -752,8 +370,9 @@ class HttpRequest {
752
370
  rawRequest;
753
371
  headers;
754
372
  cookies;
755
- schema;
373
+ schema = {};
756
374
  params;
375
+ ctx = RequestContext.getStore();
757
376
  constructor(req, params) {
758
377
  this.params = params;
759
378
  this.rawRequest = req;
@@ -780,7 +399,6 @@ class HttpRequest {
780
399
  if (this.rawRequest.headers.get("Content-Type") === "application/x-www-form-urlencoded") {
781
400
  const body = await this.rawRequest.formData();
782
401
  for (const [key, value] of body) {
783
- console.log(key, value);
784
402
  inputMap.set(key, value);
785
403
  }
786
404
  }
@@ -811,7 +429,12 @@ class HttpRequest {
811
429
  if (!errors[key]) {
812
430
  errors[key] = [];
813
431
  }
814
- errors[key].push(String(message));
432
+ if (rule === "required") {
433
+ errors[key] = [String(message)];
434
+ break;
435
+ } else {
436
+ errors[key].push(String(message));
437
+ }
815
438
  }
816
439
  }
817
440
  }
@@ -845,14 +468,12 @@ class HttpRequest {
845
468
  }
846
469
  }
847
470
  async terminate(params) {
848
- const { message, status, headers, payload } = params;
849
- const error = new RequestBreakerError(message);
850
471
  throw "not implemented";
851
472
  }
852
473
  }
853
474
  // http/Middleware.ts
854
475
  class Middleware {
855
- async run(_req, ctx) {
476
+ async run(_req) {
856
477
  return {};
857
478
  }
858
479
  }
@@ -870,6 +491,45 @@ function getCookies(req) {
870
491
  }
871
492
  return _cookies;
872
493
  }
494
+ // http/MiddlewareServiceProvider.ts
495
+ class MiddlewareServiceProvider {
496
+ aliases = {};
497
+ }
498
+ // kernel/context.ts
499
+ import {AsyncLocalStorage as AsyncLocalStorage2} from "async_hooks";
500
+ var kernelContext = new AsyncLocalStorage2;
501
+
502
+ // kernel/KernelContext.ts
503
+ class KernelContext {
504
+ static getStore = () => kernelContext.getStore();
505
+ }
506
+
507
+ // http/AuthenticationMiddlware.ts
508
+ class AuthenticationMiddleware extends Middleware {
509
+ constructor() {
510
+ super(...arguments);
511
+ }
512
+ async run(req) {
513
+ const requestContextStore = RequestContext.getStore();
514
+ const accessToken = requestContextStore.req.cookies.get("access_token");
515
+ if (!accessToken) {
516
+ throw new AuthenticationError;
517
+ }
518
+ let user = requestContextStore.user;
519
+ if (!user) {
520
+ const session = await KernelContext.getStore().authenticationServiceProvider.adapter.findSession({
521
+ token: accessToken,
522
+ userAgent: requestContextStore.req.headers.get("User-Agent")
523
+ });
524
+ if (!session) {
525
+ throw new AuthenticationError;
526
+ }
527
+ user = session?.user;
528
+ requestContextStore.setUser(user);
529
+ }
530
+ return {};
531
+ }
532
+ }
873
533
  // ../../node_modules/urlpattern-polyfill/dist/urlpattern.js
874
534
  var Re = function(e, t) {
875
535
  return (t ? /^[\x00-\xFF]*$/ : /^[\x00-\x7F]*$/).test(e);
@@ -1668,22 +1328,6 @@ function generateETag(lastModified) {
1668
1328
  return hash;
1669
1329
  }
1670
1330
 
1671
- // ../../node_modules/uuid/wrapper.mjs
1672
- var dist = __toESM(require_dist(), 1);
1673
- var v1 = dist.default.v1;
1674
- var v3 = dist.default.v3;
1675
- var v4 = dist.default.v4;
1676
- var v5 = dist.default.v5;
1677
- var NIL = dist.default.NIL;
1678
- var version = dist.default.version;
1679
- var validate2 = dist.default.validate;
1680
- var stringify = dist.default.stringify;
1681
- var parse = dist.default.parse;
1682
-
1683
- // http/requestContext.ts
1684
- import {AsyncLocalStorage} from "async_hooks";
1685
- var requestContext = new AsyncLocalStorage;
1686
-
1687
1331
  // client/helpers/flattenComponentTree.ts
1688
1332
  function flattenComponentTree(componentTree) {
1689
1333
  let out = [];
@@ -1791,6 +1435,9 @@ function createRouteManifest(routes) {
1791
1435
  }
1792
1436
 
1793
1437
  // app/createFlatApiRoutes.ts
1438
+ var isRouter = function(routeHandlers) {
1439
+ return isConstructor(routeHandlers);
1440
+ };
1794
1441
  function createFlatApiRoutes(routes) {
1795
1442
  const flatApiRoutes = {};
1796
1443
  for (const [rootPath, apiRouteHandlerOrApiRouter] of Object.entries(routes)) {
@@ -1806,20 +1453,7 @@ function createFlatApiRoutes(routes) {
1806
1453
  exec,
1807
1454
  middleware: [...middleware]
1808
1455
  };
1809
- } else if (Array.isArray(apiRouteHandlerOrApiRouter)) {
1810
- for (const routeHandler of apiRouteHandlerOrApiRouter) {
1811
- if (!flatApiRoutes[rootPath]) {
1812
- flatApiRoutes[rootPath] = {};
1813
- }
1814
- const method = routeHandler.method;
1815
- const middleware = routeHandler.middlewares;
1816
- const exec = routeHandler.run;
1817
- flatApiRoutes[rootPath][method] = {
1818
- exec,
1819
- middleware
1820
- };
1821
- }
1822
- } else {
1456
+ } else if (isRouter(apiRouteHandlerOrApiRouter)) {
1823
1457
  const router = new apiRouteHandlerOrApiRouter;
1824
1458
  const result = createFlatApiRoutes(router.routes);
1825
1459
  for (const [path, handlers] of Object.entries(result)) {
@@ -1840,6 +1474,19 @@ function createFlatApiRoutes(routes) {
1840
1474
  };
1841
1475
  }
1842
1476
  }
1477
+ } else {
1478
+ for (const routeHandler of Object.values(apiRouteHandlerOrApiRouter)) {
1479
+ if (!flatApiRoutes[rootPath]) {
1480
+ flatApiRoutes[rootPath] = {};
1481
+ }
1482
+ const method = routeHandler.method;
1483
+ const middleware = routeHandler.middlewares;
1484
+ const exec = routeHandler.run.bind(routeHandler);
1485
+ flatApiRoutes[rootPath][method] = {
1486
+ exec,
1487
+ middleware
1488
+ };
1489
+ }
1843
1490
  }
1844
1491
  }
1845
1492
  return flatApiRoutes;
@@ -1880,11 +1527,15 @@ class App {
1880
1527
  prepare() {
1881
1528
  const params = this.params;
1882
1529
  this.middlewareAliases = params.middlewareAliases ?? {};
1530
+ const kernelServices = this.kernel.getServices.call(this.kernel);
1531
+ const authBasePath = kernelServices.authenticationServiceProvider.basePath;
1883
1532
  let viewRouters = {
1884
- "/": this.viewRouter
1533
+ "/": this.viewRouter,
1534
+ [authBasePath]: kernelServices.authenticationServiceProvider.routers.view
1885
1535
  };
1886
1536
  let apiRouters = {
1887
- "/": this.apiRouter
1537
+ "/": this.apiRouter,
1538
+ [authBasePath]: kernelServices.authenticationServiceProvider.routers.api
1888
1539
  };
1889
1540
  for (const Plugin of params.plugins ?? []) {
1890
1541
  const plugin = new Plugin;
@@ -1912,41 +1563,14 @@ class App {
1912
1563
  setRenderParams(params) {
1913
1564
  this.renderParams = params;
1914
1565
  }
1915
- async resolvePageData(req) {
1916
- const url = new URL(req.url);
1917
- let handlers = [];
1918
- let middlewares = [];
1919
- let currentPathName = "";
1920
- let params = {};
1921
- const sortedEntries = Object.entries(this.flatViewRoutes).sort(([pathA], [pathB]) => pathB.length - pathA.length);
1922
- for (const [pathname, handler] of sortedEntries) {
1923
- const pattern = new me({ pathname });
1924
- if (pattern.test({ pathname: url.pathname })) {
1925
- currentPathName = pathname;
1926
- params = pattern.exec({ pathname: url.pathname })?.pathname.groups;
1927
- handlers = handler.exec;
1928
- middlewares = handler.middleware;
1929
- }
1930
- }
1931
- const reqWithMiddlewares = this.runMiddleware(middlewares);
1932
- const reqCtx = new Map;
1933
- const data = await requestContext.run(reqCtx, async () => {
1934
- await reqWithMiddlewares(new HttpRequest(req, params), reqCtx);
1935
- return await Promise.all(handlers.map((fn) => fn(req, params, this)));
1936
- });
1937
- return {
1938
- data,
1939
- currentPathName,
1940
- params,
1941
- user: reqCtx.get("user") ?? null
1942
- };
1943
- }
1944
1566
  runMiddleware(middleware) {
1945
1567
  return middleware.map((aliasOrTest) => {
1946
1568
  if (typeof aliasOrTest === "string") {
1947
1569
  const alias = aliasOrTest;
1948
- if (this.middlewareAliases?.[alias]) {
1949
- const middleware2 = new this.middlewareAliases[alias];
1570
+ const kernelServices = this.kernel.getServices.call(this.kernel);
1571
+ const Middleware3 = kernelServices.middlewareServiceProvider.aliases[alias];
1572
+ if (Middleware3) {
1573
+ const middleware2 = new Middleware3;
1950
1574
  return middleware2.run;
1951
1575
  }
1952
1576
  } else {
@@ -1978,23 +1602,25 @@ class App {
1978
1602
  const exec = handler[req.method].exec;
1979
1603
  const middlewares = handler[req.method].middleware;
1980
1604
  const reqWithMiddlewares = this.runMiddleware(middlewares);
1981
- const reqCtx = new Map;
1982
- return await requestContext.run(reqCtx, async () => {
1605
+ return await RequestContext.run(async () => {
1983
1606
  const httpRequest = new HttpRequest(req, params);
1984
- let handler2 = exec ? () => exec(httpRequest, params, this) : () => Promise.resolve({});
1607
+ const ctx = RequestContext.getStore();
1608
+ ctx.setRequest(httpRequest);
1609
+ let handler2 = exec ? () => exec(httpRequest, params) : () => Promise.resolve({});
1985
1610
  try {
1986
- await reqWithMiddlewares(httpRequest, reqCtx);
1611
+ await reqWithMiddlewares(httpRequest);
1987
1612
  } catch (err) {
1988
1613
  if (err.kind === GEMI_REQUEST_BREAKER_ERROR) {
1989
- const { status = 400, data: data2, headers } = err.payload.api;
1614
+ const { status = 400, data: data2, headers: headers2 } = err.payload.api;
1990
1615
  return new Response(JSON.stringify(data2), {
1991
1616
  status,
1992
1617
  headers: {
1993
1618
  "Content-Type": "application/json",
1994
- ...headers
1619
+ ...headers2
1995
1620
  }
1996
1621
  });
1997
1622
  } else {
1623
+ console.error(err);
1998
1624
  throw err;
1999
1625
  }
2000
1626
  }
@@ -2003,32 +1629,24 @@ class App {
2003
1629
  data = await handler2();
2004
1630
  } catch (err) {
2005
1631
  if (err.kind === GEMI_REQUEST_BREAKER_ERROR) {
2006
- const { status = 400, data: data2, headers } = err.payload.api;
1632
+ const { status = 400, data: data2, headers: headers2 } = err.payload.api;
2007
1633
  return new Response(JSON.stringify(data2), {
2008
1634
  status,
2009
1635
  headers: {
2010
1636
  "Content-Type": "application/json",
2011
- ...headers
1637
+ ...headers2
2012
1638
  }
2013
1639
  });
2014
1640
  } else {
1641
+ console.error(err);
2015
1642
  throw err;
2016
1643
  }
2017
1644
  }
2018
- const result = {
2019
- kind: "api",
2020
- data,
2021
- headers: {
2022
- "Set-Cookie": Object.entries({}).map(([name, config]) => {
2023
- return `${name}=${config.value}; HttpOnly; SameSite=Strict; Path=/; Max-Age=${config.maxAge}`;
2024
- }).join(", ")
2025
- }
2026
- };
2027
- return new Response(JSON.stringify(result.data), {
2028
- headers: {
2029
- "Content-Type": "application/json",
2030
- ...result.headers
2031
- }
1645
+ const headers = new Headers;
1646
+ headers.append("Content-Type", "application/json");
1647
+ ctx.cookies.forEach((cookie) => headers.append("Set-Cookie", cookie.toString()));
1648
+ return new Response(JSON.stringify(data), {
1649
+ headers
2032
1650
  });
2033
1651
  });
2034
1652
  }
@@ -2056,25 +1674,35 @@ class App {
2056
1674
  }
2057
1675
  }
2058
1676
  const reqWithMiddlewares = this.runMiddleware(middlewares);
2059
- const reqCtx = new Map;
2060
- const data2 = await requestContext.run(reqCtx, async () => {
2061
- await reqWithMiddlewares(new HttpRequest(req, params2), reqCtx);
2062
- return await Promise.all(handlers.map((fn) => fn(req, params2, this)));
1677
+ const { data: data2, cookies: cookies2, user: user2 } = await RequestContext.run(async () => {
1678
+ const httpRequest = new HttpRequest(req, params2);
1679
+ const ctx = RequestContext.getStore();
1680
+ ctx.setRequest(httpRequest);
1681
+ await reqWithMiddlewares(httpRequest);
1682
+ const data3 = await Promise.all(handlers.map((fn) => fn(httpRequest)));
1683
+ return {
1684
+ data: data3,
1685
+ cookies: ctx.cookies,
1686
+ user: ctx.user
1687
+ };
2063
1688
  });
2064
1689
  pageData = {
2065
1690
  data: data2,
2066
1691
  currentPathName: currentPathName2,
1692
+ user: user2,
2067
1693
  params: params2,
2068
- user: reqCtx.get("user") ?? null
1694
+ cookies: cookies2
2069
1695
  };
2070
1696
  } catch (err) {
2071
1697
  if (err.kind === GEMI_REQUEST_BREAKER_ERROR) {
2072
1698
  return new Response(null, {
2073
1699
  ...err.payload.view
2074
1700
  });
1701
+ } else {
1702
+ throw err;
2075
1703
  }
2076
1704
  }
2077
- const { data, params, currentPathName, user } = pageData;
1705
+ const { data, params, currentPathName, user, cookies } = pageData;
2078
1706
  const viewData = data.reduce((acc, data2) => {
2079
1707
  return {
2080
1708
  ...acc,
@@ -2082,31 +1710,18 @@ class App {
2082
1710
  };
2083
1711
  }, {});
2084
1712
  if (url.searchParams.get("json")) {
2085
- const result2 = {
2086
- kind: "viewData",
1713
+ const headers2 = new Headers;
1714
+ headers2.set("Content-Type", "application/json");
1715
+ cookies.forEach((cookie) => headers2.append("Set-Cookie", cookie.toString()));
1716
+ return new Response(JSON.stringify({
2087
1717
  data: {
2088
1718
  [url.pathname]: viewData
2089
1719
  },
2090
- meta: [],
2091
- headers: {}
2092
- };
2093
- return new Response(JSON.stringify({
2094
- data: result2.data,
2095
- head: {}
1720
+ is404: !currentPathName
2096
1721
  }), {
2097
- headers: {
2098
- ...result2.headers,
2099
- "Content-Type": "application/json"
2100
- }
1722
+ headers: headers2
2101
1723
  });
2102
1724
  }
2103
- let cookieHeaders = {};
2104
- const visitorIdExist = req.headers.get("cookie")?.includes("visitor_id");
2105
- if (!visitorIdExist) {
2106
- cookieHeaders = {
2107
- "Set-Cookie": `visitor_id=${v4()}; HttpOnly; SameSite=Strict; Path=/`
2108
- };
2109
- }
2110
1725
  const { styles, manifest, serverManifest, bootstrapModules } = this.renderParams;
2111
1726
  const viewImportMap = {};
2112
1727
  let appDir = null;
@@ -2134,6 +1749,11 @@ class App {
2134
1749
  }
2135
1750
  }
2136
1751
  const loaders = `{${templates.join(",")}}`;
1752
+ const headers = new Headers;
1753
+ headers.set("Content-Type", "text/html");
1754
+ headers.set("Cache-Control", user ? "private, no-cache, no-store, max-age=0, must-revalidate" : "public, max-age=864000, must-revalidate");
1755
+ headers.set("ETag", this.appId);
1756
+ pageData.cookies.forEach((cookie) => headers.append("Set-Cookie", cookie.toString()));
2137
1757
  const result = {
2138
1758
  kind: "view",
2139
1759
  data: {
@@ -2146,18 +1766,12 @@ class App {
2146
1766
  pathname: currentPathName,
2147
1767
  params,
2148
1768
  currentPath: url.pathname,
1769
+ searchParams: url.search,
2149
1770
  is404: !currentPathName ? true : false
2150
1771
  },
2151
1772
  componentTree: [["404", []], ...this.componentTree]
2152
1773
  },
2153
- head: {},
2154
- headers: {
2155
- "Content-Type": "text/html",
2156
- "Cache-Control": user ? "private, no-cache, no-store, max-age=0, must-revalidate" : "public, max-age=864000, must-revalidate",
2157
- ETag: this.appId,
2158
- ...cookieHeaders
2159
- },
2160
- status: !currentPathName ? 404 : 200
1774
+ head: {}
2161
1775
  };
2162
1776
  const stream = await renderToReadableStream(createElement(Fragment, {
2163
1777
  children: [
@@ -2172,16 +1786,14 @@ class App {
2172
1786
  bootstrapModules
2173
1787
  });
2174
1788
  return new Response(stream, {
2175
- status: result.status,
2176
- headers: {
2177
- "Content-Type": "text/html",
2178
- ...result.headers
2179
- }
1789
+ status: !currentPathName ? 404 : 200,
1790
+ headers
2180
1791
  });
2181
1792
  }
2182
1793
  async fetch(req) {
2183
1794
  const url = new URL(req.url);
2184
- return this.kernel.run(async () => {
1795
+ const kernelRun = this.kernel.run.bind(this.kernel);
1796
+ return kernelRun(async () => {
2185
1797
  if (url.pathname.startsWith("/api")) {
2186
1798
  return await this.handleApiRequest(req);
2187
1799
  } else {