opinionated-machine 9.0.0 → 10.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. package/CHANGELOG.md +85 -0
  2. package/README.md +222 -7
  3. package/dist/lib/DIContext.js +33 -27
  4. package/dist/lib/DIContext.js.map +1 -1
  5. package/dist/lib/routes/fastifyRouteBuilder.js +79 -21
  6. package/dist/lib/routes/fastifyRouteBuilder.js.map +1 -1
  7. package/dist/lib/routes/fastifyRouteTypes.d.ts +97 -12
  8. package/dist/lib/routes/fastifyRouteTypes.js.map +1 -1
  9. package/dist/lib/routes/fastifyRouteUtils.js +15 -5
  10. package/dist/lib/routes/fastifyRouteUtils.js.map +1 -1
  11. package/dist/lib/routes/index.d.ts +2 -1
  12. package/dist/lib/routes/index.js +2 -0
  13. package/dist/lib/routes/index.js.map +1 -1
  14. package/dist/lib/routes/sseResponseSchema.d.ts +35 -0
  15. package/dist/lib/routes/sseResponseSchema.js +115 -0
  16. package/dist/lib/routes/sseResponseSchema.js.map +1 -0
  17. package/dist/lib/sse/SSESessionSpy.d.ts +35 -7
  18. package/dist/lib/sse/SSESessionSpy.js +30 -1
  19. package/dist/lib/sse/SSESessionSpy.js.map +1 -1
  20. package/dist/lib/sse/index.d.ts +1 -1
  21. package/dist/lib/sse/index.js.map +1 -1
  22. package/dist/lib/testing/apiSseInjectHelpers.d.ts +64 -0
  23. package/dist/lib/testing/apiSseInjectHelpers.js +212 -0
  24. package/dist/lib/testing/apiSseInjectHelpers.js.map +1 -0
  25. package/dist/lib/testing/apiSseTestTypes.d.ts +202 -0
  26. package/dist/lib/testing/apiSseTestTypes.js +2 -0
  27. package/dist/lib/testing/apiSseTestTypes.js.map +1 -0
  28. package/dist/lib/testing/index.d.ts +4 -1
  29. package/dist/lib/testing/index.js +2 -0
  30. package/dist/lib/testing/index.js.map +1 -1
  31. package/dist/lib/testing/sseHttpClient.d.ts +36 -4
  32. package/dist/lib/testing/sseHttpClient.js +29 -6
  33. package/dist/lib/testing/sseHttpClient.js.map +1 -1
  34. package/dist/lib/testing/sseInjectHelpers.js +1 -12
  35. package/dist/lib/testing/sseInjectHelpers.js.map +1 -1
  36. package/dist/lib/testing/sseInjectShared.d.ts +7 -0
  37. package/dist/lib/testing/sseInjectShared.js +19 -0
  38. package/dist/lib/testing/sseInjectShared.js.map +1 -0
  39. package/dist/lib/testing/sseSessionSpyFactory.d.ts +109 -0
  40. package/dist/lib/testing/sseSessionSpyFactory.js +100 -0
  41. package/dist/lib/testing/sseSessionSpyFactory.js.map +1 -0
  42. package/package.json +1 -1
@@ -2,22 +2,54 @@ import { InternalError } from '@lokalise/node-core';
2
2
  import { ZodObject } from 'zod';
3
3
  import { isErrorLike } from "../errorUtils.js";
4
4
  import { createSSEContext, determineMode, extractPathTemplate, handleSSEError, hasHttpStatusCode, } from "./fastifyRouteUtils.js";
5
+ import { buildSseResponseSchemas } from "./sseResponseSchema.js";
5
6
  // Re-export for convenience
6
7
  export { extractPathTemplate };
8
+ /**
9
+ * Default `@fastify/sse` route kind used by both SSE-only and dual-mode routes.
10
+ *
11
+ * `'manual'` disables the plugin's `Accept` header negotiation entirely: `reply.sse` is
12
+ * always attached and the route handler decides at runtime whether to stream or to send a
13
+ * regular HTTP response. That matches what the handlers this builder produces already do,
14
+ * and it is the only kind that is safe for every shape of route:
15
+ *
16
+ * - SSE-only handlers have a single code path that calls `sse.start()`. Under the plugin's
17
+ * `sse: true` default (`kind: 'legacy'`) a client that does not send an explicit
18
+ * `text/event-stream` token - a wildcard `Accept` header, `Accept: application/json`, or
19
+ * no `Accept` header at all, which is what most non-browser clients and OpenAPI-generated
20
+ * clients send - leaves `reply.sse` undefined while still running the handler, so the
21
+ * first `sse.start()` throws and the request 500s.
22
+ * - Dual-mode handlers negotiate themselves via `determineMode()`, which honours
23
+ * `defaultMode`. Under a plugin-side gate, `defaultMode: 'sse'` combined with a
24
+ * non-specific `Accept` header hits the same 500.
25
+ * - `sse.respond()` (an early HTTP response before streaming starts) stays reachable for
26
+ * every client. `kind: 'only'` would cut that off for JSON clients: its gate admits a
27
+ * missing `Accept` header plus the `*\/*` and `text/*` wildcards, but answers `406` to
28
+ * every other concrete media type, `application/json` included.
29
+ *
30
+ * Override per route with the `kind` route option when different semantics are wanted -
31
+ * `'only'` on an SSE-only route for `406 Not Acceptable` content negotiation, or `'dual'`
32
+ * on a dual-mode route to let the plugin gate before the handler runs.
33
+ */
34
+ const DEFAULT_SSE_ROUTE_KIND = 'manual';
7
35
  /**
8
36
  * Build the SSE config object for route options.
9
- * Returns true for basic SSE support, or an object with custom serializer/heartbeat.
37
+ *
38
+ * Always returns the object form with an explicit `kind`: omitting it (or passing
39
+ * `sse: true`) makes `@fastify/sse` fall back to its `'legacy'` kind, which applies a
40
+ * strict `Accept` gate and leaves `reply.sse` undefined for clients that do not ask
41
+ * for `text/event-stream` explicitly.
42
+ *
43
+ * `heartbeat` is a boolean: the plugin only supports turning the heartbeat on or off per
44
+ * route, while the interval is set once for all routes at plugin registration.
10
45
  */
11
46
  function buildSSEConfig(options) {
12
- if (!options?.serializer && options?.heartbeatInterval === undefined) {
13
- return true;
14
- }
15
- const sseConfig = {};
16
- if (options.serializer) {
47
+ const sseConfig = { kind: options?.kind ?? DEFAULT_SSE_ROUTE_KIND };
48
+ if (options?.serializer) {
17
49
  sseConfig.serializer = options.serializer;
18
50
  }
19
- if (options.heartbeatInterval !== undefined) {
20
- sseConfig.heartbeatInterval = options.heartbeatInterval;
51
+ if (options?.heartbeat !== undefined) {
52
+ sseConfig.heartbeat = options.heartbeat;
21
53
  }
22
54
  return sseConfig;
23
55
  }
@@ -232,11 +264,13 @@ request, reply, options) {
232
264
  // Respect httpStatusCode from errors like PublicNonRecoverableError
233
265
  const statusCode = hasHttpStatusCode(err) ? err.httpStatusCode : 500;
234
266
  const statusText = statusCode >= 500 ? 'Internal Server Error' : 'Error';
235
- reply.code(statusCode).type('application/json').send({
236
- statusCode,
237
- error: statusText,
238
- message,
239
- });
267
+ // Sent pre-serialized: Fastify skips the response serializer for string payloads, so this
268
+ // envelope reaches the client intact even when the contract declares a different body for
269
+ // `statusCode`. Serializing it against that schema would drop `message`.
270
+ reply
271
+ .code(statusCode)
272
+ .type('application/json')
273
+ .send(JSON.stringify({ statusCode, error: statusText, message }));
240
274
  }
241
275
  }
