spiceflow 1.0.8 → 1.1.1

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 (76) hide show
  1. package/README.md +23 -8
  2. package/dist/benchmark.test.d.ts +2 -0
  3. package/dist/benchmark.test.d.ts.map +1 -0
  4. package/dist/benchmark.test.js +8 -0
  5. package/dist/benchmark.test.js.map +1 -0
  6. package/dist/client/index.d.ts +1 -1
  7. package/dist/client/index.d.ts.map +1 -1
  8. package/dist/client/index.js.map +1 -1
  9. package/dist/client/types.d.ts +1 -1
  10. package/dist/client/types.d.ts.map +1 -1
  11. package/dist/client/ws.d.ts +1 -1
  12. package/dist/client/ws.d.ts.map +1 -1
  13. package/dist/client.test.js +1 -18
  14. package/dist/client.test.js.map +1 -1
  15. package/dist/{elysia-fork/context.d.ts → context.d.ts} +8 -7
  16. package/dist/context.d.ts.map +1 -0
  17. package/dist/{elysia-fork/context.js.map → context.js.map} +1 -1
  18. package/dist/error.d.ts.map +1 -0
  19. package/dist/error.js.map +1 -0
  20. package/dist/index.d.ts +1 -2
  21. package/dist/index.d.ts.map +1 -1
  22. package/dist/index.js +1 -1
  23. package/dist/index.js.map +1 -1
  24. package/dist/middleware.test.d.ts +2 -0
  25. package/dist/middleware.test.d.ts.map +1 -0
  26. package/dist/middleware.test.js +99 -0
  27. package/dist/middleware.test.js.map +1 -0
  28. package/dist/openapi.d.ts +4 -15
  29. package/dist/openapi.d.ts.map +1 -1
  30. package/dist/spiceflow.d.ts +41 -120
  31. package/dist/spiceflow.d.ts.map +1 -1
  32. package/dist/spiceflow.js +223 -169
  33. package/dist/spiceflow.js.map +1 -1
  34. package/dist/spiceflow.test.js +54 -16
  35. package/dist/spiceflow.test.js.map +1 -1
  36. package/dist/types.d.ts +407 -0
  37. package/dist/types.d.ts.map +1 -1
  38. package/dist/types.js +1 -1
  39. package/dist/types.js.map +1 -1
  40. package/dist/utils.d.ts +72 -0
  41. package/dist/utils.d.ts.map +1 -1
  42. package/dist/utils.js +69 -0
  43. package/dist/utils.js.map +1 -1
  44. package/package.json +1 -1
  45. package/src/benchmark.test.ts +8 -0
  46. package/src/client/index.ts +1 -3
  47. package/src/client/types.ts +6 -13
  48. package/src/client/ws.ts +1 -1
  49. package/src/client.test.ts +1 -19
  50. package/src/context.ts +128 -0
  51. package/src/index.ts +1 -2
  52. package/src/middleware.test.ts +107 -0
  53. package/src/openapi.ts +1 -1
  54. package/src/spiceflow.test.ts +74 -16
  55. package/src/spiceflow.ts +324 -391
  56. package/src/types.test.ts +1 -1
  57. package/src/types.ts +929 -0
  58. package/src/utils.ts +84 -0
  59. package/dist/elysia-fork/context.d.ts.map +0 -1
  60. package/dist/elysia-fork/error.d.ts.map +0 -1
  61. package/dist/elysia-fork/error.js.map +0 -1
  62. package/dist/elysia-fork/types.d.ts +0 -560
  63. package/dist/elysia-fork/types.d.ts.map +0 -1
  64. package/dist/elysia-fork/types.js +0 -2
  65. package/dist/elysia-fork/types.js.map +0 -1
  66. package/dist/elysia-fork/utils.d.ts +0 -73
  67. package/dist/elysia-fork/utils.d.ts.map +0 -1
  68. package/dist/elysia-fork/utils.js +0 -70
  69. package/dist/elysia-fork/utils.js.map +0 -1
  70. package/src/elysia-fork/context.ts +0 -166
  71. package/src/elysia-fork/types.ts +0 -1281
  72. package/src/elysia-fork/utils.ts +0 -85
  73. /package/dist/{elysia-fork/context.js → context.js} +0 -0
  74. /package/dist/{elysia-fork/error.d.ts → error.d.ts} +0 -0
  75. /package/dist/{elysia-fork/error.js → error.js} +0 -0
  76. /package/src/{elysia-fork/error.ts → error.ts} +0 -0
package/dist/spiceflow.js CHANGED
@@ -25,11 +25,10 @@ let globalIndex = 0;
25
25
  // @ts-ignore
26
26
  import OriginalRouter from '@medley/router';
27
27
  import Ajv from 'ajv';
28
- import { isAsyncIterable } from './utils.js';
29
- import { redirect } from './elysia-fork/utils.js';
30
- import { ValidationError } from './elysia-fork/error.js';
31
- import { zodToJsonSchema } from 'zod-to-json-schema';
32
28
  import { z } from 'zod';
