spiceflow 1.0.7 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (76) hide show
  1. package/README.md +1 -1
  2. package/dist/client/index.d.ts +1 -1
  3. package/dist/client/index.d.ts.map +1 -1
  4. package/dist/client/index.js.map +1 -1
  5. package/dist/client/types.d.ts +1 -2
  6. package/dist/client/types.d.ts.map +1 -1
  7. package/dist/client/ws.d.ts +1 -1
  8. package/dist/client/ws.d.ts.map +1 -1
  9. package/dist/client.test.js +1 -18
  10. package/dist/client.test.js.map +1 -1
  11. package/dist/{elysia-fork/context.d.ts → context.d.ts} +8 -7
  12. package/dist/context.d.ts.map +1 -0
  13. package/dist/{elysia-fork/context.js.map → context.js.map} +1 -1
  14. package/dist/error.d.ts.map +1 -0
  15. package/dist/error.js.map +1 -0
  16. package/dist/index.d.ts +1 -2
  17. package/dist/index.d.ts.map +1 -1
  18. package/dist/index.js +1 -1
  19. package/dist/index.js.map +1 -1
  20. package/dist/middleware.test.d.ts +2 -0
  21. package/dist/middleware.test.d.ts.map +1 -0
  22. package/dist/middleware.test.js +99 -0
  23. package/dist/middleware.test.js.map +1 -0
  24. package/dist/openapi.d.ts +23 -3
  25. package/dist/openapi.d.ts.map +1 -1
  26. package/dist/openapi.js +2 -2
  27. package/dist/openapi.js.map +1 -1
  28. package/dist/openapi.test.js +66 -1
  29. package/dist/openapi.test.js.map +1 -1
  30. package/dist/spiceflow.d.ts +44 -125
  31. package/dist/spiceflow.d.ts.map +1 -1
  32. package/dist/spiceflow.js +129 -166
  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 +406 -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/client/index.ts +1 -3
  46. package/src/client/types.ts +6 -13
  47. package/src/client/ws.ts +1 -1
  48. package/src/client.test.ts +1 -19
  49. package/src/context.ts +128 -0
  50. package/src/index.ts +1 -2
  51. package/src/middleware.test.ts +107 -0
  52. package/src/openapi.test.ts +71 -1
  53. package/src/openapi.ts +1 -1
  54. package/src/spiceflow.test.ts +74 -16
  55. package/src/spiceflow.ts +213 -386
  56. package/src/types.test.ts +1 -1
  57. package/src/types.ts +926 -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 -562
  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 -134
  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