242
276
  /**
@@ -262,6 +296,24 @@ function buildDualModeRouteInternal(controller, config) {
262
296
  });
263
297
  }
264
298
  const url = extractPathTemplate(contract.pathResolver, contract.requestPathParamsSchema);
299
+ // `kind: 'dual'` hands Accept negotiation to @fastify/sse, which admits SSE only for an
300
+ // explicit `text/event-stream` token. `determineMode()` then negotiates a second time
301
+ // inside the handler and falls back to `defaultMode` for anything non-specific, so with
302
+ // `defaultMode: 'sse'` a wildcard or absent Accept header takes the SSE branch after the
303
+ // plugin already declined to attach `reply.sse` - a guaranteed 500 on every such request.
304
+ // The two negotiators only agree when the fallback is JSON, so reject the combination at
305
+ // route-build time rather than letting it fail per request. `kind: 'manual'` (the default)
306
+ // performs no plugin-side gating and supports `defaultMode: 'sse'` fine.
307
+ if (options?.kind === 'dual' && defaultMode === 'sse') {
308
+ throw new InternalError({
309
+ message: `Dual-mode route ${contract.method.toUpperCase()} ${url} cannot combine kind: "dual" ` +
310
+ 'with defaultMode: "sse": @fastify/sse would decline to attach reply.sse for ' +
311
+ 'wildcard or absent Accept headers while the handler still selects SSE mode. ' +
312
+ 'Use kind: "manual" (the default) instead.',
313
+ errorCode: 'INVALID_SSE_ROUTE_KIND',
314
+ details: { url, method: contract.method, defaultMode, kind: options.kind },
315
+ });
316
+ }
265
317
  const schema = {
266
318
  params: contract.requestPathParamsSchema,
267
319
  querystring: contract.requestQuerySchema,
@@ -271,13 +323,16 @@ function buildDualModeRouteInternal(controller, config) {
271
323
  tags: contract.tags,
272
324
  hide: contract.visibility !== 'public',
273
325
  ...(contract.requestBodySchema && { body: contract.requestBodySchema }),
274
- // Note: response schema for sync mode could be added here
326
+ // 200 describes both branches: the JSON sync body and the SSE event stream.
327
+ // `isEmptyResponseExpected` contracts have no sync body to describe, so they get the
328
+ // stream alone rather than a schema that would serialize an empty response.
329
+ response: buildSseResponseSchemas(contract.serverSentEventSchemas, contract.responseBodySchemasByStatusCode, contract.isEmptyResponseExpected ? undefined : contract.successResponseBodySchema),
275
330
  };
276
331
  const routeOptions = {
277
332
  ...(options?.contractMetadataToRouteMapper?.(contract.metadata) ?? {}),
278
333
  method: contract.method,
279
334
  url,
280
- sse: buildSSEConfig(options), // Enable SSE support with optional per-route config
335
+ sse: buildSSEConfig(options), // Enable SSE support with explicit kind + optional per-route config
281
336
  schema,
282
337
  handler: async (request, reply) => {
283
338
  // Determine mode based on Accept header
@@ -323,12 +378,13 @@ function buildSSERouteInternal(controller, config) {
323
378
  tags: contract.tags,
324
379
  hide: contract.visibility !== 'public',
325
380
  ...(contract.requestBodySchema && { body: contract.requestBodySchema }),
381
+ response: buildSseResponseSchemas(contract.serverSentEventSchemas, contract.responseBodySchemasByStatusCode),
326
382
  };
327
383
  const routeOptions = {
328
384
  ...(options?.contractMetadataToRouteMapper?.(contract.metadata) ?? {}),
329
385
  method: contract.method,
330
386
  url,
331
- sse: buildSSEConfig(options), // Enable SSE support with optional per-route config
387
+ sse: buildSSEConfig(options), // Enable SSE support with explicit kind + optional per-route config
332
388
  schema,
333
389
  // biome-ignore lint/complexity/noExcessiveCognitiveComplexity: Core SSE route handler must coordinate context, error handling, and result processing
334
390
  handler: async (request, reply) => {
@@ -367,11 +423,13 @@ function buildSSERouteInternal(controller, config) {
367
423
  // Respect httpStatusCode from errors like PublicNonRecoverableError
368
424
  const statusCode = hasHttpStatusCode(err) ? err.httpStatusCode : 500;
369
425
  const statusText = statusCode >= 500 ? 'Internal Server Error' : 'Error';
370
- reply.code(statusCode).type('application/json').send({
371
- statusCode,
372
- error: statusText,
373
- message,
374
- });
426
+ // Sent pre-serialized: Fastify skips the response serializer for string payloads, so
427
+ // this envelope reaches the client intact even when the contract declares a different
428
+ // body for `statusCode`. Serializing it against that schema would drop `message`.
429
+ reply
430
+ .code(statusCode)
431
+ .type('application/json')
432
+ .send(JSON.stringify({ statusCode, error: statusText, message }));
375
433
  }
376
434
  },
377
435
  };
@@ -1 +1 @@
1
- {"version":3,"file":"fastifyRouteBuilder.js","sourceRoot":"","sources":["../../../lib/routes/fastifyRouteBuilder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fastifyRouteBuilder.js","sourceRoot":"","sources":["../../../lib/routes/fastifyRouteBuilder.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAGnD,OAAO,EAAE,SAAS,EAAE,MAAM,KAAK,CAAA;AAE/B,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAU9C,OAAO,EACL,gBAAgB,EAChB,aAAa,EACb,mBAAmB,EACnB,cAAc,EACd,iBAAiB,GAClB,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAA;AAEhE,4BAA4B;AAC5B,OAAO,EAAE,mBAAmB,EAAE,CAAA;AAe9B;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,sBAAsB,GAAiB,QAAQ,CAAA;AAErD;;;;;;;;;;GAUG;AACH,SAAS,cAAc,CACrB,OAAyE;IAEzE,MAAM,SAAS,GAAmB,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,IAAI,sBAAsB,EAAE,CAAA;IAEnF,IAAI,OAAO,EAAE,UAAU,EAAE,CAAC;QACxB,SAAS,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAA;IAC3C,CAAC;IAED,IAAI,OAAO,EAAE,SAAS,KAAK,SAAS,EAAE,CAAC;QACrC,SAAS,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAA;IACzC,CAAC;IAED,OAAO,SAAS,CAAA;AAClB,CAAC;AAED;;;;;;;;;GASG;AACH,SAAS,wBAAwB,CAC/B,QAAuC,EACvC,QAAiB;IAEjB,MAAM,MAAM,GAAG,QAAQ,CAAC,yBAAyB,CAAA;IACjD,IAAI,CAAC,MAAM;QAAE,OAAM;IAEnB,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAA;IACzC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,MAAM,IAAI,aAAa,CAAC;YACtB,OAAO,EAAE,uBAAuB;YAChC,SAAS,EAAE,4BAA4B;YACvC,OAAO,EAAE,EAAE,eAAe,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE;SACnD,CAAC,CAAA;IACJ,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,SAAS,4BAA4B,CACnC,2BAAsF,EACtF,UAAkB,EAClB,QAAiB;IAEjB,IAAI,CAAC,2BAA2B;QAAE,OAAM;IAExC,sFAAsF;IACtF,MAAM,MAAM,GAAI,2BAAwE,CACtF,MAAM,CAAC,UAAU,CAAC,CACnB,CAAA;IACD,IAAI,CAAC,MAAM;QAAE,OAAM;IAEnB,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAA;IACzC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,MAAM,IAAI,aAAa,CAAC;YACtB,OAAO,EAAE,uBAAuB;YAChC,SAAS,EAAE,4BAA4B;YACvC,OAAO,EAAE,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE;SAC/D,CAAC,CAAA;IACJ,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,SAAS,uBAAuB,CAC9B,qBAA+C,EAC/C,KAAmB;IAEnB,IAAI,CAAC,qBAAqB;QAAE,OAAM;IAClC,IAAI,CAAC,CAAC,OAAO,IAAI,qBAAqB,CAAC;QAAE,OAAM;IAE/C,iGAAiG;IACjG,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAC3B,qBAA4D,CAAC,KAAK,CACpE,CAAA;IACD,MAAM,iBAAiB,GAA4B,EAAE,CAAA;IACrD,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;QAC7B,iBAAiB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA;IAC/C,CAAC;IAED,MAAM,MAAM,GAAG,qBAAqB,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAA;IACjE,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,MAAM,IAAI,aAAa,CAAC;YACtB,OAAO,EAAE,uBAAuB;YAChC,SAAS,EAAE,oCAAoC;YAC/C,OAAO,EAAE,EAAE,eAAe,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE;SACnD,CAAC,CAAA;IACJ,CAAC;AACH,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,cAAc,CAC3B,QAAkB,EAClB,QAA4D;AAC5D,4FAA4F;AAC5F,OAAY,EACZ,KAAmB;IAEnB,+EAA+E;IAC/E,MAAM,QAAQ,GAAG,MAAO,QAAgB,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;IAE7D,2FAA2F;IAC3F,0EAA0E;IAC1E,wFAAwF;IACxF,0EAA0E;IAC1E,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;QACf,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;YACf,GAAG,EAAE,oEAAoE;YACzE,GAAG,EAAE,wBAAwB;YAC7B,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,SAAS,EAAE,OAAO,CAAC,YAAY,EAAE,GAAG;YACpC,KAAK,EAAE,OAAO,CAAC,EAAE;SAClB,CAAC,CAAA;QACF,OAAM;IACR,CAAC;IAED,oEAAoE;IACpE,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,IAAI,GAAG,CAAA;IAE1C,0CAA0C;IAC1C,qDAAqD;IACrD,gEAAgE;IAChE,IAAI,CAAC;QACH,IAAI,UAAU,IAAI,GAAG,IAAI,UAAU,GAAG,GAAG,EAAE,CAAC;YAC1C,wBAAwB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAA;QAC9C,CAAC;aAAM,CAAC;YACN,4BAA4B,CAAC,QAAQ,CAAC,+BAA+B,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAA;QAC9F,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,iDAAiD;QACjD,sFAAsF;QACtF,yEAAyE;QACzE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QACf,MAAM,GAAG,CAAA;IACX,CAAC;IAED,8EAA8E;IAC9E,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAA;IAE9B,uBAAuB,CAAC,QAAQ,CAAC,oBAAoB,EAAE,KAAK,CAAC,CAAA;IAE7D,OAAO,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;AAC7B,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,uBAAuB,CACpC,YAAyD,EACzD,UAEmE,EACnE,YAAgC,EAChC,gBAA+B,EAC/B,KAAmB,EACnB,IAA2C,EAC3C,2BAA2E;IAE3E,gFAAgF;IAChF,IAAI,YAAY,EAAE,CAAC;QACjB,6EAA6E;QAC7E,4BAA4B,CAAC,2BAA2B,EAAE,YAAY,CAAC,IAAI,EAAE,YAAY,CAAC,IAAI,CAAC,CAAA;QAE/F,8DAA8D;QAC9D,+EAA+E;QAC/E,0EAA0E;QAC1E,KAAK,CAAC,YAAY,CAAC,eAAe,CAAC,CAAA;QACnC,KAAK,CAAC,YAAY,CAAC,mBAAmB,CAAC,CAAA;QACvC,8EAA8E;QAC9E,4EAA4E;QAC5E,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAA;QAC9E,OAAM;IACR,CAAC;IAED,2DAA2D;IAC3D,IAAI,IAAI,KAAK,WAAW,EAAE,CAAC;QACzB,oEAAoE;QACpE,IAAI,YAAY,EAAE,CAAC;YACjB,UAAU,CAAC,eAAe,CAAC,YAAY,CAAC,CAAA;QAC1C,CAAC;IACH,CAAC;SAAM,IAAI,IAAI,KAAK,WAAW,EAAE,CAAC;QAChC,oDAAoD;QACpD,MAAM,gBAAgB,CAAA;IACxB,CAAC;AACH,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,aAAa,CAC1B,UAAqF,EACrF,QAAkB,EAClB,QAA4D;AAC5D,4FAA4F;AAC5F,OAAY,EACZ,KAAmB,EACnB,OAA0D;IAE1D,MAAM,aAAa,GAAG,gBAAgB,CACpC,UAAU,EACV,OAAO,EACP,KAAK,EACL,QAAQ,CAAC,sBAAsB,EAC/B,OAAO,EACP,eAAe,CAChB,CAAA;IAED,IAAI,CAAC;QACH,6GAA6G;QAC7G,MAAM,QAAQ,CAAC,GAAG,CAAC,OAAO,EAAE,aAAa,CAAC,UAAiB,CAAC,CAAA;QAE5D,wCAAwC;QACxC,4DAA4D;QAC5D,gFAAgF;QAChF,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,EAAE,CAAC;YAC/D,MAAM,IAAI,KAAK,CACb,0DAA0D;gBACxD,0EAA0E,CAC7E,CAAA;QACH,CAAC;QAED,qBAAqB;QACrB,MAAM,uBAAuB,CAC3B,aAAa,CAAC,eAAe,EAAE,EAC/B,UAAU,EACV,aAAa,CAAC,eAAe,EAAE,EAC/B,aAAa,CAAC,gBAAgB,EAC9B,KAAK,EACL,aAAa,CAAC,OAAO,EAAE,EACvB,QAAQ,CAAC,+BAA+B,CACzC,CAAA;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,gFAAgF;QAChF,IAAI,aAAa,CAAC,SAAS,EAAE,EAAE,CAAC;YAC9B,MAAM,YAAY,GAAG,aAAa,CAAC,eAAe,EAAE,CAAA;YACpD,IAAI,YAAY,EAAE,CAAC;gBACjB,MAAM,cAAc,CAAC,aAAa,CAAC,QAAQ,EAAE,UAAU,EAAE,YAAY,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,CAAC,CAAA;YAC9F,CAAC;YACD,gFAAgF;YAChF,MAAM,GAAG,CAAA;QACX,CAAC;QAED,8DAA8D;QAC9D,oEAAoE;QACpE,kEAAkE;QAClE,6EAA6E;QAC7E,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,uBAAuB,CAAA;QACxE,oEAAoE;QACpE,MAAM,UAAU,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,GAAG,CAAA;QACpE,MAAM,UAAU,GAAG,UAAU,IAAI,GAAG,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,OAAO,CAAA;QACxE,0FAA0F;QAC1F,0FAA0F;QAC1F,yEAAyE;QACzE,KAAK;aACF,IAAI,CAAC,UAAU,CAAC;aAChB,IAAI,CAAC,kBAAkB,CAAC;aACxB,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC,CAAC,CAAA;IACrE,CAAC;AACH,CAAC;AAED;;;;;;;;;;GAUG;AACH,SAAS,0BAA0B,CACjC,UAAqF,EACrF,MAA8C;IAE9C,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,MAAM,CAAA;IAC9C,MAAM,WAAW,GAAG,OAAO,EAAE,WAAW,IAAI,MAAM,CAAA;IAElD,kDAAkD;IAClD,+FAA+F;IAC/F,IAAI,CAAC,CAAC,QAAQ,CAAC,uBAAuB,YAAY,SAAS,CAAC,EAAE,CAAC;QAC7D,MAAM,IAAI,aAAa,CAAC;YACtB,OAAO,EAAE,6EAA6E,QAAQ,CAAC,uBAAuB,EAAE,WAAW,CAAC,IAAI,IAAI,WAAW,EAAE;YACzJ,SAAS,EAAE,uBAAuB;SACnC,CAAC,CAAA;IACJ,CAAC;IACD,MAAM,GAAG,GAAG,mBAAmB,CAAC,QAAQ,CAAC,YAAY,EAAE,QAAQ,CAAC,uBAAuB,CAAC,CAAA;IAExF,wFAAwF;IACxF,sFAAsF;IACtF,wFAAwF;IACxF,yFAAyF;IACzF,0FAA0F;IAC1F,yFAAyF;IACzF,2FAA2F;IAC3F,yEAAyE;IACzE,IAAI,OAAO,EAAE,IAAI,KAAK,MAAM,IAAI,WAAW,KAAK,KAAK,EAAE,CAAC;QACtD,MAAM,IAAI,aAAa,CAAC;YACtB,OAAO,EACL,mBAAmB,QAAQ,CAAC,MAAM,CAAC,WAAW,EAAE,IAAI,GAAG,+BAA+B;gBACtF,8EAA8E;gBAC9E,8EAA8E;gBAC9E,2CAA2C;YAC7C,SAAS,EAAE,wBAAwB;YACnC,OAAO,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE;SAC3E,CAAC,CAAA;IACJ,CAAC;IAED,MAAM,MAAM,GAA0B;QACpC,MAAM,EAAE,QAAQ,CAAC,uBAAuB;QACxC,WAAW,EAAE,QAAQ,CAAC,kBAAkB;QACxC,OAAO,EAAE,QAAQ,CAAC,mBAAmB;QACrC,WAAW,EAAE,QAAQ,CAAC,WAAW;QACjC,OAAO,EAAE,QAAQ,CAAC,OAAO;QACzB,IAAI,EAAE,QAAQ,CAAC,IAAI;QACnB,IAAI,EAAE,QAAQ,CAAC,UAAU,KAAK,QAAQ;QACtC,GAAG,CAAC,QAAQ,CAAC,iBAAiB,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC,iBAAiB,EAAE,CAAC;QACvE,4EAA4E;QAC5E,qFAAqF;QACrF,4EAA4E;QAC5E,QAAQ,EAAE,uBAAuB,CAC/B,QAAQ,CAAC,sBAAsB,EAC/B,QAAQ,CAAC,+BAA+B,EACxC,QAAQ,CAAC,uBAAuB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,yBAAyB,CAClF;KACF,CAAA;IAED,MAAM,YAAY,GAAiB;QACjC,GAAG,CAAC,OAAO,EAAE,6BAA6B,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;QACtE,MAAM,EAAE,QAAQ,CAAC,MAAM;QACvB,GAAG;QACH,GAAG,EAAE,cAAc,CAAC,OAAO,CAAC,EAAE,oEAAoE;QAClG,MAAM;QACN,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE;YAChC,wCAAwC;YACxC,MAAM,IAAI,GAAG,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,WAAW,CAAC,CAAA;YAE/D,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;gBACpB,OAAO,MAAM,cAAc,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,CAAC,CAAA;YACjE,CAAC;YAED,OAAO,MAAM,aAAa,CAAC,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,CAAA;QACrF,CAAC;KACF,CAAA;IAED,0CAA0C;IAC1C,IAAI,OAAO,EAAE,UAAU,EAAE,CAAC;QACxB,YAAY,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAA;IAC9C,CAAC;IAED,OAAO,YAAY,CAAA;AACrB,CAAC;AAED;;;;;;;;;GASG;AACH,SAAS,qBAAqB,CAC5B,UAA2E,EAC3E,MAAyC;IAEzC,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,MAAM,CAAA;IAE9C,+FAA+F;IAC/F,IAAI,CAAC,CAAC,QAAQ,CAAC,uBAAuB,YAAY,SAAS,CAAC,EAAE,CAAC;QAC7D,MAAM,IAAI,aAAa,CAAC;YACtB,OAAO,EAAE,6EAA6E,QAAQ,CAAC,uBAAuB,EAAE,WAAW,CAAC,IAAI,IAAI,WAAW,EAAE;YACzJ,SAAS,EAAE,uBAAuB;SACnC,CAAC,CAAA;IACJ,CAAC;IACD,MAAM,GAAG,GAAG,mBAAmB,CAAC,QAAQ,CAAC,YAAY,EAAE,QAAQ,CAAC,uBAAuB,CAAC,CAAA;IAExF,MAAM,MAAM,GAA0B;QACpC,MAAM,EAAE,QAAQ,CAAC,uBAAuB;QACxC,WAAW,EAAE,QAAQ,CAAC,kBAAkB;QACxC,OAAO,EAAE,QAAQ,CAAC,mBAAmB;QACrC,WAAW,EAAE,QAAQ,CAAC,WAAW;QACjC,OAAO,EAAE,QAAQ,CAAC,OAAO;QACzB,IAAI,EAAE,QAAQ,CAAC,IAAI;QACnB,IAAI,EAAE,QAAQ,CAAC,UAAU,KAAK,QAAQ;QACtC,GAAG,CAAC,QAAQ,CAAC,iBAAiB,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC,iBAAiB,EAAE,CAAC;QACvE,QAAQ,EAAE,uBAAuB,CAC/B,QAAQ,CAAC,sBAAsB,EAC/B,QAAQ,CAAC,+BAA+B,CACzC;KACF,CAAA;IAED,MAAM,YAAY,GAAiB;QACjC,GAAG,CAAC,OAAO,EAAE,6BAA6B,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;QACtE,MAAM,EAAE,QAAQ,CAAC,MAAM;QACvB,GAAG;QACH,GAAG,EAAE,cAAc,CAAC,OAAO,CAAC,EAAE,oEAAoE;QAClG,MAAM;QACN,qJAAqJ;QACrJ,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE;YAChC,iDAAiD;YACjD,MAAM,aAAa,GAAG,gBAAgB,CACpC,UAAU,EACV,OAAO,EACP,KAAK,EACL,QAAQ,CAAC,sBAAsB,EAC/B,OAAO,EACP,KAAK,CACN,CAAA;YAED,kDAAkD;YAClD,gFAAgF;YAChF,IAAI,CAAC;gBACH,oHAAoH;gBACpH,MAAM,QAAQ,CAAC,GAAG,CAAC,OAAc,EAAE,aAAa,CAAC,UAAiB,CAAC,CAAA;gBAEnE,wCAAwC;gBACxC,4DAA4D;gBAC5D,gFAAgF;gBAChF,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,EAAE,CAAC;oBAC/D,MAAM,IAAI,KAAK,CACb,0DAA0D;wBACxD,0EAA0E,CAC7E,CAAA;gBACH,CAAC;gBAED,qBAAqB;gBACrB,MAAM,uBAAuB,CAC3B,aAAa,CAAC,eAAe,EAAE,EAC/B,UAAU,EACV,aAAa,CAAC,eAAe,EAAE,EAC/B,aAAa,CAAC,gBAAgB,EAC9B,KAAK,EACL,aAAa,CAAC,OAAO,EAAE,EACvB,QAAQ,CAAC,+BAA+B,CACzC,CAAA;YACH,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,gFAAgF;gBAChF,IAAI,aAAa,CAAC,SAAS,EAAE,EAAE,CAAC;oBAC9B,MAAM,YAAY,GAAG,aAAa,CAAC,eAAe,EAAE,CAAA;oBACpD,IAAI,YAAY,EAAE,CAAC;wBACjB,MAAM,cAAc,CAClB,aAAa,CAAC,QAAQ,EACtB,UAAU,EACV,YAAY,EACZ,GAAG,EACH,OAAO,EAAE,MAAM,CAChB,CAAA;oBACH,CAAC;oBACD,gFAAgF;oBAChF,MAAM,GAAG,CAAA;gBACX,CAAC;gBAED,8DAA8D;gBAC9D,oEAAoE;gBACpE,kEAAkE;gBAClE,6EAA6E;gBAC7E,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,uBAAuB,CAAA;gBACxE,oEAAoE;gBACpE,MAAM,UAAU,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,GAAG,CAAA;gBACpE,MAAM,UAAU,GAAG,UAAU,IAAI,GAAG,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,OAAO,CAAA;gBACxE,qFAAqF;gBACrF,sFAAsF;gBACtF,kFAAkF;gBAClF,KAAK;qBACF,IAAI,CAAC,UAAU,CAAC;qBAChB,IAAI,CAAC,kBAAkB,CAAC;qBACxB,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC,CAAC,CAAA;YACrE,CAAC;QACH,CAAC;KACF,CAAA;IAED,0CAA0C;IAC1C,IAAI,OAAO,EAAE,UAAU,EAAE,CAAC;QACxB,YAAY,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAA;IAC9C,CAAC;IAED,OAAO,YAAY,CAAA;AACrB,CAAC;AAuCD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AACH,MAAM,UAAU,iBAAiB,CAC/B,UAEmE,EACnE,OAE6C;IAE7C,IAAI,OAAO,CAAC,MAAM,KAAK,sBAAsB,EAAE,CAAC;QAC9C,MAAM,eAAe,GAAG,OAA8D,CAAA;QACtF,OAAO,0BAA0B,CAC/B,UAAuF,EACvF;YACE,QAAQ,EAAE,eAAe,CAAC,QAAQ;YAClC,QAAQ,EAAE,eAAe,CAAC,QAAQ;YAClC,OAAO,EAAE,eAAe,CAAC,OAAO;SACjC,CACF,CAAA;IACH,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,KAAK,iBAAiB,EAAE,CAAC;QACzC,MAAM,UAAU,GAAG,OAAoD,CAAA;QACvE,OAAO,qBAAqB,CAC1B,UAA6E,EAC7E;YACE,QAAQ,EAAE,UAAU,CAAC,QAAQ;YAC7B,QAAQ,EAAE,UAAU,CAAC,QAAQ;YAC7B,OAAO,EAAE,UAAU,CAAC,OAAO;SAC5B,CACF,CAAA;IACH,CAAC;IAED,iDAAiD;IACjD,MAAM,cAAc,GAAG,OAAsE,CAAA;IAC7F,MAAM,WAAW,GAAG,cAAc,CAAC,MAAM,IAAI,WAAW,CAAA;IACxD,MAAM,eAAe,GACnB,OAAO,cAAc,CAAC,QAAQ,EAAE,YAAY,KAAK,UAAU;QACzD,CAAC,CAAC,uBAAuB,cAAc,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,GAAG;QACpE,CAAC,CAAC,iBAAiB,CAAA;IACvB,MAAM,IAAI,KAAK,CACb,0DAA0D,WAAW,SAAS,eAAe,IAAI;QAC/F,2GAA2G;QAC3G,uFAAuF;QACvF,sDAAsD,CACzD,CAAA;AACH,CAAC"}
@@ -1,3 +1,4 @@
1
+ import type { SSERouteKind } from '@fastify/sse';
1
2
  import type { AnyDualModeContractDefinition, AnySSEContractDefinition, HttpStatusCode } from '@lokalise/api-contracts';
2
3
  import type { ApiContractMetadataToRouteMapper } from '@lokalise/fastify-api-contracts';
3
4
  import type { FastifyReply, FastifyRequest } from 'fastify';
@@ -331,10 +332,51 @@ export type SSEContext<Events extends SSEEventSchemas = SSEEventSchemas, Respons
331
332
  * ```
332
333
  */
