spiceflow 1.17.3 → 1.17.5

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
@@ -106,15 +106,15 @@ const app = new Spiceflow()
106
106
  },
107
107
  })
108
108
  .route({
109
- method: 'POST',
109
+ method: 'POST',
110
110
  path: '/data',
111
111
  async handler({ request }) {
112
112
  const body = await request.json()
113
113
  // Objects are automatically serialized to JSON
114
- return {
114
+ return {
115
115
  received: body,
116
116
  timestamp: new Date().toISOString(),
117
- processed: true
117
+ processed: true,
118
118
  }
119
119
  },
120
120
  })
@@ -142,12 +142,12 @@ const app = new Spiceflow()
142
142
  }),
143
143
  handler({ params }) {
144
144
  const user = getUserById(params.id)
145
-
145
+
146
146
  if (!user) {
147
147
  // Throw Response for errors to maintain type safety
148
148
  throw new Response('User not found', { status: 404 })
149
149
  }
150
-
150
+
151
151
  // Return object directly for success - type will be properly inferred
152
152
  return {
153
153
  id: user.id,
@@ -170,14 +170,14 @@ const app = new Spiceflow()
170
170
  }),
171
171
  async handler({ request }) {
172
172
  const body = await request.json()
173
-
173
+
174
174
  if (await userExists(body.email)) {
175
175
  // Throw Response for errors
176
176
  throw new Response('User already exists', { status: 409 })
177
177
  }
178
-
178
+
179
179
  const newUser = await createUser(body)
180
-
180
+
181
181
  // Return object directly - RPC client will have proper typing
182
182
  return {
183
183
  id: newUser.id,
@@ -195,18 +195,19 @@ const client = createSpiceflowClient<typeof app>('http://localhost:3000')
195
195
  async function example() {
196
196
  // TypeScript knows data is { id: string, name: string, email: string } | undefined
197
197
  const { data, error } = await client.users({ id: '123' }).get()
198
-
198
+
199
199
  if (error) {
200
200
  console.error('Error:', error) // Error handling
201
201
  return
202
202
  }
203
-
203
+
204
204
  // data is properly typed here
205
205
  console.log('User:', data.name, data.email)
206
206
  }
207
207
  ```
208
208
 
209
209
  With this pattern:
210
+
210
211
  - **Success responses**: Return objects directly for automatic JSON serialization and proper type inference
211
212
  - **Error responses**: Throw `Response` objects to maintain the error/success distinction in the RPC client
212
213
  - **Type safety**: The RPC client will correctly infer the return type as the success object type
@@ -361,7 +362,6 @@ async function exampleUsage() {
361
362
  }
362
363
  ```
363
364
 
364
-
365
365
  ### Path Matching - Supported Features
366
366
 
367
367
  - **Named parameters**: `:param` - Captures dynamic segments like `/users/:id` or `/api/:version/users/:userId`
@@ -399,7 +399,7 @@ export class ChatDurableObject {
399
399
  async handler() {
400
400
  // Use 'self' instead of 'this' to access parent class
401
401
  // this.state would NOT work here - 'this' refers to Spiceflow instance
402
- const messages = await self.state.storage.get('messages') || []
402
+ const messages = (await self.state.storage.get('messages')) || []
403
403
  return { messages }
404
404
  },
405
405
  })
@@ -409,7 +409,7 @@ export class ChatDurableObject {
409
409
  async handler({ request }) {
410
410
  const { message } = await request.json()
411
411
  // Use 'self' to access parent class properties
412
- const messages = await self.state.storage.get('messages') || []
412
+ const messages = (await self.state.storage.get('messages')) || []
413
413
  messages.push({ id: Date.now(), text: message })
414
414
  await self.state.storage.put('messages', messages)
415
415
  return { success: true }
@@ -1066,14 +1066,14 @@ If you already have an existing MCP server and want to add Spiceflow route tools
1066
1066
 
1067
1067
  ```ts
1068
1068
  import { addMcpTools } from 'spiceflow/mcp'
1069
- import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
1069
+ import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js'
1070
1070
 
1071
1071
  import { Spiceflow } from 'spiceflow'
1072
1072
 
1073
1073
  // Your existing MCP server
1074
1074
  const existingServer = new Server(
1075
1075
  { name: 'my-server', version: '1.0.0' },
1076
- { capabilities: { tools: {}, resources: {} } }
1076
+ { capabilities: { tools: {}, resources: {} } },
1077
1077
  )
1078
1078
 
1079
1079
  // Your Spiceflow app
@@ -1088,10 +1088,10 @@ const app = new Spiceflow()
1088
1088
  })
1089
1089
 
1090
1090
  // Add Spiceflow tools to your existing server
1091
- const mcpServer = await addMcpTools({
1092
- mcpServer: existingServer,
1091
+ const mcpServer = await addMcpTools({
1092
+ mcpServer: existingServer,
1093
1093
  app,
1094
- ignorePaths: ['/mcp', '/sse']
1094
+ ignorePaths: ['/mcp', '/sse'],
1095
1095
  })
1096
1096
 
1097
1097
  // Now your existing server has access to all Spiceflow routes as tools
@@ -1455,3 +1455,11 @@ async function trackPageView(path: string) {
1455
1455
  ```
1456
1456
 
1457
1457
  **Note:** In non-Cloudflare environments, if no custom `waitUntil` function is provided, the default implementation is a no-op function that doesn't wait for the promises to complete.
1458
+
1459
+ ### When using `createSpiceflowClient` and getting typescript error `The inferred type of 'pluginApiClient' cannot be named without a reference to '...'. This is likely not portable. A type annotation is necessary. (ts 2742)`
1460
+
1461
+ You can resolve this issue by adding an explicing type for the client:
1462
+
1463
+ ```ts
1464
+ export const client: SpiceflowClient.Create<App> = createSpiceflowClient<App>(PUBLIC_URL, {})
1465
+ ````
@@ -24,7 +24,7 @@ export declare namespace SpiceflowClient {
24
24
  _types: {
25
25
  ClientRoutes: infer Schema extends Record<string, any>;
26
26
  };
27
- } ? Prettify<Sign<Schema>> : 'Please install latest Spiceflow before using the client, also make sure both client and server use the same version';
27
+ } ? Prettify<Sign<Schema>> : 'Install latest Spiceflow before using the client, make sure both client and server use the same version. Make sure you passed the App type generic if using createSpiceflowClient';
28
28
  export type Sign<in out Route extends Record<string, any>> = {
29
29
  [K in keyof Route as K extends `:${string}` ? never : K]: Route[K] extends {
30
30
  request: infer Body;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/client/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/client/types.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  export { Spiceflow } from './spiceflow.ts';
2
2
  export type { AnySpiceflow, WaitUntil } from './spiceflow.ts';
3
3
  export { ValidationError } from './error.ts';
4
+ export { preventProcessExitIfBusy } from './prevent-process-exit-if-busy.js';
4
5
  declare class Response extends globalThis.Response {
5
6
  }
6
7
  export { Response };
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1C,YAAY,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAG5C,cAAM,QAAS,SAAQ,UAAU,CAAC,QAAQ;CAAG;AAE7C,OAAO,EAAE,QAAQ,EAAE,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1C,YAAY,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAC5C,OAAO,EAAE,wBAAwB,EAAE,MAAM,mCAAmC,CAAA;AAG5E,cAAM,QAAS,SAAQ,UAAU,CAAC,QAAQ;CAAG;AAE7C,OAAO,EAAE,QAAQ,EAAE,CAAA"}
package/dist/index.js CHANGED
@@ -1,5 +1,6 @@
1
1
  export { Spiceflow } from "./spiceflow.js";
2
2
  export { ValidationError } from "./error.js";
3
+ export { preventProcessExitIfBusy } from './prevent-process-exit-if-busy.js';
3
4
  // utility Response to be used in Cloudflare Workers to shut up the TypeScript errors (cloudflare Response is different than normal Response type)
4
5
  class Response extends globalThis.Response {
5
6
  }
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAE1C,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAE5C,kJAAkJ;AAClJ,MAAM,QAAS,SAAQ,UAAU,CAAC,QAAQ;CAAG;AAE7C,OAAO,EAAE,QAAQ,EAAE,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAE1C,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAC5C,OAAO,EAAE,wBAAwB,EAAE,MAAM,mCAAmC,CAAA;AAE5E,kJAAkJ;AAClJ,MAAM,QAAS,SAAQ,UAAU,CAAC,QAAQ;CAAG;AAE7C,OAAO,EAAE,QAAQ,EAAE,CAAA"}
@@ -339,4 +339,195 @@ test('each middleware and route is called exactly once if an error is thrown', a
339
339
  route: 1,
340
340
  });
341
341
  });
342
+ test('middleware with try/finally correctly tracks operations even when errors are thrown', async () => {
343
+ let operationCount = 0;
344
+ let finallyExecuted = false;
345
+ const createTrackingMiddleware = () => {
346
+ return async (_, next) => {
347
+ operationCount++;
348
+ try {
349
+ await next();
350
+ }
351
+ finally {
352
+ operationCount--;
353
+ finallyExecuted = true;
354
+ }
355
+ };
356
+ };
357
+ // Test 1: Normal successful request
358
+ operationCount = 0;
359
+ finallyExecuted = false;
360
+ const app1 = new Spiceflow()
361
+ .use(createTrackingMiddleware())
362
+ .get('/success', () => ({ message: 'success' }));
363
+ const res1 = await app1.handle(new Request('http://localhost/success'));
364
+ expect(res1.status).toBe(200);
365
+ expect(operationCount).toBe(0); // Should be decremented back to 0
366
+ expect(finallyExecuted).toBe(true);
367
+ // Test 2: Route throws an error
368
+ operationCount = 0;
369
+ finallyExecuted = false;
370
+ const app2 = new Spiceflow()
371
+ .use(createTrackingMiddleware())
372
+ .get('/error', () => {
373
+ throw new Error('Route error');
374
+ });
375
+ const res2 = await app2.handle(new Request('http://localhost/error'));
376
+ expect(res2.status).toBe(500);
377
+ expect(operationCount).toBe(0); // Should be decremented back to 0
378
+ expect(finallyExecuted).toBe(true);
379
+ // Test 3: Route throws a Response
380
+ operationCount = 0;
381
+ finallyExecuted = false;
382
+ const app3 = new Spiceflow()
383
+ .use(createTrackingMiddleware())
384
+ .get('/response', () => {
385
+ throw new Response('Custom response', { status: 403 });
386
+ });
387
+ const res3 = await app3.handle(new Request('http://localhost/response'));
388
+ expect(res3.status).toBe(403);
389
+ expect(operationCount).toBe(0); // Should be decremented back to 0
390
+ expect(finallyExecuted).toBe(true);
391
+ // Test 4: Multiple concurrent requests
392
+ operationCount = 0;
393
+ const app4 = new Spiceflow()
394
+ .use(createTrackingMiddleware())
395
+ .get('/concurrent', async () => {
396
+ await new Promise(resolve => setTimeout(resolve, 50));
397
+ return { ok: true };
398
+ });
399
+ // Start 3 concurrent requests
400
+ const concurrentRequests = Promise.all([
401
+ app4.handle(new Request('http://localhost/concurrent')),
402
+ app4.handle(new Request('http://localhost/concurrent')),
403
+ app4.handle(new Request('http://localhost/concurrent'))
404
+ ]);
405
+ // Wait a bit to ensure requests are in flight
406
+ await new Promise(resolve => setTimeout(resolve, 10));
407
+ // Operation count should be 3 while requests are in flight
408
+ expect(operationCount).toBe(3);
409
+ // Wait for all requests to complete
410
+ const results = await concurrentRequests;
411
+ results.forEach(res => expect(res.status).toBe(200));
412
+ // Operation count should be back to 0
413
+ expect(operationCount).toBe(0);
414
+ });
415
+ test('middleware with try/finally tracks operations correctly with child apps', async () => {
416
+ let operationCount = 0;
417
+ let finallyExecuted = false;
418
+ const createTrackingMiddleware = () => {
419
+ return async (_, next) => {
420
+ operationCount++;
421
+ try {
422
+ await next();
423
+ }
424
+ finally {
425
+ operationCount--;
426
+ finallyExecuted = true;
427
+ }
428
+ };
429
+ };
430
+ // Test 1: Middleware on parent, route in child app
431
+ operationCount = 0;
432
+ finallyExecuted = false;
433
+ const childApp1 = new Spiceflow()
434
+ .get('/child/route', () => ({ message: 'from child' }));
435
+ const parentApp1 = new Spiceflow()
436
+ .use(createTrackingMiddleware())
437
+ .use(childApp1);
438
+ const res1 = await parentApp1.handle(new Request('http://localhost/child/route'));
439
+ expect(res1.status).toBe(200);
440
+ expect(operationCount).toBe(0);
441
+ expect(finallyExecuted).toBe(true);
442
+ // Test 2: Middleware on parent, error thrown in child route
443
+ operationCount = 0;
444
+ finallyExecuted = false;
445
+ const childApp2 = new Spiceflow()
446
+ .get('/child/error', () => {
447
+ throw new Error('Child route error');
448
+ });
449
+ const parentApp2 = new Spiceflow()
450
+ .use(createTrackingMiddleware())
451
+ .use(childApp2);
452
+ const res2 = await parentApp2.handle(new Request('http://localhost/child/error'));
453
+ expect(res2.status).toBe(500);
454
+ expect(operationCount).toBe(0);
455
+ expect(finallyExecuted).toBe(true);
456
+ // Test 3: Multiple nested child apps with middleware
457
+ operationCount = 0;
458
+ finallyExecuted = false;
459
+ const grandchildApp = new Spiceflow()
460
+ .get('/level3/route', () => ({ level: 3 }));
461
+ const childApp3 = new Spiceflow({ basePath: '/level2' })
462
+ .use(grandchildApp);
463
+ const parentApp3 = new Spiceflow()
464
+ .use(createTrackingMiddleware())
465
+ .use(childApp3);
466
+ const res3 = await parentApp3.handle(new Request('http://localhost/level2/level3/route'));
467
+ expect(res3.status).toBe(200);
468
+ expect(operationCount).toBe(0);
469
+ expect(finallyExecuted).toBe(true);
470
+ // Test 4: Middleware on both parent and child
471
+ operationCount = 0;
472
+ const childApp4 = new Spiceflow()
473
+ .use(createTrackingMiddleware())
474
+ .get('/child/both', () => ({ from: 'both' }));
475
+ const parentApp4 = new Spiceflow()
476
+ .use(createTrackingMiddleware())
477
+ .use(childApp4);
478
+ const res4 = await parentApp4.handle(new Request('http://localhost/child/both'));
479
+ expect(res4.status).toBe(200);
480
+ expect(operationCount).toBe(0); // Both middlewares increment and decrement
481
+ // Test 5: Child app with basePath
482
+ operationCount = 0;
483
+ finallyExecuted = false;
484
+ const childApp5 = new Spiceflow({ basePath: '/api/v1' })
485
+ .get('/users', () => ({ users: [] }));
486
+ const parentApp5 = new Spiceflow()
487
+ .use(createTrackingMiddleware())
488
+ .use(childApp5);
489
+ const res5 = await parentApp5.handle(new Request('http://localhost/api/v1/users'));
490
+ expect(res5.status).toBe(200);
491
+ expect(operationCount).toBe(0);
492
+ expect(finallyExecuted).toBe(true);
493
+ // Test 6: Concurrent requests to child app routes
494
+ operationCount = 0;
495
+ const childApp6 = new Spiceflow()
496
+ .get('/child/slow', async () => {
497
+ await new Promise(resolve => setTimeout(resolve, 50));
498
+ return { ok: true };
499
+ });
500
+ const parentApp6 = new Spiceflow()
501
+ .use(createTrackingMiddleware())
502
+ .use(childApp6);
503
+ // Start 3 concurrent requests
504
+ const concurrentRequests = Promise.all([
505
+ parentApp6.handle(new Request('http://localhost/child/slow')),
506
+ parentApp6.handle(new Request('http://localhost/child/slow')),
507
+ parentApp6.handle(new Request('http://localhost/child/slow'))
508
+ ]);
509
+ // Wait a bit to ensure requests are in flight
510
+ await new Promise(resolve => setTimeout(resolve, 10));
511
+ // Operation count should be 3 while requests are in flight
512
+ expect(operationCount).toBe(3);
513
+ // Wait for all requests to complete
514
+ const results = await concurrentRequests;
515
+ results.forEach(res => expect(res.status).toBe(200));
516
+ // Operation count should be back to 0
517
+ expect(operationCount).toBe(0);
518
+ // Test 7: Child app throws Response
519
+ operationCount = 0;
520
+ finallyExecuted = false;
521
+ const childApp7 = new Spiceflow()
522
+ .get('/child/response', () => {
523
+ throw new Response('Custom child response', { status: 403 });
524
+ });
525
+ const parentApp7 = new Spiceflow()
526
+ .use(createTrackingMiddleware())
527
+ .use(childApp7);
528
+ const res7 = await parentApp7.handle(new Request('http://localhost/child/response'));
529
+ expect(res7.status).toBe(403);
530
+ expect(operationCount).toBe(0);
531
+ expect(finallyExecuted).toBe(true);
532
+ });
342
533
  //# sourceMappingURL=middleware.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"middleware.test.js","sourceRoot":"","sources":["../src/middleware.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"middleware.test.js","sourceRoot":"","sources":["../src/middleware.test.ts"],"names":[],"mappings":"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"}
@@ -334,7 +334,6 @@ test('openapi response', async () => {
334
334
  "content": {
335
335
  "application/json": {
336
336
  "schema": {
337
- "additionalProperties": true,
338
337
  "properties": {
339
338
  "name": {
340
339
  "type": "string",
@@ -1 +1 @@
1
- {"version":3,"file":"openapi.test.js","sourceRoot":"","sources":["../src/openapi.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AACrC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE,MAAM,QAAQ,CAAA;AAChC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAE1C,IAAI,CAAC,kBAAkB,EAAE,KAAK,IAAI,EAAE;IAClC,MAAM,GAAG,GAAG,IAAI,SAAS,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;SAC7C,GAAG,CACF,OAAO,CAAC;QACN,IAAI,EAAE;YACJ,KAAK,EAAE,gBAAgB;YACvB,OAAO,EAAE,OAAO;SACjB;KACF,CAAC,CACH;SACA,GAAG,CACF,IAAI,SAAS,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC,GAAG,CACrC,UAAU,EACV,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE;QACb,IAAI,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,EAAE,CAAC;YACxB,+BAA+B;YAE/B,OAAO;gBACL,OAAO,EAAE,KAAK;aACf,CAAA;QACH,CAAC;QACD,OAAO,MAAM,CAAC,EAAE,CAAA;IAClB,CAAC,EACD;QACE,QAAQ,EAAE;YACR,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE;YACf,GAAG,EAAE,CAAC,CAAC,MAAM,CAAC;gBACZ,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;aACpB,CAAC;SACH;KACF,CACF,CACF;SACA,KAAK,CACJ,UAAU,EACV,KAAK,EAAE,CAAC,EAAE,EAAE;QACV,IAAI,IAAI,GAAG,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,CAAA;QACjC,OAAO,IAAI,CAAA;IACb,CAAC,EACD;QACE,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC;YACd,IAAI,EAAE,EAAE,CAAC,MAAM,EAAE;SAClB,CAAC;QACF,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC;YACjB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;SAC5B,CAAC;KACH,CACF;SAEA,GAAG,CACF,cAAc,EACd,KAAK,EAAE,CAAC,EAAE,EAAE;QACV,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAA;QACrB,OAAO,KAAK,CAAA;IACd,CAAC,EACD;QACE,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC;YACd,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;SACjB,CAAC;QACF,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC;YACjB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;SAC5B,CAAC;KACH,CACF;SACA,IAAI,CACH,cAAc,EACd,KAAK,EAAE,CAAC,EAAE,EAAE;QACV,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAA;QACrB,OAAO,KAAK,CAAA;IACd,CAAC,EACD;QACE,MAAM,EAAE;YACN,WAAW,EAAE,gBAAgB;YAC7B,WAAW,EAAE,oBAAoB;SAClC;QACD,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;YACb,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;SACjB,CAAC;QACF,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC;YACjB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;SAC5B,CAAC;KACH,CACF;SACA,GAAG,CACF,SAAS,EACT,KAAK,SAAS,CAAC;QACb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC3B,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,CAAA;YAClB,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAA;QACzD,CAAC;IACH,CAAC,EACD;QACE,MAAM,EAAE;YACN,WAAW,EAAE,kBAAkB;SAChC;QACD,uBAAuB;QACvB,uBAAuB;QACvB,MAAM;KACP,CACF;SACA,GAAG,CACF,mBAAmB,EACnB,KAAK,SAAS,CAAC;QACb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC3B,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,CAAA;YAClB,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAA;QACzD,CAAC;IACH,CAAC,EACD;QACE,MAAM,EAAE;YACN,WAAW,EAAE,8BAA8B;SAC5C;QACD,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC;YACjB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;SAClB,CAAC;KACH,CACF;SACA,IAAI,CACH,qBAAqB,EACrB,GAAG,EAAE;QACH,MAAM,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAA;QAC/B,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;QAC/B,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;QAC5B,OAAO,IAAI,QAAQ,CAAC,QAAQ,EAAE;YAC5B,OAAO,EAAE;gBACP,cAAc,EAAE,qBAAqB;aACtC;SACF,CAAC,CAAA;IACJ,CAAC,EACD;QACE,MAAM,EAAE;YACN,WAAW,EAAE,oCAAoC;SAClD;QACD,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC;YACjB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;YAChB,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE;SAChB,CAAC;QACF,IAAI,EAAE,qBAAqB;KAC5B,CACF;SACA,GAAG,CACF,IAAI,SAAS,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC,GAAG,CACrC,UAAU,EACV,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,EACzB;QACE,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC;YAChB,EAAE,EAAE,EAAE,CAAC,MAAM,EAAE;SAChB,CAAC;KACH,CACF,CACF,CAAA;IACH,MAAM,aAAa,GAAG,MAAM,GAAG;SAC5B,MAAM,CAAC,IAAI,OAAO,CAAC,+BAA+B,CAAC,CAAC;SACpD,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAA;IACxB,MAAM,CAAC,aAAa,CAAC,CAAC,qBAAqB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmW3C,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
1
+ {"version":3,"file":"openapi.test.js","sourceRoot":"","sources":["../src/openapi.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Creates a Spiceflow middleware that tracks in-flight requests and prevents
3
+ * the process from exiting while requests are being processed.
4
+ *
5
+ * @param {Object} options - Configuration options
6
+ * @param {number} [options.maxWaitSeconds=300] - Maximum time to wait for requests to complete
7
+ * @param {number} [options.checkIntervalMs=250] - Interval to check if requests are complete
8
+ * @returns {Spiceflow} Spiceflow app that can be mounted with .use()
9
+ */
10
+ export function preventProcessExitIfBusy(options?: {
11
+ maxWaitSeconds?: number | undefined;
12
+ checkIntervalMs?: number | undefined;
13
+ }): Spiceflow;
14
+ import { Spiceflow } from 'spiceflow';
15
+ //# sourceMappingURL=prevent-process-exit-if-busy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prevent-process-exit-if-busy.d.ts","sourceRoot":"","sources":["../src/prevent-process-exit-if-busy.js"],"names":[],"mappings":"AAEA;;;;;;;;GAQG;AACH,mDAJG;IAAyB,cAAc;IACd,eAAe;CACxC,GAAU,SAAS,CAkDrB;0BA3DyB,WAAW"}
@@ -0,0 +1,54 @@
1
+ import { Spiceflow } from 'spiceflow';
2
+ /**
3
+ * Creates a Spiceflow middleware that tracks in-flight requests and prevents
4
+ * the process from exiting while requests are being processed.
5
+ *
6
+ * @param {Object} options - Configuration options
7
+ * @param {number} [options.maxWaitSeconds=300] - Maximum time to wait for requests to complete
8
+ * @param {number} [options.checkIntervalMs=250] - Interval to check if requests are complete
9
+ * @returns {Spiceflow} Spiceflow app that can be mounted with .use()
10
+ */
11
+ export function preventProcessExitIfBusy(options = {}) {
12
+ const { maxWaitSeconds = 300, checkIntervalMs = 250 } = options;
13
+ // Track in-flight requests in closure
14
+ let inFlightRequests = 0;
15
+ let isShuttingDown = false;
16
+ // Sleep utility
17
+ const sleep = (ms) => new Promise(resolve => setTimeout(resolve, ms));
18
+ // Graceful shutdown handler
19
+ async function handleShutdown(signal) {
20
+ if (isShuttingDown)
21
+ return; // Prevent multiple shutdown attempts
22
+ isShuttingDown = true;
23
+ console.log(`${signal} received – waiting for ${inFlightRequests} request(s) to complete...`);
24
+ const deadline = Date.now() + (maxWaitSeconds * 1000);
25
+ while (inFlightRequests > 0 && Date.now() < deadline) {
26
+ await sleep(checkIntervalMs);
27
+ }
28
+ if (inFlightRequests > 0) {
29
+ console.log(`Shutdown timeout reached; ${inFlightRequests} request(s) still in progress`);
30
+ }
31
+ else {
32
+ console.log('All requests completed');
33
+ }
34
+ process.exit(inFlightRequests > 0 ? 1 : 0);
35
+ }
36
+ // Register shutdown handlers only in Node.js environments
37
+ if (typeof process !== 'undefined' && process.prependListener) {
38
+ ;
39
+ ['SIGINT', 'SIGTERM'].forEach(sig => {
40
+ process.prependListener(sig, handleShutdown);
41
+ });
42
+ }
43
+ // Return Spiceflow middleware
44
+ return new Spiceflow().use(async (_, next) => {
45
+ inFlightRequests++;
46
+ try {
47
+ await next();
48
+ }
49
+ finally {
50
+ inFlightRequests--;
51
+ }
52
+ });
53
+ }
54
+ //# sourceMappingURL=prevent-process-exit-if-busy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prevent-process-exit-if-busy.js","sourceRoot":"","sources":["../src/prevent-process-exit-if-busy.js"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AAErC;;;;;;;;GAQG;AACH,MAAM,UAAU,wBAAwB,CAAC,OAAO,GAAG,EAAE;IACjD,MAAM,EAAE,cAAc,GAAG,GAAG,EAAE,eAAe,GAAG,GAAG,EAAE,GAAG,OAAO,CAAA;IAE/D,sCAAsC;IACtC,IAAI,gBAAgB,GAAG,CAAC,CAAA;IACxB,IAAI,cAAc,GAAG,KAAK,CAAA;IAE1B,gBAAgB;IAChB,MAAM,KAAK,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAA;IAErE,4BAA4B;IAC5B,KAAK,UAAU,cAAc,CAAC,MAAM;QAChC,IAAI,cAAc;YAAE,OAAM,CAAC,qCAAqC;QAChE,cAAc,GAAG,IAAI,CAAA;QAErB,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,2BAA2B,gBAAgB,4BAA4B,CAAC,CAAA;QAE7F,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,cAAc,GAAG,IAAI,CAAC,CAAA;QAErD,OAAO,gBAAgB,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,EAAE,CAAC;YACnD,MAAM,KAAK,CAAC,eAAe,CAAC,CAAA;QAChC,CAAC;QAED,IAAI,gBAAgB,GAAG,CAAC,EAAE,CAAC;YACvB,OAAO,CAAC,GAAG,CAAC,6BAA6B,gBAAgB,+BAA+B,CAAC,CAAA;QAC7F,CAAC;aAAM,CAAC;YACJ,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAA;QACzC,CAAC;QAED,OAAO,CAAC,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IAC9C,CAAC;IAED,0DAA0D;IAC1D,IAAI,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;QAC5D,CAAC;QAAA,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;YACjC,OAAO,CAAC,eAAe,CAAC,GAAG,EAAE,cAAc,CAAC,CAAA;QAChD,CAAC,CAAC,CAAA;IACN,CAAC;IAED,8BAA8B;IAC9B,OAAO,IAAI,SAAS,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE;QACzC,gBAAgB,EAAE,CAAA;QAClB,IAAI,CAAC;YACD,MAAM,IAAI,EAAE,CAAA;QAChB,CAAC;gBAAS,CAAC;YACP,gBAAgB,EAAE,CAAA;QACtB,CAAC;IACL,CAAC,CAAC,CAAA;AACN,CAAC"}
@@ -323,7 +323,7 @@ test('onError fires on validation errors', async () => {
323
323
  body: JSON.stringify({ name: 1 }), // Invalid type for 'name'
324
324
  }));
325
325
  expect(res.status).toBe(400);
326
- expect(errorMessage).toMatchInlineSnapshot(`"name: Expected string, received number"`);
326
+ expect(errorMessage).toMatchInlineSnapshot(`"name: Invalid input: expected string, received number"`);
327
327
  expect(await res.text()).toMatchInlineSnapshot(`"Error"`);
328
328
  });
329
329
  test.todo('HEAD uses GET route, does not add body', async () => {
@@ -502,7 +502,7 @@ test('validate body works, request fails', async () => {
502
502
  body: JSON.stringify({ name: 'John' }),
503
503
  }));
504
504
  expect(res.status).toBe(422);
505
- expect(await res.text()).toMatchInlineSnapshot(`"{"code":"VALIDATION","status":422,"message":"requiredField: Required"}"`);
505
+ expect(await res.text()).toMatchInlineSnapshot(`"{"code":"VALIDATION","status":422,"message":"requiredField: Invalid input: expected string, received undefined"}"`);
506
506
  });
507
507
  test('run use', async () => {
508
508
  const res = await new Spiceflow()