gemi 0.1.2 → 0.2.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 (84) hide show
  1. package/dist/ApiRouter.d.ts +5 -0
  2. package/dist/ApiRouter.d.ts.map +1 -0
  3. package/dist/Controller.d.ts +3 -0
  4. package/dist/Controller.d.ts.map +1 -0
  5. package/dist/ViewRouter.d.ts +3 -0
  6. package/dist/ViewRouter.d.ts.map +1 -0
  7. package/dist/app/App.d.ts +93 -0
  8. package/dist/app/App.d.ts.map +1 -0
  9. package/dist/app/Plugin.d.ts +10 -0
  10. package/dist/app/Plugin.d.ts.map +1 -0
  11. package/dist/app/index.js +1697 -0
  12. package/{bin → dist/bin}/gemi +0 -0
  13. package/dist/client/ClientRouter.d.ts +4 -0
  14. package/dist/client/ClientRouter.d.ts.map +1 -0
  15. package/dist/client/ClientRouterContext.d.ts +32 -0
  16. package/dist/client/ClientRouterContext.d.ts.map +1 -0
  17. package/dist/client/Form.d.ts +27 -3
  18. package/dist/client/Form.d.ts.map +1 -1
  19. package/dist/client/Image.d.ts +11 -0
  20. package/dist/client/Image.d.ts.map +1 -0
  21. package/dist/client/Mutation.d.ts +17 -0
  22. package/dist/client/Mutation.d.ts.map +1 -0
  23. package/dist/client/Root.d.ts +2 -0
  24. package/dist/client/Root.d.ts.map +1 -0
  25. package/dist/client/ServerDataProvider.d.ts +33 -0
  26. package/dist/client/ServerDataProvider.d.ts.map +1 -0
  27. package/dist/client/index.d.ts +7 -1
  28. package/dist/client/index.d.ts.map +1 -1
  29. package/dist/client/index.js +1634 -31
  30. package/dist/client/main.d.ts +2 -0
  31. package/dist/client/main.d.ts.map +1 -0
  32. package/dist/client/types.d.ts +4 -0
  33. package/dist/client/types.d.ts.map +1 -0
  34. package/dist/client/useMutation.d.ts +8 -0
  35. package/dist/client/useMutation.d.ts.map +1 -0
  36. package/dist/client/useQuery.d.ts +6 -0
  37. package/dist/client/useQuery.d.ts.map +1 -0
  38. package/dist/client/useUser.d.ts +2 -0
  39. package/dist/client/useUser.d.ts.map +1 -0
  40. package/dist/email/index.js +9098 -0
  41. package/dist/facades/index.js +71 -0
  42. package/dist/http/ApiRouter.d.ts +50 -0
  43. package/dist/http/ApiRouter.d.ts.map +1 -1
  44. package/dist/http/Controller.d.ts +2 -0
  45. package/dist/http/Controller.d.ts.map +1 -1
  46. package/dist/http/Error.d.ts +7 -0
  47. package/dist/http/Error.d.ts.map +1 -0
  48. package/dist/http/HttpRequest.d.ts +21 -0
  49. package/dist/http/HttpRequest.d.ts.map +1 -0
  50. package/dist/http/Middleware.d.ts +4 -0
  51. package/dist/http/Middleware.d.ts.map +1 -0
  52. package/dist/http/Router.d.ts +31 -0
  53. package/dist/http/Router.d.ts.map +1 -0
  54. package/dist/http/ViewRouter.d.ts +30 -0
  55. package/dist/http/ViewRouter.d.ts.map +1 -1
  56. package/dist/http/getCookies.d.ts +2 -0
  57. package/dist/http/getCookies.d.ts.map +1 -0
  58. package/dist/http/index.d.ts +4 -0
  59. package/dist/http/index.d.ts.map +1 -1
  60. package/dist/http/index.js +324 -16
  61. package/dist/http/requestContext.d.ts +4 -0
  62. package/dist/http/requestContext.d.ts.map +1 -0
  63. package/dist/index.d.ts +4 -0
  64. package/dist/index.d.ts.map +1 -0
  65. package/dist/server/generateEtag.d.ts +2 -0
  66. package/dist/server/generateEtag.d.ts.map +1 -0
  67. package/dist/types.d.ts +4 -0
  68. package/dist/types.d.ts.map +1 -0
  69. package/dist/utils/Subject.d.ts +9 -0
  70. package/dist/utils/Subject.d.ts.map +1 -0
  71. package/dist/utils/type.d.ts +2 -0
  72. package/dist/utils/type.d.ts.map +1 -0
  73. package/package.json +16 -8
  74. package/bin/gemi.ts +0 -3
  75. package/dist/client/useRouter.d.ts +0 -2
  76. package/dist/client/useRouter.d.ts.map +0 -1
  77. package/dist/dev.js +0 -1195
  78. package/dist/server/Server.d.ts +0 -10
  79. package/dist/server/Server.d.ts.map +0 -1
  80. package/dist/server/dev.d.ts +0 -3
  81. package/dist/server/dev.d.ts.map +0 -1
  82. package/dist/server/index.d.ts +0 -2
  83. package/dist/server/index.d.ts.map +0 -1
  84. package/dist/server/index.js +0 -1195