333
334
  export type FastifySSEPreHandler = (request: FastifyRequest, reply: FastifyReply) => Promise<unknown>;
335
+ /**
336
+ * Constrains a route kind we expose to the set `@fastify/sse` actually accepts.
337
+ *
338
+ * Used purely as a compile-time guard on the aliases below: if the plugin ever renames or
339
+ * drops a kind, the alias stops compiling instead of silently degrading (which is what
340
+ * `Extract<SSERouteKind, ...>` would do - it would quietly resolve to `never`).
341
+ */
342
+ type SupportedSSERouteKind<Kind extends SSERouteKind> = Kind;
343
+ /**
344
+ * `@fastify/sse` route kinds that are sound for an **SSE-only** route.
345
+ *
346
+ * The plugin also has `'dual'` (and the `sse: true` `'legacy'` default), but neither is
347
+ * usable here: both leave `reply.sse` undefined for clients that do not send an explicit
348
+ * `text/event-stream` token, while still invoking the handler - and an SSE-only handler
349
+ * has a single code path that calls `sse.start()`, so it can only fail.
350
+ */
351
+ export type SSEOnlyRouteKind = SupportedSSERouteKind<'manual' | 'only'>;
352
+ /**
353
+ * `@fastify/sse` route kinds that are sound for a **dual-mode** route.
354
+ *
355
+ * `'only'` is excluded: it answers non-SSE clients with `406 Not Acceptable` before the
356
+ * handler runs, which makes the JSON half of a dual-mode route unreachable.
357
+ */
358
+ export type DualModeRouteKind = SupportedSSERouteKind<'manual' | 'dual'>;
334
359
  /**
335
360
  * Options for configuring an SSE route.
336
361
  */
