spiceflow 1.11.3 → 1.12.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.
package/README.md CHANGED
@@ -235,6 +235,98 @@ async function exampleUsage() {
235
235
  }
236
236
  ```
237
237
 
238
+ ## Safe Path Building
239
+
240
+ The `safePath` method provides a type-safe way to build URLs with parameters. It helps prevent runtime errors by ensuring all required parameters are provided and properly substituted into the path.
241
+
242
+ ```ts
243
+ import { Spiceflow } from 'spiceflow'
244
+
245
+ const app = new Spiceflow()
246
+ .route({
247
+ method: 'GET',
248
+ path: '/users/:id',
249
+ handler({ params }) {
250
+ return { id: params.id }
251
+ },
252
+ })
253
+ .route({
254
+ method: 'GET',
255
+ path: '/users/:id/posts/:postId',
256
+ handler({ params }) {
257
+ return { userId: params.id, postId: params.postId }
258
+ },
259
+ })
260
+
261
+ // Building URLs with required parameters
262
+ const userPath = app.safePath('/users/:id', { id: '123' })
263
+ // Result: '/users/123'
264
+
265
+ // Building URLs with required parameters
266
+ const userPostPath = app.safePath('/users/:id/posts/:postId', {
267
+ id: '456',
268
+ postId: 'abc'
269
+ })
270
+ // Result: '/users/456/posts/abc'
271
+ ```
272
+
273
+ ### OAuth Callback Example
274
+
275
+ The `safePath` method is particularly useful when building callback URLs for OAuth flows, where you need to construct URLs dynamically based on user data or session information:
276
+
277
+ ```ts
278
+ import { Spiceflow } from 'spiceflow'
279
+
280
+ const app = new Spiceflow()
281
+ .route({
282
+ method: 'GET',
283
+ path: '/auth/callback/:provider/:userId',
284
+ handler({ params, query }) {
285
+ const { provider, userId } = params
286
+ const { code, state } = query
287
+
288
+ // Handle OAuth callback logic here
289
+ return {
290
+ provider,
291
+ userId,
292
+ authCode: code,
293
+ state
294
+ }
295
+ },
296
+ })
297
+ .route({
298
+ method: 'POST',
299
+ path: '/auth/login',
300
+ handler({ request }) {
301
+ const userId = '12345'
302
+ const provider = 'google'
303
+
304
+ // Build the OAuth callback URL safely
305
+ const callbackUrl = new URL(
306
+ app.safePath('/auth/callback/:provider/:userId', {
307
+ provider,
308
+ userId
309
+ }),
310
+ 'https://myapp.com'
311
+ ).toString()
312
+
313
+ // Redirect to OAuth provider with callback URL
314
+ const oauthUrl = `https://accounts.google.com/oauth/authorize?` +
315
+ `client_id=your-client-id&` +
316
+ `redirect_uri=${encodeURIComponent(callbackUrl)}&` +
317
+ `response_type=code&` +
318
+ `scope=openid%20profile%20email`
319
+
320
+ return { redirectUrl: oauthUrl }
321
+ },
322
+ })
323
+ ```
324
+
325
+ In this example:
326
+ - The callback URL is built safely using `safePath` with type checking
327
+ - Required parameters like `provider` and `userId` must be provided
328
+ - The resulting URL is guaranteed to be properly formatted
329
+
238
330
  ## Mounting Sub-Apps
239
331
 
240
332
  ```ts
@@ -112,7 +112,7 @@ const app = new Spiceflow()
112
112
  .get('/stream-return-async', function* stream() {
113
113
  return 'a';
114
114
  })
115
- .get('/id/:id?', ({ params: { id = 'unknown' } }) => id);
115
+ .get('/id/:id', ({ params: { id } }) => id);
116
116
  const client = createSpiceflowClient(app);