29
+ import { zodToJsonSchema } from 'zod-to-json-schema';
30
+ import { isProduction, NotFoundError, ValidationError } from './error.js';
31
+ import { isAsyncIterable, redirect } from './utils.js';
33
32
  const ajv = (addFormats.default || addFormats)(new (Ajv.default || Ajv)({ useDefaults: true }), [
34
33
  'date-time',
35
34
  'time',
@@ -50,13 +49,13 @@ const ajv = (addFormats.default || addFormats)(new (Ajv.default || Ajv)({ useDef
50
49
  * Router class
51
50
  */
52
51
  export class Spiceflow {
52
+ /** @internal */
53
53
  getAllRoutes() {
54
- let root = this.routerTree.currentRoot || this.routerTree;
54
+ let root = this.topLevelApp || this;
55
55
  const allApps = bfs(root) || [];
56
56
  const allRoutes = allApps.flatMap((x) => {
57
- const prefix = this.getRouteAndParents(x)
57
+ const prefix = this.getAppAndParents(x)
58
58
  .map((x) => x.prefix)
59
- .reverse()
60
59
  .join('');
61
60
  return x.routes.map((x) => (Object.assign(Object.assign({}, x), { path: prefix + x.path })));
62
61
  });
@@ -64,61 +63,51 @@ export class Spiceflow {
64
63
  }
65
64
  add(_a) {
66
65
  var { method, path, hooks, handler } = _a, rest = __rest(_a, ["method", "path", "hooks", "handler"]);
67
- const router = this.routerTree;
68
- // if (router.prefix) {
69
- // path = router.prefix + path
70
- // }
71
66
  let bodySchema = hooks === null || hooks === void 0 ? void 0 : hooks.body;
72
67
  let validateBody = getValidateFunction(bodySchema);
73
68
  let validateQuery = getValidateFunction(hooks === null || hooks === void 0 ? void 0 : hooks.query);
74
69
  let validateParams = getValidateFunction(hooks === null || hooks === void 0 ? void 0 : hooks.params);
75
- const store = router.router.register(path);
76
- let route = Object.assign(Object.assign({}, rest), { prefix: router.prefix || '', method: (method || ''), path: path || '',
77
- // prefix,
78
- handler: handler, hooks,
70
+ const store = this.router.register(path);
71
+ let route = Object.assign(Object.assign({}, rest), { prefix: this.prefix || '', method: (method || ''), path: path || '', handler: handler, hooks,
79
72
  validateBody,
80
73
  validateParams,
81
74
  validateQuery });
82
- router.routes.push(route);
75
+ this.routes.push(route);
83
76
  store[method] = route;
84
77
  }
85
78
  match(method, path) {
86
- let root = this.routerTree;
87
- const result = bfsFind(this.routerTree, (router) => {
88
- router.currentRoot = root;
89
- let prefix = this.getRouteAndParents(router)
79
+ let root = this;
80
+ const result = bfsFind(this, (app) => {
81
+ app.topLevelApp = root;
82
+ let prefix = this.getAppAndParents(app)
90
83
  .map((x) => x.prefix)
91
- .reverse()
92
84
  .join('');
93
85
  if (prefix && !path.startsWith(prefix)) {
94
- // console.log(
95
- // `router prefix: ${router.prefix} does not match path: ${path}`
96
- // )
97
86
  return;
98
87
  }
99
88
  let pathWithoutPrefix = path;
100
89
  if (prefix) {
101
90
  pathWithoutPrefix = path.replace(prefix, '');
102
91
  }
103
- // console.log(`router prefix: ${router.prefix} matches path: ${path}`)
104
- const route = router.router.find(pathWithoutPrefix);
105
- if (!route) {
92
+ const medleyRoute = app.router.find(pathWithoutPrefix);
93
+ if (!medleyRoute) {
106
94
  return;
107
95
  }
108
- let data = route['store'][method];
109
- if (data) {
110
- // console.log(`route found: ${method} ${path}`, route)
111
- const { onErrorHandlers, onRequestHandlers } = router;
112
- const params = route['params'] || {};
113
- return Object.assign(Object.assign({}, data), { router, store: router.store, onErrorHandlers,
114
- onRequestHandlers,
115
- params });
96
+ let internalRoute = medleyRoute.store[method];
97
+ if (internalRoute) {
98
+ const params = medleyRoute.params || {};
99
+ const res = {
100
+ app,
101
+ internalRoute: internalRoute,
102
+ params,
103
+ };
104
+ return res;
116
105
  }
117
106
  });
118
107
  return result;
119
108
  }
120
109
  state(name, value) {
121
- this.routerTree.store[name] = value;
110
+ this.defaultStore[name] = value;
122
111
  return this;
123
112
  }
124
113
  /**
@@ -126,7 +115,14 @@ export class Spiceflow {
126
115
  * @param options {@link RouterOptions} {@link Platform}
127
116
  */
128
117
  constructor(options = {}) {
129
- var _a;
118
+ this.id = globalIndex++;
119
+ this.router = new OriginalRouter();
120
+ this.middlewares = [];
121
+ this.onErrorHandlers = [];
122
+ this.routes = [];
123
+ this.defaultStore = {};
124
+ /** @internal */
125
+ this.childrenApps = [];
130
126
  this._routes = {};
131
127
  this._types = {
132
128
  Prefix: '',
@@ -135,27 +131,9 @@ export class Spiceflow {
135
131
  Definitions: {},
136
132
  Metadata: {},
137
133
  };
138
- this._ephemeral = {};
139
- this._volatile = {};
134
+ this.scoped = true;
140
135
  this.scoped = options.scoped;
141
- this.onNoMatch =
142
- (_a = options.onNoMatch) !== null && _a !== void 0 ? _a : (() => new Response(null, { status: 404 }));
143
- this.routerTree = {
144
- id: globalIndex++,
145
- router: new OriginalRouter(),
146
- prefix: options.basePath,
147
- onRequestHandlers: [],
148
- onErrorHandlers: [],
149
- children: [],
150
- store: {},
151
- routes: [],
152
- };
153
- // Bind router methods
154
- // for (const method of METHODS) {
155
- // this.#routes.set(method as Method, [])
156
- // const key = method.toLowerCase() as Lowercase<Method>
157
- // this[key as any] = this.#add.bind(this, method)
158
- // }
136
+ this.prefix = options.basePath;
159
137
  }
160
138
  post(path, handler, hook) {
161
139
  this.add({ method: 'POST', path, handler: handler, hooks: hook });
@@ -191,64 +169,21 @@ export class Spiceflow {
191
169
  this.add({ method: 'HEAD', path, handler: handler, hooks: hook });
192
170
  return this;
193
171
  }
194
- get _scoped() {
195
- return this.scoped;
196
- }
197
- // group is not needed, you can add another prefixed app instead
198
- // group<
199
- // const Prefix extends string,
200
- // const NewSpiceflow extends Spiceflow<any, any, any, any, any, any, any, any>
201
- // >(
202
- // prefix: Prefix,
203
- // run: (
204
- // group: Spiceflow<
205
- // `${BasePath}${Prefix}`,
206
- // Scoped,
207
- // Singleton,
208
- // Definitions,
209
- // Metadata,
210
- // {},
211
- // Ephemeral,
212
- // Volatile
213
- // >
214
- // ) => NewSpiceflow
215
- // ): Spiceflow<
216
- // BasePath,
217
- // Scoped,
218
- // Singleton,
219
- // Definitions,
220
- // Metadata,
221
- // Prettify<Routes & NewSpiceflow['_routes']>,
222
- // Ephemeral,
223
- // Volatile
224
- // > {
225
- // let thisRouter = this.routers[0]
226
- // this.routers.push(
227
- // ...instance.routers.map((r) => ({
228
- // ...r,
229
- // prefix: (thisRouter.prefix || '') + r.prefix
230
- // }))
231
- // )
232
- // return this
233
- // }
234
- use(instance) {
235
- const thisRouter = this.routerTree;
236
- // TODO use scoped logic to add onRequest and onError on all routers if necessary, add them first
237
- this.routerTree.children.push(instance.routerTree);
238
- return this;
239
- }
240
- onError(handler) {
172
+ use(appOrHandler) {
241
173
  var _a;
242
- const router = this.routerTree;
243
- (_a = router.onErrorHandlers) !== null && _a !== void 0 ? _a : (router.onErrorHandlers = []);
244
- router.onErrorHandlers.push(handler);
174
+ if (appOrHandler instanceof Spiceflow) {
175
+ this.childrenApps.push(appOrHandler);
176
+ }
177
+ else if (typeof appOrHandler === 'function') {
178
+ (_a = this.middlewares) !== null && _a !== void 0 ? _a : (this.middlewares = []);
179
+ this.middlewares.push(appOrHandler);
180
+ }
245
181
  return this;
246
182
  }
247
- onRequest(handler) {
183
+ onError(handler) {
248
184
  var _a;
249
- const router = this.routerTree;
250
- (_a = router.onRequestHandlers) !== null && _a !== void 0 ? _a : (router.onRequestHandlers = []);
251
- router.onRequestHandlers.push(handler);
185
+ (_a = this.onErrorHandlers) !== null && _a !== void 0 ? _a : (this.onErrorHandlers = []);
186
+ this.onErrorHandlers.push(handler);
252
187
  return this;
253
188
  }
254
189
  /**
@@ -257,9 +192,8 @@ export class Spiceflow {
257
192
  * @param platform Platform specific context {@link Platform}
258
193
  * @returns The final `Response`
259
194
  */
260
- async handle(request, platform) {
261
- var _a, _b;
262
- platform !== null && platform !== void 0 ? platform : (platform = {});
195
+ async handle(request) {
196
+ var _a, _b, _c, _d, _e;
263
197
  let u = new URL(request.url, 'http://localhost');
264
198
  let path = u.pathname + u.search;
265
199
  const defaultContext = {
@@ -267,63 +201,80 @@ export class Spiceflow {
267
201
  error: null,
268
202
  path,
269
203
  };
204
+ const root = this.topLevelApp || this;
270
205
  let onErrorHandlers = [];
271
206
  try {
272
- let response;
273
207
  // Get all middleware and method specific routes in order
274
208
  const route = this.match(request.method, path);
275
209
  if (!route) {
276
- return this.onNoMatch(request, platform);
210
+ const error = new NotFoundError(`${path} not found`);
211
+ const res = await this.runErrorHandlers({
212
+ onErrorHandlers,
213
+ error,
214
+ request,
215
+ });
216
+ if (res)
217
+ return res;
218
+ return new Response(`Not Found`, {
219
+ status: 404,
220
+ });
277
221
  }
278
- onErrorHandlers = this.getRouteAndParents(route.router)
279
- .reverse()
280
- .flatMap((x) => x.onErrorHandlers);
281
- let { params, store: defaultStore } = route;
282
- const onReqHandlers = this.getRouteAndParents(route.router)
283
- .reverse()
284
- .flatMap((x) => x.onRequestHandlers);
222
+ onErrorHandlers = this.getAppsInScope(route.app).flatMap((x) => x.onErrorHandlers);
223
+ let { params, app: { defaultStore }, } = route;
224
+ const middlewares = this.getAppsInScope(route.app).flatMap((x) => x.middlewares);
285
225
  // console.log({ onReqHandlers })
286
226
  let store = Object.assign({}, defaultStore);
287
- // TODO add content type
288
- let content = (_a = route === null || route === void 0 ? void 0 : route.hooks) === null || _a === void 0 ? void 0 : _a.content;
289
- // let body = await getRequestBody({ request, content })
290
- if (route.validateBody) {
227
+ let content = (_b = (_a = route === null || route === void 0 ? void 0 : route.internalRoute) === null || _a === void 0 ? void 0 : _a.hooks) === null || _b === void 0 ? void 0 : _b.content;
228
+ if ((_c = route.internalRoute) === null || _c === void 0 ? void 0 : _c.validateBody) {
291
229
  // TODO don't clone the request
292
- let typedRequest = new TypedRequest(request);
293
- typedRequest.validateBody = route.validateBody;
230
+ let typedRequest = request instanceof TypedRequest
231
+ ? request
232
+ : new TypedRequest(request);
233
+ typedRequest.validateBody = (_d = route.internalRoute) === null || _d === void 0 ? void 0 : _d.validateBody;
294
234
  request = typedRequest;
295
235
  }
296
236
  let query = parseQuery.parse((u.search || '').slice(1));
297
- if (onReqHandlers.length > 0) {
298
- for (const handler of onReqHandlers) {
299
- const res = await handler({
237
+ let index = 0;
238
+ const next = async () => {
239
+ var _a, _b, _c;
240
+ if (index < middlewares.length) {
241
+ const middleware = middlewares[index];
242
+ index++;
243
+ let context = {
300
244
  request,
301
- response,
302
245
  store,
303
246
  path,
304
247
  query,
305
- });
306
- if (res) {
307
- return await turnHandlerResultIntoResponse(res);
248
+ params,
249
+ redirect,
250
+ };
251
+ const result = await middleware(context, next);
252
+ if (!result && index < middlewares.length) {
253
+ return await next();
254
+ }
255
+ else if (result) {
256
+ return await turnHandlerResultIntoResponse(result);
308
257
  }
309
258
  }
310
- }
311
- query = runValidation(query, route.validateQuery);
312
- params = runValidation(params, route.validateParams);
313
- // console.log(route)
314
- const res = route.handler(Object.assign(Object.assign({}, defaultContext), { request,
315
- response, params: params, store,
316
- query,
317
- // body,
318
- path }));
319
- if (isAsyncIterable(res)) {
320
- return await this.handleStream({
321
- generator: res,
322
- request,
323
- onErrorHandlers,
324
- });
325
- }
326
- return await turnHandlerResultIntoResponse(res);
259
+ query = runValidation(query, (_a = route.internalRoute) === null || _a === void 0 ? void 0 : _a.validateQuery);
260
+ params = runValidation(params, (_b = route.internalRoute) === null || _b === void 0 ? void 0 : _b.validateParams);
261
+ // console.log(route)
262
+ const res = (_c = route.internalRoute) === null || _c === void 0 ? void 0 : _c.handler(Object.assign(Object.assign({}, defaultContext), { request, params: params, redirect,
263
+ store,
264
+ query,
265
+ // body,
266
+ path }));
267
+ if (isAsyncIterable(res)) {
268
+ return await this.handleStream({
269
+ generator: res,
270
+ request,
271
+ onErrorHandlers,
272
+ });
273
+ }
274
+ return await turnHandlerResultIntoResponse(res);
275
+ };
276
+ const response = await next();
277
+ return response;
327
278
  }
328
279
  catch (err) {
329
280
  if (err instanceof Response)
@@ -335,7 +286,7 @@ export class Spiceflow {
335
286
  });
336
287
  if (res)
337
288
  return res;
338
- let status = (_b = err === null || err === void 0 ? void 0 : err.status) !== null && _b !== void 0 ? _b : 500;
289
+ let status = (_e = err === null || err === void 0 ? void 0 : err.status) !== null && _e !== void 0 ? _e : 500;
339
290
  return new Response((err === null || err === void 0 ? void 0 : err.message) || 'Internal Server Error', {
340
291
  status,
341
292
  });
@@ -354,25 +305,129 @@ export class Spiceflow {
354
305
  }
355
306
  }
356
307
  }
357
- // get the route parents, the order is starting from the current router and going up to the root
358
- getRouteAndParents(currentRouter) {
308
+ getAppAndParents(currentApp) {
309
+ let root = this.topLevelApp || this;
310
+ if (!root.childrenApps.length) {
311
+ return [root];
312
+ }
359
313
  const parents = [];
360
- let current = currentRouter;
361
- let root = this.routerTree.currentRoot || this.routerTree;
362
- // Perform BFS once to build a parent map
314
+ let current = currentApp;
363
315
  const parentMap = new Map();
364
316
  bfsFind(root, (node) => {
365
- for (const child of node.children) {
317
+ for (const child of node.childrenApps) {
366
318
  parentMap.set(child.id, node);
367
319
  }
368
320
  });
369
321
  // Traverse the parent map to get the parents
370
322
  while (current) {
371
- parents.push(current);
323
+ parents.unshift(current);
372
324
  current = parentMap.get(current.id);
373
325
  }
374
326
  return parents.filter((x) => x !== undefined);
375
327
  }
328
+ getAppsInScope(currentApp) {
329
+ let root = this.topLevelApp || this;
330
+ if (!root.childrenApps.length) {
331
+ return [root];
332
+ }
333
+ const withParents = this.getAppAndParents(currentApp);
334
+ const wantedOrder = bfs(root);
335
+ const scopeFalseApps = wantedOrder.filter((x) => x.scoped === false);
336
+ let appsInScope = [];
337
+ for (const app of wantedOrder) {
338
+ if (scopeFalseApps.includes(app)) {
339
+ appsInScope.push(app);
340
+ continue;
341
+ }
342
+ if (withParents.includes(app)) {
343
+ appsInScope.push(app);
344
+ continue;
345
+ }
346
+ }
347
+ return appsInScope;
348
+ }
349
+ async listen(port, hostname = '127.0.0.1') {
350
+ if (typeof Bun !== 'undefined') {
351
+ const server = Bun.serve({
352
+ port,
353
+ development: !isProduction,
354
+ hostname,
355
+ error(error) {
356
+ console.error(error);
357
+ return new Response('Internal Server Error', {
358
+ status: 500,
359
+ });
360
+ },
361
+ fetch: async (request) => {
362
+ const res = await this.handle(request);
363
+ return res;
364
+ },
365
+ });
366
+ console.log(`Listening on http://localhost:${port}`);
367
+ return server;
368
+ }
369
+ return this.listenNode(port, hostname);
370
+ }
371
+ async listenNode(port, hostname = '0.0.0.0') {
372
+ const { Readable } = await import('stream');
373
+ const { createServer } = await import('http');
374
+ const server = createServer(async (req, res) => {
375
+ const abortController = new AbortController();
376
+ const { signal } = abortController;
377
+ req.on('close', () => abortController.abort());
378
+ req.on('error', (err) => {
379
+ abortController.abort();
380
+ });
381
+ req.on('aborted', (err) => {
382
+ abortController.abort();
383
+ });
384
+ // this is how you see when a request is aborted in Node.js, laughable
385
+ res.on('close', function () {
386
+ let aborted = !res.writableFinished;
387
+ if (aborted) {
388
+ abortController.abort();
389
+ }
390
+ });
391
+ const url = new URL(req.url || '', `http://${req.headers.host || hostname || 'localhost'}`);
392
+ const typedRequest = new TypedRequest(url.toString(), {
393
+ method: req.method,
394
+ headers: req.headers,
395
+ body: req.method !== 'GET' && req.method !== 'HEAD'
396
+ ? Readable.toWeb(req)
397
+ : null,
398
+ signal,
399
+ });
400
+ try {
401
+ const response = await this.handle(typedRequest);
402
+ res.statusCode = response.status;
403
+ for (const [key, value] of response.headers) {
404
+ res.setHeader(key, value);
405
+ }
406
+ if (response.body) {
407
+ const reader = response.body.getReader();
408
+ while (true) {
409
+ const { done, value } = await reader.read();
410
+ if (done)
411
+ break;
412
+ res.write(value);
413
+ }
414
+ }
415
+ res.end();
416
+ }
417
+ catch (error) {
418
+ console.error('Error handling request:', error);
419
+ res.statusCode = 500;
420
+ res.end('Internal Server Error');
421
+ }
422
+ });
423
+ await new Promise((resolve, reject) => {
424
+ server.listen(port, hostname, () => {
425
+ console.log(`Listening on http://localhost:${port}`);
426
+ resolve(null);
427
+ });
428
+ });
429
+ return server;
430
+ }
376
431
  async handleStream({ onErrorHandlers, generator, request, }) {
377
432
  let init = generator.next();
378
433
  if (init instanceof Promise)
@@ -506,7 +561,7 @@ function bfsFind(tree, onNode) {
506
561
  if (result) {
507
562
  return result;
508
563
  }
509
- queue.push(...node.children);
564
+ queue.push(...node.childrenApps);
510
565
  }
511
566
  return;
512
567
  }
@@ -517,6 +572,7 @@ export class TypedRequest extends Request {
517
572
  }
518
573
  }
519
574
  export function bfs(tree) {
575
+ var _a;
520
576
  const queue = [tree];
521
577
  let nodes = [];
522
578
  while (queue.length > 0) {
@@ -525,16 +581,14 @@ export function bfs(tree) {
525
581
  nodes.push(node);
526
582
  }
527
583
  // const result = onNode(node)
528
- queue.push(...node.children);
584
+ if ((_a = node === null || node === void 0 ? void 0 : node.childrenApps) === null || _a === void 0 ? void 0 : _a.length) {
585
+ queue.push(...node.childrenApps);
586
+ }
529
587
  }
530
588
  return nodes;
531
589
  }
532
- function mapTree(tree, mapper) {
533
- const mappedNode = mapper(tree);
534
- mappedNode.children = tree.children.map((child) => mapTree(child, mapper));
535
- return mappedNode;
536
- }
537
590
  export async function turnHandlerResultIntoResponse(result) {
591
+ // if (result === undefined) return new Response('', { status: 404 })
538
592
  // if user returns not a response, convert to json
539
593
  if (result instanceof Response) {
540
594
  return result;
@@ -548,7 +602,7 @@ export async function turnHandlerResultIntoResponse(result) {
548
602
  // result = new Response(result)
549
603
  // }
550
604
  // if user returns an object, convert to json
551
- return new Response(JSON.stringify(result, null, 2), {
605
+ return new Response(JSON.stringify(result !== null && result !== void 0 ? result : null, null, 2), {
552
606
  headers: {
553
607
  'content-type': 'application/json',
554
608
  },
@@ -1 +1 @@
1
- {"version":3,"file":"spiceflow.js","sourceRoot":"","sources":["../src/spiceflow.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"spiceflow.js","sourceRoot":"","sources":["../src/spiceflow.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAA,OAAO,UAAU,MAAM,kBAAkB,CAAA;AAEzC,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAA;AAExC,OAAO,EAAE,IAAI,IAAI,CAAC,EAAE,CAAA;AAEpB,OAAO,UAAU,MAAM,aAAa,CAAA;AAwBpC,IAAI,WAAW,GAAG,CAAC,CAAA;AAEnB,6DAA6D;AAC7D,aAAa;AACb,OAAO,cAAc,MAAM,gBAAgB,CAAA;AAC3C,OAAO,GAAyB,MAAM,KAAK,CAAA;AAC3C,OAAO,EAAE,CAAC,EAAW,MAAM,KAAK,CAAA;AAChC,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AAEpD,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AACzE,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAEtD,MAAM,GAAG,GAAG,CAAC,UAAU,CAAC,OAAO,IAAI,UAAU,CAAC,CAC7C,IAAI,CAAC,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,EAC/C;IACC,WAAW;IACX,MAAM;IACN,MAAM;IACN,OAAO;IACP,UAAU;IACV,MAAM;IACN,MAAM;IACN,KAAK;IACL,eAAe;IACf,MAAM;IACN,cAAc;IACd,cAAc;IACd,uBAAuB;IACvB,OAAO;CACP,CACD,CAAA;AA8BD;;GAEG;AACH,MAAM,OAAO,SAAS;IA+BrB,gBAAgB;IAChB,YAAY;QACX,IAAI,IAAI,GAAG,IAAI,CAAC,WAAW,IAAI,IAAI,CAAA;QACnC,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAA;QAC/B,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;YACvC,MAAM,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;iBACrC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;iBACpB,IAAI,CAAC,EAAE,CAAC,CAAA;YAEV,OAAO,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,iCAAM,CAAC,KAAE,IAAI,EAAE,MAAM,GAAG,CAAC,CAAC,IAAI,IAAG,CAAC,CAAA;QAC9D,CAAC,CAAC,CAAA;QACF,OAAO,SAAS,CAAA;IACjB,CAAC;IAEO,GAAG,CAAC,EAMa;YANb,EACX,MAAM,EACN,IAAI,EACJ,KAAK,EACL,OAAO,OAEiB,EADrB,IAAI,cALI,sCAMX,CADO;QAEP,IAAI,UAAU,GAAe,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,IAAI,CAAA;QACxC,IAAI,YAAY,GAAG,mBAAmB,CAAC,UAAU,CAAC,CAAA;QAClD,IAAI,aAAa,GAAG,mBAAmB,CAAC,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,KAAK,CAAC,CAAA;QACrD,IAAI,cAAc,GAAG,mBAAmB,CAAC,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,MAAM,CAAC,CAAA;QAEvD,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;QACxC,IAAI,KAAK,mCACL,IAAI,KACP,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,EAAE,EACzB,MAAM,EAAE,CAAC,MAAM,IAAI,EAAE,CAAQ,EAC7B,IAAI,EAAE,IAAI,IAAI,EAAE,EAChB,OAAO,EAAE,OAAQ,EACjB,KAAK;YACL,YAAY;YACZ,cAAc;YACd,aAAa,GACb,CAAA;QACD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QACvB,KAAK,CAAC,MAAO,CAAC,GAAG,KAAK,CAAA;IACvB,CAAC;IAEO,KAAK,CAAC,MAAc,EAAE,IAAY;QACzC,IAAI,IAAI,GAAG,IAAI,CAAA;QACf,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,GAAG,EAAE,EAAE;YACpC,GAAG,CAAC,WAAW,GAAG,IAAI,CAAA;YACtB,IAAI,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC;iBACrC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;iBACpB,IAAI,CAAC,EAAE,CAAC,CAAA;YACV,IAAI,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;gBACxC,OAAM;YACP,CAAC;YACD,IAAI,iBAAiB,GAAG,IAAI,CAAA;YAC5B,IAAI,MAAM,EAAE,CAAC;gBACZ,iBAAiB,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;YAC7C,CAAC;YACD,MAAM,WAAW,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAA;YACtD,IAAI,CAAC,WAAW,EAAE,CAAC;gBAClB,OAAM;YACP,CAAC;YAED,IAAI,aAAa,GAAkB,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;YAC5D,IAAI,aAAa,EAAE,CAAC;gBACnB,MAAM,MAAM,GAAG,WAAW,CAAC,MAAM,IAAI,EAAE,CAAA;gBAEvC,MAAM,GAAG,GAAG;oBACX,GAAG;oBACH,aAAa,EAAE,aAAa;oBAC5B,MAAM;iBACN,CAAA;gBACD,OAAO,GAAG,CAAA;YACX,CAAC;QACF,CAAC,CAAC,CAAA;QAEF,OAAO,MAAM,CAAA;IACd,CAAC;IAED,KAAK,CACJ,IAAU,EACV,KAAY;QAgBZ,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,KAAK,CAAA;QAC/B,OAAO,IAAW,CAAA;IACnB,CAAC;IAED;;;OAGG;IACH,YACC,UAKI,EAAE;QA3HC,OAAE,GAAW,WAAW,EAAE,CAAA;QAC1B,WAAM,GAAiB,IAAI,cAAc,EAAE,CAAA;QAC3C,gBAAW,GAAe,EAAE,CAAA;QAC5B,oBAAe,GAAc,EAAE,CAAA;QAC/B,WAAM,GAAoB,EAAE,CAAA;QAC5B,iBAAY,GAAqB,EAAE,CAAA;QAM3C,gBAAgB;QAChB,iBAAY,GAAmB,EAAE,CAAA;QAsHjC,YAAO,GAAW,EAAS,CAAA;QAE3B,WAAM,GAAG;YACR,MAAM,EAAE,EAAc;YACtB,MAAM,EAAE,KAAe;YACvB,SAAS,EAAE,EAAe;YAC1B,WAAW,EAAE,EAAiB;YAC9B,QAAQ,EAAE,EAAc;SACxB,CAAA;QAmaO,WAAM,GAAY,IAAc,CAAA;QAhbvC,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAA;QAE5B,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAA;IAC/B,CAAC;IAYD,IAAI,CAYH,IAAU,EACV,OAAe,EACf,IAOC;QAyBD,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA;QAEjE,OAAO,IAAW,CAAA;IACnB,CAAC;IAED,GAAG,CAaF,IAAU,EACV,OAAe,EACf,IAOC;QA0BD,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA;QAChE,OAAO,IAAW,CAAA;IACnB,CAAC;IAED,GAAG,CAYF,IAAU,EACV,OAAe,EACf,IAOC;QA0BD,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA;QAEhE,OAAO,IAAW,CAAA;IACnB,CAAC;IAED,KAAK,CAYJ,IAAU,EACV,OAAe,EACf,IAOC;QA0BD,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA;QAElE,OAAO,IAAW,CAAA;IACnB,CAAC;IAED,MAAM,CAYL,IAAU,EACV,OAAe,EACf,IAOC;QA0BD,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA;QAEnE,OAAO,IAAW,CAAA;IACnB,CAAC;IAED,OAAO,CAYN,IAAU,EACV,OAAe,EACf,IAOC;QA0BD,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA;QAEpE,OAAO,IAAW,CAAA;IACnB,CAAC;IAED,GAAG,CAYF,IAAU,EACV,OAAe,EACf,IAOC;QA0BD,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC9B,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA;QAC1D,CAAC;QAED,OAAO,IAAW,CAAA;IACnB,CAAC;IAED,IAAI,CAYH,IAAU,EACV,OAAe,EACf,IAOC;QA0BD,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA;QAEjE,OAAO,IAAW,CAAA;IACnB,CAAC;IAoED,GAAG,CAAC,YAAY;;QACf,IAAI,YAAY,YAAY,SAAS,EAAE,CAAC;YACvC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;QACrC,CAAC;aAAM,IAAI,OAAO,YAAY,KAAK,UAAU,EAAE,CAAC;YAC/C,MAAA,IAAI,CAAC,WAAW,oCAAhB,IAAI,CAAC,WAAW,GAAK,EAAE,EAAA;YACvB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;QACpC,CAAC;QACD,OAAO,IAAI,CAAA;IACZ,CAAC;IAED,OAAO,CACN,OAEC;;QAED,MAAA,IAAI,CAAC,eAAe,oCAApB,IAAI,CAAC,eAAe,GAAK,EAAE,EAAA;QAC3B,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,OAAc,CAAC,CAAA;QAEzC,OAAO,IAAI,CAAA;IACZ,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,MAAM,CAAC,OAAgB;;QAC5B,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,kBAAkB,CAAC,CAAA;QAChD,IAAI,IAAI,GAAG,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,MAAM,CAAA;QAChC,MAAM,cAAc,GAAG;YACtB,QAAQ;YACR,KAAK,EAAE,IAAI;YACX,IAAI;SACJ,CAAA;QACD,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,IAAI,IAAI,CAAA;QACrC,IAAI,eAAe,GAAc,EAAE,CAAA;QACnC,IAAI,CAAC;YACJ,yDAAyD;YAEzD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;YAE9C,IAAI,CAAC,KAAK,EAAE,CAAC;gBACZ,MAAM,KAAK,GAAG,IAAI,aAAa,CAAC,GAAG,IAAI,YAAY,CAAC,CAAA;gBACpD,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC;oBACvC,eAAe;oBACf,KAAK;oBACL,OAAO;iBACP,CAAC,CAAA;gBACF,IAAI,GAAG;oBAAE,OAAO,GAAG,CAAA;gBACnB,OAAO,IAAI,QAAQ,CAAC,WAAW,EAAE;oBAChC,MAAM,EAAE,GAAG;iBACX,CAAC,CAAA;YACH,CAAC;YACD,eAAe,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,CACvD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,eAAe,CACxB,CAAA;YACD,IAAI,EACH,MAAM,EACN,GAAG,EAAE,EAAE,YAAY,EAAE,GACrB,GAAG,KAAK,CAAA;YACT,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,CACzD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,CACpB,CAAA;YACD,iCAAiC;YACjC,IAAI,KAAK,qBAAQ,YAAY,CAAE,CAAA;YAE/B,IAAI,OAAO,GAAG,MAAA,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,aAAa,0CAAE,KAAK,0CAAE,OAAO,CAAA;YAElD,IAAI,MAAA,KAAK,CAAC,aAAa,0CAAE,YAAY,EAAE,CAAC;gBACvC,+BAA+B;gBAC/B,IAAI,YAAY,GACf,OAAO,YAAY,YAAY;oBAC9B,CAAC,CAAC,OAAO;oBACT,CAAC,CAAC,IAAI,YAAY,CAAC,OAAO,CAAC,CAAA;gBAC7B,YAAY,CAAC,YAAY,GAAG,MAAA,KAAK,CAAC,aAAa,0CAAE,YAAY,CAAA;gBAC7D,OAAO,GAAG,YAAY,CAAA;YACvB,CAAC;YAED,IAAI,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;YAEvD,IAAI,KAAK,GAAG,CAAC,CAAA;YAEb,MAAM,IAAI,GAAG,KAAK,IAAI,EAAE;;gBACvB,IAAI,KAAK,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC;oBAChC,MAAM,UAAU,GAAG,WAAW,CAAC,KAAK,CAAC,CAAA;oBACrC,KAAK,EAAE,CAAA;oBACP,IAAI,OAAO,GAAG;wBACb,OAAO;wBACP,KAAK;wBACL,IAAI;wBACJ,KAAK;wBACL,MAAM;wBACN,QAAQ;qBACyB,CAAA;oBAClC,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;oBAE9C,IAAI,CAAC,MAAM,IAAI,KAAK,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC;wBAC3C,OAAO,MAAM,IAAI,EAAE,CAAA;oBACpB,CAAC;yBAAM,IAAI,MAAM,EAAE,CAAC;wBACnB,OAAO,MAAM,6BAA6B,CAAC,MAAM,CAAC,CAAA;oBACnD,CAAC;gBACF,CAAC;gBAED,KAAK,GAAG,aAAa,CAAC,KAAK,EAAE,MAAA,KAAK,CAAC,aAAa,0CAAE,aAAa,CAAC,CAAA;gBAChE,MAAM,GAAG,aAAa,CACrB,MAAM,EACN,MAAA,KAAK,CAAC,aAAa,0CAAE,cAAc,CACnC,CAAA;gBAED,qBAAqB;gBAErB,MAAM,GAAG,GAAG,MAAA,KAAK,CAAC,aAAa,0CAAE,OAAO,CAAC,gCACrC,cAAc,KACjB,OAAO,EACP,MAAM,EAAE,MAAa,EACrB,QAAQ;oBACR,KAAK;oBACL,KAAK;oBACL,QAAQ;oBACR,IAAI,GAG6B,CAAC,CAAA;gBACnC,IAAI,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC;oBAC1B,OAAO,MAAM,IAAI,CAAC,YAAY,CAAC;wBAC9B,SAAS,EAAE,GAAG;wBACd,OAAO;wBACP,eAAe;qBACf,CAAC,CAAA;gBACH,CAAC;gBAED,OAAO,MAAM,6BAA6B,CAAC,GAAG,CAAC,CAAA;YAChD,CAAC,CAAA;YACD,MAAM,QAAQ,GAAG,MAAM,IAAI,EAAE,CAAA;YAE7B,OAAO,QAAQ,CAAA;QAChB,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YACnB,IAAI,GAAG,YAAY,QAAQ;gBAAE,OAAO,GAAG,CAAA;YACvC,IAAI,GAAG,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC;gBACrC,eAAe;gBACf,KAAK,EAAE,GAAG;gBACV,OAAO;aACP,CAAC,CAAA;YACF,IAAI,GAAG;gBAAE,OAAO,GAAG,CAAA;YACnB,IAAI,MAAM,GAAG,MAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,MAAM,mCAAI,GAAG,CAAA;YAC/B,OAAO,IAAI,QAAQ,CAAC,CAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,OAAO,KAAI,uBAAuB,EAAE;gBAC5D,MAAM;aACN,CAAC,CAAA;QACH,CAAC;IACF,CAAC;IAEO,KAAK,CAAC,gBAAgB,CAAC,EAC9B,eAAe,GAAG,EAAe,EACjC,KAAK,EAAE,GAAG,EACV,OAAO,GACP;QACA,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAClC,OAAO,CAAC,KAAK,CAAC,4BAA4B,EAAE,GAAG,CAAC,CAAA;QACjD,CAAC;aAAM,CAAC;YACP,KAAK,MAAM,UAAU,IAAI,eAAe,EAAE,CAAC;gBAC1C,MAAM,GAAG,GAAG,UAAU,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,CAAA;gBAC/C,IAAI,GAAG,YAAY,QAAQ,EAAE,CAAC;oBAC7B,OAAO,GAAG,CAAA;gBACX,CAAC;YACF,CAAC;QACF,CAAC;IACF,CAAC;IAEO,gBAAgB,CAAC,UAAyB;QACjD,IAAI,IAAI,GAAG,IAAI,CAAC,WAAW,IAAI,IAAI,CAAA;QAEnC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC;YAC/B,OAAO,CAAC,IAAI,CAAC,CAAA;QACd,CAAC;QACD,MAAM,OAAO,GAAmB,EAAE,CAAA;QAClC,IAAI,OAAO,GAAG,UAAU,CAAA;QAExB,MAAM,SAAS,GAAG,IAAI,GAAG,EAAwB,CAAA;QACjD,OAAO,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE;YACtB,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;gBACvC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,IAAI,CAAC,CAAA;YAC9B,CAAC;QACF,CAAC,CAAC,CAAA;QAEF,6CAA6C;QAC7C,OAAO,OAAO,EAAE,CAAC;YAChB,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;YACxB,OAAO,GAAG,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;QACpC,CAAC;QAED,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC,CAAA;IAC9C,CAAC;IAEO,cAAc,CAAC,UAAyB;QAC/C,IAAI,IAAI,GAAG,IAAI,CAAC,WAAW,IAAI,IAAI,CAAA;QACnC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC;YAC/B,OAAO,CAAC,IAAI,CAAC,CAAA;QACd,CAAC;QACD,MAAM,WAAW,GAAG,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAA;QAErD,MAAM,WAAW,GAAG,GAAG,CAAC,IAAI,CAAC,CAAA;QAC7B,MAAM,cAAc,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,KAAK,CAAC,CAAA;QACpE,IAAI,WAAW,GAAG,EAAoB,CAAA;QACtC,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;YAC/B,IAAI,cAAc,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBAClC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;gBACrB,SAAQ;YACT,CAAC;YACD,IAAI,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC/B,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;gBACrB,SAAQ;YACT,CAAC;QACF,CAAC;QACD,OAAO,WAAW,CAAA;IACnB,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,IAAY,EAAE,WAAmB,WAAW;QACxD,IAAI,OAAO,GAAG,KAAK,WAAW,EAAE,CAAC;YAChC,MAAM,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC;gBACxB,IAAI;gBACJ,WAAW,EAAE,CAAC,YAAY;gBAC1B,QAAQ;gBACR,KAAK,CAAC,KAAK;oBACV,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;oBACpB,OAAO,IAAI,QAAQ,CAAC,uBAAuB,EAAE;wBAC5C,MAAM,EAAE,GAAG;qBACX,CAAC,CAAA;gBACH,CAAC;gBAED,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;oBACxB,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;oBACtC,OAAO,GAAG,CAAA;gBACX,CAAC;aACD,CAAC,CAAA;YACF,OAAO,CAAC,GAAG,CAAC,iCAAiC,IAAI,EAAE,CAAC,CAAA;YACpD,OAAO,MAAM,CAAA;QACd,CAAC;QACD,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAA;IACvC,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,IAAY,EAAE,WAAmB,SAAS;QAC1D,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,CAAA;QAC3C,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,CAAA;QAE7C,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;YAC9C,MAAM,eAAe,GAAG,IAAI,eAAe,EAAE,CAAA;YAC7C,MAAM,EAAE,MAAM,EAAE,GAAG,eAAe,CAAA;YAElC,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC,CAAA;YAC9C,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;gBACvB,eAAe,CAAC,KAAK,EAAE,CAAA;YACxB,CAAC,CAAC,CAAA;YACF,GAAG,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,GAAG,EAAE,EAAE;gBACzB,eAAe,CAAC,KAAK,EAAE,CAAA;YACxB,CAAC,CAAC,CAAA;YACF,sEAAsE;YACtE,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE;gBACf,IAAI,OAAO,GAAG,CAAC,GAAG,CAAC,gBAAgB,CAAA;gBACnC,IAAI,OAAO,EAAE,CAAC;oBACb,eAAe,CAAC,KAAK,EAAE,CAAA;gBACxB,CAAC;YACF,CAAC,CAAC,CAAA;YAEF,MAAM,GAAG,GAAG,IAAI,GAAG,CAClB,GAAG,CAAC,GAAG,IAAI,EAAE,EACb,UAAU,GAAG,CAAC,OAAO,CAAC,IAAI,IAAI,QAAQ,IAAI,WAAW,EAAE,CACvD,CAAA;YACD,MAAM,YAAY,GAAG,IAAI,YAAY,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE;gBACrD,MAAM,EAAE,GAAG,CAAC,MAAM;gBAClB,OAAO,EAAE,GAAG,CAAC,OAAsB;gBACnC,IAAI,EACH,GAAG,CAAC,MAAM,KAAK,KAAK,IAAI,GAAG,CAAC,MAAM,KAAK,MAAM;oBAC5C,CAAC,CAAE,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAS;oBAC9B,CAAC,CAAC,IAAI;gBACR,MAAM;aACN,CAAC,CAAA;YAEF,IAAI,CAAC;gBACJ,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAA;gBAEhD,GAAG,CAAC,UAAU,GAAG,QAAQ,CAAC,MAAM,CAAA;gBAChC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;oBAC7C,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;gBAC1B,CAAC;gBAED,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC;oBACnB,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,CAAA;oBACxC,OAAO,IAAI,EAAE,CAAC;wBACb,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAA;wBAC3C,IAAI,IAAI;4BAAE,MAAK;wBACf,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;oBACjB,CAAC;gBACF,CAAC;gBACD,GAAG,CAAC,GAAG,EAAE,CAAA;YACV,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBAChB,OAAO,CAAC,KAAK,CAAC,yBAAyB,EAAE,KAAK,CAAC,CAAA;gBAC/C,GAAG,CAAC,UAAU,GAAG,GAAG,CAAA;gBACpB,GAAG,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAA;YACjC,CAAC;QACF,CAAC,CAAC,CAAA;QAEF,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE;gBAClC,OAAO,CAAC,GAAG,CAAC,iCAAiC,IAAI,EAAE,CAAC,CAAA;gBACpD,OAAO,CAAC,IAAI,CAAC,CAAA;YACd,CAAC,CAAC,CAAA;QACH,CAAC,CAAC,CAAA;QAEF,OAAO,MAAM,CAAA;IACd,CAAC;IAEO,KAAK,CAAC,YAAY,CAAC,EAC1B,eAAe,EACf,SAAS,EACT,OAAO,GAKP;QACA,IAAI,IAAI,GAAG,SAAS,CAAC,IAAI,EAAE,CAAA;QAC3B,IAAI,IAAI,YAAY,OAAO;YAAE,IAAI,GAAG,MAAM,IAAI,CAAA;QAE9C,IAAI,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,IAAI,EAAE,CAAC;YAChB,OAAO,MAAM,6BAA6B,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QACvD,CAAC;QACD,sDAAsD;QACtD,IAAI,IAAI,GAAG,IAAI,CAAA;QACf,OAAO,IAAI,QAAQ,CAClB,IAAI,cAAc,CAAC;YAClB,KAAK,CAAC,KAAK,CAAC,UAAU;;gBACrB,IAAI,GAAG,GAAG,KAAK,CAAA;gBAEf,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE;oBAC9C,GAAG,GAAG,IAAI,CAAA;oBAEV,IAAI,CAAC;wBACJ,UAAU,CAAC,KAAK,EAAE,CAAA;oBACnB,CAAC;oBAAC,WAAM,CAAC;wBACR,UAAU;oBACX,CAAC;gBACF,CAAC,CAAC,CAAA;gBAEF,IAAI,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,KAAK,MAAK,SAAS,IAAI,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,KAAK,MAAK,IAAI;oBACpD,UAAU,CAAC,OAAO,CACjB,MAAM,CAAC,IAAI,CACV,yBAAyB,IAAI,CAAC,SAAS,CACtC,IAAI,CAAC,KAAK,CACV,MAAM,CACP,CACD,CAAA;gBAEF,IAAI,CAAC;;wBACJ,KAA0B,eAAA,cAAA,cAAA,SAAS,CAAA,eAAA,qFAAE,CAAC;4BAAZ,yBAAS;4BAAT,WAAS;4BAAxB,MAAM,KAAK,KAAA,CAAA;4BACrB,IAAI,GAAG;gCAAE,MAAK;4BACd,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI;gCAAE,SAAQ;4BAEnD,UAAU,CAAC,OAAO,CACjB,MAAM,CAAC,IAAI,CACV,yBAAyB,IAAI,CAAC,SAAS,CACtC,KAAK,CACL,MAAM,CACP,CACD,CAAA;wBACF,CAAC;;;;;;;;;gBACF,CAAC;gBAAC,OAAO,KAAU,EAAE,CAAC;oBACrB,IAAI,GAAG,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC;wBACrC,eAAe,EAAE,eAAe;wBAChC,KAAK;wBACL,OAAO;qBACP,CAAC,CAAA;oBACF,UAAU,CAAC,OAAO,CACjB,MAAM,CAAC,IAAI,CACV,uBAAuB,IAAI,CAAC,SAAS,CACpC,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,IAAI,IAAI,OAAO,CACtC,MAAM,CACP,CACD,CAAA;gBACF,CAAC;gBAED,IAAI,CAAC;oBACJ,UAAU,CAAC,KAAK,EAAE,CAAA;gBACnB,CAAC;gBAAC,WAAM,CAAC;oBACR,UAAU;gBACX,CAAC;YACF,CAAC;SACD,CAAC,EACF;YACC,2BAA2B;YAC3B,OAAO,EAAE;gBACR,2EAA2E;gBAC3E,mBAAmB,EAAE,SAAS;gBAC9B,cAAc,EAAE,kCAAkC;gBAClD,kBAAkB;aAClB;SACD,CACD,CAAA;IACF,CAAC;CACD;AAED,kCAAkC;AAClC,YAAY;AACZ,YAAY;AACZ,OAAO;AACP,WAAW;AACX,oBAAoB;AACpB,OAAO;AACP,sDAAsD;AACtD,gEAAgE;AAChE,WAAW;AACX,KAAK;AAEL,uBAAuB;AACvB,oEAAoE;AAEpE,uBAAuB;AACvB,WAAW;AACX,KAAK;AAEL,0BAA0B;AAC1B,6BAA6B;AAC7B,0CAA0C;AAC1C,WAAW;AAEX,uBAAuB;AACvB,iCAAiC;AACjC,WAAW;AAEX,8CAA8C;AAC9C,0DAA0D;AAC1D,WAAW;AAEX,qCAAqC;AACrC,wCAAwC;AACxC,WAAW;AAEX,gCAAgC;AAChC,eAAe;AAEf,2CAA2C;AAC3C,sCAAsC;AACtC,8BAA8B;AAE9B,qCAAqC;AACrC,mDAAmD;AACnD,6BAA6B;AAC7B,OAAO;AAEP,WAAW;AACX,KAAK;AAEL,eAAe;AACf,IAAI;AAEJ,MAAM,OAAO,GAAG;IACf,KAAK;IACL,SAAS;IACT,QAAQ;IACR,KAAK;IACL,MAAM;IACN,SAAS;IACT,OAAO;IACP,MAAM;IACN,KAAK;IACL,OAAO;CACE,CAAA;AAKV,SAAS,OAAO,CACf,IAAkB,EAClB,MAAoD;IAEpD,MAAM,KAAK,GAAG,CAAC,IAAI,CAAC,CAAA;IAEpB,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,EAAG,CAAA;QAE3B,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,CAAA;QAC3B,IAAI,MAAM,EAAE,CAAC;YACZ,OAAO,MAAM,CAAA;QACd,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,CAAA;IACjC,CAAC;IACD,OAAM;AACP,CAAC;AACD,MAAM,OAAO,YAAsB,SAAQ,OAAO;IAGjD,KAAK,CAAC,IAAI;QACT,MAAM,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,IAAI,EAAE,CAAe,CAAA;QAC/C,OAAO,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,CAAA;IAC9C,CAAC;CACD;AAED,MAAM,UAAU,GAAG,CAAC,IAAkB;;IACrC,MAAM,KAAK,GAAG,CAAC,IAAI,CAAC,CAAA;IACpB,IAAI,KAAK,GAAmB,EAAE,CAAA;IAC9B,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,EAAG,CAAA;QAC3B,IAAI,IAAI,EAAE,CAAC;YACV,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACjB,CAAC;QACD,8BAA8B;QAE9B,IAAI,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,YAAY,0CAAE,MAAM,EAAE,CAAC;YAChC,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,CAAA;QACjC,CAAC;IACF,CAAC;IACD,OAAO,KAAK,CAAA;AACb,CAAC;AACD,MAAM,CAAC,KAAK,UAAU,6BAA6B,CAAC,MAAW;IAC9D,qEAAqE;IACrE,kDAAkD;IAClD,IAAI,MAAM,YAAY,QAAQ,EAAE,CAAC;QAChC,OAAO,MAAM,CAAA;IACd,CAAC;IACD,sCAAsC;IACtC,IAAI,MAAM,YAAY,OAAO,EAAE,CAAC;QAC/B,MAAM,GAAG,MAAM,MAAM,CAAA;IACtB,CAAC;IACD,+CAA+C;IAC/C,oCAAoC;IACpC,iCAAiC;IACjC,IAAI;IACJ,6CAA6C;IAE7C,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE;QAC5D,OAAO,EAAE;YACR,cAAc,EAAE,kBAAkB;SAClC;KACD,CAAC,CAAA;AACH,CAAC;AAID,MAAM,UAAU,WAAW,CAAC,KAAc;IACzC,OAAO,CACN,KAAK,YAAY,CAAC,CAAC,OAAO;QAC1B,CAAC,OAAO,KAAK,KAAK,QAAQ;YACzB,KAAK,KAAK,IAAI;YACd,OAAO,IAAI,KAAK;YAChB,WAAW,IAAI,KAAK;YACpB,UAAU,IAAI,KAAK;YACnB,UAAU,IAAI,KAAK,CAAC,CACrB,CAAA;AACF,CAAC;AAED,SAAS,mBAAmB,CAAC,MAAkB;IAC9C,IAAI,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC;QACzB,IAAI,UAAU,GAAG,eAAe,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;QAC5C,OAAO,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,CAAA;IAC/B,CAAC;IAED,IAAI,MAAM,EAAE,CAAC;QACZ,OAAO,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;IAC3B,CAAC;AACF,CAAC;AAED,SAAS,aAAa,CAAC,KAAU,EAAE,QAA2B;IAC7D,IAAI,CAAC,QAAQ;QAAE,OAAO,KAAK,CAAA;IAC3B,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IAC7B,IAAI,CAAC,KAAK,EAAE,CAAC;QACZ,MAAM,KAAK,GAAG,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,EAAE;YAC7C,SAAS,EAAE,IAAI;SACf,CAAC,CAAA;QACF,MAAM,IAAI,eAAe,CAAC,KAAK,CAAC,CAAA;IACjC,CAAC;IACD,OAAO,KAAK,CAAA;AACb,CAAC"}