337
362
  export type FastifySSERouteOptions = {
363
+ /**
364
+ * `@fastify/sse` route kind, controlling how the plugin negotiates the `Accept` header.
365
+ *
366
+ * - `'manual'` (default): no negotiation at all. `reply.sse` is always attached and the
367
+ * route handler decides at runtime whether to stream or to send a regular HTTP response.
368
+ * This keeps the route working for clients that send a wildcard `Accept` header,
369
+ * `Accept: application/json` or no `Accept` header at all, and keeps `sse.respond()`
370
+ * early returns available to every client.
371
+ * - `'only'`: the plugin gates on `Accept` and answers `406 Not Acceptable` before the
372
+ * handler runs unless the client accepts `text/event-stream`. A missing `Accept` header
373
+ * and the wildcards `*\/*` and `text/*` pass the gate; every other concrete media type
374
+ * is rejected - including `Accept: application/json`, which means `sse.respond()` early
375
+ * returns become unreachable for JSON clients.
376
+ *
377
+ * @default 'manual'
378
+ */
379
+ kind?: SSEOnlyRouteKind;
338
380
  /**
339
381
  * Async preHandler hook for authentication/authorization.
340
382
  * Runs BEFORE the SSE connection is established.
@@ -380,12 +422,18 @@ export type FastifySSERouteOptions = {
380
422
  */
381
423
  serializer?: (data: unknown) => string;
382
424
  /**
383
- * Heartbeat interval in milliseconds for this route.
384
- * Overrides the global heartbeat interval if set.
385
- * Set to 0 to disable heartbeats.
386
- * @default 30000
425
+ * Whether the SSE keep-alive heartbeat is enabled for this route.
426
+ *
427
+ * Set to `false` to suppress heartbeat comments on this route entirely.
428
+ *
429
+ * The heartbeat *interval* is not configurable per route: `@fastify/sse`
430
+ * only exposes a boolean at route level. Configure the interval once for all
431
+ * routes when registering the plugin:
432
+ * `app.register(fastifySSE, { heartbeatInterval: 30000 })`.
433
+ *
434
+ * @default true
387
435
  */
388
- heartbeatInterval?: number;
436
+ heartbeat?: boolean;
389
437
  /**
390
438
  * Maps contract metadata to additional Fastify route options.
391
439
  *
@@ -574,12 +622,29 @@ export type DualModeHandlers<Params = unknown, Query = unknown, Headers = unknow
574
622
  * Options for configuring a dual-mode route.
575
623
  * Extends SSE route options with JSON-specific options.
576
624
  */
577
- export type FastifyDualModeRouteOptions = FastifySSERouteOptions & {
625
+ export type FastifyDualModeRouteOptions = Omit<FastifySSERouteOptions, 'kind'> & {
578
626
  /**
579
627
  * Default mode when Accept header doesn't specify preference.
580
628
  * @default 'json'
581
629
  */
582
630
  defaultMode?: DualModeType;
631
+ /**
632
+ * `@fastify/sse` route kind, controlling how the plugin negotiates the `Accept` header.
633
+ *
634
+ * - `'manual'` (default): no plugin-side negotiation. `reply.sse` is always attached and
635
+ * the route's own `determineMode()` picks the mode, honouring {@link defaultMode}.
636
+ * - `'dual'`: the plugin gates first, and only an explicit `text/event-stream` token
637
+ * admits SSE. Everything else reaches the handler with `reply.sse` undefined, so this
638
+ * is only sound with `defaultMode: 'json'` - the two negotiators would otherwise
639
+ * disagree and the SSE branch would run without a stream. `buildFastifyRoute` rejects
640
+ * that combination at route-build time.
641
+ *
642
+ * `'only'` is not offered: it answers non-SSE clients with `406` before the handler runs,
643
+ * which would make the JSON half of the route unreachable.
644
+ *
645
+ * @default 'manual'
646
+ */
647
+ kind?: DualModeRouteKind;
583
648
  };
584
649
  /**
585
650
  * Infer handlers type based on contract type.
@@ -752,12 +817,22 @@ export declare function buildHandler<Contract extends AnyDualModeContractDefinit
752
817
  */
753
818
  export type RegisterSSERoutesOptions = {
754
819
  /**
755
- * Heartbeat interval in milliseconds.
756
- * @default 30000
820
+ * Whether the SSE keep-alive heartbeat is enabled for the registered routes.
821
+ *
822
+ * Set to `false` to suppress heartbeat comments. Routes that set `heartbeat`
823
+ * themselves keep their own value.
824
+ *
825
+ * The heartbeat *interval* is not configurable per route: `@fastify/sse`
826
+ * only exposes a boolean at route level. Configure the interval once for all
827
+ * routes when registering the plugin:
828
+ * `app.register(fastifySSE, { heartbeatInterval: 30000 })`.
829
+ *
830
+ * @default true
757
831
  */
758
- heartbeatInterval?: number;
832
+ heartbeat?: boolean;
759
833
  /**
760
834
  * Custom serializer for SSE message data.
835
+ * Routes that set `serializer` themselves keep their own value.
761
836
  * @default JSON.stringify
762
837
  */
763
838
  serializer?: (data: unknown) => string;
@@ -787,12 +862,22 @@ export type RegisterSSERoutesOptions = {
787
862
  */
788
863
  export type RegisterDualModeRoutesOptions = {
789
864
  /**
790
- * Heartbeat interval in milliseconds for SSE mode.
791
- * @default 30000
865
+ * Whether the SSE keep-alive heartbeat is enabled for the registered routes.
866
+ *
867
+ * Set to `false` to suppress heartbeat comments in SSE mode. Routes that set
868
+ * `heartbeat` themselves keep their own value.
869
+ *
870
+ * The heartbeat *interval* is not configurable per route: `@fastify/sse`
871
+ * only exposes a boolean at route level. Configure the interval once for all
872
+ * routes when registering the plugin:
873
+ * `app.register(fastifySSE, { heartbeatInterval: 30000 })`.
874
+ *
875
+ * @default true
792
876
  */
793
- heartbeatInterval?: number;
877
+ heartbeat?: boolean;
794
878
  /**
795
879
  * Custom serializer for SSE message data.
880
+ * Routes that set `serializer` themselves keep their own value.
796
881
  * @default JSON.stringify
797
882
  */
798
883
  serializer?: (data: unknown) => string;
@@ -1 +1 @@
1
- {"version":3,"file":"fastifyRouteTypes.js","sourceRoot":"","sources":["../../../lib/routes/fastifyRouteTypes.ts"],"names":[],"mappings":"AA+7BA,MAAM,UAAU,YAAY,CAG1B,QAAkB,EAClB,QAAuC,EACvC,OAA8D;IAE9D,6FAA6F;IAC7F,IAAI,YAAY,IAAI,QAAQ,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC;QACpD,OAAO;YACL,MAAM,EAAE,sBAAsB;YAC9B,QAAQ,EAAE,QAAyC;YACnD,QAAQ,EAAE,QAAgE;YAC1E,OAAO,EAAE,OAAsC;SAChD,CAAA;IACH,CAAC;IAED,oBAAoB;IACpB,OAAO;QACL,MAAM,EAAE,iBAAiB;QACzB,QAAQ,EAAE,QAAoC;QAC9C,4GAA4G;QAC5G,QAAQ,EAAE,QAAe;QACzB,OAAO,EAAE,OAAiC;KAC3C,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"fastifyRouteTypes.js","sourceRoot":"","sources":["../../../lib/routes/fastifyRouteTypes.ts"],"names":[],"mappings":"AAmgCA,MAAM,UAAU,YAAY,CAG1B,QAAkB,EAClB,QAAuC,EACvC,OAA8D;IAE9D,6FAA6F;IAC7F,IAAI,YAAY,IAAI,QAAQ,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC;QACpD,OAAO;YACL,MAAM,EAAE,sBAAsB;YAC9B,QAAQ,EAAE,QAAyC;YACnD,QAAQ,EAAE,QAAgE;YAC1E,OAAO,EAAE,OAAsC;SAChD,CAAA;IACH,CAAC;IAED,oBAAoB;IACpB,OAAO;QACL,MAAM,EAAE,iBAAiB;QACzB,QAAQ,EAAE,QAAoC;QAC9C,4GAA4G;QAC5G,QAAQ,EAAE,QAAe;QACzB,OAAO,EAAE,OAAiC;KAC3C,CAAA;AACH,CAAC"}
@@ -135,8 +135,12 @@ function closeSSESession(sseReply, controller, connectionId, logger) {
135
135
  sseReply.sse.close();
136
136
  }
137
137
  catch (err) {
138
- if (sseReply.sse.isConnected) {
139
- // Log error if connection closure failed and connection is still live
138
+ // Never let the recovery path throw: this runs from error handling, and an exception
139
+ // raised here would replace the error we are recovering from with a far less useful one.
140
+ // `sseReply.sse` itself can be undefined - the plugin only attaches it when its Accept
141
+ // gate admits SSE - so read `isConnected` defensively rather than dereferencing blind.
142
+ if (sseReply.sse?.isConnected !== false) {
143
+ // Log error if connection closure failed and the connection is not known to be closed
140
144
  logger?.error({
141
145
  connectionId,
142
146
  error: isErrorLike(err) ? err.message : 'Internal server error',
@@ -283,12 +287,18 @@ export function createSSEContext(controller, request, reply, eventSchemas, optio
283
287
  if (responseSent) {
284
288
  throw new Error('Cannot start streaming after sending a response.');
285
289
  }
286
- started = true;
287
- sessionMode = mode;
288
- // Register callback for when server explicitly closes via reply.sse.close()
290
+ // Register callback for when server explicitly closes via reply.sse.close().
291
+ // This is the first `reply.sse` dereference, and it runs before `started` flips: if
292
+ // the plugin never attached the SSE context (its Accept gate refused, which the
293
+ // supported route kinds prevent but a JavaScript caller can still reach), the route
294
+ // handler's catch then takes the not-yet-streaming branch and reports the real error
295
+ // instead of trying to tear down a stream that was never set up. Everything after
296
+ // this point may have written to the socket, so it stays inside `started`.
289
297
  sseReply.sse.onClose(async () => {
290
298
  await callOnClose('server');
291
299
  });
300
+ started = true;
301
+ sessionMode = mode;
292
302
  // Send headers if not already sent via sendHeaders()
293
303
  if (!headersSent) {
294
304
  // Tell @fastify/sse to keep the connection open after handler returns
@@ -1 +1 @@
1
- {"version":3,"file":"fastifyRouteUtils.js","sourceRoot":"","sources":["../../../lib/routes/fastifyRouteUtils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fastifyRouteUtils.js","sourceRoot":"","sources":["../../../lib/routes/fastifyRouteUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAKxC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AA6D9C;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,mBAAmB,CACjC,YAAwC,EACxC,YAAwC;IAExC,4DAA4D;IAC5D,MAAM,iBAAiB,GAA2B,EAAE,CAAA;IACpD,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;QAClD,iBAAiB,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,EAAE,CAAA;IACpC,CAAC;IACD,OAAO,YAAY,CAAC,iBAAsC,CAAC,CAAA;AAC7D,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAAC,GAAY;IAC5C,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,IAAI,CAAC,CAAC,gBAAgB,IAAI,GAAG,CAAC,EAAE,CAAC;QAC1E,OAAO,KAAK,CAAA;IACd,CAAC;IACD,MAAM,UAAU,GAAI,GAAmC,CAAC,cAAc,CAAA;IACtE,OAAO,CACL,OAAO,UAAU,KAAK,QAAQ;QAC9B,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC;QAC3B,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC;QAC5B,UAAU,IAAI,GAAG;QACjB,UAAU,IAAI,GAAG,CAClB,CAAA;AACH,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,QAAkB,EAClB,YAA8D;IAE9D,4EAA4E;IAC5E,MAAM,QAAQ,GAAG,YAAmB,CAAA;IACpC,IAAI,OAAO,QAAQ,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,UAAU,EAAE,CAAC;QACzD,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,YAAyC,EAAE,CAAC;YACpE,MAAM,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QAChC,CAAC;IACH,CAAC;SAAM,IAAI,OAAO,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,UAAU,EAAE,CAAC;QAC3D,KAAK,MAAM,KAAK,IAAI,YAAoC,EAAE,CAAC;YACzD,MAAM,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QAChC,CAAC;IACH,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,QAAkB,EAClB,UAAsB,EACtB,WAAmB,EACnB,OAAwC,EACxC,SAAS,GAAG,KAAK;IAEjB,IAAI,CAAC,OAAO,EAAE,WAAW;QAAE,OAAM;IAEjC,IAAI,CAAC;QACH,MAAM,YAAY,GAAG,MAAM,OAAO,CAAC,WAAW,CAAC,UAAU,EAAE,WAAW,CAAC,CAAA;QACvE,IAAI,YAAY,EAAE,CAAC;YACjB,MAAM,gBAAgB,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAA;QAChD,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,GAAG,EAAE,WAAW,EAAE,EAAE,YAAY,SAAS,sBAAsB,CAAC,CAAA;IAC3F,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,QAAkB,EAClB,UAA6B,EAC7B,YAAoB,EACpB,GAAY,EACZ,MAAkB;IAElB,iFAAiF;IACjF,IAAI,CAAC;QACH,MAAM,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC;YACtB,KAAK,EAAE,OAAO;YACd,IAAI,EAAE,EAAE,OAAO,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,uBAAuB,EAAE;SAC5E,CAAC,CAAA;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,6CAA6C;IAC/C,CAAC;IAED,eAAe,CAAC,QAAQ,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,CAAC,CAAA;AAC7D,CAAC;AAYD;;;GAGG;AACH,SAAS,oBAAoB,CAC3B,UAAuC,EACvC,UAA6B,EAC7B,MAAkB;IAElB,MAAM,WAAW,GAAG,UAAU,CAAC,oBAAoB,CAAA;IACnD,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,qDAAqD;QACrD,OAAO;YACL,IAAI,EAAE,GAAG,EAAE,GAAE,CAAC;YACd,KAAK,EAAE,GAAG,EAAE,GAAE,CAAC;SAChB,CAAA;IACH,CAAC;IAED,MAAM,YAAY,GAAG,UAAU,CAAC,EAAE,CAAA;IAClC,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAiB,CAAA;IAE7C,OAAO;QACL,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE;YACb,6EAA6E;YAC7E,mFAAmF;YACnF,IAAI,mBAAmB,CAAC,UAAU,CAAC,EAAE,CAAC;gBACpC,MAAM,EAAE,IAAI,EAAE,CACZ;oBACE,YAAY;oBACZ,IAAI;iBACL,EACD,yCAAyC,CAC1C,CAAA;gBAED,eAAe,CAAC,QAAQ,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,CAAC,CAAA;gBAC3D,OAAM;YACR,CAAC;YAED,WAAW,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,EAAE,MAAM,CAAC,CAAA;QAC9C,CAAC;QACD,KAAK,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,YAAY,EAAE,IAAI,EAAE,MAAM,CAAC;KAC/D,CAAA;AACH,CAAC;AAED,SAAS,mBAAmB,CAC1B,UAAuC;IAEvC,MAAM,UAAU,GAAG,UAAU,CAAC,OAAO,CAAC,GAAG,CAAA;IACzC,MAAM,WAAW,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAA;IACxC,OAAO,CACL,CAAC,UAAU,CAAC,WAAW,EAAE;QACzB,UAAU,CAAC,SAAS;QACpB,UAAU,CAAC,OAAO;QAClB,WAAW,CAAC,SAAS;QACrB,WAAW,CAAC,aAAa,CAC1B,CAAA;AACH,CAAC;AAED;;GAEG;AACH,SAAS,eAAe,CACtB,QAAkB,EAClB,UAA6B,EAC7B,YAAoB,EACpB,MAAkB;IAElB,IAAI,CAAC;QACH,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,CAAA;IACtB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,qFAAqF;QACrF,yFAAyF;QACzF,uFAAuF;QACvF,uFAAuF;QACvF,IAAI,QAAQ,CAAC,GAAG,EAAE,WAAW,KAAK,KAAK,EAAE,CAAC;YACxC,sFAAsF;YACtF,MAAM,EAAE,KAAK,CACX;gBACE,YAAY;gBACZ,KAAK,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,uBAAuB;aAChE,EACD,gCAAgC,CACjC,CAAA;QACH,CAAC;IACH,CAAC;IACD,UAAU,CAAC,oBAAoB,CAAC,YAAY,CAAC,CAAA;AAC/C,CAAC;AAED;;;;;GAKG;AACH,SAAS,wBAAwB,CAC/B,YAAoB,EACpB,OAAuB,EACvB,KAAmB,EACnB,QAAkB,EAClB,YAAoB,EACpB,UAA6B,EAC7B,cAAwB,EACxB,mBAAmC,EACnC,MAAkB;IAElB,gDAAgD;IAChD,wFAAwF;IACxF,MAAM,IAAI,GAA2B,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE;QAC1E,IAAI,mBAAmB,EAAE,CAAC;YACxB,MAAM,mBAAmB,CAAA;QAC3B,CAAC;QACD,OAAO,UAAU,CAAC,aAAa,CAAC,YAAY,EAAE;YAC5C,KAAK,EAAE,SAAS;YAChB,IAAI;YACJ,EAAE,EAAE,WAAW,EAAE,EAAE;YACnB,KAAK,EAAE,WAAW,EAAE,KAAK;SAC1B,CAAC,CAAA;IACJ,CAAC,CAAA;IAED,mFAAmF;IACnF,MAAM,UAAU,GAAG,KAAK,EAAE,QAAiD,EAAiB,EAAE;QAC5F,IAAI,KAAK,EAAE,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YACrC,uCAAuC;YACvC,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;YAC1C,IAAI,MAAM,EAAE,CAAC;gBACX,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;gBAC7C,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;oBACpB,MAAM,IAAI,KAAK,CACb,oCAAoC,OAAO,CAAC,KAAK,MAAM,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,CAC9E,CAAA;gBACH,CAAC;YACH,CAAC;YACD,6BAA6B;YAC7B,MAAM,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC;gBACtB,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,EAAE,EAAE,OAAO,CAAC,EAAE;gBACd,KAAK,EAAE,OAAO,CAAC,KAAK;aACrB,CAAC,CAAA;QACJ,CAAC;IACH,CAAC,CAAA;IAED,MAAM,UAAU,GAAgC;QAC9C,EAAE,EAAE,YAAY;QAChB,OAAO;QACP,KAAK;QACL,OAAO,EAAE,CAAC,cAAc,IAAI,EAAE,CAAY;QAC1C,WAAW,EAAE,IAAI,IAAI,EAAE;QACvB,IAAI;QACJ,WAAW,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW;QAC3C,SAAS,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE;QACtC,UAAU;QACV,4FAA4F;QAC5F,KAAK,EAAE;YACL,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE,GAAE,CAAC;YACnB,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,GAAE,CAAC;SACrB;QACD,YAAY;KACb,CAAA;IAED,UAAU,CAAC,KAAK,GAAG,oBAAoB,CAAC,UAAU,EAAE,UAAU,EAAE,MAAM,CAAC,CAAA;IAEvE,OAAO,UAAU,CAAA;AACnB,CAAC;AAyBD;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,gBAAgB,CAC9B,UAA6B,EAC7B,OAAuB,EACvB,KAAmB,EACnB,YAAoB,EACpB,OAAwC,EACxC,SAAS,GAAG,KAAK;IAEjB,MAAM,YAAY,GAAG,UAAU,EAAE,CAAA;IACjC,MAAM,QAAQ,GAAG,KAAiB,CAAA;IAElC,iBAAiB;IACjB,IAAI,OAAO,GAAG,KAAK,CAAA;IACnB,IAAI,YAAY,GAAG,KAAK,CAAA;IACxB,IAAI,WAAW,GAAG,KAAK,CAAA;IACvB,IAAI,UAA0C,CAAA;IAC9C,IAAI,WAAuC,CAAA;IAC3C,IAAI,aAAa,GAAG,KAAK,CAAA;IACzB,IAAI,YAAyD,CAAA;IAE7D,sCAAsC;IACtC,MAAM,WAAW,GAAG,KAAK,EAAE,MAAsB,EAAE,EAAE;QACnD,IAAI,aAAa,IAAI,CAAC,UAAU;YAAE,OAAM;QACxC,aAAa,GAAG,IAAI,CAAA;QACpB,IAAI,CAAC;YACH,IAAI,OAAO,EAAE,OAAO,EAAE,CAAC;gBACrB,MAAM,OAAO,CAAC,OAAO,CAAC,UAAmC,EAAE,MAAM,CAAC,CAAA;YACpE,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,GAAG,EAAE,EAAE,YAAY,SAAS,kBAAkB,CAAC,CAAA;QAC1E,CAAC;IACH,CAAC,CAAA;IAED,6DAA6D;IAC7D,MAAM,aAAa,GAAG,CAAC,IAAwB,EAAE,EAAE;QACjD,IAAI,CAAC,OAAO,EAAE,SAAS;YAAE,OAAM;QAC/B,IAAI,CAAC;YACH,MAAM,YAAY,GAAG,OAAO,CAAC,SAAS,CAAC,IAA6B,CAAC,CAAA;YACrE,IAAI,YAAY,IAAI,OAAO,YAAY,CAAC,KAAK,KAAK,UAAU,EAAE,CAAC;gBAC7D,YAAY,CAAC,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE;oBAClC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,GAAG,EAAE,EAAE,YAAY,SAAS,oBAAoB,CAAC,CAAA;gBAC5E,CAAC,CAAC,CAAA;YACJ,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,GAAG,EAAE,EAAE,YAAY,SAAS,oBAAoB,CAAC,CAAA;QAC5E,CAAC;IACH,CAAC,CAAA;IAED,gEAAgE;IAChE,MAAM,gBAAgB,GAAG,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;QACrD,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,KAAK,IAAI,EAAE;YACpC,qFAAqF;YACrF,MAAM,WAAW,CAAC,QAAQ,CAAC,CAAA;YAC3B,IAAI,UAAU,EAAE,CAAC;gBACf,UAAU,CAAC,oBAAoB,CAAC,YAAY,CAAC,CAAA;YAC/C,CAAC;YACD,OAAO,EAAE,CAAA;QACX,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,4CAA4C;IAC5C,MAAM,UAAU,GAAuB;QACrC,KAAK,EAAE,CACL,IAAoB,EACpB,YAAuC,EACV,EAAE;YAC/B,IAAI,OAAO,EAAE,CAAC;gBACZ,MAAM,IAAI,KAAK,CAAC,oEAAoE,CAAC,CAAA;YACvF,CAAC;YACD,IAAI,YAAY,EAAE,CAAC;gBACjB,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAA;YACrE,CAAC;YAED,6EAA6E;YAC7E,oFAAoF;YACpF,gFAAgF;YAChF,oFAAoF;YACpF,qFAAqF;YACrF,kFAAkF;YAClF,2EAA2E;YAC3E,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE;gBAC9B,MAAM,WAAW,CAAC,QAAQ,CAAC,CAAA;YAC7B,CAAC,CAAC,CAAA;YAEF,OAAO,GAAG,IAAI,CAAA;YACd,WAAW,GAAG,IAAI,CAAA;YAElB,qDAAqD;YACrD,IAAI,CAAC,WAAW,EAAE,CAAC;gBACjB,sEAAsE;gBACtE,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,CAAA;gBAExB,sDAAsD;gBACtD,QAAQ,CAAC,GAAG,CAAC,WAAW,EAAE,CAAA;gBAC1B,KAAK,CAAC,GAAG,CAAC,YAAY,EAAE,CAAA;gBACxB,WAAW,GAAG,IAAI,CAAA;YACpB,CAAC;YAED,yCAAyC;YACzC,6FAA6F;YAC7F,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,eAAe,CAAC,CAAA;YACpD,IAAI,mBAA6C,CAAA;YACjD,MAAM,mBAAmB,GACvB,WAAW,IAAI,OAAO,EAAE,WAAW;gBACjC,CAAC,CAAC,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;oBAC5B,mBAAmB,GAAG,OAAO,CAAA;gBAC/B,CAAC,CAAC;gBACJ,CAAC,CAAC,SAAS,CAAA;YAEf,kDAAkD;YAClD,qEAAqE;YACrE,UAAU,GAAG,wBAAwB,CACnC,YAAY,EACZ,OAAO,EACP,KAAK,EACL,QAAQ,EACR,YAAY,EACZ,UAAU,EACV,YAAY,EAAE,OAAO,EACrB,mBAAmB,EACnB,OAAO,EAAE,MAAM,CACM,CAAA;YAEvB,sCAAsC;YACtC,UAAU,CAAC,kBAAkB,CAAC,UAAmC,CAAC,CAAA;YAElE,0EAA0E;YAC1E,IAAI,WAAW,IAAI,OAAO,EAAE,WAAW,IAAI,mBAAmB,EAAE,CAAC;gBAC/D,yEAAyE;gBACzE,CAAC;gBAAA,CAAC,KAAK,IAAI,EAAE;oBACX,IAAI,CAAC;wBACH,MAAM,YAAY,GAAG,MAAM,OAAO,CAAC,WAAW,EAAE,CAC9C,UAAmC,EACnC,WAAqB,CACtB,CAAA;wBACD,IAAI,YAAY,EAAE,CAAC;4BACjB,MAAM,gBAAgB,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAA;wBAChD,CAAC;oBACH,CAAC;oBAAC,OAAO,GAAG,EAAE,CAAC;wBACb,OAAO,EAAE,MAAM,EAAE,KAAK,CACpB,EAAE,GAAG,EAAE,WAAW,EAAE,EACpB,YAAY,SAAS,sBAAsB,CAC5C,CAAA;oBACH,CAAC;4BAAS,CAAC;wBACT,mBAAmB,EAAE,EAAE,CAAA;oBACzB,CAAC;gBACH,CAAC,CAAC,EAAE,CAAA;YACN,CAAC;YAED,6CAA6C;YAC7C,aAAa,CAAC,UAAU,CAAC,CAAA;YAEzB,OAAO,UAAyC,CAAA;QAClD,CAAC;QAED,OAAO,EAAE,CAAC,IAAY,EAAE,IAAa,EAAoB,EAAE;YACzD,IAAI,OAAO,EAAE,CAAC;gBACZ,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAA;YACtE,CAAC;YACD,YAAY,GAAG,IAAI,CAAA;YACnB,YAAY,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,CAAA;YAC7B,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,CAAA;QACzC,CAAC;QAED,WAAW,EAAE,GAAS,EAAE;YACtB,IAAI,WAAW,EAAE,CAAC;gBAChB,MAAM,IAAI,KAAK,CAAC,iEAAiE,CAAC,CAAA;YACpF,CAAC;YACD,IAAI,OAAO,EAAE,CAAC;gBACZ,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAA;YACtD,CAAC;YACD,IAAI,YAAY,EAAE,CAAC;gBACjB,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAA;YAClE,CAAC;YACD,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,CAAA;YACxB,QAAQ,CAAC,GAAG,CAAC,WAAW,EAAE,CAAA;YAC1B,KAAK,CAAC,GAAG,CAAC,YAAY,EAAE,CAAA;YACxB,WAAW,GAAG,IAAI,CAAA;QACpB,CAAC;QAED,KAAK;KACN,CAAA;IAED,OAAO;QACL,UAAU;QACV,gBAAgB;QAChB,QAAQ;QACR,aAAa,EAAE,GAAG,EAAE,CAAC,UAAU;QAC/B,eAAe,EAAE,GAAG,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC;QAC3D,SAAS,EAAE,GAAG,EAAE,CAAC,OAAO;QACxB,WAAW,EAAE,GAAG,EAAE,CAAC,YAAY;QAC/B,eAAe,EAAE,GAAG,EAAE,CAAC,YAAY;QACnC,OAAO,EAAE,GAAG,EAAE,CAAC,WAAW;KAC3B,CAAA;AACH,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,UAA6B,EAC7B,OAAuB,EACvB,KAAmB,EACnB,YAAoB,EACpB,OAAwC,EACxC,SAAS,GAAG,KAAK;IAEjB,gDAAgD;IAChD,MAAM,MAAM,GAAG,gBAAgB,CAAC,UAAU,EAAE,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,SAAS,CAAC,CAAA;IAE7F,kEAAkE;IAClE,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,WAAW,CAAC,CAAA;IAEvD,4DAA4D;IAC5D,0FAA0F;IAC1F,6BAA6B;IAC7B,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAA;IAErD,OAAO;QACL,YAAY,EAAE,UAAU,CAAC,EAAE;QAC3B,UAAU;QACV,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;QACzC,QAAQ,EAAE,MAAM,CAAC,QAAQ;KAC1B,CAAA;AACH,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,aAAa,CAC3B,MAA0B,EAC1B,cAA4B,MAAM;IAElC,IAAI,CAAC,MAAM;QAAE,OAAO,WAAW,CAAA;IAE/B,8DAA8D;IAC9D,MAAM,UAAU,GAAG,MAAM;SACtB,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACZ,MAAM,CAAC,SAAS,EAAE,GAAG,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QACrD,IAAI,OAAO,GAAG,GAAG,CAAA;QAEjB,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;YAC5C,IAAI,GAAG,KAAK,GAAG,IAAI,KAAK,EAAE,CAAC;gBACzB,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAA;YACpC,CAAC;QACH,CAAC;QAED,OAAO,EAAE,SAAS,EAAE,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,OAAO,EAAE,CAAA;IACvE,CAAC,CAAC;QACF,2CAA2C;SAC1C,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC,CAAA;IAEvC,kCAAkC;IAClC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC,CAAA;IAEhD,+BAA+B;IAC/B,KAAK,MAAM,EAAE,SAAS,EAAE,IAAI,UAAU,EAAE,CAAC;QACvC,IAAI,SAAS,KAAK,mBAAmB,EAAE,CAAC;YACtC,OAAO,KAAK,CAAA;QACd,CAAC;QACD,IAAI,SAAS,KAAK,kBAAkB,EAAE,CAAC;YACrC,OAAO,MAAM,CAAA;QACf,CAAC;IACH,CAAC;IAED,uDAAuD;IACvD,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,KAAK,CAAC,EAAE,CAAC;QAClD,OAAO,WAAW,CAAA;IACpB,CAAC;IAED,OAAO,WAAW,CAAA;AACpB,CAAC;AAOD;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,mBAAmB,CACjC,MAA0B,EAC1B,gBAA0B,EAC1B,aAAsB;IAEtB,MAAM,cAAc,GAAG,aAAa,IAAI,gBAAgB,CAAC,CAAC,CAAC,IAAI,kBAAkB,CAAA;IAEjF,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,cAAc,EAAE,CAAA;IACtD,CAAC;IAED,8DAA8D;IAC9D,MAAM,UAAU,GAAG,MAAM;SACtB,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACZ,MAAM,CAAC,SAAS,EAAE,GAAG,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QACrD,IAAI,OAAO,GAAG,GAAG,CAAA;QAEjB,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;YAC5C,IAAI,GAAG,KAAK,GAAG,IAAI,KAAK,EAAE,CAAC;gBACzB,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAA;YACpC,CAAC;QACH,CAAC;QAED,OAAO,EAAE,SAAS,EAAE,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,OAAO,EAAE,CAAA;IACvE,CAAC,CAAC;QACF,2CAA2C;SAC1C,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC,CAAA;IAEvC,kCAAkC;IAClC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC,CAAA;IAEhD,+BAA+B;IAC/B,KAAK,MAAM,EAAE,SAAS,EAAE,IAAI,UAAU,EAAE,CAAC;QACvC,kCAAkC;QAClC,IAAI,SAAS,KAAK,mBAAmB,EAAE,CAAC;YACtC,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,CAAA;QACxB,CAAC;QACD,8CAA8C;QAC9C,IAAI,gBAAgB,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;YACzC,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,CAAA;QACjD,CAAC;QACD,2DAA2D;QAC3D,IAAI,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YAC7B,MAAM,QAAQ,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA,CAAC,6CAA6C;YACrF,MAAM,aAAa,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,QAAQ,GAAG,CAAC,CAAC,CAAA;YAC1F,IAAI,aAAa,EAAE,CAAC;gBAClB,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,aAAa,EAAE,CAAA;YACrD,CAAC;QACH,CAAC;IACH,CAAC;IAED,wCAAwC;IACxC,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,KAAK,CAAC,EAAE,CAAC;QAClD,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,cAAc,EAAE,CAAA;IACtD,CAAC;IAED,oCAAoC;IACpC,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,cAAc,EAAE,CAAA;AACtD,CAAC"}
@@ -1,3 +1,4 @@
1
1
  export { buildFastifyRoute, extractPathTemplate } from './fastifyRouteBuilder.js';
2
- export { type BuildFastifyDualModeRoutesReturnType, type BuildFastifySSERoutesReturnType, buildHandler, type DualModeHandlers, type DualModeRouteHandler, type FastifyDualModeHandlerConfig, type FastifyDualModeRouteOptions, type FastifySSEHandlerConfig, type FastifySSEPreHandler, type FastifySSERouteOptions, type InferDualModeHandlers, type InferHandlers, type InferSSERequest, type RegisterDualModeRoutesOptions, type RegisterSSERoutesOptions, type SSEContext, type SSEHandlerResult, type SSEModeHandler, type SSEOnlyHandlers, type SSERespondResult, type SSERouteHandler, type SSESession, type SSESessionMode, type SSEStartOptions, type SSEStreamMessage, type SyncModeHandler, type SyncModeReply, } from './fastifyRouteTypes.js';
2
+ export { type BuildFastifyDualModeRoutesReturnType, type BuildFastifySSERoutesReturnType, buildHandler, type DualModeHandlers, type DualModeRouteHandler, type DualModeRouteKind, type FastifyDualModeHandlerConfig, type FastifyDualModeRouteOptions, type FastifySSEHandlerConfig, type FastifySSEPreHandler, type FastifySSERouteOptions, type InferDualModeHandlers, type InferHandlers, type InferSSERequest, type RegisterDualModeRoutesOptions, type RegisterSSERoutesOptions, type SSEContext, type SSEHandlerResult, type SSEModeHandler, type SSEOnlyHandlers, type SSEOnlyRouteKind, type SSERespondResult, type SSERouteHandler, type SSESession, type SSESessionMode, type SSEStartOptions, type SSEStreamMessage, type SyncModeHandler, type SyncModeReply, } from './fastifyRouteTypes.js';
3
3
  export { createSSEContext, determineMode, determineSyncFormat, handleReconnection, handleSSEError, type SSECloseReason, type SSEContextResult, type SSEControllerLike, type SSELifecycleOptions, type SSEReply, type SSESessionSetupResult, type SyncFormatResult, sendReplayEvents, setupSSESession, } from './fastifyRouteUtils.js';
4
+ export { buildSseEventSchema, buildSseResponseSchemas, type ResponseSchemasByStatusCode, } from './sseResponseSchema.js';
@@ -6,4 +6,6 @@ export {
6
6
  buildHandler, } from './fastifyRouteTypes.js';
7
7
  // Route utilities
8
8
  export { createSSEContext, determineMode, determineSyncFormat, handleReconnection, handleSSEError, sendReplayEvents, setupSSESession, } from './fastifyRouteUtils.js';
9
+ // Response schema helpers
10
+ export { buildSseEventSchema, buildSseResponseSchemas, } from './sseResponseSchema.js';
9
11
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../lib/routes/index.ts"],"names":[],"mappings":"AAAA,wBAAwB;AACxB,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAEjF,cAAc;AACd,OAAO;AAGL,0BAA0B;AAC1B,YAAY,GAgCb,MAAM,wBAAwB,CAAA;AAE/B,kBAAkB;AAClB,OAAO,EACL,gBAAgB,EAChB,aAAa,EACb,mBAAmB,EACnB,kBAAkB,EAClB,cAAc,EAQd,gBAAgB,EAChB,eAAe,GAChB,MAAM,wBAAwB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../lib/routes/index.ts"],"names":[],"mappings":"AAAA,wBAAwB;AACxB,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAEjF,cAAc;AACd,OAAO;AAGL,0BAA0B;AAC1B,YAAY,GAkCb,MAAM,wBAAwB,CAAA;AAE/B,kBAAkB;AAClB,OAAO,EACL,gBAAgB,EAChB,aAAa,EACb,mBAAmB,EACnB,kBAAkB,EAClB,cAAc,EAQd,gBAAgB,EAChB,eAAe,GAChB,MAAM,wBAAwB,CAAA;AAE/B,0BAA0B;AAC1B,OAAO,EACL,mBAAmB,EACnB,uBAAuB,GAExB,MAAM,wBAAwB,CAAA"}
@@ -0,0 +1,35 @@
1
+ import type { HttpStatusCode, SSEEventSchemas } from '@lokalise/api-contracts';
2
+ import { z } from 'zod';
3
+ /**
4
+ * Fastify response schemas keyed by status code. Values are either a bare Zod schema (JSON)
5
+ * or Fastify's per-media-type form (`{ content: { '<mediaType>': { schema } } }`).
6
+ */
7
+ export type ResponseSchemasByStatusCode = Record<string, unknown>;
8
+ /**
9
+ * Describe an SSE stream as the union of its event envelopes, following the OpenAPI 3.x
10
+ * convention for `text/event-stream`: one object schema per event type (`{ id?, event, data,
11
+ * retry? }`), discriminated on the `event` name so the contract's event payloads show up in
12
+ * the generated spec as a `oneOf` of envelopes with a `const` event name.
13
+ *
14
+ * Mirrors what `@lokalise/fastify-api-contracts` produces for an `sseBody()` response, so
15
+ * legacy SSE / dual-mode contracts and `ApiContract` ones document the same way.
16
+ *
17
+ * @returns The event envelope schema, or `undefined` when the contract declares no events
18
+ */
19
+ export declare function buildSseEventSchema(serverSentEventSchemas: SSEEventSchemas): z.ZodTypeAny | undefined;
20
+ /**
21
+ * Build the `schema.response` map for an SSE or dual-mode route from its contract.
22
+ *
23
+ * The 200 entry uses Fastify's per-media-type form so a single status can describe both the
24
+ * event stream and the JSON body: `text/event-stream` carries the event envelopes, and
25
+ * `application/json` carries the sync body (dual-mode), the body the contract declares for
26
+ * 200 (an SSE route that answers `sse.respond(200, ...)` before streaming starts), or both.
27
+ *
28
+ * Populating this drives both the OpenAPI spec and Fastify's serializer, so a status code the
29
+ * contract declares is now serialized against its schema instead of plain `JSON.stringify`.
30
+ *
31
+ * @param serverSentEventSchemas - Contract's event name to payload schema map
32
+ * @param responseBodySchemasByStatusCode - Contract's per-status response schemas, if any
33
+ * @param syncSuccessSchema - Dual-mode sync 2xx body schema; omit for SSE-only contracts
34
+ */
35
+ export declare function buildSseResponseSchemas(serverSentEventSchemas: SSEEventSchemas, responseBodySchemasByStatusCode: Partial<Record<HttpStatusCode, z.ZodTypeAny>> | undefined, syncSuccessSchema?: z.ZodTypeAny): ResponseSchemasByStatusCode;