@@ -19,6 +19,9 @@ test('dynamic route', async () => {
19
19
  test('GET dynamic route', async () => {
20
20
  const res = await new Spiceflow()
21
21
  .get('/ids/:id', () => 'hi')
22
+ .post('/ids/:id', ({ params: { id } }) => id, {
23
+ params: z.object({ id: z.string() }),
24
+ })
22
25
  .handle(new Request('http://localhost/ids/xxx', { method: 'GET' }));
23
26
  expect(res.status).toBe(200);
24
27
  expect(await res.json()).toEqual('hi');
@@ -96,7 +99,7 @@ test('missing route is not found', async () => {
96
99
  test('state works', async () => {
97
100
  const res = await new Spiceflow()
98
101
  .state('id', '')
99
- .onRequest(({ store, request }) => {
102
+ .use(({ store, request }) => {
100
103
  store.id = 'xxx';
101
104
  })
102
105
  .get('/get', ({ store }) => {
@@ -168,13 +171,13 @@ test('validate body works, request fails', async () => {
168
171
  expect(res.status).toBe(422);
169
172
  expect(await res.text()).toMatchInlineSnapshot(`"data must have required property 'requiredField'"`);
170
173
  });
171
- test('run onRequest', async () => {
174
+ test('run use', async () => {
172
175
  const res = await new Spiceflow()
173
- .onRequest(({ request }) => {
176
+ .use(({ request }) => {
174
177
  expect(request.method).toBe('HEAD');
175
178
  return new Response('ok', { status: 401 });
176
179
  })
177
- .onRequest(({ request }) => {
180
+ .use(({ request }) => {
178
181
  expect(request.method).toBe('HEAD');
179
182
  return 'second one';
180
183
  })
@@ -183,13 +186,13 @@ test('run onRequest', async () => {
183
186
  expect(res.status).toBe(401);
184
187
  expect(await res.text()).toBe('ok');
185
188
  });
186
- test('run onRequest', async () => {
189
+ test('run use', async () => {
187
190
  const res = await new Spiceflow()
188
- .onRequest(({ request }) => {
191
+ .use(({ request }) => {
189
192
  expect(request.method).toBe('HEAD');
190
193
  return new Response('ok', { status: 401 });
191
194
  })
192
- .onRequest(({ request }) => {
195
+ .use(({ request }) => {
193
196
  expect(request.method).toBe('HEAD');
194
197
  return 'second one';
195
198
  })
@@ -224,14 +227,49 @@ test('getRouteAndParents', async () => {
224
227
  let app = new Spiceflow({ basePath: '/one' })
225
228
  .get('/ids/:id', () => 'hi')
226
229
  .use(new Spiceflow({ basePath: '/two' }).use(new Spiceflow({ basePath: '/three' }).get('/four', () => 'hi')));
227
- let routers = bfs(app['routerTree']);
230
+ let routers = bfs(app);
228
231
  let last = routers[routers.length - 1];
229
- expect(app['getRouteAndParents'](last).map((x) => x.prefix))
232
+ expect(app['getAppAndParents'](last).map((x) => x.prefix))
230
233
  .toMatchInlineSnapshot(`
231
234
  [
235
+ "/one",
236
+ "/two",
232
237
  "/three",
238
+ ]
239
+ `);
240
+ });
241
+ test('getAppsInScope include all parent apps', async () => {
242
+ let app = new Spiceflow({ basePath: '/one' })
243
+ .get('/ids/:id', () => 'hi')
244
+ .use(new Spiceflow({ basePath: '/two' }).use(new Spiceflow({ basePath: '/three' }).use(new Spiceflow({ basePath: '/four' })
245
+ .get('/five', () => 'hi')
246
+ .use(({ request }) => { }))));
247
+ let routers = bfs(app);
248
+ let secondLast = routers[routers.length - 2];
249
+ expect(app['getAppsInScope'](secondLast).map((x) => x.prefix))
250
+ .toMatchInlineSnapshot(`
251
+ [
252
+ "/one",
233
253
  "/two",
254
+ "/three",
255
+ ]
256
+ `);
257
+ });
258
+ test('getAppsInScope include all parent apps and non scoped apps', async () => {
259
+ let app = new Spiceflow({ basePath: '/one' })
260
+ .get('/ids/:id', () => 'hi')
261
+ .use(new Spiceflow({ basePath: '/two' }).use(new Spiceflow({ basePath: '/three' }).use(new Spiceflow({ basePath: '/four', scoped: false })
262
+ .get('/five', () => 'hi')
263
+ .use(({ request }) => { }))));
264
+ let routers = bfs(app);
265
+ let secondLast = routers[routers.length - 2];
266
+ expect(app['getAppsInScope'](secondLast).map((x) => x.prefix))
267
+ .toMatchInlineSnapshot(`
268
+ [
234
269
  "/one",
270
+ "/two",
271
+ "/three",
272
+ "/four",
235
273
  ]
236
274
  `);
237
275
  });
@@ -240,21 +278,21 @@ test('use with 2 basPath works', async () => {
240
278
  let twoOnReq = false;
241
279
  let onReqCalled = [];
242
280
  const app = await new Spiceflow()
243
- .onRequest(({ request }) => {
281
+ .use(({ request }) => {
244
282
  onReqCalled.push('root');
245
283
  })
246
284
  .use(new Spiceflow({ basePath: '/one' })
247
- .onRequest(({ request }) => {
285
+ .use(({ request }) => {
248
286
  oneOnReq = true;
249
287
  onReqCalled.push('one');
250
288
  })
251
289
  .get('/ids/:id', ({ params }) => params.id))
252
290
  .use(new Spiceflow({ basePath: '/two' })
253
- .onRequest((c) => {
291
+ .use((c) => {
254
292
  twoOnReq = true;
255
293
  onReqCalled.push('two');
256
294
  })
257
- .get('/ids/:id', ({ params }) => params.id));
295
+ .get('/ids/:id', ({ params }) => params.id, {}));
258
296
  {
259
297
  const res = await app.handle(new Request('http://localhost/one/ids/one'));
260
298
  expect(res.status).toBe(200);
@@ -292,7 +330,7 @@ test('errors inside basPath works', async () => {
292
330
  onErrorTriggered.push('root');
293
331
  // return new Response('root', { status: 500 })
294
332
  })
295
- .onRequest(({ request }) => {
333
+ .use(({ request }) => {
296
334
  onReqTriggered.push('root');
297
335
  // return new Response('root', { status: 500 })
298
336
  })
@@ -301,7 +339,7 @@ test('errors inside basPath works', async () => {
301
339
  onErrorTriggered.push('two');
302
340
  // return new Response('two', { status: 500 })
303
341
  })
304
- .onRequest(({ request }) => {
342
+ .use(({ request }) => {
305
343
  onReqTriggered.push('two');
306
344
  // return new Response('two', { status: 500 })
307
345
  })
@@ -310,7 +348,7 @@ test('errors inside basPath works', async () => {
310
348
  onErrorTriggered.push('nested');
311
349
  // return new Response('nested', { status: 500 })
312
350
  })
313
- .onRequest(({ request }) => {
351
+ .use(({ request }) => {
314
352
  onReqTriggered.push('nested');
315
353
  // return new Response('nested', { status: 500 })
316
354
  })
@@ -1 +1 @@
1
- {"version":3,"file":"spiceflow.test.js","sourceRoot":"","sources":["../src/spiceflow.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"spiceflow.test.js","sourceRoot":"","sources":["../src/spiceflow.test.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -1,2 +1,408 @@
1
+ import z from 'zod';
2
+ import type { BunFile, Server } from 'bun';
3
+ import type { OptionalKind, Static, StaticDecode, TObject, TSchema } from '@sinclair/typebox';
4
+ import type { OpenAPIV3 } from 'openapi-types';
5
+ import { ZodObject, ZodTypeAny } from 'zod';
6
+ import type { Context, ErrorContext, MiddlewareContext } from './context.js';
7
+ import { ELYSIA_RESPONSE, InternalServerError, NotFoundError, ParseError, ValidationError } from './error.js';
8
+ import { Spiceflow } from './spiceflow.js';
9
+ export type MaybeArray<T> = T | T[];
10
+ export type MaybePromise<T> = T | Promise<T>;
11
+ export type ObjectValues<T extends object> = T[keyof T];
12
+ type IsPathParameter<Part extends string> = Part extends `:${infer Parameter}` ? Parameter : Part extends `*` ? '*' : never;
13
+ export type GetPathParameter<Path extends string> = Path extends `${infer A}/${infer B}` ? IsPathParameter<A> | GetPathParameter<B> : IsPathParameter<Path>;
14
+ export type ResolvePath<Path extends string> = Prettify<{
15
+ [Param in GetPathParameter<Path> as Param extends `${string}?` ? never : Param]: string;
16
+ } & {
17
+ [Param in GetPathParameter<Path> as Param extends `${infer OptionalParam}?` ? OptionalParam : never]?: string;
18
+ }>;
19
+ export type Prettify<T> = {
20
+ [K in keyof T]: T[K];
21
+ } & {};
22
+ export type Prettify2<T> = {
23
+ [K in keyof T]: Prettify<T[K]>;
24
+ } & {};
25
+ export type Partial2<T> = {
26
+ [K in keyof T]?: Partial<T[K]>;
27
+ };
28
+ export type NeverKey<T> = {
29
+ [K in keyof T]?: T[K];
30
+ } & {};
31
+ type IsBothObject<A, B> = A extends Record<string | number | symbol, unknown> ? B extends Record<string | number | symbol, unknown> ? IsClass<A> extends false ? IsClass<B> extends false ? true : false : false : false : false;
32
+ type IsClass<V> = V extends abstract new (...args: any) => any ? true : false;
33
+ export type Reconcile<A extends Object, B extends Object, Override extends boolean = false, Stack extends number[] = []> = Stack['length'] extends 16 ? A : Override extends true ? {
34
+ [key in keyof A as key extends keyof B ? never : key]: A[key];
35
+ } extends infer Collision ? {} extends Collision ? {
36
+ [key in keyof B]: IsBothObject<A[key], B[key]> extends true ? Reconcile<A[key], B[key], Override, [
37
+ 0,
38
+ ...Stack
39
+ ]> : B[key];
40
+ } : Prettify<Collision & {
41
+ [key in keyof B]: B[key];
42
+ }> : never : {
43
+ [key in keyof B as key extends keyof A ? never : key]: B[key];
44
+ } extends infer Collision ? {} extends Collision ? {
45
+ [key in keyof A]: IsBothObject<A[key], B[key]> extends true ? Reconcile<A[key], B[key], Override, [
46
+ 0,
47
+ ...Stack
48
+ ]> : A[key];
49
+ } : Prettify<{
50
+ [key in keyof A]: A[key];
51
+ } & Collision> : never;
52
+ export interface SingletonBase {
53
+ store: Record<string, unknown>;
54
+ }
55
+ export interface DefinitionBase {
56
+ type: Record<string, unknown>;
57
+ error: Record<string, Error>;
58
+ }
59
+ export type RouteBase = Record<string, unknown>;
60
+ export interface MetadataBase {
61
+ schema: RouteSchema;
62
+ macro: BaseMacro;
63
+ macroFn: BaseMacroFn;
64
+ }
65
+ export interface RouteSchema {
66
+ body?: unknown;
67
+ query?: unknown;
68
+ params?: unknown;
69
+ response?: unknown;
70
+ }
71
+ type OptionalField = {
72
+ [OptionalKind]: 'Optional';
73
+ };
74
+ export type TypeSchema = TSchema | ZodTypeAny;
75
+ export type TypeObject = TObject | ZodObject<any, any, any>;
76
+ export type UnwrapSchema<Schema extends TypeSchema | string | undefined, Definitions extends Record<string, unknown> = {}> = undefined extends Schema ? unknown : Schema extends ZodTypeAny ? z.infer<Schema> : Schema extends TSchema ? Schema extends OptionalField ? Prettify<Partial<Static<Schema>>> : StaticDecode<Schema> : Schema extends string ? Definitions extends Record<Schema, infer NamedSchema> ? NamedSchema : Definitions : unknown;
77
+ export interface UnwrapRoute<in out Schema extends InputSchema<any>, in out Definitions extends DefinitionBase['type'] = {}> {
78
+ body: UnwrapSchema<Schema['body'], Definitions>;
79
+ query: UnwrapSchema<Schema['query'], Definitions>;
80
+ params: UnwrapSchema<Schema['params'], Definitions>;
81
+ response: Schema['response'] extends TypeSchema | string ? {
82
+ 200: CoExist<UnwrapSchema<Schema['response'], Definitions>, File, BunFile>;
83
+ } : Schema['response'] extends Record<number, TypeSchema | string> ? {
84
+ [k in keyof Schema['response']]: CoExist<UnwrapSchema<Schema['response'][k], Definitions>, File, BunFile>;
85
+ } : unknown | void;
86
+ }
87
+ export type LifeCycleEvent = 'start' | 'request' | 'parse' | 'transform' | 'beforeHandle' | 'afterHandle' | 'response' | 'error' | 'stop';
88
+ export type ContentType = MaybeArray<(string & {}) | 'none' | 'text' | 'json' | 'formdata' | 'urlencoded' | 'arrayBuffer' | 'text/plain' | 'application/json' | 'multipart/form-data' | 'application/x-www-form-urlencoded'>;
89
+ export type HTTPMethod = (string & {}) | 'ACL' | 'BIND' | 'CHECKOUT' | 'CONNECT' | 'COPY' | 'DELETE' | 'GET' | 'HEAD' | 'LINK' | 'LOCK' | 'M-SEARCH' | 'MERGE' | 'MKACTIVITY' | 'MKCALENDAR' | 'MKCOL' | 'MOVE' | 'NOTIFY' | 'OPTIONS' | 'PATCH' | 'POST' | 'PROPFIND' | 'PROPPATCH' | 'PURGE' | 'PUT' | 'REBIND' | 'REPORT' | 'SEARCH' | 'SOURCE' | 'SUBSCRIBE' | 'TRACE' | 'UNBIND' | 'UNLINK' | 'UNLOCK' | 'UNSUBSCRIBE' | 'ALL';
90
+ export interface InputSchema<Name extends string = string> {
91
+ body?: TypeSchema | Name;
92
+ query?: TypeObject | Name;
93
+ params?: TypeObject | Name;
94
+ response?: TypeSchema | Record<number, TypeSchema> | Name | Record<number, Name | TypeSchema>;
95
+ }
96
+ export interface MergeSchema<in out A extends RouteSchema, in out B extends RouteSchema> {
97
+ body: undefined extends A['body'] ? B['body'] : A['body'];
98
+ query: undefined extends A['query'] ? B['query'] : A['query'];
99
+ params: undefined extends A['params'] ? B['params'] : A['params'];
100
+ response: {} extends A['response'] ? {} extends B['response'] ? {} : B['response'] : {} extends B['response'] ? A['response'] : A['response'] & Omit<B['response'], keyof A['response']>;
101
+ }
102
+ export type Handler<in out Route extends RouteSchema = {}, in out Singleton extends SingletonBase = {
103
+ decorator: {};
104
+ store: {};
105
+ }, Path extends string = ''> = (context: Context<Route, Singleton, Path>) => MaybePromise<{} extends Route['response'] ? unknown : Route['response'][keyof Route['response']]>;
106
+ export type Replace<Original, Target, With> = IsAny<Target> extends true ? Original : Original extends Record<string, unknown> ? {
107
+ [K in keyof Original]: Original[K] extends Target ? With : Original[K];
108
+ } : Original extends Target ? With : Original;
109
+ export type IsAny<T> = 0 extends 1 & T ? true : false;
110
+ export type CoExist<Original, Target, With> = IsAny<Target> extends true ? Original : Original extends Record<string, unknown> ? {
111
+ [K in keyof Original]: Original[K] extends Target ? Original[K] | With : Original[K];
112
+ } : Original extends Target ? Original | With : Original;
113
+ export type InlineHandler<Route extends RouteSchema = {}, Singleton extends SingletonBase = {
114
+ decorator: {};
115
+ store: {};
116
+ }, Path extends string = '', MacroContext = {}> = (context: MacroContext extends Record<string | number | symbol, unknown> ? Prettify<MacroContext & Context<Route, Singleton, Path>> : Context<Route, Singleton, Path>) => Response | MaybePromise<{} extends Route['response'] ? unknown : (Route['response'] extends {
117
+ 200: any;
118
+ } ? Route['response'] : string | number | boolean | Object) | Route['response'][keyof Route['response']] | {
119
+ [Status in keyof Route['response']]: {
120
+ _type: Record<Status, Route['response'][Status]>;
121
+ [ELYSIA_RESPONSE]: Status;
122
+ };
123
+ }[keyof Route['response']]>;
124
+ export type OptionalHandler<in out Route extends RouteSchema = {}, in out Singleton extends SingletonBase = {
125
+ decorator: {};
126
+ store: {};
127
+ }, Path extends string = ''> = Handler<Route, Singleton, Path> extends (context: infer Context) => infer Returned ? (context: Context) => Returned | MaybePromise<void> : never;
128
+ export type AfterHandler<in out Route extends RouteSchema = {}, in out Singleton extends SingletonBase = {
129
+ decorator: {};
130
+ store: {};
131
+ }, Path extends string = ''> = Handler<Route, Singleton, Path> extends (context: infer Context) => infer Returned ? (context: Prettify<{
132
+ response: Route['response'];
133
+ } & Context>) => Returned | MaybePromise<void> : never;
134
+ export type MapResponse<in out Route extends RouteSchema = {}, in out Singleton extends SingletonBase = {
135
+ decorator: {};
136
+ store: {};
137
+ }, Path extends string = ''> = Handler<Omit<Route, 'response'> & {
138
+ response: MaybePromise<Response | undefined | unknown>;
139
+ }, Singleton & {
140
+ derive: {
141
+ response: Route['response'];
142
+ };
143
+ }, Path>;
144
+ export type VoidHandler<in out Route extends RouteSchema = {}, in out Singleton extends SingletonBase = {
145
+ decorator: {};
146
+ store: {};
147
+ }> = (context: Context<Route, Singleton>) => MaybePromise<void>;
148
+ export type TransformHandler<in out Route extends RouteSchema = {}, in out Singleton extends SingletonBase = {
149
+ decorator: {};
150
+ store: {};
151
+ }, BasePath extends string = ''> = {
152
+ (context: Prettify<Context<Route, Omit<Singleton, 'resolve'> & {
153
+ resolve: {};
154
+ }, BasePath>>): MaybePromise<void>;
155
+ };
156
+ export type BodyHandler<in out Route extends RouteSchema = {}, in out Singleton extends SingletonBase = {
157
+ decorator: {};
158
+ store: {};
159
+ }, Path extends string = ''> = (context: Prettify<{
160
+ contentType: string;
161
+ } & Context<Route, Singleton, Path>>,
162
+ /**
163
+ * @deprecated
164
+ *
165
+ * use `context.contentType` instead
166
+ *
167
+ * @example
168
+ * ```ts
169
+ * new Spiceflow()
170
+ * .onParse(({ contentType, request }) => {
171
+ * if (contentType === 'application/json')
172
+ * return request.json()
173
+ * })
174
+ * ```
175
+ */
176
+ contentType: string) => MaybePromise<any>;
177
+ export type MiddlewareHandler<in out Route extends RouteSchema = {}, in out Singleton extends SingletonBase = {
178
+ decorator: {};
179
+ store: {};
180
+ }> = (context: MiddlewareContext<Singleton>, next: () => Promise<Response | void>) => MaybePromise<Route['response'] | void>;
181
+ export type AfterResponseHandler<in out Route extends RouteSchema = {}, in out Singleton extends SingletonBase = {
182
+ decorator: {};
183
+ store: {};
184
+ }> = (context: Prettify<Context<Route, Singleton> & {
185
+ response: Route['response'];
186
+ }>) => MaybePromise<void>;
187
+ export type ErrorHandler<in out T extends Record<string, Error> = {}, in out Route extends RouteSchema = {}, in out Singleton extends SingletonBase = {
188
+ store: {};
189
+ }> = (context: ErrorContext<Route, {
190
+ store: Singleton['store'];
191
+ }> & (Prettify<{
192
+ request: Request;
193
+ code: 'UNKNOWN';
194
+ error: Readonly<Error>;
195
+ } & Partial<Singleton['store']>> | Prettify<{
196
+ request: Request;
197
+ code: 'VALIDATION';
198
+ error: Readonly<ValidationError>;
199
+ } & Singleton['store']> | Prettify<{
200
+ request: Request;
201
+ code: 'NOT_FOUND';
202
+ error: Readonly<NotFoundError>;
203
+ } & NeverKey<Singleton['store']>> | Prettify<{
204
+ request: Request;
205
+ code: 'PARSE';
206
+ error: Readonly<ParseError>;
207
+ } & Singleton['store']> | Prettify<{
208
+ request: Request;
209
+ code: 'INTERNAL_SERVER_ERROR';
210
+ error: Readonly<InternalServerError>;
211
+ } & Partial<Singleton['store']>> | Prettify<{
212
+ [K in keyof T]: {
213
+ request: Request;
214
+ code: K;
215
+ error: Readonly<T[K]>;
216
+ };
217
+ }[keyof T] & Partial<Singleton['store']>>)) => any | Promise<any>;
218
+ export type Isolate<T> = {
219
+ [P in keyof T]: T[P];
220
+ };
221
+ export type DocumentDecoration = Partial<OpenAPIV3.OperationObject> & {
222
+ /**
223
+ * Pass `true` to hide route from OpenAPI/swagger document
224
+ * */
225
+ hide?: boolean;
226
+ };
227
+ export type LocalHook<LocalSchema extends InputSchema, Schema extends RouteSchema, Singleton extends SingletonBase, Errors extends Record<string, Error>, Extension extends BaseMacro, Path extends string = '', TypedRoute extends RouteSchema = Schema extends {
228
+ params: Record<string, unknown>;
229
+ } ? Schema : Schema & {
230
+ params: undefined extends Schema['params'] ? ResolvePath<Path> : Schema['params'];
231
+ }> = (LocalSchema extends {} ? LocalSchema : Isolate<LocalSchema>) & Extension & {
232
+ detail?: DocumentDecoration;
233
+ /**
234
+ * Short for 'Content-Type'
235
+ *
236
+ * Available:
237
+ * - 'none': do not parse body
238
+ * - 'text' / 'text/plain': parse body as string
239
+ * - 'json' / 'application/json': parse body as json
240
+ * - 'formdata' / 'multipart/form-data': parse body as form-data
241
+ * - 'urlencoded' / 'application/x-www-form-urlencoded: parse body as urlencoded
242
+ * - 'arraybuffer': parse body as readable stream
243
+ */
244
+ type?: ContentType;
245
+ };
246
+ export type ComposedHandler = (context: Context) => MaybePromise<Response>;
247
+ export interface InternalRoute {
248
+ method: HTTPMethod;
249
+ path: string;
250
+ composed: ComposedHandler | Response | null;
251
+ handler: Handler;
252
+ hooks: LocalHook<any, any, any, any, any, any, any>;
253
+ }
254
+ export type ListenCallback = (server: Server) => MaybePromise<void>;
255
+ export type AddPrefix<Prefix extends string, T> = {
256
+ [K in keyof T as Prefix extends string ? `${Prefix}${K & string}` : K]: T[K];
257
+ };
258
+ export type AddPrefixCapitalize<Prefix extends string, T> = {
259
+ [K in keyof T as `${Prefix}${Capitalize<K & string>}`]: T[K];
260
+ };
261
+ export type AddSuffix<Suffix extends string, T> = {
262
+ [K in keyof T as `${K & string}${Suffix}`]: T[K];
263
+ };
264
+ export type AddSuffixCapitalize<Suffix extends string, T> = {
265
+ [K in keyof T as `${K & string}${Capitalize<Suffix>}`]: T[K];
266
+ };
267
+ export type BaseMacro = Record<string, string | number | boolean | Object | undefined | null>;
268
+ export type BaseMacroFn = Record<string, (...a: any) => unknown>;
269
+ type _CreateEden<Path extends string, Property extends Record<string, unknown> = {}> = Path extends `${infer Start}/${infer Rest}` ? {
270
+ [x in Start]: _CreateEden<Rest, Property>;
271
+ } : {
272
+ [x in Path]: Property;
273
+ };
274
+ export type CreateEden<Path extends string, Property extends Record<string, unknown> = {}> = Path extends `/${infer Rest}` ? _CreateEden<Rest, Property> : Path extends '' ? _CreateEden<'index', Property> : _CreateEden<Path, Property>;
275
+ export type ComposeSpiceflowResponse<Response, Handle> = Handle extends (...a: any[]) => infer A ? _ComposeSpiceflowResponse<Response, Replace<Awaited<A>, BunFile, File>> : _ComposeSpiceflowResponse<Response, Replace<Awaited<Handle>, BunFile, File>>;
276
+ type _ComposeSpiceflowResponse<Response, Handle> = Prettify<{} extends Response ? {
277
+ 200: Exclude<Handle, {
278
+ [ELYSIA_RESPONSE]: any;
279
+ }>;
280
+ } & {
281
+ [ErrorResponse in Extract<Handle, {
282
+ response: any;
283
+ }> as ErrorResponse extends {
284
+ [ELYSIA_RESPONSE]: infer Status extends number;
285
+ } ? Status : never]: ErrorResponse['response'];
286
+ } : Response>;
287
+ export type MergeSpiceflowInstances<Instances extends Spiceflow<any, any, any, any, any, any>[] = [], Prefix extends string = '', Scoped extends boolean = false, Singleton extends SingletonBase = {
288
+ decorator: {};
289
+ store: {};
290
+ }, Definitions extends DefinitionBase = {
291
+ type: {};
292
+ error: {};
293
+ }, Metadata extends MetadataBase = {
294
+ schema: {};
295
+ macro: {};
296
+ macroFn: {};
297
+ }, Routes extends RouteBase = {}> = Instances extends [
298
+ infer Current extends Spiceflow<any, any, any, any, any, any>,
299
+ ...infer Rest extends Spiceflow<any, any, any, any, any, any>[]
300
+ ] ? Current['_types']['Scoped'] extends true ? MergeSpiceflowInstances<Rest, Prefix, Scoped, Singleton, Definitions, Metadata, Routes> : MergeSpiceflowInstances<Rest, Prefix, Scoped, Singleton & Current['_types']['Singleton'], Definitions & Current['_types']['Definitions'], Metadata & Current['_types']['Metadata'], Routes & (Prefix extends `` ? Current['_routes'] : AddPrefix<Prefix, Current['_routes']>)> : Spiceflow<Prefix, Scoped, {
301
+ store: Prettify<Singleton['store']>;
302
+ }, {
303
+ type: Prettify<Definitions['type']>;
304
+ error: Prettify<Definitions['error']>;
305
+ }, {
306
+ schema: Prettify<Metadata['schema']>;
307
+ macro: Prettify<Metadata['macro']>;
308
+ macroFn: Prettify<Metadata['macroFn']>;
309
+ }, Routes>;
310
+ export type LifeCycleType = 'global' | 'local' | 'scoped';
311
+ export type UnionToIntersect<U> = (U extends unknown ? (arg: U) => 0 : never) extends (arg: infer I) => 0 ? I : never;
312
+ export type ContextAppendType = 'append' | 'override';
313
+ export type HTTPHeaders = Record<string, string> & {
314
+ 'www-authenticate'?: string;
315
+ authorization?: string;
316
+ 'proxy-authenticate'?: string;
317
+ 'proxy-authorization'?: string;
318
+ age?: string;
319
+ 'cache-control'?: string;
320
+ 'clear-site-data'?: string;
321
+ expires?: string;
322
+ 'no-vary-search'?: string;
323
+ pragma?: string;
324
+ 'last-modified'?: string;
325
+ etag?: string;
326
+ 'if-match'?: string;
327
+ 'if-none-match'?: string;
328
+ 'if-modified-since'?: string;
329
+ 'if-unmodified-since'?: string;
330
+ vary?: string;
331
+ connection?: string;
332
+ 'keep-alive'?: string;
333
+ accept?: string;
334
+ 'accept-encoding'?: string;
335
+ 'accept-language'?: string;
336
+ expect?: string;
337
+ 'max-forwards'?: string;
338
+ cookie?: string;
339
+ 'set-cookie'?: string | string[];
340
+ 'access-control-allow-origin'?: string;
341
+ 'access-control-allow-credentials'?: string;
342
+ 'access-control-allow-headers'?: string;
343
+ 'access-control-allow-methods'?: string;
344
+ 'access-control-expose-headers'?: string;
345
+ 'access-control-max-age'?: string;
346
+ 'access-control-request-headers'?: string;
347
+ 'access-control-request-method'?: string;
348
+ origin?: string;
349
+ 'timing-allow-origin'?: string;
350
+ 'content-disposition'?: string;
351
+ 'content-length'?: string;
352
+ 'content-type'?: string;
353
+ 'content-encoding'?: string;
354
+ 'content-language'?: string;
355
+ 'content-location'?: string;
356
+ forwarded?: string;
357
+ via?: string;
358
+ location?: string;
359
+ refresh?: string;
360
+ allow?: string;
361
+ server?: 'spiceflow' | (string & {});
362
+ 'accept-ranges'?: string;
363
+ range?: string;
364
+ 'if-range'?: string;
365
+ 'content-range'?: string;
366
+ 'content-security-policy'?: string;
367
+ 'content-security-policy-report-only'?: string;
368
+ 'cross-origin-embedder-policy'?: string;
369
+ 'cross-origin-opener-policy'?: string;
370
+ 'cross-origin-resource-policy'?: string;
371
+ 'expect-ct'?: string;
372
+ 'permission-policy'?: string;
373
+ 'strict-transport-security'?: string;
374
+ 'upgrade-insecure-requests'?: string;
375
+ 'x-content-type-options'?: string;
376
+ 'x-frame-options'?: string;
377
+ 'x-xss-protection'?: string;
378
+ 'last-event-id'?: string;
379
+ 'ping-from'?: string;
380
+ 'ping-to'?: string;
381
+ 'report-to'?: string;
382
+ te?: string;
383
+ trailer?: string;
384
+ 'transfer-encoding'?: string;
385
+ 'alt-svg'?: string;
386
+ 'alt-used'?: string;
387
+ date?: string;
388
+ dnt?: string;
389
+ 'early-data'?: string;
390
+ 'large-allocation'?: string;
391
+ link?: string;
392
+ 'retry-after'?: string;
393
+ 'service-worker-allowed'?: string;
394
+ 'source-map'?: string;
395
+ upgrade?: string;
396
+ 'x-dns-prefetch-control'?: string;
397
+ 'x-forwarded-for'?: string;
398
+ 'x-forwarded-host'?: string;
399
+ 'x-forwarded-proto'?: string;
400
+ 'x-powered-by'?: 'spiceflow' | (string & {});
401
+ 'x-request-id'?: string;
402
+ 'x-requested-with'?: string;
403
+ 'x-robots-tag'?: string;
404
+ 'x-ua-compatible'?: string;
405
+ };
406
+ export type JoinPath<A extends string, B extends string> = `${A}${B extends '/' ? '/index' : B extends '' ? B : B extends `/${string}` ? B : B}`;
1
407
  export {};
2
408
  //# sourceMappingURL=types.d.ts.map