117
117
  describe('client can pass state to app', () => {
118
118
  const client = createSpiceflowClient(app, { state: { someState: 3 } });
@@ -10,7 +10,7 @@ export type InternalRoute = {
10
10
  method: HTTPMethod;
11
11
  path: string;
12
12
  type: ContentType;
13
- handler: InlineHandler<any, any, any>;
13
+ handler: InlineHandler<any, any, any, any>;
14
14
  hooks: LocalHook<any, any, any, any, any, any, any>;
15
15
  validateBody?: ValidationFunction;
16
16
  validateQuery?: ValidationFunction;
@@ -51,7 +51,7 @@ export declare class Spiceflow<const in out BasePath extends string = '', const
51
51
  path: string;
52
52
  method: HTTPMethod;
53
53
  type: ContentType;
54
- handler: InlineHandler<any, any, any>;
54
+ handler: InlineHandler<any, any, any, any>;
55
55
  hooks: LocalHook<any, any, any, any, any, any, any>;
56
56
  validateBody?: ValidationFunction;
57
57
  validateQuery?: ValidationFunction;
@@ -73,7 +73,7 @@ export declare class Spiceflow<const in out BasePath extends string = '', const
73
73
  scoped?: Scoped;
74
74
  basePath?: BasePath;
75
75
  });
76
- post<const Path extends string, const LocalSchema extends InputSchema<keyof Definitions['type'] & string>, const Schema extends UnwrapRoute<LocalSchema, Definitions['type']>, const Handle extends InlineHandler<Schema, Singleton, JoinPath<BasePath, Path>>>(path: Path, handler: Handle, hook?: LocalHook<LocalSchema, Schema, Singleton, Definitions['error'], Metadata['macro'], JoinPath<BasePath, Path>>): Spiceflow<BasePath, Scoped, Singleton, Definitions, Metadata, ClientRoutes & CreateClient<JoinPath<BasePath, Path>, {
76
+ post<const Path extends string, const LocalSchema extends InputSchema<keyof Definitions['type'] & string>, const Schema extends UnwrapRoute<LocalSchema, Definitions['type']>, const Handle extends InlineHandler<this, Schema, Singleton, JoinPath<BasePath, Path>>>(path: Path, handler: Handle, hook?: LocalHook<LocalSchema, Schema, Singleton, Definitions['error'], Metadata['macro'], JoinPath<BasePath, Path>>): Spiceflow<BasePath, Scoped, Singleton, Definitions, Metadata, ClientRoutes & CreateClient<JoinPath<BasePath, Path>, {
77
77
  post: {
78
78
  request: GetRequestSchema<Schema>;
79
79
  params: undefined extends Schema['params'] ? ResolvePath<Path> : Schema['params'];
@@ -81,7 +81,7 @@ export declare class Spiceflow<const in out BasePath extends string = '', const
81
81
  response: ComposeSpiceflowResponse<Schema['response'], Handle>;
82
82
  };
83
83
  }>, RoutePaths | JoinPath<BasePath, Path>>;
84
- get<const Path extends string, const LocalSchema extends InputSchema<keyof Definitions['type'] & string>, const Schema extends UnwrapRoute<LocalSchema, Definitions['type']>, const Macro extends Metadata['macro'], const Handle extends InlineHandler<Schema, Singleton, JoinPath<BasePath, Path>>>(path: Path, handler: Handle, hook?: LocalHook<LocalSchema, Schema, Singleton, Definitions['error'], Macro, JoinPath<BasePath, Path>>): Spiceflow<BasePath, Scoped, Singleton, Definitions, Metadata, ClientRoutes & CreateClient<JoinPath<BasePath, Path>, {
84
+ get<const Path extends string, const LocalSchema extends InputSchema<keyof Definitions['type'] & string>, const Schema extends UnwrapRoute<LocalSchema, Definitions['type']>, const Macro extends Metadata['macro'], const Handle extends InlineHandler<this, Schema, Singleton, JoinPath<BasePath, Path>>>(path: Path, handler: Handle, hook?: LocalHook<LocalSchema, Schema, Singleton, Definitions['error'], Macro, JoinPath<BasePath, Path>>): Spiceflow<BasePath, Scoped, Singleton, Definitions, Metadata, ClientRoutes & CreateClient<JoinPath<BasePath, Path>, {
85
85
  get: {
86
86
  request: GetRequestSchema<Schema>;
87
87
  params: undefined extends Schema['params'] ? ResolvePath<Path> : Schema['params'];
@@ -89,7 +89,7 @@ export declare class Spiceflow<const in out BasePath extends string = '', const
89
89
  response: ComposeSpiceflowResponse<Schema['response'], Handle>;
90
90
  };
91
91
  }>, RoutePaths | JoinPath<BasePath, Path>>;
92
- put<const Path extends string, const LocalSchema extends InputSchema<keyof Definitions['type'] & string>, const Schema extends UnwrapRoute<LocalSchema, Definitions['type']>, const Handle extends InlineHandler<Schema, Singleton, JoinPath<BasePath, Path>>>(path: Path, handler: Handle, hook?: LocalHook<LocalSchema, Schema, Singleton, Definitions['error'], Metadata['macro'], JoinPath<BasePath, Path>>): Spiceflow<BasePath, Scoped, Singleton, Definitions, Metadata, ClientRoutes & CreateClient<JoinPath<BasePath, Path>, {
92
+ put<const Path extends string, const LocalSchema extends InputSchema<keyof Definitions['type'] & string>, const Schema extends UnwrapRoute<LocalSchema, Definitions['type']>, const Handle extends InlineHandler<this, Schema, Singleton, JoinPath<BasePath, Path>>>(path: Path, handler: Handle, hook?: LocalHook<LocalSchema, Schema, Singleton, Definitions['error'], Metadata['macro'], JoinPath<BasePath, Path>>): Spiceflow<BasePath, Scoped, Singleton, Definitions, Metadata, ClientRoutes & CreateClient<JoinPath<BasePath, Path>, {
93
93
  put: {
94
94
  request: GetRequestSchema<Schema>;
95
95
  params: undefined extends Schema['params'] ? ResolvePath<Path> : Schema['params'];
@@ -97,7 +97,7 @@ export declare class Spiceflow<const in out BasePath extends string = '', const
97
97
  response: ComposeSpiceflowResponse<Schema['response'], Handle>;
98
98
  };
99
99
  }>, RoutePaths | JoinPath<BasePath, Path>>;
100
- route<const Path extends string, const LocalSchema extends InputSchema<keyof Definitions['type'] & string>, const Schema extends UnwrapRoute<LocalSchema, Definitions['type']>, const Handle extends InlineHandler<Schema, Singleton, JoinPath<BasePath, Path>>, Method extends HTTPMethod | HTTPMethod[]>(options: {
100
+ route<const Path extends string, const LocalSchema extends InputSchema<keyof Definitions['type'] & string>, const Schema extends UnwrapRoute<LocalSchema, Definitions['type']>, const Handle extends InlineHandler<this, Schema, Singleton, JoinPath<BasePath, Path>>, Method extends HTTPMethod | HTTPMethod[]>(options: {
101
101
  path: Path;
102
102
  method: Method;
103
103
  handler: Handle;
@@ -109,7 +109,7 @@ export declare class Spiceflow<const in out BasePath extends string = '', const
109
109
  response: ComposeSpiceflowResponse<Schema['response'], Handle>;
110
110
  };
111
111
  }>, RoutePaths | JoinPath<BasePath, Path>>;
112
- patch<const Path extends string, const LocalSchema extends InputSchema<keyof Definitions['type'] & string>, const Schema extends UnwrapRoute<LocalSchema, Definitions['type']>, const Handle extends InlineHandler<Schema, Singleton, JoinPath<BasePath, Path>>>(path: Path, handler: Handle, hook?: LocalHook<LocalSchema, Schema, Singleton, Definitions['error'], Metadata['macro'], JoinPath<BasePath, Path>>): Spiceflow<BasePath, Scoped, Singleton, Definitions, Metadata, ClientRoutes & CreateClient<JoinPath<BasePath, Path>, {
112
+ patch<const Path extends string, const LocalSchema extends InputSchema<keyof Definitions['type'] & string>, const Schema extends UnwrapRoute<LocalSchema, Definitions['type']>, const Handle extends InlineHandler<this, Schema, Singleton, JoinPath<BasePath, Path>>>(path: Path, handler: Handle, hook?: LocalHook<LocalSchema, Schema, Singleton, Definitions['error'], Metadata['macro'], JoinPath<BasePath, Path>>): Spiceflow<BasePath, Scoped, Singleton, Definitions, Metadata, ClientRoutes & CreateClient<JoinPath<BasePath, Path>, {
113
113
  patch: {
114
114
  request: GetRequestSchema<Schema>;
115
115
  params: undefined extends Schema['params'] ? ResolvePath<Path> : Schema['params'];
@@ -117,7 +117,7 @@ export declare class Spiceflow<const in out BasePath extends string = '', const
117
117
  response: ComposeSpiceflowResponse<Schema['response'], Handle>;
118
118
  };
119
119
  }>, RoutePaths | JoinPath<BasePath, Path>>;
120
- delete<const Path extends string, const LocalSchema extends InputSchema<keyof Definitions['type'] & string>, const Schema extends UnwrapRoute<LocalSchema, Definitions['type']>, const Handle extends InlineHandler<Schema, Singleton, JoinPath<BasePath, Path>>>(path: Path, handler: Handle, hook?: LocalHook<LocalSchema, Schema, Singleton, Definitions['error'], Metadata['macro'], JoinPath<BasePath, Path>>): Spiceflow<BasePath, Scoped, Singleton, Definitions, Metadata, ClientRoutes & CreateClient<JoinPath<BasePath, Path>, {
120
+ delete<const Path extends string, const LocalSchema extends InputSchema<keyof Definitions['type'] & string>, const Schema extends UnwrapRoute<LocalSchema, Definitions['type']>, const Handle extends InlineHandler<this, Schema, Singleton, JoinPath<BasePath, Path>>>(path: Path, handler: Handle, hook?: LocalHook<LocalSchema, Schema, Singleton, Definitions['error'], Metadata['macro'], JoinPath<BasePath, Path>>): Spiceflow<BasePath, Scoped, Singleton, Definitions, Metadata, ClientRoutes & CreateClient<JoinPath<BasePath, Path>, {
121
121
  delete: {
122
122
  request: GetRequestSchema<Schema>;
123
123
  params: undefined extends Schema['params'] ? ResolvePath<Path> : Schema['params'];
@@ -125,7 +125,7 @@ export declare class Spiceflow<const in out BasePath extends string = '', const
125
125
  response: ComposeSpiceflowResponse<Schema['response'], Handle>;
126
126
  };
127
127
  }>, RoutePaths | JoinPath<BasePath, Path>>;
128
- options<const Path extends string, const LocalSchema extends InputSchema<keyof Definitions['type'] & string>, const Schema extends UnwrapRoute<LocalSchema, Definitions['type']>, const Handle extends InlineHandler<Schema, Singleton, JoinPath<BasePath, Path>>>(path: Path, handler: Handle, hook?: LocalHook<LocalSchema, Schema, Singleton, Definitions['error'], Metadata['macro'], JoinPath<BasePath, Path>>): Spiceflow<BasePath, Scoped, Singleton, Definitions, Metadata, ClientRoutes & CreateClient<JoinPath<BasePath, Path>, {
128
+ options<const Path extends string, const LocalSchema extends InputSchema<keyof Definitions['type'] & string>, const Schema extends UnwrapRoute<LocalSchema, Definitions['type']>, const Handle extends InlineHandler<this, Schema, Singleton, JoinPath<BasePath, Path>>>(path: Path, handler: Handle, hook?: LocalHook<LocalSchema, Schema, Singleton, Definitions['error'], Metadata['macro'], JoinPath<BasePath, Path>>): Spiceflow<BasePath, Scoped, Singleton, Definitions, Metadata, ClientRoutes & CreateClient<JoinPath<BasePath, Path>, {
129
129
  options: {
130
130
  request: GetRequestSchema<Schema>;
131
131
  params: undefined extends Schema['params'] ? ResolvePath<Path> : Schema['params'];
@@ -133,7 +133,7 @@ export declare class Spiceflow<const in out BasePath extends string = '', const
133
133
  response: ComposeSpiceflowResponse<Schema['response'], Handle>;
134
134
  };
135
135
  }>, RoutePaths | JoinPath<BasePath, Path>>;
136
- all<const Path extends string, const LocalSchema extends InputSchema<keyof Definitions['type'] & string>, const Schema extends UnwrapRoute<LocalSchema, Definitions['type']>, const Handle extends InlineHandler<Schema, Singleton, JoinPath<BasePath, Path>>>(path: Path, handler: Handle, hook?: LocalHook<LocalSchema, Schema, Singleton, Definitions['error'], Metadata['macro'], JoinPath<BasePath, Path>>): Spiceflow<BasePath, Scoped, Singleton, Definitions, Metadata, ClientRoutes & CreateClient<JoinPath<BasePath, Path>, {
136
+ all<const Path extends string, const LocalSchema extends InputSchema<keyof Definitions['type'] & string>, const Schema extends UnwrapRoute<LocalSchema, Definitions['type']>, const Handle extends InlineHandler<this, Schema, Singleton, JoinPath<BasePath, Path>>>(path: Path, handler: Handle, hook?: LocalHook<LocalSchema, Schema, Singleton, Definitions['error'], Metadata['macro'], JoinPath<BasePath, Path>>): Spiceflow<BasePath, Scoped, Singleton, Definitions, Metadata, ClientRoutes & CreateClient<JoinPath<BasePath, Path>, {
137
137
  [method in string]: {
138
138
  request: GetRequestSchema<Schema>;
139
139
  params: undefined extends Schema['params'] ? ResolvePath<Path> : Schema['params'];
@@ -141,7 +141,7 @@ export declare class Spiceflow<const in out BasePath extends string = '', const
141
141
  response: ComposeSpiceflowResponse<Schema['response'], Handle>;
142
142
  };
143
143
  }>, RoutePaths | JoinPath<BasePath, Path>>;
144
- head<const Path extends string, const LocalSchema extends InputSchema<keyof Definitions['type'] & string>, const Schema extends UnwrapRoute<LocalSchema, Definitions['type']>, const Handle extends InlineHandler<Schema, Singleton, JoinPath<BasePath, Path>>>(path: Path, handler: Handle, hook?: LocalHook<LocalSchema, Schema, Singleton, Definitions['error'], Metadata['macro'], JoinPath<BasePath, Path>>): Spiceflow<BasePath, Scoped, Singleton, Definitions, Metadata, ClientRoutes & CreateClient<JoinPath<BasePath, Path>, {
144
+ head<const Path extends string, const LocalSchema extends InputSchema<keyof Definitions['type'] & string>, const Schema extends UnwrapRoute<LocalSchema, Definitions['type']>, const Handle extends InlineHandler<this, Schema, Singleton, JoinPath<BasePath, Path>>>(path: Path, handler: Handle, hook?: LocalHook<LocalSchema, Schema, Singleton, Definitions['error'], Metadata['macro'], JoinPath<BasePath, Path>>): Spiceflow<BasePath, Scoped, Singleton, Definitions, Metadata, ClientRoutes & CreateClient<JoinPath<BasePath, Path>, {
145
145
  head: {
146
146
  request: GetRequestSchema<Schema>;
147
147
  params: undefined extends Schema['params'] ? ResolvePath<Path> : Schema['params'];
@@ -171,7 +171,7 @@ export declare class Spiceflow<const in out BasePath extends string = '', const
171
171
  }) => Promise<void>;
172
172
  listenForNode(port: number, hostname?: string): Promise<import("http").Server<typeof IncomingMessage, typeof ServerResponse>>;
173
173
  private handleStream;
174
- safePath<const Path extends RoutePaths, const Params extends ExtractParamsFromPath<Path>>(path: Path, params: Params): string;
174
+ safePath<const Path extends RoutePaths, const Params extends ExtractParamsFromPath<Path>>(path: Path, ...rest: [Params] extends [undefined] ? [] | [params?: Params] : [params: Params]): string;
175
175
  }
176
176
  declare const METHODS: readonly ["ALL", "CONNECT", "DELETE", "GET", "HEAD", "OPTIONS", "PATCH", "POST", "PUT", "TRACE"];
177
177
  /** HTTP method string */
@@ -1 +1 @@
1
- {"version":3,"file":"spiceflow.d.ts","sourceRoot":"","sources":["../src/spiceflow.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"spiceflow.d.ts","sourceRoot":"","sources":["../src/spiceflow.ts"],"names":[],"mappings":"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"}
package/dist/spiceflow.js CHANGED
@@ -302,7 +302,7 @@ export class Spiceflow {
302
302
  }
303
303
  context.query = await runValidation(context.query, route.internalRoute?.validateQuery);
304
304
  context.params = await runValidation(context.params, route.internalRoute?.validateParams);
305
- const res = await route.internalRoute?.handler(context);
305
+ const res = await route.internalRoute?.handler.call(this, context);
306
306
  if (isAsyncIterable(res)) {
307
307
  handlerResponse = await this.handleStream({
308
308
  generator: res,
@@ -511,19 +511,23 @@ export class Spiceflow {
511
511
  },
512
512
  });
513
513
  }
514
- safePath(path, params) {
514
+ safePath(path, ...rest) {
515
+ let params = (rest.length > 0 ? rest[0] : undefined);
515
516
  let result = path;
516
- // First, handle all provided parameters
517
+ // Handle all provided parameters
517
518
  if (params && typeof params === 'object') {
518
519
  Object.entries(params).forEach(([key, value]) => {
519
- // Handle both required (:key) and optional (:key?) parameters
520
- const regex = new RegExp(`:${key}\\??`, 'g');
521
- result = result.replace(regex, String(value));
520
+ if (key === '*') {
521
+ // Replace wildcard
522
+ result = result.replace(/\*/, String(value));
523
+ }
524
+ else {
525
+ // Replace named parameters as before
526
+ const regex = new RegExp(`:${key}`, 'g');
527
+ result = result.replace(regex, String(value));
528
+ }
522
529
  });
523
530
  }
524
- // Then, handle any remaining optional parameters that weren't provided
525
- // Replace any remaining :param? with empty string (keeping trailing slash)
526
- result = result.replace(/:[\w-]+\?/g, '');
527
531
  return result;
528
532
  }
529
533
  }
@@ -9,6 +9,44 @@ test('works', async () => {
9
9
  expect(res.status).toBe(200);
10
10
  expect(await res.json()).toEqual('hi');
11
11
  });
12
+ test('* param is a path without front slash', async () => {
13
+ const app = new Spiceflow().post('/upload/*', ({ params }) => {
14
+ return params['*'];
15
+ });
16
+ {
17
+ const res = await app.handle(new Request('http://localhost/upload/', {
18
+ method: 'POST',
19
+ }));
20
+ expect(res.status).toBe(404);
21
+ }
22
+ {
23
+ const res = await app.handle(new Request('http://localhost/upload/some/nested/key.txt', {
24
+ method: 'POST',
25
+ }));
26
+ expect(res.status).toBe(200);
27
+ expect(await res.json()).toEqual(`some/nested/key.txt`);
28
+ }
29
+ });
30
+ test('this works to reference app in handler', async () => {
31
+ const res = await new Spiceflow()
32
+ .route({
33
+ method: 'POST',
34
+ path: '/another',
35
+ handler() {
36
+ return 'ok';
37
+ },
38
+ })
39
+ .route({
40
+ method: 'POST',
41
+ path: '/href',
42
+ handler() {
43
+ return this.safePath('/another');
44
+ },
45
+ })
46
+ .handle(new Request('http://localhost/href', { method: 'POST' }));
47
+ expect(res.status).toBe(200);
48
+ expect(await res.json()).toEqual('/another');
49
+ });
12
50
  test('routes works', async () => {
13
51
  const res = await new Spiceflow()
14
52
  .route({
@@ -696,9 +734,13 @@ describe('safePath', () => {
696
734
  test('handles simple paths without parameters', () => {
697
735
  const app = new Spiceflow()
698
736
  .get('/users', () => 'users')
699
- .get('/posts', () => 'posts');
700
- expect(app.safePath('/users', {})).toBe('/users');
701
- expect(app.safePath('/posts', {})).toBe('/posts');
737
+ .get('/posts', () => 'posts')
738
+ .get('/posts/*', () => 'posts');
739
+ expect(app.safePath('/users')).toBe('/users');
740
+ expect(app.safePath('/posts')).toBe('/posts');
741
+ // @ts-expect-error
742
+ app.safePath('/posts/*');
743
+ expect(app.safePath('/posts/*', { '*': 'some/key' })).toBe('/posts/some/key');
702
744
  });
703
745
  test('handles paths with required parameters', () => {
704
746
  const app = new Spiceflow()
@@ -714,32 +756,6 @@ describe('safePath', () => {
714
756
  commentId: '456',
715
757
  })).toBe('/posts/abc/comments/456');
716
758
  });
717
- test('handles paths with optional parameters', () => {
718
- const app = new Spiceflow()
719
- .get('/users/:id?', ({ params }) => params.id)
720
- .get('/posts/:postId/comments/:commentId?', ({ params }) => params);
721
- expect(app.safePath('/users/:id?', { id: '123' })).toBe('/users/123');
722
- expect(app.safePath('/users/:id?', {})).toBe('/users/');
723
- expect(app.safePath('/posts/:postId/comments/:commentId?', {
724
- postId: 'abc',
725
- commentId: '456',
726
- })).toBe('/posts/abc/comments/456');
727
- expect(app.safePath('/posts/:postId/comments/:commentId?', {
728
- postId: 'abc',
729
- })).toBe('/posts/abc/comments/');
730
- });
731
- test('handles mixed required and optional parameters', () => {
732
- const app = new Spiceflow().get('/api/:version/users/:id/posts/:postId?', ({ params }) => params);
733
- expect(app.safePath('/api/:version/users/:id/posts/:postId?', {
734
- version: 'v1',
735
- id: '123',
736
- postId: 'abc',
737
- })).toBe('/api/v1/users/123/posts/abc');
738
- expect(app.safePath('/api/:version/users/:id/posts/:postId?', {
739
- version: 'v1',
740
- id: '123',
741
- })).toBe('/api/v1/users/123/posts/');
742
- });
743
759
  test('handles numeric parameter values', () => {
744
760
  const app = new Spiceflow().get('/users/:id', ({ params }) => params.id);
745
761
  expect(app.safePath('/users/:id', { id: '123' })).toBe('/users/123');
@@ -747,6 +763,6 @@ describe('safePath', () => {
747
763
  });
748
764
  test('handles empty parameters object', () => {
749
765
  const app = new Spiceflow().get('/static', () => 'static');
750
- expect(app.safePath('/static', {})).toBe('/static');
766
+ expect(app.safePath('/static')).toBe('/static');
751
767
  });
752
768
  });
package/dist/types.d.ts CHANGED
@@ -112,9 +112,9 @@ export type IsAny<T> = 0 extends 1 & T ? true : false;
112
112
  export type CoExist<Original, Target, With> = IsAny<Target> extends true ? Original : Original extends Record<string, unknown> ? {
113
113
  [K in keyof Original]: Original[K] extends Target ? Original[K] | With : Original[K];
114
114
  } : Original extends Target ? Original | With : Original;
115
- export type InlineHandler<Route extends RouteSchema = {}, Singleton extends SingletonBase = {
115
+ export type InlineHandler<This, Route extends RouteSchema = {}, Singleton extends SingletonBase = {
116
116
  state: {};
117
- }, Path extends string = '', MacroContext = {}> = (context: MacroContext extends Record<string | number | symbol, unknown> ? Prettify<MacroContext & Context<Route, Singleton, Path>> : Context<Route, Singleton, Path>) => Response | MaybePromiseIterable<{} extends Route['response'] ? unknown : (Route['response'] extends {
117
+ }, Path extends string = '', MacroContext = {}> = (this: This, context: MacroContext extends Record<string | number | symbol, unknown> ? Prettify<MacroContext & Context<Route, Singleton, Path>> : Context<Route, Singleton, Path>) => Response | MaybePromiseIterable<{} extends Route['response'] ? unknown : (Route['response'] extends {
118
118
  200: any;
119
119
  } ? Route['response'] : string | number | boolean | Object) | Route['response'][keyof Route['response']] | {
120
120
  [Status in keyof Route['response']]: {
@@ -361,14 +361,12 @@ export type HTTPHeaders = Record<string, string> & {
361
361
  export type JoinPath<A extends string, B extends string> = `${A}${B extends '/' ? '/index' : B extends '' ? B : B extends `/${string}` ? B : B}`;
362
362
  export type PartialWithRequired<T, K extends keyof T> = Partial<Omit<T, K>> & Pick<T, K>;
363
363
  export type GetPathsFromRoutes<Routes extends Record<string, unknown>> = Routes extends Record<infer K, any> ? (K extends string ? K : never) : never;
364
- export type ExtractParamsFromPath<Path extends string> = Path extends `${string}:${infer Param}/${infer Rest}` ? Param extends `${infer Name}?` ? {
365
- [K in Name]?: string;
366
- } & ExtractParamsFromPath<`/${Rest}`> : {
364
+ export type ExtractParamsFromPath<Path extends string> = Path extends `${string}:${infer Param}/${infer Rest}` ? {
367
365
  [K in Param]: string;
368
- } & ExtractParamsFromPath<`/${Rest}`> : Path extends `${string}:${infer Param}` ? Param extends `${infer Name}?` ? {
369
- [K in Name]?: string;
370
- } : {
366
+ } & ExtractParamsFromPath<`/${Rest}`> : Path extends `${string}:${infer Param}` ? {
371
367
  [K in Param]: string;
372
- } : {};
368
+ } : Path extends `${string}*${infer StarRest}` ? {
369
+ ['*']: string;
370
+ } : undefined;
373
371
  export {};
374
372
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AACxD,OAAO,CAAC,MAAM,KAAK,CAAA;AAEnB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AAE9C,OAAO,EAAE,UAAU,EAAE,MAAM,KAAK,CAAA;AAChC,OAAO,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAA;AAC5E,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAChE,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAExD,MAAM,MAAM,UAAU,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAA;AACnC,MAAM,MAAM,YAAY,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;AAC5C,MAAM,MAAM,oBAAoB,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,CAAA;AAEvE,MAAM,MAAM,YAAY,CAAC,CAAC,SAAS,MAAM,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAA;AAEvD,KAAK,eAAe,CAAC,IAAI,SAAS,MAAM,IAAI,IAAI,SAAS,IAAI,MAAM,SAAS,EAAE,GAC1E,SAAS,GACT,IAAI,SAAS,GAAG,GACd,GAAG,GACH,KAAK,CAAA;AAEX,MAAM,MAAM,gBAAgB,CAAC,IAAI,SAAS,MAAM,IAC9C,IAAI,SAAS,GAAG,MAAM,CAAC,IAAI,MAAM,CAAC,EAAE,GAChC,eAAe,CAAC,CAAC,CAAC,GAAG,gBAAgB,CAAC,CAAC,CAAC,GACxC,eAAe,CAAC,IAAI,CAAC,CAAA;AAE3B,MAAM,MAAM,WAAW,CAAC,IAAI,SAAS,MAAM,IAAI,QAAQ,CACrD;KACG,KAAK,IAAI,gBAAgB,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,GAAG,MAAM,GAAG,GAC1D,KAAK,GACL,KAAK,GAAG,MAAM;CACnB,GAAG;KACD,KAAK,IAAI,gBAAgB,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,GAAG,MAAM,aAAa,GAAG,GACvE,aAAa,GACb,KAAK,CAAC,CAAC,EAAE,MAAM;CACpB,CACF,CAAA;AAGD,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI;KACvB,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CACrB,GAAG,EAAE,CAAA;AAEN,MAAM,MAAM,SAAS,CAAC,CAAC,IAAI;KACxB,CAAC,IAAI,MAAM,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAC/B,GAAG,EAAE,CAAA;AAEN,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI;KACvB,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAC/B,CAAA;AAED,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI;KACvB,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;CACtB,GAAG,EAAE,CAAA;AAEN,KAAK,YAAY,CAAC,CAAC,EAAE,CAAC,IACpB,CAAC,SAAS,MAAM,CAAC,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,OAAO,CAAC,GAC/C,CAAC,SAAS,MAAM,CAAC,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,OAAO,CAAC,GACjD,OAAO,CAAC,CAAC,CAAC,SAAS,KAAK,GACtB,OAAO,CAAC,CAAC,CAAC,SAAS,KAAK,GACtB,IAAI,GACJ,KAAK,GACP,KAAK,GACP,KAAK,GACP,KAAK,CAAA;AAEX,KAAK,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS,QAAQ,MAAM,GAAG,IAAI,EAAE,GAAG,KAAK,GAAG,GAAG,IAAI,GAAG,KAAK,CAAA;AAE7E,MAAM,MAAM,SAAS,CACnB,CAAC,SAAS,MAAM,EAChB,CAAC,SAAS,MAAM,EAChB,QAAQ,SAAS,OAAO,GAAG,KAAK,EAEhC,KAAK,SAAS,MAAM,EAAE,GAAG,EAAE,IACzB,KAAK,CAAC,QAAQ,CAAC,SAAS,EAAE,GAC1B,CAAC,GACD,QAAQ,SAAS,IAAI,GACnB;KACG,GAAG,IAAI,MAAM,CAAC,IAAI,GAAG,SAAS,MAAM,CAAC,GAAG,KAAK,GAAG,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC;CAC9D,SAAS,MAAM,SAAS,GACvB,EAAE,SAAS,SAAS,GAClB;KACG,GAAG,IAAI,MAAM,CAAC,GAAG,YAAY,CAE5B,CAAC,CAAC,GAAG,CAAC,EACN,CAAC,CAAC,GAAG,CAAC,CACP,SAAS,IAAI,GACV,SAAS,CAEP,CAAC,CAAC,GAAG,CAAC,EACN,CAAC,CAAC,GAAG,CAAC,EACN,QAAQ,EACR;QAAC,CAAC;QAAE,GAAG,KAAK;KAAC,CACd,GACD,CAAC,CAAC,GAAG,CAAC;CACX,GACD,QAAQ,CACN,SAAS,GAAG;KACT,GAAG,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC;CACzB,CACF,GACH,KAAK,GACP;KACK,GAAG,IAAI,MAAM,CAAC,IAAI,GAAG,SAAS,MAAM,CAAC,GAAG,KAAK,GAAG,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC;CAC9D,SAAS,MAAM,SAAS,GACzB,EAAE,SAAS,SAAS,GAClB;KACG,GAAG,IAAI,MAAM,CAAC,GAAG,YAAY,CAC5B,CAAC,CAAC,GAAG,CAAC,EAEN,CAAC,CAAC,GAAG,CAAC,CACP,SAAS,IAAI,GACV,SAAS,CAEP,CAAC,CAAC,GAAG,CAAC,EAEN,CAAC,CAAC,GAAG,CAAC,EACN,QAAQ,EACR;QAAC,CAAC;QAAE,GAAG,KAAK;KAAC,CACd,GACD,CAAC,CAAC,GAAG,CAAC;CACX,GACD,QAAQ,CACN;KACG,GAAG,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC;CACzB,GAAG,SAAS,CACd,GACH,KAAK,CAAA;AAEb,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAC/B;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC7B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;CAC7B;AAED,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;AAE/C,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,WAAW,CAAA;IACnB,KAAK,EAAE,SAAS,CAAA;IAChB,OAAO,EAAE,WAAW,CAAA;CACrB;AAED,MAAM,MAAM,WAAW,GAAG;IACxB,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB,CAAA;AAED,MAAM,MAAM,UAAU,GAAG,gBAAgB,CAAA;AAEzC,MAAM,MAAM,UAAU,GAAG,gBAAgB,CAAA;AAEzC,MAAM,MAAM,YAAY,CACtB,MAAM,SAAS,UAAU,GAAG,MAAM,GAAG,SAAS,EAC9C,WAAW,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,EAAE,IAC9C,MAAM,SAAS,SAAS,GACxB,OAAO,GACP,MAAM,SAAS,gBAAgB,GAC7B,gBAAgB,CAAC,WAAW,CAAC,MAAM,CAAC,GACpC,MAAM,SAAS,UAAU,GACvB,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,GACf,MAAM,SAAS,MAAM,GACnB,WAAW,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,WAAW,CAAC,GACnD,WAAW,GACX,WAAW,GACb,OAAO,CAAA;AAEjB,MAAM,MAAM,gBAAgB,CAAC,MAAM,SAAS,WAAW,CAAC,GAAG,CAAC,IAC1D,SAAS,SAAS,MAAM,MAAM,GAC1B,MAAM,CAAC,SAAS,CAAC,GACjB,MAAM,SAAS,MAAM,MAAM,GACzB,MAAM,CAAC,MAAM,CAAC,GACd,SAAS,CAAA;AAEjB,MAAM,WAAW,WAAW,CAC1B,EAAE,CAAC,GAAG,CAAC,MAAM,SAAS,WAAW,CAAC,GAAG,CAAC,EACtC,EAAE,CAAC,GAAG,CAAC,WAAW,SAAS,cAAc,CAAC,MAAM,CAAC,GAAG,EAAE;IAEtD,OAAO,EAAE,YAAY,CAAC,gBAAgB,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC,CAAA;IAC5D,KAAK,EAAE,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,WAAW,CAAC,CAAA;IACjD,MAAM,EAAE,YAAY,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,WAAW,CAAC,CAAA;IACnD,QAAQ,EAAE,MAAM,CAAC,UAAU,CAAC,SAAS,UAAU,GAAG,MAAM,GACpD;QACE,GAAG,EAAE,YAAY,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,WAAW,CAAC,CAAA;KACnD,GACD,MAAM,CAAC,UAAU,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CAAC,GAC5D;SACG,CAAC,IAAI,MAAM,MAAM,CAAC,UAAU,CAAC,GAAG,YAAY,CAC3C,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EACrB,WAAW,CACZ;KACF,GACD,OAAO,GAAG,IAAI,CAAA;CACrB;AAED,MAAM,MAAM,cAAc,GACtB,OAAO,GACP,SAAS,GACT,OAAO,GACP,WAAW,GACX,cAAc,GACd,aAAa,GACb,UAAU,GACV,OAAO,GACP,MAAM,CAAA;AAEV,MAAM,MAAM,WAAW,GAAG,UAAU,CAChC,CAAC,MAAM,GAAG,EAAE,CAAC,GAOb,YAAY,GACZ,kBAAkB,GAClB,qBAAqB,GACrB,mCAAmC,CACtC,CAAA;AAED,MAAM,MAAM,UAAU,GAClB,CAAC,MAAM,GAAG,EAAE,CAAC,GACb,KAAK,GACL,MAAM,GACN,UAAU,GACV,SAAS,GACT,MAAM,GACN,QAAQ,GACR,KAAK,GACL,MAAM,GACN,MAAM,GACN,MAAM,GACN,UAAU,GACV,OAAO,GACP,YAAY,GACZ,YAAY,GACZ,OAAO,GACP,MAAM,GACN,QAAQ,GACR,SAAS,GACT,OAAO,GACP,MAAM,GACN,UAAU,GACV,WAAW,GACX,OAAO,GACP,KAAK,GACL,QAAQ,GACR,QAAQ,GACR,QAAQ,GACR,QAAQ,GACR,WAAW,GACX,OAAO,GACP,QAAQ,GACR,QAAQ,GACR,QAAQ,GACR,aAAa,GACb,KAAK,CAAA;AAET,MAAM,WAAW,WAAW,CAAC,IAAI,SAAS,MAAM,GAAG,MAAM;IACvD;;OAEG;IACH,IAAI,CAAC,EAAE,UAAU,GAAG,IAAI,CAAA;IACxB,OAAO,CAAC,EAAE,UAAU,GAAG,IAAI,CAAA;IAC3B,KAAK,CAAC,EAAE,UAAU,GAAG,IAAI,CAAA;IACzB,MAAM,CAAC,EAAE,UAAU,GAAG,IAAI,CAAA;IAC1B,QAAQ,CAAC,EACL,UAAU,GACV,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,GAC1B,IAAI,GACJ,MAAM,CAAC,MAAM,EAAE,IAAI,GAAG,UAAU,CAAC,CAAA;CACtC;AAED,MAAM,WAAW,WAAW,CAC1B,EAAE,CAAC,GAAG,CAAC,CAAC,SAAS,WAAW,EAC5B,EAAE,CAAC,GAAG,CAAC,CAAC,SAAS,WAAW;IAE5B,OAAO,EAAE,SAAS,SAAS,gBAAgB,CAAC,CAAC,CAAC,GAC1C,gBAAgB,CAAC,CAAC,CAAC,GACnB,gBAAgB,CAAC,CAAC,CAAC,CAAA;IACvB,KAAK,EAAE,SAAS,SAAS,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAA;IAC7D,MAAM,EAAE,SAAS,SAAS,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAA;IACjE,QAAQ,EAAE,EAAE,SAAS,CAAC,CAAC,UAAU,CAAC,GAC9B,EAAE,SAAS,CAAC,CAAC,UAAU,CAAC,GACtB,EAAE,GACF,CAAC,CAAC,UAAU,CAAC,GACf,EAAE,SAAS,CAAC,CAAC,UAAU,CAAC,GACtB,CAAC,CAAC,UAAU,CAAC,GACb,CAAC,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC,CAAC,UAAU,CAAC,CAAC,CAAA;CAC/D;AAED,MAAM,MAAM,OAAO,CACjB,EAAE,CAAC,GAAG,CAAC,KAAK,SAAS,WAAW,GAAG,EAAE,EACrC,EAAE,CAAC,GAAG,CAAC,SAAS,SAAS,aAAa,GAAG;IACvC,KAAK,EAAE,EAAE,CAAA;CACV,EACD,IAAI,SAAS,MAAM,GAAG,EAAE,IACtB,CACF,OAAO,EAAE,OAAO,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,KACrC,YAAY,CACf,EAAE,SAAS,KAAK,CAAC,UAAU,CAAC,GACxB,OAAO,GACP,KAAK,CAAC,UAAU,CAAC,CAAC,MAAM,KAAK,CAAC,UAAU,CAAC,CAAC,CAC/C,CAAA;AAED,MAAM,MAAM,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,IACxC,KAAK,CAAC,MAAM,CAAC,SAAS,IAAI,GACtB,QAAQ,GACR,QAAQ,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACtC;KACG,CAAC,IAAI,MAAM,QAAQ,GAAG,QAAQ,CAAC,CAAC,CAAC,SAAS,MAAM,GAAG,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC;CACvE,GACD,QAAQ,SAAS,MAAM,GACrB,IAAI,GACJ,QAAQ,CAAA;AAElB,MAAM,MAAM,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,KAAK,CAAA;AAErD,MAAM,MAAM,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,IACxC,KAAK,CAAC,MAAM,CAAC,SAAS,IAAI,GACtB,QAAQ,GACR,QAAQ,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACtC;KACG,CAAC,IAAI,MAAM,QAAQ,GAAG,QAAQ,CAAC,CAAC,CAAC,SAAS,MAAM,GAC7C,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,GAClB,QAAQ,CAAC,CAAC,CAAC;CAChB,GACD,QAAQ,SAAS,MAAM,GACrB,QAAQ,GAAG,IAAI,GACf,QAAQ,CAAA;AAElB,MAAM,MAAM,aAAa,CACvB,KAAK,SAAS,WAAW,GAAG,EAAE,EAC9B,SAAS,SAAS,aAAa,GAAG;IAChC,KAAK,EAAE,EAAE,CAAA;CACV,EACD,IAAI,SAAS,MAAM,GAAG,EAAE,EACxB,YAAY,GAAG,EAAE,IACf,CACF,OAAO,EAAE,YAAY,SAAS,MAAM,CAAC,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,OAAO,CAAC,GACnE,QAAQ,CAAC,YAAY,GAAG,OAAO,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC,GACxD,OAAO,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,KAEjC,QAAQ,GACR,oBAAoB,CAClB,EAAE,SAAS,KAAK,CAAC,UAAU,CAAC,GACxB,OAAO,GAEH,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS;IAAE,GAAG,EAAE,GAAG,CAAA;CAAE,GACnC,KAAK,CAAC,UAAU,CAAC,GACjB,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC,GACvC,KAAK,CAAC,UAAU,CAAC,CAAC,MAAM,KAAK,CAAC,UAAU,CAAC,CAAC,GAC1C;KACG,MAAM,IAAI,MAAM,KAAK,CAAC,UAAU,CAAC,GAAG;QACnC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,CAAA;QAChD,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAA;KAC7B;CACF,CAAC,MAAM,KAAK,CAAC,UAAU,CAAC,CAAC,CACnC,CAAA;AAEL,MAAM,MAAM,eAAe,CACzB,EAAE,CAAC,GAAG,CAAC,KAAK,SAAS,WAAW,GAAG,EAAE,EACrC,EAAE,CAAC,GAAG,CAAC,SAAS,SAAS,aAAa,GAAG;IACvC,KAAK,EAAE,EAAE,CAAA;CACV,EACD,IAAI,SAAS,MAAM,GAAG,EAAE,IAExB,OAAO,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,CACtC,OAAO,EAAE,MAAM,OAAO,KACnB,MAAM,QAAQ,GACf,CAAC,OAAO,EAAE,OAAO,KAAK,QAAQ,GAAG,YAAY,CAAC,IAAI,CAAC,GACnD,KAAK,CAAA;AAEX,MAAM,MAAM,YAAY,CACtB,EAAE,CAAC,GAAG,CAAC,KAAK,SAAS,WAAW,GAAG,EAAE,EACrC,EAAE,CAAC,GAAG,CAAC,SAAS,SAAS,aAAa,GAAG;IACvC,KAAK,EAAE,EAAE,CAAA;CACV,EACD,IAAI,SAAS,MAAM,GAAG,EAAE,IAExB,OAAO,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,CACtC,OAAO,EAAE,MAAM,OAAO,KACnB,MAAM,QAAQ,GACf,CACE,OAAO,EAAE,QAAQ,CACf;IACE,QAAQ,EAAE,KAAK,CAAC,UAAU,CAAC,CAAA;CAC5B,GAAG,OAAO,CACZ,KACE,QAAQ,GAAG,YAAY,CAAC,IAAI,CAAC,GAClC,KAAK,CAAA;AAEX,MAAM,MAAM,WAAW,CACrB,EAAE,CAAC,GAAG,CAAC,KAAK,SAAS,WAAW,GAAG,EAAE,EACrC,EAAE,CAAC,GAAG,CAAC,SAAS,SAAS,aAAa,GAAG;IACvC,KAAK,EAAE,EAAE,CAAA;CACV,EACD,IAAI,SAAS,MAAM,GAAG,EAAE,IACtB,OAAO,CACT,IAAI,CAAC,KAAK,EAAE,UAAU,CAAC,GAAG;IACxB,QAAQ,EAAE,YAAY,CAAC,QAAQ,GAAG,SAAS,GAAG,OAAO,CAAC,CAAA;CACvD,EACD,SAAS,GAAG;IACV,MAAM,EAAE;QACN,QAAQ,EAAE,KAAK,CAAC,UAAU,CAAC,CAAA;KAC5B,CAAA;CACF,EACD,IAAI,CACL,CAAA;AAED,MAAM,MAAM,WAAW,CACrB,EAAE,CAAC,GAAG,CAAC,KAAK,SAAS,WAAW,GAAG,EAAE,EACrC,EAAE,CAAC,GAAG,CAAC,SAAS,SAAS,aAAa,GAAG;IACvC,KAAK,EAAE,EAAE,CAAA;CACV,IACC,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,EAAE,SAAS,CAAC,KAAK,YAAY,CAAC,IAAI,CAAC,CAAA;AAE9D,MAAM,MAAM,gBAAgB,CAC1B,EAAE,CAAC,GAAG,CAAC,KAAK,SAAS,WAAW,GAAG,EAAE,EACrC,EAAE,CAAC,GAAG,CAAC,SAAS,SAAS,aAAa,GAAG;IACvC,KAAK,EAAE,EAAE,CAAA;CACV,EACD,QAAQ,SAAS,MAAM,GAAG,EAAE,IAC1B;IACF,CACE,OAAO,EAAE,QAAQ,CACf,OAAO,CACL,KAAK,EACL,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,GAAG;QAC3B,OAAO,EAAE,EAAE,CAAA;KACZ,EACD,QAAQ,CACT,CACF,GACA,YAAY,CAAC,IAAI,CAAC,CAAA;CACtB,CAAA;AAED,MAAM,MAAM,WAAW,CACrB,EAAE,CAAC,GAAG,CAAC,KAAK,SAAS,WAAW,GAAG,EAAE,EACrC,EAAE,CAAC,GAAG,CAAC,SAAS,SAAS,aAAa,GAAG;IACvC,KAAK,EAAE,EAAE,CAAA;CACV,EACD,IAAI,SAAS,MAAM,GAAG,EAAE,IACtB,CACF,OAAO,EAAE,QAAQ,CACf;IACE,WAAW,EAAE,MAAM,CAAA;CACpB,GAAG,OAAO,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,CACpC,EAED,WAAW,EAAE,MAAM,KAChB,YAAY,CAAC,GAAG,CAAC,CAAA;AAEtB,MAAM,MAAM,iBAAiB,CAC3B,EAAE,CAAC,GAAG,CAAC,KAAK,SAAS,WAAW,GAAG,EAAE,EACrC,EAAE,CAAC,GAAG,CAAC,SAAS,SAAS,aAAa,GAAG,GAAG,IAC1C,CACF,OAAO,EAAE,iBAAiB,CAAC,SAAS,CAAC,EACrC,IAAI,EAAE,MAAM,OAAO,CAAC,QAAQ,CAAC,KAC1B,YAAY,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,CAAA;AAE3C,MAAM,MAAM,oBAAoB,CAC9B,EAAE,CAAC,GAAG,CAAC,KAAK,SAAS,WAAW,GAAG,EAAE,EACrC,EAAE,CAAC,GAAG,CAAC,SAAS,SAAS,aAAa,GAAG;IACvC,KAAK,EAAE,EAAE,CAAA;CACV,IACC,CACF,OAAO,EAAE,QAAQ,CACf,OAAO,CAAC,KAAK,EAAE,SAAS,CAAC,GAAG;IAC1B,QAAQ,EAAE,KAAK,CAAC,UAAU,CAAC,CAAA;CAC5B,CACF,KACE,YAAY,CAAC,IAAI,CAAC,CAAA;AAMvB,MAAM,MAAM,YAAY,CACtB,EAAE,CAAC,GAAG,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG,EAAE,EAC3C,EAAE,CAAC,GAAG,CAAC,KAAK,SAAS,WAAW,GAAG,EAAE,EACrC,EAAE,CAAC,GAAG,CAAC,SAAS,SAAS,aAAa,GAAG;IACvC,KAAK,EAAE,EAAE,CAAA;CACV,IACC,CACF,OAAO,EAAE,YAAY,CACnB,KAAK,EACL;IACE,KAAK,EAAE,SAAS,CAAC,OAAO,CAAC,CAAA;CAC1B,CACF,GACC,CACI,QAAQ,CACN;IACE,OAAO,EAAE,OAAO,CAAA;IAChB,IAAI,EAAE,SAAS,CAAA;IACf,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAA;CACvB,GAAG,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAChC,GACD,QAAQ,CACN;IACE,OAAO,EAAE,OAAO,CAAA;IAChB,IAAI,EAAE,YAAY,CAAA;IAClB,KAAK,EAAE,QAAQ,CAAC,eAAe,CAAC,CAAA;CACjC,GAAG,SAAS,CAAC,OAAO,CAAC,CACvB,GASD,QAAQ,CACN;KACG,CAAC,IAAI,MAAM,CAAC,GAAG;QACd,OAAO,EAAE,OAAO,CAAA;QAChB,IAAI,EAAE,CAAC,CAAA;QACP,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;KACtB;CACF,CAAC,MAAM,CAAC,CAAC,GACR,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAC9B,CACJ,KACA,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAA;AAEvB,MAAM,MAAM,OAAO,CAAC,CAAC,IAAI;KACtB,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CACrB,CAAA;AAED,MAAM,MAAM,kBAAkB,GAAG,OAAO,CAAC,SAAS,CAAC,eAAe,CAAC,GAAG;IACpE;;SAEK;IACL,IAAI,CAAC,EAAE,OAAO,CAAA;IAEd,uBAAuB,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;IAC3C,wBAAwB,CAAC,EAAE,MAAM,CAAA;IACjC,gBAAgB,CAAC,EAAE,OAAO,CAAA;CAC3B,CAAA;AAED,MAAM,MAAM,SAAS,CACnB,WAAW,SAAS,WAAW,EAC/B,MAAM,SAAS,WAAW,EAC1B,SAAS,SAAS,aAAa,EAC/B,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,EACpC,SAAS,SAAS,SAAS,EAC3B,IAAI,SAAS,MAAM,GAAG,EAAE,EACxB,UAAU,SAAS,WAAW,GAAG,MAAM,SAAS;IAC9C,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAChC,GACG,MAAM,GACN,MAAM,GAAG;IACP,MAAM,EAAE,SAAS,SAAS,MAAM,CAAC,QAAQ,CAAC,GACtC,WAAW,CAAC,IAAI,CAAC,GACjB,MAAM,CAAC,QAAQ,CAAC,CAAA;CACrB,IACH,CAAC,WAAW,SAAS,EAAE,GAAG,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,GAC/D,SAAS,GAAG;IACV,MAAM,CAAC,EAAE,kBAAkB,CAAA;IAC3B,QAAQ,CAAC,EAAE,WAAW,CAAA;IACtB,IAAI,CAAC,EAAE,WAAW,CAAA;CACnB,CAAA;AAEH,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,EAAE,OAAO,KAAK,YAAY,CAAC,QAAQ,CAAC,CAAA;AAE1E,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,UAAU,CAAA;IAClB,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,eAAe,GAAG,QAAQ,GAAG,IAAI,CAAA;IAC3C,OAAO,EAAE,OAAO,CAAA;IAChB,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;CACpD;AAED,MAAM,MAAM,SAAS,CAAC,MAAM,SAAS,MAAM,EAAE,CAAC,IAAI;KAC/C,CAAC,IAAI,MAAM,CAAC,IAAI,MAAM,SAAS,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,GAAG,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAC7E,CAAA;AAED,MAAM,MAAM,mBAAmB,CAAC,MAAM,SAAS,MAAM,EAAE,CAAC,IAAI;KACzD,CAAC,IAAI,MAAM,CAAC,IAAI,GAAG,MAAM,GAAG,UAAU,CAAC,CAAC,GAAG,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;CAC7D,CAAA;AAED,MAAM,MAAM,SAAS,CAAC,MAAM,SAAS,MAAM,EAAE,CAAC,IAAI;KAC/C,CAAC,IAAI,MAAM,CAAC,IAAI,GAAG,CAAC,GAAG,MAAM,GAAG,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;CACjD,CAAA;AAED,MAAM,MAAM,mBAAmB,CAAC,MAAM,SAAS,MAAM,EAAE,CAAC,IAAI;KACzD,CAAC,IAAI,MAAM,CAAC,IAAI,GAAG,CAAC,GAAG,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;CAC7D,CAAA;AAED,MAAM,MAAM,SAAS,GAAG,MAAM,CAC5B,MAAM,EACN,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS,GAAG,IAAI,CACtD,CAAA;AACD,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,KAAK,OAAO,CAAC,CAAA;AAEhE,KAAK,aAAa,CAChB,IAAI,SAAS,MAAM,EACnB,QAAQ,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,EAAE,IAC3C,IAAI,SAAS,GAAG,MAAM,KAAK,IAAI,MAAM,IAAI,EAAE,GAC3C;KACG,CAAC,IAAI,KAAK,GAAG,aAAa,CAAC,IAAI,EAAE,QAAQ,CAAC;CAC5C,GACD;KACG,CAAC,IAAI,IAAI,GAAG,QAAQ;CACtB,CAAA;AAEL,MAAM,MAAM,YAAY,CACtB,IAAI,SAAS,MAAM,EACnB,QAAQ,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,EAAE,IAC3C,IAAI,SAAS,IAAI,MAAM,IAAI,EAAE,GAC7B,aAAa,CAAC,IAAI,EAAE,QAAQ,CAAC,GAC7B,IAAI,SAAS,EAAE,GACb,aAAa,CAAC,OAAO,EAAE,QAAQ,CAAC,GAChC,aAAa,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAA;AAEnC,MAAM,MAAM,wBAAwB,CAAC,QAAQ,EAAE,MAAM,IAAI,MAAM,SAAS,CACtE,GAAG,CAAC,EAAE,GAAG,EAAE,KACR,MAAM,CAAC,GACR,yBAAyB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,GAC/C,yBAAyB,CAAC,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAA;AAExD,KAAK,yBAAyB,CAAC,QAAQ,EAAE,MAAM,IAAI,QAAQ,CACzD,EAAE,SAAS,QAAQ,GACf;IACE,GAAG,EAAE,OAAO,CAAC,MAAM,EAAE;QAAE,CAAC,kBAAkB,CAAC,EAAE,GAAG,CAAA;KAAE,CAAC,CAAA;CACpD,GAAG;KACD,aAAa,IAAI,OAAO,CACvB,MAAM,EACN;QAAE,QAAQ,EAAE,GAAG,CAAA;KAAE,CAClB,IAAI,aAAa,SAAS;QACzB,CAAC,kBAAkB,CAAC,EAAE,MAAM,MAAM,SAAS,MAAM,CAAA;KAClD,GACG,MAAM,GACN,KAAK,GAAG,aAAa,CAAC,UAAU,CAAC;CACtC,GACD,QAAQ,CACb,CAAA;AAED,MAAM,MAAM,uBAAuB,CACjC,SAAS,SAAS,YAAY,EAAE,GAAG,EAAE,EACrC,MAAM,SAAS,MAAM,GAAG,EAAE,EAC1B,MAAM,SAAS,OAAO,GAAG,KAAK,EAC9B,SAAS,SAAS,aAAa,GAAG;IAChC,KAAK,EAAE,EAAE,CAAA;CACV,EACD,WAAW,SAAS,cAAc,GAAG;IACnC,IAAI,EAAE,EAAE,CAAA;IACR,KAAK,EAAE,EAAE,CAAA;CACV,EACD,QAAQ,SAAS,YAAY,GAAG;IAC9B,MAAM,EAAE,EAAE,CAAA;IACV,KAAK,EAAE,EAAE,CAAA;IACT,OAAO,EAAE,EAAE,CAAA;CACZ,EACD,MAAM,SAAS,SAAS,GAAG,EAAE,IAC3B,SAAS,SAAS;IACpB,MAAM,OAAO,SAAS,YAAY;IAClC,GAAG,MAAM,IAAI,SAAS,YAAY,EAAE;CACrC,GACG,OAAO,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,SAAS,IAAI,GACtC,uBAAuB,CACrB,IAAI,EACJ,MAAM,EACN,MAAM,EACN,SAAS,EACT,WAAW,EACX,QAAQ,EACR,MAAM,CACP,GACD,uBAAuB,CACrB,IAAI,EACJ,MAAM,EACN,MAAM,EACN,SAAS,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,EAC1C,WAAW,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,aAAa,CAAC,EAC9C,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,EACxC,MAAM,GACJ,CAAC,MAAM,SAAS,EAAE,GACd,OAAO,CAAC,QAAQ,CAAC,CAAC,cAAc,CAAC,GACjC,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAC5D,GACH,SAAS,CACP,MAAM,EACN,MAAM,EACN;IACE,KAAK,EAAE,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAA;CACpC,EACD;IACE,IAAI,EAAE,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAA;IACnC,KAAK,EAAE,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAA;CACtC,EACD;IACE,MAAM,EAAE,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAA;IACpC,KAAK,EAAE,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAA;IAClC,OAAO,EAAE,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAA;CACvC,EACD,MAAM,CACP,CAAA;AAEL,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,OAAO,GAAG,QAAQ,CAAA;AAEzD,MAAM,MAAM,gBAAgB,CAAC,CAAC,IAAI,CAChC,CAAC,SAAS,OAAO,GAAG,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,KAAK,CAC1C,SAAS,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,GACzB,CAAC,GACD,KAAK,CAAA;AAET,MAAM,MAAM,iBAAiB,GAAG,QAAQ,GAAG,UAAU,CAAA;AAErD,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG;IAEjD,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,oBAAoB,CAAC,EAAE,MAAM,CAAA;IAC7B,qBAAqB,CAAC,EAAE,MAAM,CAAA;IAG9B,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,MAAM,CAAC,EAAE,MAAM,CAAA;IAGf,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAC5B,qBAAqB,CAAC,EAAE,MAAM,CAAA;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAA;IAGb,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,YAAY,CAAC,EAAE,MAAM,CAAA;IAGrB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAG1B,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,cAAc,CAAC,EAAE,MAAM,CAAA;IAGvB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;IAGhC,6BAA6B,CAAC,EAAE,MAAM,CAAA;IACtC,kCAAkC,CAAC,EAAE,MAAM,CAAA;IAC3C,8BAA8B,CAAC,EAAE,MAAM,CAAA;IACvC,8BAA8B,CAAC,EAAE,MAAM,CAAA;IACvC,+BAA+B,CAAC,EAAE,MAAM,CAAA;IACxC,wBAAwB,CAAC,EAAE,MAAM,CAAA;IACjC,gCAAgC,CAAC,EAAE,MAAM,CAAA;IACzC,+BAA+B,CAAC,EAAE,MAAM,CAAA;IACxC,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,qBAAqB,CAAC,EAAE,MAAM,CAAA;IAG9B,qBAAqB,CAAC,EAAE,MAAM,CAAA;IAG9B,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAG3B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,GAAG,CAAC,EAAE,MAAM,CAAA;IAGZ,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,OAAO,CAAC,EAAE,MAAM,CAAA;IAShB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,WAAW,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAA;IAGpC,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,eAAe,CAAC,EAAE,MAAM,CAAA;IAGxB,yBAAyB,CAAC,EAAE,MAAM,CAAA;IAClC,qCAAqC,CAAC,EAAE,MAAM,CAAA;IAC9C,8BAA8B,CAAC,EAAE,MAAM,CAAA;IACvC,4BAA4B,CAAC,EAAE,MAAM,CAAA;IACrC,8BAA8B,CAAC,EAAE,MAAM,CAAA;IACvC,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAC5B,2BAA2B,CAAC,EAAE,MAAM,CAAA;IACpC,2BAA2B,CAAC,EAAE,MAAM,CAAA;IACpC,wBAAwB,CAAC,EAAE,MAAM,CAAA;IACjC,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAG3B,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,WAAW,CAAC,EAAE,MAAM,CAAA;IAGpB,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAG5B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,wBAAwB,CAAC,EAAE,MAAM,CAAA;IACjC,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,OAAO,CAAC,EAAE,MAAM,CAAA;IAGhB,wBAAwB,CAAC,EAAE,MAAM,CAAA;IACjC,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAC5B,cAAc,CAAC,EAAE,WAAW,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAA;IAC5C,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,iBAAiB,CAAC,EAAE,MAAM,CAAA;CAC3B,CAAA;AAED,MAAM,MAAM,QAAQ,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,IAAI,GAAG,CAAC,GAAG,CAAC,SAAS,GAAG,GAC3E,QAAQ,GACR,CAAC,SAAS,EAAE,GACV,CAAC,GACD,CAAC,SAAS,IAAI,MAAM,EAAE,GACpB,CAAC,GACD,CAAC,EAAE,CAAA;AAEX,MAAM,MAAM,mBAAmB,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GACzE,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;AAEZ,MAAM,MAAM,kBAAkB,CAAC,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IACnE,MAAM,SAAS,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,SAAS,MAAM,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,KAAK,CAAA;AAE9E,MAAM,MAAM,qBAAqB,CAAC,IAAI,SAAS,MAAM,IACnD,IAAI,SAAS,GAAG,MAAM,IAAI,MAAM,KAAK,IAAI,MAAM,IAAI,EAAE,GACjD,KAAK,SAAS,GAAG,MAAM,IAAI,GAAG,GAC5B;KAAG,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,MAAM;CAAE,GAAG,qBAAqB,CAAC,IAAI,IAAI,EAAE,CAAC,GAC5D;KAAG,CAAC,IAAI,KAAK,GAAG,MAAM;CAAE,GAAG,qBAAqB,CAAC,IAAI,IAAI,EAAE,CAAC,GAC9D,IAAI,SAAS,GAAG,MAAM,IAAI,MAAM,KAAK,EAAE,GACrC,KAAK,SAAS,GAAG,MAAM,IAAI,GAAG,GAC5B;KAAG,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,MAAM;CAAE,GACxB;KAAG,CAAC,IAAI,KAAK,GAAG,MAAM;CAAE,GAC1B,EAAE,CAAA"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "spiceflow",
3
- "version": "1.11.3",
3
+ "version": "1.12.1",
4
4
  "description": "Simple API framework with RPC and type safety",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -120,7 +120,7 @@ const app = new Spiceflow()
120
120
  .get('/stream-return-async', function* stream() {
121
121
  return 'a'
122
122
  })
123
- .get('/id/:id?', ({ params: { id = 'unknown' } }) => id)
123
+ .get('/id/:id', ({ params: { id } }) => id)
124
124
 
125
125
  const client = createSpiceflowClient(app)
126
126
 
@@ -12,6 +12,51 @@ test('works', async () => {
12
12
  expect(await res.json()).toEqual('hi')
13
13
  })
14
14
 
15
+ test('* param is a path without front slash', async () => {
16
+ const app = new Spiceflow().post('/upload/*', ({ params }) => {
17
+ return params['*']
18
+ })
19
+
20
+ {
21
+ const res = await app.handle(
22
+ new Request('http://localhost/upload/', {
23
+ method: 'POST',
24
+ }),
25
+ )
26
+ expect(res.status).toBe(404)
27
+ }
28
+ {
29
+ const res = await app.handle(
30
+ new Request('http://localhost/upload/some/nested/key.txt', {
31
+ method: 'POST',
32
+ }),
33
+ )
34
+ expect(res.status).toBe(200)
35
+ expect(await res.json()).toEqual(`some/nested/key.txt`)
36
+ }
37
+ })
38
+
39
+ test('this works to reference app in handler', async () => {
40
+ const res = await new Spiceflow()
41
+ .route({
42
+ method: 'POST',
43
+ path: '/another',
44
+ handler() {
45
+ return 'ok'
46
+ },
47
+ })
48
+ .route({
49
+ method: 'POST',
50
+ path: '/href',
51
+ handler() {
52
+ return this.safePath('/another')
53
+ },
54
+ })
55
+ .handle(new Request('http://localhost/href', { method: 'POST' }))
56
+ expect(res.status).toBe(200)
57
+ expect(await res.json()).toEqual('/another')
58
+ })
59
+
15
60
  test('routes works', async () => {
16
61
  const res = await new Spiceflow()
17
62
  .route({
@@ -881,9 +926,13 @@ describe('safePath', () => {
881
926
  const app = new Spiceflow()
882
927
  .get('/users', () => 'users')
883
928
  .get('/posts', () => 'posts')
929
+ .get('/posts/*', () => 'posts')
884
930
 
885
- expect(app.safePath('/users', {})).toBe('/users')
886
- expect(app.safePath('/posts', {})).toBe('/posts')
931
+ expect(app.safePath('/users')).toBe('/users')
932
+ expect(app.safePath('/posts')).toBe('/posts')
933
+ // @ts-expect-error
934
+ app.safePath('/posts/*')
935
+ expect(app.safePath('/posts/*', { '*': 'some/key' })).toBe('/posts/some/key')
887
936
  })
888
937
 
889
938
  test('handles paths with required parameters', () => {
@@ -904,48 +953,6 @@ describe('safePath', () => {
904
953
  ).toBe('/posts/abc/comments/456')
905
954
  })
906
955
 
907
- test('handles paths with optional parameters', () => {
908
- const app = new Spiceflow()
909
- .get('/users/:id?', ({ params }) => params.id)
910
- .get('/posts/:postId/comments/:commentId?', ({ params }) => params)
911
-
912
- expect(app.safePath('/users/:id?', { id: '123' })).toBe('/users/123')
913
- expect(app.safePath('/users/:id?', {})).toBe('/users/')
914
- expect(
915
- app.safePath('/posts/:postId/comments/:commentId?', {
916
- postId: 'abc',
917
- commentId: '456',
918
- }),
919
- ).toBe('/posts/abc/comments/456')
920
- expect(
921
- app.safePath('/posts/:postId/comments/:commentId?', {
922
- postId: 'abc',
923
- }),
924
- ).toBe('/posts/abc/comments/')
925
- })
926
-
927
- test('handles mixed required and optional parameters', () => {
928
- const app = new Spiceflow().get(
929
- '/api/:version/users/:id/posts/:postId?',
930
- ({ params }) => params,
931
- )
932
-
933
- expect(
934
- app.safePath('/api/:version/users/:id/posts/:postId?', {
935
- version: 'v1',
936
- id: '123',
937
- postId: 'abc',
938
- }),
939
- ).toBe('/api/v1/users/123/posts/abc')
940
-
941
- expect(
942
- app.safePath('/api/:version/users/:id/posts/:postId?', {
943
- version: 'v1',
944
- id: '123',
945
- }),
946
- ).toBe('/api/v1/users/123/posts/')
947
- })
948
-
949
956
  test('handles numeric parameter values', () => {
950
957
  const app = new Spiceflow().get('/users/:id', ({ params }) => params.id)
951
958
 
@@ -956,6 +963,6 @@ describe('safePath', () => {
956
963
  test('handles empty parameters object', () => {
957
964
  const app = new Spiceflow().get('/static', () => 'static')
958
965
 
959
- expect(app.safePath('/static', {})).toBe('/static')
966
+ expect(app.safePath('/static')).toBe('/static')
960
967
  })
961
968
  })
package/src/spiceflow.ts CHANGED
@@ -59,7 +59,7 @@ export type InternalRoute = {
59
59
  method: HTTPMethod
60
60
  path: string
61
61
  type: ContentType
62
- handler: InlineHandler<any, any, any>
62
+ handler: InlineHandler<any, any, any, any>
63
63
  hooks: LocalHook<any, any, any, any, any, any, any>
64
64
  validateBody?: ValidationFunction
65
65
  validateQuery?: ValidationFunction
@@ -297,6 +297,7 @@ export class Spiceflow<
297
297
  const LocalSchema extends InputSchema<keyof Definitions['type'] & string>,
298
298
  const Schema extends UnwrapRoute<LocalSchema, Definitions['type']>,
299
299
  const Handle extends InlineHandler<
300
+ this,
300
301
  Schema,
301
302
  Singleton,
302
303
  JoinPath<BasePath, Path>
@@ -345,6 +346,7 @@ export class Spiceflow<
345
346
  const Schema extends UnwrapRoute<LocalSchema, Definitions['type']>,
346
347
  const Macro extends Metadata['macro'],
347
348
  const Handle extends InlineHandler<
349
+ this,
348
350
  Schema,
349
351
  Singleton,
350
352
  JoinPath<BasePath, Path>
@@ -392,6 +394,7 @@ export class Spiceflow<
392
394
  const LocalSchema extends InputSchema<keyof Definitions['type'] & string>,
393
395
  const Schema extends UnwrapRoute<LocalSchema, Definitions['type']>,
394
396
  const Handle extends InlineHandler<
397
+ this,
395
398
  Schema,
396
399
  Singleton,
397
400
  JoinPath<BasePath, Path>
@@ -440,6 +443,7 @@ export class Spiceflow<
440
443
  const LocalSchema extends InputSchema<keyof Definitions['type'] & string>,
441
444
  const Schema extends UnwrapRoute<LocalSchema, Definitions['type']>,
442
445
  const Handle extends InlineHandler<
446
+ this,
443
447
  Schema,
444
448
  Singleton,
445
449
  JoinPath<BasePath, Path>
@@ -468,7 +472,9 @@ export class Spiceflow<
468
472
  CreateClient<
469
473
  JoinPath<BasePath, Path>,
470
474
  {
471
- [M in Method extends readonly (infer E)[] ? Lowercase<E & string> : Lowercase<Method & string>]: {
475
+ [M in Method extends readonly (infer E)[]
476
+ ? Lowercase<E & string>
477
+ : Lowercase<Method & string>]: {
472
478
  request: GetRequestSchema<Schema>
473
479
  params: undefined extends Schema['params']
474
480
  ? ResolvePath<Path>
@@ -506,6 +512,7 @@ export class Spiceflow<
506
512
  const LocalSchema extends InputSchema<keyof Definitions['type'] & string>,
507
513
  const Schema extends UnwrapRoute<LocalSchema, Definitions['type']>,
508
514
  const Handle extends InlineHandler<
515
+ this,
509
516
  Schema,
510
517
  Singleton,
511
518
  JoinPath<BasePath, Path>
@@ -554,6 +561,7 @@ export class Spiceflow<
554
561
  const LocalSchema extends InputSchema<keyof Definitions['type'] & string>,
555
562
  const Schema extends UnwrapRoute<LocalSchema, Definitions['type']>,
556
563
  const Handle extends InlineHandler<
564
+ this,
557
565
  Schema,
558
566
  Singleton,
559
567
  JoinPath<BasePath, Path>
@@ -602,6 +610,7 @@ export class Spiceflow<
602
610
  const LocalSchema extends InputSchema<keyof Definitions['type'] & string>,
603
611
  const Schema extends UnwrapRoute<LocalSchema, Definitions['type']>,
604
612
  const Handle extends InlineHandler<
613
+ this,
605
614
  Schema,
606
615
  Singleton,
607
616
  JoinPath<BasePath, Path>
@@ -650,6 +659,7 @@ export class Spiceflow<
650
659
  const LocalSchema extends InputSchema<keyof Definitions['type'] & string>,
651
660
  const Schema extends UnwrapRoute<LocalSchema, Definitions['type']>,
652
661
  const Handle extends InlineHandler<
662
+ this,
653
663
  Schema,
654
664
  Singleton,
655
665
  JoinPath<BasePath, Path>
@@ -700,6 +710,7 @@ export class Spiceflow<
700
710
  const LocalSchema extends InputSchema<keyof Definitions['type'] & string>,
701
711
  const Schema extends UnwrapRoute<LocalSchema, Definitions['type']>,
702
712
  const Handle extends InlineHandler<
713
+ this,
703
714
  Schema,
704
715
  Singleton,
705
716
  JoinPath<BasePath, Path>
@@ -891,7 +902,7 @@ export class Spiceflow<
891
902
  route.internalRoute?.validateParams,
892
903
  )
893
904
 
894
- const res = await route.internalRoute?.handler(context)
905
+ const res = await route.internalRoute?.handler.call(this, context)
895
906
  if (isAsyncIterable(res)) {
896
907
  handlerResponse = await this.handleStream({
897
908
  generator: res,
@@ -1172,26 +1183,32 @@ export class Spiceflow<
1172
1183
  },
1173
1184
  )
1174
1185
  }
1175
-
1176
1186
  safePath<
1177
1187
  const Path extends RoutePaths,
1178
1188
  const Params extends ExtractParamsFromPath<Path>,
1179
- >(path: Path, params: Params): string {
1189
+ >(
1190
+ path: Path,
1191
+ ...rest: [Params] extends [undefined]
1192
+ ? [] | [params?: Params]
1193
+ : [params: Params]
1194
+ ): string {
1195
+ let params = (rest.length > 0 ? rest[0] : undefined) as Params | undefined
1180
1196
  let result = path as string
1181
1197
 
1182
- // First, handle all provided parameters
1198
+ // Handle all provided parameters
1183
1199
  if (params && typeof params === 'object') {
1184
1200
  Object.entries(params).forEach(([key, value]) => {
1185
- // Handle both required (:key) and optional (:key?) parameters
1186
- const regex = new RegExp(`:${key}\\??`, 'g')
1187
- result = result.replace(regex, String(value))
1201
+ if (key === '*') {
1202
+ // Replace wildcard
1203
+ result = result.replace(/\*/, String(value))
1204
+ } else {
1205
+ // Replace named parameters as before
1206
+ const regex = new RegExp(`:${key}`, 'g')
1207
+ result = result.replace(regex, String(value))
1208
+ }
1188
1209
  })
1189
1210
  }
1190
1211
 
1191
- // Then, handle any remaining optional parameters that weren't provided
1192
- // Replace any remaining :param? with empty string (keeping trailing slash)
1193
- result = result.replace(/:[\w-]+\?/g, '')
1194
-
1195
1212
  return result
1196
1213
  }
1197
1214
  }
package/src/types.ts CHANGED
@@ -339,6 +339,7 @@ export type CoExist<Original, Target, With> =
339
339
  : Original
340
340
 
341
341
  export type InlineHandler<
342
+ This,
342
343
  Route extends RouteSchema = {},
343
344
  Singleton extends SingletonBase = {
344
345
  state: {}
@@ -346,6 +347,7 @@ export type InlineHandler<
346
347
  Path extends string = '',
347
348
  MacroContext = {},
348
349
  > = (
350
+ this: This,
349
351
  context: MacroContext extends Record<string | number | symbol, unknown>
350
352
  ? Prettify<MacroContext & Context<Route, Singleton, Path>>
351
353
  : Context<Route, Singleton, Path>,
@@ -868,14 +870,11 @@ export type PartialWithRequired<T, K extends keyof T> = Partial<Omit<T, K>> &
868
870
 
869
871
  export type GetPathsFromRoutes<Routes extends Record<string, unknown>> =
870
872
  Routes extends Record<infer K, any> ? (K extends string ? K : never) : never
871
-
872
- export type ExtractParamsFromPath<Path extends string> =
873
- Path extends `${string}:${infer Param}/${infer Rest}`
874
- ? Param extends `${infer Name}?`
875
- ? { [K in Name]?: string } & ExtractParamsFromPath<`/${Rest}`>
876
- : { [K in Param]: string } & ExtractParamsFromPath<`/${Rest}`>
877
- : Path extends `${string}:${infer Param}`
878
- ? Param extends `${infer Name}?`
879
- ? { [K in Name]?: string }
880
- : { [K in Param]: string }
881
- : {}
873
+ export type ExtractParamsFromPath<Path extends string> =
874
+ Path extends `${string}:${infer Param}/${infer Rest}`
875
+ ? { [K in Param]: string } & ExtractParamsFromPath<`/${Rest}`>
876
+ : Path extends `${string}:${infer Param}`
877
+ ? { [K in Param]: string }
878
+ : Path extends `${string}*${infer StarRest}`
879
+ ? { ['*']: string }
880
+ : undefined