@@ -0,0 +1,1697 @@
1
+ import {createRequire} from "node:module";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getProtoOf = Object.getPrototypeOf;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __toESM = (mod, isNodeMode, target) => {
8
+ target = mod != null ? __create(__getProtoOf(mod)) : {};
9
+ const to = isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target;
10
+ for (let key of __getOwnPropNames(mod))
11
+ if (!__hasOwnProp.call(to, key))
12
+ __defProp(to, key, {
13
+ get: () => mod[key],
14
+ enumerable: true
15
+ });
16
+ return to;
17
+ };
18
+ var __commonJS = (cb, mod) => () => (mod || cb((mod = { exports: {} }).exports, mod), mod.exports);
19
+ var __require = createRequire(import.meta.url);
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 validate = 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 = validate;
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
+ // ../../node_modules/urlpattern-polyfill/dist/urlpattern.js
493
+ var Re = function(e, t) {
494
+ return (t ? /^[\x00-\xFF]*$/ : /^[\x00-\x7F]*$/).test(e);
495
+ };
496
+ var v = function(e, t = false) {
497
+ let r = [], n = 0;
498
+ for (;n < e.length; ) {
499
+ let o = e[n], c = function(l) {
500
+ if (!t)
501
+ throw new TypeError(l);
502
+ r.push({ type: "INVALID_CHAR", index: n, value: e[n++] });
503
+ };
504
+ if (o === "*") {
505
+ r.push({ type: "ASTERISK", index: n, value: e[n++] });
506
+ continue;
507
+ }
508
+ if (o === "+" || o === "?") {
509
+ r.push({ type: "OTHER_MODIFIER", index: n, value: e[n++] });
510
+ continue;
511
+ }
512
+ if (o === "\\") {
513
+ r.push({ type: "ESCAPED_CHAR", index: n++, value: e[n++] });
514
+ continue;
515
+ }
516
+ if (o === "{") {
517
+ r.push({ type: "OPEN", index: n, value: e[n++] });
518
+ continue;
519
+ }
520
+ if (o === "}") {
521
+ r.push({ type: "CLOSE", index: n, value: e[n++] });
522
+ continue;
523
+ }
524
+ if (o === ":") {
525
+ let l = "", s = n + 1;
526
+ for (;s < e.length; ) {
527
+ let i = e.substr(s, 1);
528
+ if (s === n + 1 && be.test(i) || s !== n + 1 && Pe.test(i)) {
529
+ l += e[s++];
530
+ continue;
531
+ }
532
+ break;
533
+ }
534
+ if (!l) {
535
+ c(`Missing parameter name at ${n}`);
536
+ continue;
537
+ }
538
+ r.push({ type: "NAME", index: n, value: l }), n = s;
539
+ continue;
540
+ }
541
+ if (o === "(") {
542
+ let l = 1, s = "", i = n + 1, a = false;
543
+ if (e[i] === "?") {
544
+ c(`Pattern cannot start with "?" at ${i}`);
545
+ continue;
546
+ }
547
+ for (;i < e.length; ) {
548
+ if (!Re(e[i], false)) {
549
+ c(`Invalid character '${e[i]}' at ${i}.`), a = true;
550
+ break;
551
+ }
552
+ if (e[i] === "\\") {
553
+ s += e[i++] + e[i++];
554
+ continue;
555
+ }
556
+ if (e[i] === ")") {
557
+ if (l--, l === 0) {
558
+ i++;
559
+ break;
560
+ }
561
+ } else if (e[i] === "(" && (l++, e[i + 1] !== "?")) {
562
+ c(`Capturing groups are not allowed at ${i}`), a = true;
563
+ break;
564
+ }
565
+ s += e[i++];
566
+ }
567
+ if (a)
568
+ continue;
569
+ if (l) {
570
+ c(`Unbalanced pattern at ${n}`);
571
+ continue;
572
+ }
573
+ if (!s) {
574
+ c(`Missing pattern at ${n}`);
575
+ continue;
576
+ }
577
+ r.push({ type: "REGEX", index: n, value: s }), n = i;
578
+ continue;
579
+ }
580
+ r.push({ type: "CHAR", index: n, value: e[n++] });
581
+ }
582
+ return r.push({ type: "END", index: n, value: "" }), r;
583
+ };
584
+ var D = function(e, t = {}) {
585
+ let r = v(e);
586
+ t.delimiter ??= "/#?", t.prefixes ??= "./";
587
+ let n = `[^${S(t.delimiter)}]+?`, o = [], c = 0, l = 0, s = "", i = new Set, a = (h) => {
588
+ if (l < r.length && r[l].type === h)
589
+ return r[l++].value;
590
+ }, f = () => a("OTHER_MODIFIER") ?? a("ASTERISK"), d = (h) => {
591
+ let u = a(h);
592
+ if (u !== undefined)
593
+ return u;
594
+ let { type: p, index: A } = r[l];
595
+ throw new TypeError(`Unexpected ${p} at ${A}, expected ${h}`);
596
+ }, T = () => {
597
+ let h = "", u;
598
+ for (;u = a("CHAR") ?? a("ESCAPED_CHAR"); )
599
+ h += u;
600
+ return h;
601
+ }, Se = (h) => h, L = t.encodePart || Se, I = "", U = (h) => {
602
+ I += h;
603
+ }, $ = () => {
604
+ I.length && (o.push(new R(3, "", "", L(I), "", 3)), I = "");
605
+ }, V = (h, u, p, A, Y) => {
606
+ let g = 3;
607
+ switch (Y) {
608
+ case "?":
609
+ g = 1;
610
+ break;
611
+ case "*":
612
+ g = 0;
613
+ break;
614
+ case "+":
615
+ g = 2;
616
+ break;
617
+ }
618
+ if (!u && !p && g === 3) {
619
+ U(h);
620
+ return;
621
+ }
622
+ if ($(), !u && !p) {
623
+ if (!h)
624
+ return;
625
+ o.push(new R(3, "", "", L(h), "", g));
626
+ return;
627
+ }
628
+ let m;
629
+ p ? p === "*" ? m = M : m = p : m = n;
630
+ let O = 2;
631
+ m === n ? (O = 1, m = "") : m === M && (O = 0, m = "");
632
+ let P;
633
+ if (u ? P = u : p && (P = c++), i.has(P))
634
+ throw new TypeError(`Duplicate name '${P}'.`);
635
+ i.add(P), o.push(new R(O, P, L(h), m, L(A), g));
636
+ };
637
+ for (;l < r.length; ) {
638
+ let h = a("CHAR"), u = a("NAME"), p = a("REGEX");
639
+ if (!u && !p && (p = a("ASTERISK")), u || p) {
640
+ let g = h ?? "";
641
+ t.prefixes.indexOf(g) === -1 && (U(g), g = ""), $();
642
+ let m = f();
643
+ V(g, u, p, "", m);
644
+ continue;
645
+ }
646
+ let A = h ?? a("ESCAPED_CHAR");
647
+ if (A) {
648
+ U(A);
649
+ continue;
650
+ }
651
+ if (a("OPEN")) {
652
+ let g = T(), m = a("NAME"), O = a("REGEX");
653
+ !m && !O && (O = a("ASTERISK"));
654
+ let P = T();
655
+ d("CLOSE");
656
+ let xe = f();
657
+ V(g, m, O, P, xe);
658
+ continue;
659
+ }
660
+ $(), d("END");
661
+ }
662
+ return o;
663
+ };
664
+ var S = function(e) {
665
+ return e.replace(/([.+*?^${}()[\]|/\\])/g, "\\$1");
666
+ };
667
+ var X = function(e) {
668
+ return e && e.ignoreCase ? "ui" : "u";
669
+ };
670
+ var Z = function(e, t, r) {
671
+ return F(D(e, r), t, r);
672
+ };
673
+ var k = function(e) {
674
+ switch (e) {
675
+ case 0:
676
+ return "*";
677
+ case 1:
678
+ return "?";
679
+ case 2:
680
+ return "+";
681
+ case 3:
682
+ return "";
683
+ }
684
+ };
685
+ var F = function(e, t, r = {}) {
686
+ r.delimiter ??= "/#?", r.prefixes ??= "./", r.sensitive ??= false, r.strict ??= false, r.end ??= true, r.start ??= true, r.endsWith = "";
687
+ let n = r.start ? "^" : "";
688
+ for (let s of e) {
689
+ if (s.type === 3) {
690
+ s.modifier === 3 ? n += S(s.value) : n += `(?:${S(s.value)})${k(s.modifier)}`;
691
+ continue;
692
+ }
693
+ t && t.push(s.name);
694
+ let i = `[^${S(r.delimiter)}]+?`, a = s.value;
695
+ if (s.type === 1 ? a = i : s.type === 0 && (a = M), !s.prefix.length && !s.suffix.length) {
696
+ s.modifier === 3 || s.modifier === 1 ? n += `(${a})${k(s.modifier)}` : n += `((?:${a})${k(s.modifier)})`;
697
+ continue;
698
+ }
699
+ if (s.modifier === 3 || s.modifier === 1) {
700
+ n += `(?:${S(s.prefix)}(${a})${S(s.suffix)})`, n += k(s.modifier);
701
+ continue;
702
+ }
703
+ n += `(?:${S(s.prefix)}`, n += `((?:${a})(?:`, n += S(s.suffix), n += S(s.prefix), n += `(?:${a}))*)${S(s.suffix)})`, s.modifier === 0 && (n += "?");
704
+ }
705
+ let o = `[${S(r.endsWith)}]|\$`, c = `[${S(r.delimiter)}]`;
706
+ if (r.end)
707
+ return r.strict || (n += `${c}?`), r.endsWith.length ? n += `(?=${o})` : n += "$", new RegExp(n, X(r));
708
+ r.strict || (n += `(?:${c}(?=${o}))?`);
709
+ let l = false;
710
+ if (e.length) {
711
+ let s = e[e.length - 1];
712
+ s.type === 3 && s.modifier === 3 && (l = r.delimiter.indexOf(s) > -1);
713
+ }
714
+ return l || (n += `(?=${c}|${o})`), new RegExp(n, X(r));
715
+ };
716
+ var J = function(e, t) {
717
+ return e.length ? e[0] === "/" ? true : !t || e.length < 2 ? false : (e[0] == "\\" || e[0] == "{") && e[1] == "/" : false;
718
+ };
719
+ var Q = function(e, t) {
720
+ return e.startsWith(t) ? e.substring(t.length, e.length) : e;
721
+ };
722
+ var Ee = function(e, t) {
723
+ return e.endsWith(t) ? e.substr(0, e.length - t.length) : e;
724
+ };
725
+ var W = function(e) {
726
+ return !e || e.length < 2 ? false : e[0] === "[" || (e[0] === "\\" || e[0] === "{") && e[1] === "[";
727
+ };
728
+ var N = function(e) {
729
+ if (!e)
730
+ return true;
731
+ for (let t of ee)
732
+ if (e.test(t))
733
+ return true;
734
+ return false;
735
+ };
736
+ var te = function(e, t) {
737
+ if (e = Q(e, "#"), t || e === "")
738
+ return e;
739
+ let r = new URL("https://example.com");
740
+ return r.hash = e, r.hash ? r.hash.substring(1, r.hash.length) : "";
741
+ };
742
+ var re = function(e, t) {
743
+ if (e = Q(e, "?"), t || e === "")
744
+ return e;
745
+ let r = new URL("https://example.com");
746
+ return r.search = e, r.search ? r.search.substring(1, r.search.length) : "";
747
+ };
748
+ var ne = function(e, t) {
749
+ return t || e === "" ? e : W(e) ? j(e) : z(e);
750
+ };
751
+ var se = function(e, t) {
752
+ if (t || e === "")
753
+ return e;
754
+ let r = new URL("https://example.com");
755
+ return r.password = e, r.password;
756
+ };
757
+ var ie = function(e, t) {
758
+ if (t || e === "")
759
+ return e;
760
+ let r = new URL("https://example.com");
761
+ return r.username = e, r.username;
762
+ };
763
+ var ae = function(e, t, r) {
764
+ if (r || e === "")
765
+ return e;
766
+ if (t && !ee.includes(t))
767
+ return new URL(`${t}:${e}`).pathname;
768
+ let n = e[0] == "/";
769
+ return e = new URL(n ? e : "/-" + e, "https://example.com").pathname, n || (e = e.substring(2, e.length)), e;
770
+ };
771
+ var oe = function(e, t, r) {
772
+ return _(t) === e && (e = ""), r || e === "" ? e : K(e);
773
+ };
774
+ var ce = function(e, t) {
775
+ return e = Ee(e, ":"), t || e === "" ? e : y(e);
776
+ };
777
+ var _ = function(e) {
778
+ switch (e) {
779
+ case "ws":
780
+ case "http":
781
+ return "80";
782
+ case "wws":
783
+ case "https":
784
+ return "443";
785
+ case "ftp":
786
+ return "21";
787
+ default:
788
+ return "";
789
+ }
790
+ };
791
+ var y = function(e) {
792
+ if (e === "")
793
+ return e;
794
+ if (/^[-+.A-Za-z0-9]*$/.test(e))
795
+ return e.toLowerCase();
796
+ throw new TypeError(`Invalid protocol '${e}'.`);
797
+ };
798
+ var le = function(e) {
799
+ if (e === "")
800
+ return e;
801
+ let t = new URL("https://example.com");
802
+ return t.username = e, t.username;
803
+ };
804
+ var fe = function(e) {
805
+ if (e === "")
806
+ return e;
807
+ let t = new URL("https://example.com");
808
+ return t.password = e, t.password;
809
+ };
810
+ var z = function(e) {
811
+ if (e === "")
812
+ return e;
813
+ if (/[\t\n\r #%/:<>?@[\]^\\|]/g.test(e))
814
+ throw new TypeError(`Invalid hostname '${e}'`);
815
+ let t = new URL("https://example.com");
816
+ return t.hostname = e, t.hostname;
817
+ };
818
+ var j = function(e) {
819
+ if (e === "")
820
+ return e;
821
+ if (/[^0-9a-fA-F[\]:]/g.test(e))
822
+ throw new TypeError(`Invalid IPv6 hostname '${e}'`);
823
+ return e.toLowerCase();
824
+ };
825
+ var K = function(e) {
826
+ if (e === "" || /^[0-9]*$/.test(e) && parseInt(e) <= 65535)
827
+ return e;
828
+ throw new TypeError(`Invalid port '${e}'.`);
829
+ };
830
+ var he = function(e) {
831
+ if (e === "")
832
+ return e;
833
+ let t = new URL("https://example.com");
834
+ return t.pathname = e[0] !== "/" ? "/-" + e : e, e[0] !== "/" ? t.pathname.substring(2, t.pathname.length) : t.pathname;
835
+ };
836
+ var ue = function(e) {
837
+ return e === "" ? e : new URL(`data:${e}`).pathname;
838
+ };
839
+ var de = function(e) {
840
+ if (e === "")
841
+ return e;
842
+ let t = new URL("https://example.com");
843
+ return t.search = e, t.search.substring(1, t.search.length);
844
+ };
845
+ var pe = function(e) {
846
+ if (e === "")
847
+ return e;
848
+ let t = new URL("https://example.com");
849
+ return t.hash = e, t.hash.substring(1, t.hash.length);
850
+ };
851
+ var ge = function(e, t) {
852
+ if (typeof e != "string")
853
+ throw new TypeError("parameter 1 is not of type 'string'.");
854
+ let r = new URL(e, t);
855
+ return { protocol: r.protocol.substring(0, r.protocol.length - 1), username: r.username, password: r.password, hostname: r.hostname, port: r.port, pathname: r.pathname, search: r.search !== "" ? r.search.substring(1, r.search.length) : undefined, hash: r.hash !== "" ? r.hash.substring(1, r.hash.length) : undefined };
856
+ };
857
+ var b = function(e, t) {
858
+ return t ? C(e) : e;
859
+ };
860
+ var w = function(e, t, r) {
861
+ let n;
862
+ if (typeof t.baseURL == "string")
863
+ try {
864
+ n = new URL(t.baseURL), t.protocol === undefined && (e.protocol = b(n.protocol.substring(0, n.protocol.length - 1), r)), !r && t.protocol === undefined && t.hostname === undefined && t.port === undefined && t.username === undefined && (e.username = b(n.username, r)), !r && t.protocol === undefined && t.hostname === undefined && t.port === undefined && t.username === undefined && t.password === undefined && (e.password = b(n.password, r)), t.protocol === undefined && t.hostname === undefined && (e.hostname = b(n.hostname, r)), t.protocol === undefined && t.hostname === undefined && t.port === undefined && (e.port = b(n.port, r)), t.protocol === undefined && t.hostname === undefined && t.port === undefined && t.pathname === undefined && (e.pathname = b(n.pathname, r)), t.protocol === undefined && t.hostname === undefined && t.port === undefined && t.pathname === undefined && t.search === undefined && (e.search = b(n.search.substring(1, n.search.length), r)), t.protocol === undefined && t.hostname === undefined && t.port === undefined && t.pathname === undefined && t.search === undefined && t.hash === undefined && (e.hash = b(n.hash.substring(1, n.hash.length), r));
865
+ } catch {
866
+ throw new TypeError(`invalid baseURL '${t.baseURL}'.`);
867
+ }
868
+ if (typeof t.protocol == "string" && (e.protocol = ce(t.protocol, r)), typeof t.username == "string" && (e.username = ie(t.username, r)), typeof t.password == "string" && (e.password = se(t.password, r)), typeof t.hostname == "string" && (e.hostname = ne(t.hostname, r)), typeof t.port == "string" && (e.port = oe(t.port, e.protocol, r)), typeof t.pathname == "string") {
869
+ if (e.pathname = t.pathname, n && !J(e.pathname, r)) {
870
+ let o = n.pathname.lastIndexOf("/");
871
+ o >= 0 && (e.pathname = b(n.pathname.substring(0, o + 1), r) + e.pathname);
872
+ }
873
+ e.pathname = ae(e.pathname, e.protocol, r);
874
+ }
875
+ return typeof t.search == "string" && (e.search = re(t.search, r)), typeof t.hash == "string" && (e.hash = te(t.hash, r)), e;
876
+ };
877
+ var C = function(e) {
878
+ return e.replace(/([+*?:{}()\\])/g, "\\$1");
879
+ };
880
+ var Oe = function(e) {
881
+ return e.replace(/([.+*?^${}()[\]|/\\])/g, "\\$1");
882
+ };
883
+ var ke = function(e, t) {
884
+ t.delimiter ??= "/#?", t.prefixes ??= "./", t.sensitive ??= false, t.strict ??= false, t.end ??= true, t.start ??= true, t.endsWith = "";
885
+ let r = ".*", n = `[^${Oe(t.delimiter)}]+?`, o = /[$_\u200C\u200D\p{ID_Continue}]/u, c = "";
886
+ for (let l = 0;l < e.length; ++l) {
887
+ let s = e[l];
888
+ if (s.type === 3) {
889
+ if (s.modifier === 3) {
890
+ c += C(s.value);
891
+ continue;
892
+ }
893
+ c += `{${C(s.value)}}${k(s.modifier)}`;
894
+ continue;
895
+ }
896
+ let i = s.hasCustomName(), a = !!s.suffix.length || !!s.prefix.length && (s.prefix.length !== 1 || !t.prefixes.includes(s.prefix)), f = l > 0 ? e[l - 1] : null, d = l < e.length - 1 ? e[l + 1] : null;
897
+ if (!a && i && s.type === 1 && s.modifier === 3 && d && !d.prefix.length && !d.suffix.length)
898
+ if (d.type === 3) {
899
+ let T = d.value.length > 0 ? d.value[0] : "";
900
+ a = o.test(T);
901
+ } else
902
+ a = !d.hasCustomName();
903
+ if (!a && !s.prefix.length && f && f.type === 3) {
904
+ let T = f.value[f.value.length - 1];
905
+ a = t.prefixes.includes(T);
906
+ }
907
+ a && (c += "{"), c += C(s.prefix), i && (c += `:${s.name}`), s.type === 2 ? c += `(${s.value})` : s.type === 1 ? i || (c += `(${n})`) : s.type === 0 && (!i && (!f || f.type === 3 || f.modifier !== 3 || a || s.prefix !== "") ? c += "*" : c += `(${r})`), s.type === 1 && i && s.suffix.length && o.test(s.suffix[0]) && (c += "\\"), c += C(s.suffix), a && (c += "}"), s.modifier !== 3 && (c += k(s.modifier));
908
+ }
909
+ return c;
910
+ };
911
+ var R = class {
912
+ type = 3;
913
+ name = "";
914
+ prefix = "";
915
+ value = "";
916
+ suffix = "";
917
+ modifier = 3;
918
+ constructor(t, r, n, o, c, l) {
919
+ this.type = t, this.name = r, this.prefix = n, this.value = o, this.suffix = c, this.modifier = l;
920
+ }
921
+ hasCustomName() {
922
+ return this.name !== "" && typeof this.name != "number";
923
+ }
924
+ };
925
+ var be = /[$_\p{ID_Start}]/u;
926
+ var Pe = /[$_\u200C\u200D\p{ID_Continue}]/u;
927
+ var M = ".*";
928
+ var x = { delimiter: "", prefixes: "", sensitive: true, strict: true };
929
+ var B = { delimiter: ".", prefixes: "", sensitive: true, strict: true };
930
+ var q = { delimiter: "/", prefixes: "/", sensitive: true, strict: true };
931
+ var ee = ["ftp", "file", "http", "https", "ws", "wss"];
932
+ var H = class {
933
+ #i;
934
+ #n = [];
935
+ #t = {};
936
+ #e = 0;
937
+ #s = 1;
938
+ #l = 0;
939
+ #o = 0;
940
+ #d = 0;
941
+ #p = 0;
942
+ #g = false;
943
+ constructor(t) {
944
+ this.#i = t;
945
+ }
946
+ get result() {
947
+ return this.#t;
948
+ }
949
+ parse() {
950
+ for (this.#n = v(this.#i, true);this.#e < this.#n.length; this.#e += this.#s) {
951
+ if (this.#s = 1, this.#n[this.#e].type === "END") {
952
+ if (this.#o === 0) {
953
+ this.#b(), this.#f() ? this.#r(9, 1) : this.#h() ? this.#r(8, 1) : this.#r(7, 0);
954
+ continue;
955
+ } else if (this.#o === 2) {
956
+ this.#u(5);
957
+ continue;
958
+ }
959
+ this.#r(10, 0);
960
+ break;
961
+ }
962
+ if (this.#d > 0)
963
+ if (this.#A())
964
+ this.#d -= 1;
965
+ else
966
+ continue;
967
+ if (this.#T()) {
968
+ this.#d += 1;
969
+ continue;
970
+ }
971
+ switch (this.#o) {
972
+ case 0:
973
+ this.#P() && this.#u(1);
974
+ break;
975
+ case 1:
976
+ if (this.#P()) {
977
+ this.#C();
978
+ let t = 7, r = 1;
979
+ this.#E() ? (t = 2, r = 3) : this.#g && (t = 2), this.#r(t, r);
980
+ }
981
+ break;
982
+ case 2:
983
+ this.#S() ? this.#u(3) : (this.#x() || this.#h() || this.#f()) && this.#u(5);
984
+ break;
985
+ case 3:
986
+ this.#O() ? this.#r(4, 1) : this.#S() && this.#r(5, 1);
987
+ break;
988
+ case 4:
989
+ this.#S() && this.#r(5, 1);
990
+ break;
991
+ case 5:
992
+ this.#y() ? this.#p += 1 : this.#w() && (this.#p -= 1), this.#k() && !this.#p ? this.#r(6, 1) : this.#x() ? this.#r(7, 0) : this.#h() ? this.#r(8, 1) : this.#f() && this.#r(9, 1);
993
+ break;
994
+ case 6:
995
+ this.#x() ? this.#r(7, 0) : this.#h() ? this.#r(8, 1) : this.#f() && this.#r(9, 1);
996
+ break;
997
+ case 7:
998
+ this.#h() ? this.#r(8, 1) : this.#f() && this.#r(9, 1);
999
+ break;
1000
+ case 8:
1001
+ this.#f() && this.#r(9, 1);
1002
+ break;
1003
+ case 9:
1004
+ break;
1005
+ case 10:
1006
+ break;
1007
+ }
1008
+ }
1009
+ this.#t.hostname !== undefined && this.#t.port === undefined && (this.#t.port = "");
1010
+ }
1011
+ #r(t, r) {
1012
+ switch (this.#o) {
1013
+ case 0:
1014
+ break;
1015
+ case 1:
1016
+ this.#t.protocol = this.#c();
1017
+ break;
1018
+ case 2:
1019
+ break;
1020
+ case 3:
1021
+ this.#t.username = this.#c();
1022
+ break;
1023
+ case 4:
1024
+ this.#t.password = this.#c();
1025
+ break;
1026
+ case 5:
1027
+ this.#t.hostname = this.#c();
1028
+ break;
1029
+ case 6:
1030
+ this.#t.port = this.#c();
1031
+ break;
1032
+ case 7:
1033
+ this.#t.pathname = this.#c();
1034
+ break;
1035
+ case 8:
1036
+ this.#t.search = this.#c();
1037
+ break;
1038
+ case 9:
1039
+ this.#t.hash = this.#c();
1040
+ break;
1041
+ case 10:
1042
+ break;
1043
+ }
1044
+ this.#o !== 0 && t !== 10 && ([1, 2, 3, 4].includes(this.#o) && [6, 7, 8, 9].includes(t) && (this.#t.hostname ??= ""), [1, 2, 3, 4, 5, 6].includes(this.#o) && [8, 9].includes(t) && (this.#t.pathname ??= this.#g ? "/" : ""), [1, 2, 3, 4, 5, 6, 7].includes(this.#o) && t === 9 && (this.#t.search ??= "")), this.#R(t, r);
1045
+ }
1046
+ #R(t, r) {
1047
+ this.#o = t, this.#l = this.#e + r, this.#e += r, this.#s = 0;
1048
+ }
1049
+ #b() {
1050
+ this.#e = this.#l, this.#s = 0;
1051
+ }
1052
+ #u(t) {
1053
+ this.#b(), this.#o = t;
1054
+ }
1055
+ #m(t) {
1056
+ return t < 0 && (t = this.#n.length - t), t < this.#n.length ? this.#n[t] : this.#n[this.#n.length - 1];
1057
+ }
1058
+ #a(t, r) {
1059
+ let n = this.#m(t);
1060
+ return n.value === r && (n.type === "CHAR" || n.type === "ESCAPED_CHAR" || n.type === "INVALID_CHAR");
1061
+ }
1062
+ #P() {
1063
+ return this.#a(this.#e, ":");
1064
+ }
1065
+ #E() {
1066
+ return this.#a(this.#e + 1, "/") && this.#a(this.#e + 2, "/");
1067
+ }
1068
+ #S() {
1069
+ return this.#a(this.#e, "@");
1070
+ }
1071
+ #O() {
1072
+ return this.#a(this.#e, ":");
1073
+ }
1074
+ #k() {
1075
+ return this.#a(this.#e, ":");
1076
+ }
1077
+ #x() {
1078
+ return this.#a(this.#e, "/");
1079
+ }
1080
+ #h() {
1081
+ if (this.#a(this.#e, "?"))
1082
+ return true;
1083
+ if (this.#n[this.#e].value !== "?")
1084
+ return false;
1085
+ let t = this.#m(this.#e - 1);
1086
+ return t.type !== "NAME" && t.type !== "REGEX" && t.type !== "CLOSE" && t.type !== "ASTERISK";
1087
+ }
1088
+ #f() {
1089
+ return this.#a(this.#e, "#");
1090
+ }
1091
+ #T() {
1092
+ return this.#n[this.#e].type == "OPEN";
1093
+ }
1094
+ #A() {
1095
+ return this.#n[this.#e].type == "CLOSE";
1096
+ }
1097
+ #y() {
1098
+ return this.#a(this.#e, "[");
1099
+ }
1100
+ #w() {
1101
+ return this.#a(this.#e, "]");
1102
+ }
1103
+ #c() {
1104
+ let t = this.#n[this.#e], r = this.#m(this.#l).index;
1105
+ return this.#i.substring(r, t.index);
1106
+ }
1107
+ #C() {
1108
+ let t = {};
1109
+ Object.assign(t, x), t.encodePart = y;
1110
+ let r = Z(this.#c(), undefined, t);
1111
+ this.#g = N(r);
1112
+ }
1113
+ };
1114
+ var G = ["protocol", "username", "password", "hostname", "port", "pathname", "search", "hash"];
1115
+ var E = "*";
1116
+ var me = class {
1117
+ #i;
1118
+ #n = {};
1119
+ #t = {};
1120
+ #e = {};
1121
+ #s = {};
1122
+ #l = false;
1123
+ constructor(t = {}, r, n) {
1124
+ try {
1125
+ let o;
1126
+ if (typeof r == "string" ? o = r : n = r, typeof t == "string") {
1127
+ let i = new H(t);
1128
+ if (i.parse(), t = i.result, o === undefined && typeof t.protocol != "string")
1129
+ throw new TypeError("A base URL must be provided for a relative constructor string.");
1130
+ t.baseURL = o;
1131
+ } else {
1132
+ if (!t || typeof t != "object")
1133
+ throw new TypeError("parameter 1 is not of type 'string' and cannot convert to dictionary.");
1134
+ if (o)
1135
+ throw new TypeError("parameter 1 is not of type 'string'.");
1136
+ }
1137
+ typeof n > "u" && (n = { ignoreCase: false });
1138
+ let c = { ignoreCase: n.ignoreCase === true }, l = { pathname: E, protocol: E, username: E, password: E, hostname: E, port: E, search: E, hash: E };
1139
+ this.#i = w(l, t, true), _(this.#i.protocol) === this.#i.port && (this.#i.port = "");
1140
+ let s;
1141
+ for (s of G) {
1142
+ if (!(s in this.#i))
1143
+ continue;
1144
+ let i = {}, a = this.#i[s];
1145
+ switch (this.#t[s] = [], s) {
1146
+ case "protocol":
1147
+ Object.assign(i, x), i.encodePart = y;
1148
+ break;
1149
+ case "username":
1150
+ Object.assign(i, x), i.encodePart = le;
1151
+ break;
1152
+ case "password":
1153
+ Object.assign(i, x), i.encodePart = fe;
1154
+ break;
1155
+ case "hostname":
1156
+ Object.assign(i, B), W(a) ? i.encodePart = j : i.encodePart = z;
1157
+ break;
1158
+ case "port":
1159
+ Object.assign(i, x), i.encodePart = K;
1160
+ break;
1161
+ case "pathname":
1162
+ N(this.#n.protocol) ? (Object.assign(i, q, c), i.encodePart = he) : (Object.assign(i, x, c), i.encodePart = ue);
1163
+ break;
1164
+ case "search":
1165
+ Object.assign(i, x, c), i.encodePart = de;
1166
+ break;
1167
+ case "hash":
1168
+ Object.assign(i, x, c), i.encodePart = pe;
1169
+ break;
1170
+ }
1171
+ try {
1172
+ this.#s[s] = D(a, i), this.#n[s] = F(this.#s[s], this.#t[s], i), this.#e[s] = ke(this.#s[s], i), this.#l = this.#l || this.#s[s].some((f) => f.type === 2);
1173
+ } catch {
1174
+ throw new TypeError(`invalid ${s} pattern '${this.#i[s]}'.`);
1175
+ }
1176
+ }
1177
+ } catch (o) {
1178
+ throw new TypeError(`Failed to construct 'URLPattern': ${o.message}`);
1179
+ }
1180
+ }
1181
+ test(t = {}, r) {
1182
+ let n = { pathname: "", protocol: "", username: "", password: "", hostname: "", port: "", search: "", hash: "" };
1183
+ if (typeof t != "string" && r)
1184
+ throw new TypeError("parameter 1 is not of type 'string'.");
1185
+ if (typeof t > "u")
1186
+ return false;
1187
+ try {
1188
+ typeof t == "object" ? n = w(n, t, false) : n = w(n, ge(t, r), false);
1189
+ } catch {
1190
+ return false;
1191
+ }
1192
+ let o;
1193
+ for (o of G)
1194
+ if (!this.#n[o].exec(n[o]))
1195
+ return false;
1196
+ return true;
1197
+ }
1198
+ exec(t = {}, r) {
1199
+ let n = { pathname: "", protocol: "", username: "", password: "", hostname: "", port: "", search: "", hash: "" };
1200
+ if (typeof t != "string" && r)
1201
+ throw new TypeError("parameter 1 is not of type 'string'.");
1202
+ if (typeof t > "u")
1203
+ return;
1204
+ try {
1205
+ typeof t == "object" ? n = w(n, t, false) : n = w(n, ge(t, r), false);
1206
+ } catch {
1207
+ return null;
1208
+ }
1209
+ let o = {};
1210
+ r ? o.inputs = [t, r] : o.inputs = [t];
1211
+ let c;
1212
+ for (c of G) {
1213
+ let l = this.#n[c].exec(n[c]);
1214
+ if (!l)
1215
+ return null;
1216
+ let s = {};
1217
+ for (let [i, a] of this.#t[c].entries())
1218
+ if (typeof a == "string" || typeof a == "number") {
1219
+ let f = l[i + 1];
1220
+ s[a] = f;
1221
+ }
1222
+ o[c] = { input: n[c] ?? "", groups: s };
1223
+ }
1224
+ return o;
1225
+ }
1226
+ static compareComponent(t, r, n) {
1227
+ let o = (i, a) => {
1228
+ for (let f of ["type", "modifier", "prefix", "value", "suffix"]) {
1229
+ if (i[f] < a[f])
1230
+ return -1;
1231
+ if (i[f] === a[f])
1232
+ continue;
1233
+ return 1;
1234
+ }
1235
+ return 0;
1236
+ }, c = new R(3, "", "", "", "", 3), l = new R(0, "", "", "", "", 3), s = (i, a) => {
1237
+ let f = 0;
1238
+ for (;f < Math.min(i.length, a.length); ++f) {
1239
+ let d = o(i[f], a[f]);
1240
+ if (d)
1241
+ return d;
1242
+ }
1243
+ return i.length === a.length ? 0 : o(i[f] ?? c, a[f] ?? c);
1244
+ };
1245
+ return !r.#e[t] && !n.#e[t] ? 0 : r.#e[t] && !n.#e[t] ? s(r.#s[t], [l]) : !r.#e[t] && n.#e[t] ? s([l], n.#s[t]) : s(r.#s[t], n.#s[t]);
1246
+ }
1247
+ get protocol() {
1248
+ return this.#e.protocol;
1249
+ }
1250
+ get username() {
1251
+ return this.#e.username;
1252
+ }
1253
+ get password() {
1254
+ return this.#e.password;
1255
+ }
1256
+ get hostname() {
1257
+ return this.#e.hostname;
1258
+ }
1259
+ get port() {
1260
+ return this.#e.port;
1261
+ }
1262
+ get pathname() {
1263
+ return this.#e.pathname;
1264
+ }
1265
+ get search() {
1266
+ return this.#e.search;
1267
+ }
1268
+ get hash() {
1269
+ return this.#e.hash;
1270
+ }
1271
+ get hasRegExpGroups() {
1272
+ return this.#l;
1273
+ }
1274
+ };
1275
+
1276
+ // ../../node_modules/urlpattern-polyfill/index.js
1277
+ if (!globalThis.URLPattern) {
1278
+ globalThis.URLPattern = me;
1279
+ }
1280
+
1281
+ // server/generateEtag.ts
1282
+ function generateETag(lastModified) {
1283
+ const lastModifiedStr = lastModified.toString();
1284
+ const hasher = new Bun.CryptoHasher("sha1");
1285
+ hasher.update(lastModifiedStr);
1286
+ const hash = hasher.digest("hex");
1287
+ return hash;
1288
+ }
1289
+
1290
+ // ../../node_modules/uuid/wrapper.mjs
1291
+ var dist = __toESM(require_dist(), 1);
1292
+ var v1 = dist.default.v1;
1293
+ var v3 = dist.default.v3;
1294
+ var v4 = dist.default.v4;
1295
+ var v5 = dist.default.v5;
1296
+ var NIL = dist.default.NIL;
1297
+ var version = dist.default.version;
1298
+ var validate = dist.default.validate;
1299
+ var stringify = dist.default.stringify;
1300
+ var parse = dist.default.parse;
1301
+
1302
+ // http/Error.ts
1303
+ class RequestBreakerError extends Error {
1304
+ constructor() {
1305
+ super(...arguments);
1306
+ }
1307
+ payload = { api: {}, view: {} };
1308
+ }
1309
+
1310
+ // http/requestContext.ts
1311
+ import {AsyncLocalStorage} from "async_hooks";
1312
+ var requestContext = new AsyncLocalStorage;
1313
+
1314
+ // app/App.ts
1315
+ var prepareViewData = function(result) {
1316
+ return result.reduce((acc, next) => {
1317
+ return {
1318
+ pageData: {
1319
+ ...acc.pageData,
1320
+ ...next.data
1321
+ },
1322
+ headers: {
1323
+ ...acc.headers,
1324
+ ...next.headers
1325
+ },
1326
+ head: {
1327
+ ...acc.head,
1328
+ title: next?.head?.title ?? acc.head?.title ?? "Gemi App",
1329
+ meta: [...acc.head.meta, ...next?.head?.meta ?? []],
1330
+ link: [...acc.head.link, ...next?.head?.link ?? []]
1331
+ }
1332
+ };
1333
+ }, { pageData: {}, headers: {}, head: defaultHead });
1334
+ };
1335
+ var defaultHead = {
1336
+ title: "The UI Agents",
1337
+ meta: [
1338
+ { charSet: "utf-8" },
1339
+ { name: "viewport", content: "width=device-width, initial-scale=1" },
1340
+ {
1341
+ name: "description",
1342
+ content: "Fastest way to start your B2B SaaS journey. Immediately access to high quality templates and slingshot your startup into the future."
1343
+ }
1344
+ ],
1345
+ link: [{ rel: "icon", href: "/favicon.ico" }]
1346
+ };
1347
+
1348
+ class App {
1349
+ flatViewRoutes = {};
1350
+ flatApiRoutes = {};
1351
+ routeManifest = {};
1352
+ name = "APP";
1353
+ appId;
1354
+ componentTree;
1355
+ middlewareAliases = {};
1356
+ constructor(params) {
1357
+ this.middlewareAliases = params.middlewareAliases ?? {};
1358
+ let viewRouters = {
1359
+ "/": params.viewRouter
1360
+ };
1361
+ let apiRouters = {
1362
+ "/": params.apiRouter
1363
+ };
1364
+ for (const Plugin of params.plugins ?? []) {
1365
+ const plugin = new Plugin;
1366
+ if (plugin.viewRouter) {
1367
+ viewRouters = {
1368
+ ...viewRouters,
1369
+ [plugin.viewRoutesBasePath]: plugin.viewRouter
1370
+ };
1371
+ }
1372
+ if (plugin.apiRouter) {
1373
+ apiRouters = {
1374
+ ...apiRouters,
1375
+ [plugin.apiRoutesBasePath]: plugin.apiRouter
1376
+ };
1377
+ }
1378
+ }
1379
+ const { flatRoutes, routeManifest, componentTree } = this.flattenViewRoutes(viewRouters);
1380
+ this.componentTree = componentTree;
1381
+ this.routeManifest = routeManifest;
1382
+ this.flatViewRoutes = flatRoutes;
1383
+ this.flatApiRoutes = this.flattenApiRoutes(apiRouters);
1384
+ this.appId = generateETag(Date.now());
1385
+ }
1386
+ printName() {
1387
+ console.log(this.name);
1388
+ }
1389
+ getComponentTree() {
1390
+ return this.componentTree;
1391
+ }
1392
+ flattenApiRoutes(routes) {
1393
+ const flatApiRoutes = {};
1394
+ for (const [rootPath, apiConfigOrApiRouter] of Object.entries(routes)) {
1395
+ if ("exec" in apiConfigOrApiRouter) {
1396
+ if (!flatApiRoutes[rootPath]) {
1397
+ flatApiRoutes[rootPath] = {};
1398
+ }
1399
+ flatApiRoutes[rootPath][apiConfigOrApiRouter.method] = {
1400
+ exec: apiConfigOrApiRouter.exec,
1401
+ middleware: []
1402
+ };
1403
+ } else if (Array.isArray(apiConfigOrApiRouter)) {
1404
+ for (const apiConfig of apiConfigOrApiRouter) {
1405
+ if (!flatApiRoutes[rootPath]) {
1406
+ flatApiRoutes[rootPath] = {};
1407
+ }
1408
+ flatApiRoutes[rootPath][apiConfig.method] = {
1409
+ exec: apiConfig.exec,
1410
+ middleware: []
1411
+ };
1412
+ }
1413
+ } else {
1414
+ const router = new apiConfigOrApiRouter(this);
1415
+ const middlewares = router.middlewares.map((alias) => {
1416
+ if (this.middlewareAliases?.[alias]) {
1417
+ const middleware = new this.middlewareAliases[alias];
1418
+ return middleware.run;
1419
+ }
1420
+ }).filter(Boolean);
1421
+ const result = this.flattenApiRoutes(router.routes);
1422
+ for (const [path, handlers] of Object.entries(result)) {
1423
+ const subPath = path === "/" ? "" : path;
1424
+ const _rootPath = rootPath === "/" ? "" : rootPath;
1425
+ const finalPath = `${_rootPath}${subPath}` === "" ? "/" : `${_rootPath}${subPath}`;
1426
+ if (!flatApiRoutes[finalPath]) {
1427
+ flatApiRoutes[finalPath] = {};
1428
+ }
1429
+ for (const [method, handler] of Object.entries(handlers)) {
1430
+ flatApiRoutes[finalPath][method] = {
1431
+ exec: handler.exec,
1432
+ middleware: [
1433
+ router.middleware,
1434
+ ...middlewares,
1435
+ ...handler.middleware
1436
+ ]
1437
+ };
1438
+ }
1439
+ }
1440
+ }
1441
+ }
1442
+ return flatApiRoutes;
1443
+ }
1444
+ flattenViewRoutes(routes) {
1445
+ const flatRoutes = {};
1446
+ const routeManifest = {};
1447
+ const componentTree = [];
1448
+ for (const [rootPath, viewConfigOrViewRouter] of Object.entries(routes)) {
1449
+ let children;
1450
+ let rootHandler = async () => ({});
1451
+ let rootMiddleware = [];
1452
+ let layoutViewPath = null;
1453
+ if ("prepare" in viewConfigOrViewRouter) {
1454
+ const result2 = viewConfigOrViewRouter.prepare();
1455
+ children = result2.children;
1456
+ rootHandler = result2.exec;
1457
+ flatRoutes[rootPath] = {
1458
+ exec: [rootHandler],
1459
+ middleware: result2.middlewares
1460
+ };
1461
+ if (Object.keys(children).length > 0) {
1462
+ layoutViewPath = result2.viewPath;
1463
+ } else {
1464
+ routeManifest[rootPath] = [result2.viewPath];
1465
+ componentTree.push([result2.viewPath]);
1466
+ }
1467
+ } else {
1468
+ const router = new viewConfigOrViewRouter(this);
1469
+ const middlewares = router.middlewares.map((alias) => {
1470
+ if (this.middlewareAliases?.[alias]) {
1471
+ const middleware = new this.middlewareAliases[alias];
1472
+ return middleware.run;
1473
+ }
1474
+ }).filter(Boolean);
1475
+ rootMiddleware.push(router.middleware, ...middlewares);
1476
+ children = router.routes;
1477
+ }
1478
+ const result = this.flattenViewRoutes(children);
1479
+ if (layoutViewPath) {
1480
+ componentTree.push({ [layoutViewPath]: result.componentTree });
1481
+ } else {
1482
+ componentTree.push(...result.componentTree);
1483
+ }
1484
+ for (const [path, handlers] of Object.entries(result.flatRoutes)) {
1485
+ const subPath = path === "/" ? "" : path;
1486
+ const _rootPath = rootPath === "/" ? "" : rootPath;
1487
+ const finalPath = `${_rootPath}${subPath}` === "" ? "/" : `${_rootPath}${subPath}`;
1488
+ flatRoutes[finalPath] = {
1489
+ exec: [rootHandler, ...handlers.exec],
1490
+ middleware: [...rootMiddleware, ...handlers.middleware]
1491
+ };
1492
+ if (layoutViewPath) {
1493
+ routeManifest[finalPath] = [
1494
+ layoutViewPath,
1495
+ ...result.routeManifest[path] ?? []
1496
+ ];
1497
+ } else {
1498
+ routeManifest[finalPath] = [...result.routeManifest[path] ?? []];
1499
+ }
1500
+ }
1501
+ }
1502
+ return {
1503
+ flatRoutes,
1504
+ routeManifest,
1505
+ componentTree
1506
+ };
1507
+ }
1508
+ async resolvePageData(req) {
1509
+ const url = new URL(req.url);
1510
+ let handlers = [];
1511
+ let middlewares = [];
1512
+ let currentPathName = "";
1513
+ let params = {};
1514
+ const sortedEntries = Object.entries(this.flatViewRoutes).sort(([pathA], [pathB]) => pathB.length - pathA.length);
1515
+ for (const [pathname, handler] of sortedEntries) {
1516
+ const pattern = new me({ pathname });
1517
+ if (pattern.test({ pathname: url.pathname })) {
1518
+ currentPathName = pathname;
1519
+ params = pattern.exec({ pathname: url.pathname })?.pathname.groups;
1520
+ handlers = handler.exec;
1521
+ middlewares = handler.middleware;
1522
+ }
1523
+ }
1524
+ const reqWithMiddlewares = middlewares.reduce((acc, middleware) => {
1525
+ return async (req2, ctx) => {
1526
+ return {
1527
+ ...await acc(req2, ctx),
1528
+ ...await middleware(req2, ctx)
1529
+ };
1530
+ };
1531
+ }, (req2, ctx) => Promise.resolve({}));
1532
+ const reqCtx = new Map;
1533
+ const result = await requestContext.run(reqCtx, async () => {
1534
+ await reqWithMiddlewares(req, reqCtx);
1535
+ return await Promise.all(handlers.map((fn) => fn(req, params)));
1536
+ });
1537
+ let is404 = false;
1538
+ for (const res of result) {
1539
+ if (Object.values(res.data ?? {})[0]?.status === 404) {
1540
+ is404 = true;
1541
+ break;
1542
+ }
1543
+ }
1544
+ return {
1545
+ is404,
1546
+ result,
1547
+ currentPathName,
1548
+ params,
1549
+ user: reqCtx.get("user") ?? null
1550
+ };
1551
+ }
1552
+ async handleRequest(req) {
1553
+ const url = new URL(req.url);
1554
+ if (url.pathname.startsWith("/api")) {
1555
+ const apiPath = url.pathname.replace("/api", "");
1556
+ for (const [path, handler] of Object.entries(this.flatApiRoutes)) {
1557
+ const pattern = new me({ pathname: path });
1558
+ if (pattern.test({ pathname: apiPath })) {
1559
+ const params = pattern.exec({ pathname: apiPath })?.pathname.groups;
1560
+ const exec = handler[req.method.toLowerCase()].exec;
1561
+ const middlewares = handler[req.method.toLowerCase()].middleware;
1562
+ const reqWithMiddlewares = middlewares.reduce((acc, middleware) => {
1563
+ return async (req2, ctx) => {
1564
+ return {
1565
+ ...await acc(req2, ctx),
1566
+ ...await middleware(req2, ctx)
1567
+ };
1568
+ };
1569
+ }, (req2) => Promise.resolve({}));
1570
+ const reqCtx = new Map;
1571
+ return await requestContext.run(reqCtx, async () => {
1572
+ try {
1573
+ await reqWithMiddlewares(req, reqCtx);
1574
+ } catch (err) {
1575
+ if (err instanceof RequestBreakerError) {
1576
+ return {
1577
+ kind: "apiError",
1578
+ ...err.payload.api
1579
+ };
1580
+ }
1581
+ }
1582
+ if (exec) {
1583
+ let result = {};
1584
+ try {
1585
+ result = await exec(req, params);
1586
+ } catch (err) {
1587
+ if (err instanceof RequestBreakerError) {
1588
+ return {
1589
+ kind: "apiError",
1590
+ ...err.payload.api
1591
+ };
1592
+ }
1593
+ }
1594
+ const { data, cookies = {}, headers, status } = result;
1595
+ return {
1596
+ kind: "api",
1597
+ data,
1598
+ headers: {
1599
+ ...headers,
1600
+ "Set-Cookie": Object.entries(cookies).map(([name, config]) => {
1601
+ return `${name}=${config.value}; HttpOnly; SameSite=Strict; Path=/; Max-Age=${config.maxAge}`;
1602
+ }).join(", ")
1603
+ },
1604
+ status
1605
+ };
1606
+ }
1607
+ });
1608
+ }
1609
+ }
1610
+ return {
1611
+ kind: "api_404"
1612
+ };
1613
+ } else {
1614
+ let pageData = null;
1615
+ try {
1616
+ pageData = await this.resolvePageData(req);
1617
+ } catch (err) {
1618
+ if (err instanceof RequestBreakerError) {
1619
+ return {
1620
+ kind: "viewError",
1621
+ ...err.payload.view
1622
+ };
1623
+ }
1624
+ }
1625
+ if (!pageData) {
1626
+ return {
1627
+ kind: "",
1628
+ data: {},
1629
+ meta: [],
1630
+ headers: {}
1631
+ };
1632
+ }
1633
+ const { result, params, currentPathName, is404, user } = pageData;
1634
+ const data = prepareViewData(result);
1635
+ if (url.searchParams.get("json")) {
1636
+ return {
1637
+ kind: "viewData",
1638
+ data: {
1639
+ [url.pathname]: data.pageData
1640
+ },
1641
+ meta: [],
1642
+ headers: data.headers
1643
+ };
1644
+ }
1645
+ let cookieHeaders = {};
1646
+ const visitorIdExist = req.headers.get("cookie")?.includes("visitor_id");
1647
+ if (!visitorIdExist) {
1648
+ cookieHeaders = {
1649
+ "Set-Cookie": `visitor_id=${v4()}; HttpOnly; SameSite=Strict; Path=/`
1650
+ };
1651
+ }
1652
+ return {
1653
+ kind: "view",
1654
+ data: {
1655
+ pageData: {
1656
+ [url.pathname]: data.pageData
1657
+ },
1658
+ auth: { user },
1659
+ routeManifest: this.routeManifest,
1660
+ router: {
1661
+ pathname: currentPathName,
1662
+ params,
1663
+ currentPath: url.pathname,
1664
+ is404
1665
+ },
1666
+ componentTree: [["404"], ...this.componentTree]
1667
+ },
1668
+ head: data.head,
1669
+ headers: {
1670
+ ...data.headers,
1671
+ "Content-Type": "text/html",
1672
+ "Cache-Control": user ? "private, no-cache, no-store, max-age=0, must-revalidate" : "public, max-age=864000, must-revalidate",
1673
+ ETag: this.appId,
1674
+ ...cookieHeaders
1675
+ },
1676
+ status: is404 ? 404 : 200,
1677
+ buildId: this.appId
1678
+ };
1679
+ }
1680
+ }
1681
+ handleWebSocketMessage = (ws, message) => {
1682
+ };
1683
+ handleWebSocketOpen = (ws) => {
1684
+ console.log("socket opened");
1685
+ };
1686
+ handleWebSocketClose = (ws, code, reason) => {
1687
+ console.log("socket closed");
1688
+ };
1689
+ websocket = {
1690
+ message: this.handleWebSocketMessage,
1691
+ open: this.handleWebSocketOpen,
1692
+ close: this.handleWebSocketClose
1693
+ };
1694
+ }
1695
+ export {
1696
+ App
1697
+ };