exisjs 0.7.2 → 0.7.4

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 (172) hide show
  1. package/dist/cli/commands/build.d.ts.map +1 -1
  2. package/dist/cli/commands/build.js +3 -0
  3. package/dist/cli/commands/build.js.map +1 -1
  4. package/dist/cli/commands/doctor.d.ts +2 -0
  5. package/dist/cli/commands/doctor.d.ts.map +1 -0
  6. package/dist/cli/commands/doctor.js +258 -0
  7. package/dist/cli/commands/doctor.js.map +1 -0
  8. package/dist/cli/commands/generate.d.ts +11 -1
  9. package/dist/cli/commands/generate.d.ts.map +1 -1
  10. package/dist/cli/commands/generate.js +244 -24
  11. package/dist/cli/commands/generate.js.map +1 -1
  12. package/dist/cli/index.js +23 -5
  13. package/dist/cli/index.js.map +1 -1
  14. package/dist/cli/manifest.d.ts.map +1 -1
  15. package/dist/cli/manifest.js +3 -1
  16. package/dist/cli/manifest.js.map +1 -1
  17. package/dist/cli/resolve-aliases.d.ts.map +1 -1
  18. package/dist/cli/resolve-aliases.js +37 -31
  19. package/dist/cli/resolve-aliases.js.map +1 -1
  20. package/dist/cli/routes.d.ts +8 -1
  21. package/dist/cli/routes.d.ts.map +1 -1
  22. package/dist/cli/routes.js +96 -47
  23. package/dist/cli/routes.js.map +1 -1
  24. package/dist/config/config.d.ts +2 -1
  25. package/dist/config/config.d.ts.map +1 -1
  26. package/dist/config/config.js +2 -1
  27. package/dist/config/config.js.map +1 -1
  28. package/dist/config/index.d.ts +1 -0
  29. package/dist/config/index.d.ts.map +1 -1
  30. package/dist/config/index.js +6 -1
  31. package/dist/config/index.js.map +1 -1
  32. package/dist/config/types.d.ts +4 -1
  33. package/dist/config/types.d.ts.map +1 -1
  34. package/dist/database/index.d.ts +4 -0
  35. package/dist/database/index.d.ts.map +1 -0
  36. package/dist/database/index.js +20 -0
  37. package/dist/database/index.js.map +1 -0
  38. package/dist/database/lifecycle.d.ts +52 -0
  39. package/dist/database/lifecycle.d.ts.map +1 -0
  40. package/dist/database/lifecycle.js +122 -0
  41. package/dist/database/lifecycle.js.map +1 -0
  42. package/dist/database/mongoose.d.ts +47 -0
  43. package/dist/database/mongoose.d.ts.map +1 -0
  44. package/dist/database/mongoose.js +44 -0
  45. package/dist/database/mongoose.js.map +1 -0
  46. package/dist/database/transaction.d.ts +39 -0
  47. package/dist/database/transaction.d.ts.map +1 -0
  48. package/dist/database/transaction.js +99 -0
  49. package/dist/database/transaction.js.map +1 -0
  50. package/dist/decorators/index.d.ts +1 -0
  51. package/dist/decorators/index.d.ts.map +1 -1
  52. package/dist/decorators/index.js +1 -0
  53. package/dist/decorators/index.js.map +1 -1
  54. package/dist/decorators/middleware.d.ts +10 -0
  55. package/dist/decorators/middleware.d.ts.map +1 -1
  56. package/dist/decorators/middleware.js +27 -0
  57. package/dist/decorators/middleware.js.map +1 -1
  58. package/dist/decorators/upload.d.ts +37 -0
  59. package/dist/decorators/upload.d.ts.map +1 -0
  60. package/dist/decorators/upload.js +78 -0
  61. package/dist/decorators/upload.js.map +1 -0
  62. package/dist/docs/content/cli/commands.mdx +39 -5
  63. package/dist/docs/content/cli/overview.mdx +1 -0
  64. package/dist/docs/content/config.mdx +9 -2
  65. package/dist/docs/content/errors.mdx +57 -23
  66. package/dist/docs/content/middleware.mdx +138 -0
  67. package/dist/docs/content/providers.mdx +89 -0
  68. package/dist/docs/content/requests.mdx +153 -64
  69. package/dist/docs/content/responses.mdx +162 -1
  70. package/dist/docs/content/routing.mdx +137 -15
  71. package/dist/docs/content/security.mdx +6 -1
  72. package/dist/docs/content/structure.mdx +12 -6
  73. package/dist/docs/content/validation.mdx +92 -7
  74. package/dist/docs/reference/database.mdx +152 -0
  75. package/dist/docs/reference/decorators.mdx +4 -0
  76. package/dist/docs/reference/error.mdx +3 -1
  77. package/dist/docs/reference/middleware.mdx +84 -2
  78. package/dist/docs/reference/router.mdx +4 -2
  79. package/dist/docs/reference/validator.mdx +43 -5
  80. package/dist/error/errors.d.ts +10 -0
  81. package/dist/error/errors.d.ts.map +1 -1
  82. package/dist/error/errors.js +156 -25
  83. package/dist/error/errors.js.map +1 -1
  84. package/dist/error/index.d.ts +1 -1
  85. package/dist/error/index.d.ts.map +1 -1
  86. package/dist/error/index.js +3 -1
  87. package/dist/error/index.js.map +1 -1
  88. package/dist/middleware/compression.d.ts.map +1 -1
  89. package/dist/middleware/compression.js +20 -5
  90. package/dist/middleware/compression.js.map +1 -1
  91. package/dist/middleware/index.d.ts +2 -0
  92. package/dist/middleware/index.d.ts.map +1 -0
  93. package/dist/middleware/index.js +18 -0
  94. package/dist/middleware/index.js.map +1 -0
  95. package/dist/middleware/middleware.d.ts +16 -0
  96. package/dist/middleware/middleware.d.ts.map +1 -1
  97. package/dist/middleware/middleware.js +134 -48
  98. package/dist/middleware/middleware.js.map +1 -1
  99. package/dist/middleware/security.d.ts +13 -3
  100. package/dist/middleware/security.d.ts.map +1 -1
  101. package/dist/middleware/security.js +154 -25
  102. package/dist/middleware/security.js.map +1 -1
  103. package/dist/middleware/upload.d.ts +82 -0
  104. package/dist/middleware/upload.d.ts.map +1 -0
  105. package/dist/middleware/upload.js +387 -0
  106. package/dist/middleware/upload.js.map +1 -0
  107. package/dist/router/index.d.ts +5 -1
  108. package/dist/router/index.d.ts.map +1 -1
  109. package/dist/router/index.js +10 -1
  110. package/dist/router/index.js.map +1 -1
  111. package/dist/router/route-builder.d.ts +11 -2
  112. package/dist/router/route-builder.d.ts.map +1 -1
  113. package/dist/router/route-builder.js.map +1 -1
  114. package/dist/router/route-scanner.d.ts.map +1 -1
  115. package/dist/router/route-scanner.js +42 -3
  116. package/dist/router/route-scanner.js.map +1 -1
  117. package/dist/router/router.d.ts.map +1 -1
  118. package/dist/router/router.js +67 -4
  119. package/dist/router/router.js.map +1 -1
  120. package/dist/router/types.d.ts +30 -0
  121. package/dist/router/types.d.ts.map +1 -1
  122. package/dist/sanitize/index.d.ts +9 -9
  123. package/dist/sanitize/index.d.ts.map +1 -1
  124. package/dist/sanitize/index.js +19 -10
  125. package/dist/sanitize/index.js.map +1 -1
  126. package/dist/sanitize/sanitize.d.ts +11 -11
  127. package/dist/sanitize/sanitize.d.ts.map +1 -1
  128. package/dist/sanitize/sanitize.js +22 -13
  129. package/dist/sanitize/sanitize.js.map +1 -1
  130. package/dist/server/app.d.ts.map +1 -1
  131. package/dist/server/app.js +18 -0
  132. package/dist/server/app.js.map +1 -1
  133. package/dist/server/request.d.ts +5 -0
  134. package/dist/server/request.d.ts.map +1 -1
  135. package/dist/server/request.js +32 -4
  136. package/dist/server/request.js.map +1 -1
  137. package/dist/server/response.d.ts +27 -0
  138. package/dist/server/response.d.ts.map +1 -1
  139. package/dist/server/response.js +109 -4
  140. package/dist/server/response.js.map +1 -1
  141. package/dist/server/sse.d.ts +82 -0
  142. package/dist/server/sse.d.ts.map +1 -0
  143. package/dist/server/sse.js +216 -0
  144. package/dist/server/sse.js.map +1 -0
  145. package/dist/testing/client.d.ts.map +1 -1
  146. package/dist/testing/client.js +33 -5
  147. package/dist/testing/client.js.map +1 -1
  148. package/dist/testing/index.d.ts +1 -1
  149. package/dist/testing/index.d.ts.map +1 -1
  150. package/dist/testing/index.js +2 -1
  151. package/dist/testing/index.js.map +1 -1
  152. package/dist/testing/mocks.d.ts +3 -1
  153. package/dist/testing/mocks.d.ts.map +1 -1
  154. package/dist/testing/mocks.js +7 -1
  155. package/dist/testing/mocks.js.map +1 -1
  156. package/dist/types.d.ts +1 -0
  157. package/dist/types.d.ts.map +1 -1
  158. package/dist/types.js +1 -0
  159. package/dist/types.js.map +1 -1
  160. package/dist/validator/index.d.ts +3 -1
  161. package/dist/validator/index.d.ts.map +1 -1
  162. package/dist/validator/index.js +3 -1
  163. package/dist/validator/index.js.map +1 -1
  164. package/dist/validator/tex-types.d.ts +7 -3
  165. package/dist/validator/tex-types.d.ts.map +1 -1
  166. package/dist/validator/tex-types.js +4 -0
  167. package/dist/validator/tex-types.js.map +1 -1
  168. package/dist/validator/tex.d.ts +38 -0
  169. package/dist/validator/tex.d.ts.map +1 -1
  170. package/dist/validator/tex.js +126 -16
  171. package/dist/validator/tex.js.map +1 -1
  172. package/package.json +5 -1
@@ -7,6 +7,7 @@ exports.ExisResponse = void 0;
7
7
  const node_fs_1 = __importDefault(require("node:fs"));
8
8
  const node_path_1 = __importDefault(require("node:path"));
9
9
  const index_1 = require("../logger/index");
10
+ const sse_1 = require("./sse");
10
11
  // eslint-disable-next-line @typescript-eslint/no-require-imports
11
12
  const contentDisposition = require('content-disposition');
12
13
  // eslint-disable-next-line @typescript-eslint/no-require-imports
@@ -15,6 +16,22 @@ const rs_1 = require("@exisjs/rs");
15
16
  function generateETag(content) {
16
17
  return (0, rs_1.generateEtag)(content);
17
18
  }
19
+ function nativeStringify(data) {
20
+ if (data === null || data === undefined) {
21
+ return 'null';
22
+ }
23
+ // If native rust serialization is available, use it
24
+ if (typeof rs_1.fastJsonStringifyBuffer === 'function') {
25
+ // Validate object can be serialized without throwing V8 check failure on circularity
26
+ const str = JSON.stringify(data);
27
+ if (str.length > 512) {
28
+ // For larger payloads, Rust serde serialization into Buffer gives zero V8 GC overhead
29
+ return (0, rs_1.fastJsonStringifyBuffer)(data);
30
+ }
31
+ return str;
32
+ }
33
+ return JSON.stringify(data);
34
+ }
18
35
  class ExisResponse {
19
36
  constructor(raw) {
20
37
  this.raw = raw;
@@ -219,10 +236,10 @@ class ExisResponse {
219
236
  json(data) {
220
237
  if (this.raw.headersSent)
221
238
  return;
222
- let str;
239
+ let payload;
223
240
  try {
224
241
  const useSerializer = this._serializer && this.statusCode < 400;
225
- str = useSerializer ? this._serializer(data) : JSON.stringify(data);
242
+ payload = useSerializer ? this._serializer(data) : nativeStringify(data);
226
243
  }
227
244
  catch (err) {
228
245
  if (this.req && this.req.log) {
@@ -240,7 +257,9 @@ class ExisResponse {
240
257
  this.raw.setHeader('Content-Type', 'application/json; charset=utf-8');
241
258
  }
242
259
  if (this.etagEnabled && !this.raw.hasHeader('ETag')) {
243
- const buf = Buffer.from(str, 'utf8');
260
+ const buf = Buffer.isBuffer(payload)
261
+ ? payload
262
+ : Buffer.from(payload, 'utf8');
244
263
  this.raw.setHeader('ETag', generateETag(buf));
245
264
  }
246
265
  if (this.req &&
@@ -250,7 +269,7 @@ class ExisResponse {
250
269
  this.end();
251
270
  return;
252
271
  }
253
- this.end(str);
272
+ this.end(payload);
254
273
  }
255
274
  /**
256
275
  * Send HTML response.
@@ -299,6 +318,92 @@ class ExisResponse {
299
318
  }
300
319
  readable.pipe(this.raw);
301
320
  }
321
+ /**
322
+ * Initialize a Server-Sent Events (SSE) stream for real-time and AI streaming.
323
+ *
324
+ * Automatically sets standard SSE headers:
325
+ * - `Content-Type: text/event-stream; charset=utf-8`
326
+ * - `Cache-Control: no-cache, no-transform`
327
+ * - `Connection: keep-alive`
328
+ * - `X-Accel-Buffering: no` (disables Nginx proxy buffering)
329
+ *
330
+ * @param options Optional configuration (heartbeat interval, custom headers)
331
+ * @param handler Optional callback function receiving the active `SSEStream`
332
+ * @returns Active `SSEStream` instance
333
+ *
334
+ * @example
335
+ * // Using callback handler:
336
+ * res.sse(async (sse) => {
337
+ * sse.send({ event: 'message', data: 'hello' })
338
+ * await sse.pipeFrom(openaiStream)
339
+ * sse.close()
340
+ * })
341
+ *
342
+ * // Or assigning to variable:
343
+ * const sse = res.sse()
344
+ * sse.send({ event: 'connected', data: { time: Date.now() } })
345
+ */
346
+ sse(optionsOrHandler, maybeHandler) {
347
+ let options = {};
348
+ let handler;
349
+ if (typeof optionsOrHandler === 'function') {
350
+ handler = optionsOrHandler;
351
+ }
352
+ else if (typeof optionsOrHandler === 'object' &&
353
+ optionsOrHandler !== null) {
354
+ options = optionsOrHandler;
355
+ if (typeof maybeHandler === 'function') {
356
+ handler = maybeHandler;
357
+ }
358
+ }
359
+ if (!this.raw.headersSent) {
360
+ this.statusCode = 200;
361
+ this.setHeader('Content-Type', 'text/event-stream; charset=utf-8');
362
+ this.setHeader('Cache-Control', 'no-cache, no-transform');
363
+ this.setHeader('Connection', 'keep-alive');
364
+ this.setHeader('X-Accel-Buffering', 'no');
365
+ if (options.headers) {
366
+ for (const [key, value] of Object.entries(options.headers)) {
367
+ this.setHeader(key, value);
368
+ }
369
+ }
370
+ // Flush headers immediately
371
+ if (typeof this.raw.flushHeaders === 'function') {
372
+ this.raw.flushHeaders();
373
+ }
374
+ }
375
+ const stream = new sse_1.SSEStream(this.raw, options, this.req?.raw);
376
+ if (handler) {
377
+ try {
378
+ const res = handler(stream);
379
+ if (res instanceof Promise) {
380
+ res.catch((err) => {
381
+ if (this.req && this.req.log) {
382
+ this.req.log.error({ err }, '[ExisJS] Error in SSE stream handler');
383
+ }
384
+ else {
385
+ index_1.logger.error({ err }, '[ExisJS] Error in SSE stream handler');
386
+ }
387
+ if (!stream.isClosed) {
388
+ stream.close();
389
+ }
390
+ });
391
+ }
392
+ }
393
+ catch (err) {
394
+ if (this.req && this.req.log) {
395
+ this.req.log.error({ err }, '[ExisJS] Error in SSE stream handler');
396
+ }
397
+ else {
398
+ index_1.logger.error({ err }, '[ExisJS] Error in SSE stream handler');
399
+ }
400
+ if (!stream.isClosed) {
401
+ stream.close();
402
+ }
403
+ }
404
+ }
405
+ return stream;
406
+ }
302
407
  /**
303
408
  * Transfer the file at the given `filePath` as an attachment.
304
409
  *
@@ -1 +1 @@
1
- {"version":3,"file":"response.js","sourceRoot":"","sources":["../../src/server/response.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"response.js","sourceRoot":"","sources":["../../src/server/response.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,82 @@
1
+ import type { ServerResponse } from 'node:http';
2
+ export interface SSEMessage {
3
+ /** Event name / type (e.g. 'message', 'delta', 'ping', 'done') */
4
+ event?: string;
5
+ /** Data to send: string, number, boolean, or object (automatically JSON-serialized) */
6
+ data: unknown;
7
+ /** Optional event ID for reconnect tracking (Last-Event-ID) */
8
+ id?: string | number;
9
+ /** Reconnection retry time in milliseconds sent to client */
10
+ retry?: number;
11
+ }
12
+ export interface SSEOptions {
13
+ /**
14
+ * Automatic keep-alive heartbeat interval in milliseconds.
15
+ * Sends an SSE comment (`:\n\n`) periodically to prevent intermediate proxies/NATs
16
+ * and load balancers from timing out the TCP connection.
17
+ * Pass `false` or `0` to disable. Defaults to 15000 (15s).
18
+ */
19
+ heartbeat?: number | false;
20
+ /**
21
+ * Custom heartbeat comment payload. Defaults to `": ping\n\n"`.
22
+ */
23
+ heartbeatComment?: string;
24
+ /**
25
+ * Custom headers to send with the SSE stream.
26
+ */
27
+ headers?: Record<string, string>;
28
+ }
29
+ /**
30
+ * Encapsulates an active Server-Sent Events stream connected to a client.
31
+ */
32
+ export declare class SSEStream {
33
+ private _raw;
34
+ private _heartbeatTimer?;
35
+ private _isClosed;
36
+ private _onCloseCallbacks;
37
+ constructor(raw: ServerResponse, options?: SSEOptions, rawReq?: import('node:http').IncomingMessage);
38
+ /**
39
+ * Whether the client has disconnected or stream has ended.
40
+ */
41
+ get isClosed(): boolean;
42
+ /**
43
+ * Send a formatted SSE event or raw data.
44
+ *
45
+ * @example
46
+ * sse.send({ event: 'delta', data: { text: 'Hello' }, id: '1' })
47
+ * sse.send('Simple string data')
48
+ */
49
+ send(message: SSEMessage | unknown): boolean;
50
+ /**
51
+ * Send a raw SSE comment line (prefixed with `: `).
52
+ * Useful for custom heartbeats or telemetry without firing client event listeners.
53
+ */
54
+ comment(text: string): boolean;
55
+ /**
56
+ * Pipe an async iterable (e.g. OpenAI / LangChain / Ollama streaming response) directly to the SSE client.
57
+ *
58
+ * @param iterable Async iterable yielding chunks of string or objects
59
+ * @param transform Optional transformer function for each chunk
60
+ */
61
+ pipeFrom(iterable: AsyncIterable<any> | Iterable<any>, transform?: (chunk: any) => SSEMessage | unknown): Promise<void>;
62
+ /**
63
+ * Register a callback triggered when the client disconnects or the stream ends.
64
+ */
65
+ onClose(cb: () => void): this;
66
+ /**
67
+ * Close the SSE stream and terminate the HTTP response.
68
+ */
69
+ close(): void;
70
+ private _cleanup;
71
+ }
72
+ /**
73
+ * Format any input into the SSE standard text protocol:
74
+ *
75
+ * id: 1\n
76
+ * event: message\n
77
+ * retry: 5000\n
78
+ * data: line 1\n
79
+ * data: line 2\n\n
80
+ */
81
+ export declare function formatSSEEvent(message: SSEMessage | unknown): string;
82
+ //# sourceMappingURL=sse.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sse.d.ts","sourceRoot":"","sources":["../../src/server/sse.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA;AAE/C,MAAM,WAAW,UAAU;IACzB,kEAAkE;IAClE,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,uFAAuF;IACvF,IAAI,EAAE,OAAO,CAAA;IACb,+DAA+D;IAC/D,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACpB,6DAA6D;IAC7D,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,UAAU;IACzB;;;;;OAKG;IACH,SAAS,CAAC,EAAE,MAAM,GAAG,KAAK,CAAA;IAC1B;;OAEG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CACjC;AAED;;GAEG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,IAAI,CAAgB;IAC5B,OAAO,CAAC,eAAe,CAAC,CAAgB;IACxC,OAAO,CAAC,SAAS,CAAQ;IACzB,OAAO,CAAC,iBAAiB,CAAqB;gBAG5C,GAAG,EAAE,cAAc,EACnB,OAAO,GAAE,UAAe,EACxB,MAAM,CAAC,EAAE,OAAO,WAAW,EAAE,eAAe;IA2C9C;;OAEG;IACH,IAAI,QAAQ,IAAI,OAAO,CAItB;IAED;;;;;;OAMG;IACH,IAAI,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,GAAG,OAAO;IAY5C;;;OAGG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAW9B;;;;;OAKG;IACG,QAAQ,CACZ,QAAQ,EAAE,aAAa,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,EAC5C,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,UAAU,GAAG,OAAO,GAC/C,OAAO,CAAC,IAAI,CAAC;IAchB;;OAEG;IACH,OAAO,CAAC,EAAE,EAAE,MAAM,IAAI,GAAG,IAAI;IAS7B;;OAEG;IACH,KAAK,IAAI,IAAI;IAYb,OAAO,CAAC,QAAQ;CAkBjB;AAED;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,GAAG,MAAM,CA+BpE"}
@@ -0,0 +1,216 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SSEStream = void 0;
4
+ exports.formatSSEEvent = formatSSEEvent;
5
+ /**
6
+ * Encapsulates an active Server-Sent Events stream connected to a client.
7
+ */
8
+ class SSEStream {
9
+ constructor(raw, options = {}, rawReq) {
10
+ this._isClosed = false;
11
+ this._onCloseCallbacks = [];
12
+ this._raw = raw;
13
+ // Listen to client disconnect on response and request
14
+ raw.once('close', () => {
15
+ this._cleanup();
16
+ });
17
+ if (rawReq) {
18
+ rawReq.once('close', () => {
19
+ this._cleanup();
20
+ });
21
+ rawReq.once('aborted', () => {
22
+ this._cleanup();
23
+ });
24
+ }
25
+ const heartbeatMs = options.heartbeat === false || options.heartbeat === 0
26
+ ? 0
27
+ : (options.heartbeat ?? 15000);
28
+ if (heartbeatMs > 0) {
29
+ const comment = options.heartbeatComment ?? ': ping\n\n';
30
+ this._heartbeatTimer = setInterval(() => {
31
+ if (!this._isClosed && !this._raw.writableEnded) {
32
+ try {
33
+ this._raw.write(comment.endsWith('\n\n') ? comment : `${comment}\n\n`);
34
+ }
35
+ catch {
36
+ this._cleanup();
37
+ }
38
+ }
39
+ }, heartbeatMs);
40
+ if (this._heartbeatTimer.unref) {
41
+ this._heartbeatTimer.unref();
42
+ }
43
+ }
44
+ }
45
+ /**
46
+ * Whether the client has disconnected or stream has ended.
47
+ */
48
+ get isClosed() {
49
+ return (this._isClosed || this._raw.writableEnded || this._raw.destroyed);
50
+ }
51
+ /**
52
+ * Send a formatted SSE event or raw data.
53
+ *
54
+ * @example
55
+ * sse.send({ event: 'delta', data: { text: 'Hello' }, id: '1' })
56
+ * sse.send('Simple string data')
57
+ */
58
+ send(message) {
59
+ if (this.isClosed)
60
+ return false;
61
+ const formatted = formatSSEEvent(message);
62
+ try {
63
+ return this._raw.write(formatted);
64
+ }
65
+ catch {
66
+ this._cleanup();
67
+ return false;
68
+ }
69
+ }
70
+ /**
71
+ * Send a raw SSE comment line (prefixed with `: `).
72
+ * Useful for custom heartbeats or telemetry without firing client event listeners.
73
+ */
74
+ comment(text) {
75
+ if (this.isClosed)
76
+ return false;
77
+ const line = text ? `: ${text.replace(/\r?\n/g, ' ')}\n\n` : `:\n\n`;
78
+ try {
79
+ return this._raw.write(line);
80
+ }
81
+ catch {
82
+ this._cleanup();
83
+ return false;
84
+ }
85
+ }
86
+ /**
87
+ * Pipe an async iterable (e.g. OpenAI / LangChain / Ollama streaming response) directly to the SSE client.
88
+ *
89
+ * @param iterable Async iterable yielding chunks of string or objects
90
+ * @param transform Optional transformer function for each chunk
91
+ */
92
+ async pipeFrom(iterable, transform) {
93
+ try {
94
+ for await (const chunk of iterable) {
95
+ if (this.isClosed)
96
+ break;
97
+ const msg = transform ? transform(chunk) : chunk;
98
+ this.send(msg);
99
+ }
100
+ }
101
+ finally {
102
+ if (!this.isClosed) {
103
+ this.close();
104
+ }
105
+ }
106
+ }
107
+ /**
108
+ * Register a callback triggered when the client disconnects or the stream ends.
109
+ */
110
+ onClose(cb) {
111
+ if (this._isClosed) {
112
+ cb();
113
+ }
114
+ else {
115
+ this._onCloseCallbacks.push(cb);
116
+ }
117
+ return this;
118
+ }
119
+ /**
120
+ * Close the SSE stream and terminate the HTTP response.
121
+ */
122
+ close() {
123
+ if (this._isClosed)
124
+ return;
125
+ this._cleanup();
126
+ if (!this._raw.writableEnded) {
127
+ try {
128
+ this._raw.end();
129
+ }
130
+ catch {
131
+ // noop
132
+ }
133
+ }
134
+ }
135
+ _cleanup() {
136
+ if (this._isClosed)
137
+ return;
138
+ this._isClosed = true;
139
+ if (this._heartbeatTimer) {
140
+ clearInterval(this._heartbeatTimer);
141
+ this._heartbeatTimer = undefined;
142
+ }
143
+ const callbacks = this._onCloseCallbacks.splice(0);
144
+ for (const cb of callbacks) {
145
+ try {
146
+ cb();
147
+ }
148
+ catch {
149
+ // ignore callback error
150
+ }
151
+ }
152
+ }
153
+ }
154
+ exports.SSEStream = SSEStream;
155
+ /**
156
+ * Format any input into the SSE standard text protocol:
157
+ *
158
+ * id: 1\n
159
+ * event: message\n
160
+ * retry: 5000\n
161
+ * data: line 1\n
162
+ * data: line 2\n\n
163
+ */
164
+ function formatSSEEvent(message) {
165
+ let output = '';
166
+ if (message !== null &&
167
+ typeof message === 'object' &&
168
+ ('data' in message ||
169
+ 'event' in message ||
170
+ 'id' in message ||
171
+ 'retry' in message)) {
172
+ const msg = message;
173
+ if (msg.id !== undefined && msg.id !== null) {
174
+ output += `id: ${msg.id}\n`;
175
+ }
176
+ if (msg.event) {
177
+ output += `event: ${msg.event}\n`;
178
+ }
179
+ if (msg.retry !== undefined && msg.retry !== null) {
180
+ output += `retry: ${msg.retry}\n`;
181
+ }
182
+ const dataPayload = msg.data;
183
+ output += formatDataPayload(dataPayload);
184
+ }
185
+ else {
186
+ // Treat raw primitive or object as data payload
187
+ output += formatDataPayload(message);
188
+ }
189
+ return `${output}\n`;
190
+ }
191
+ function formatDataPayload(data) {
192
+ if (data === undefined) {
193
+ return 'data:\n';
194
+ }
195
+ let serialized;
196
+ if (typeof data === 'string') {
197
+ serialized = data;
198
+ }
199
+ else if (typeof data === 'number' ||
200
+ typeof data === 'boolean' ||
201
+ typeof data === 'bigint') {
202
+ serialized = String(data);
203
+ }
204
+ else {
205
+ try {
206
+ serialized = JSON.stringify(data);
207
+ }
208
+ catch {
209
+ serialized = String(data);
210
+ }
211
+ }
212
+ // Multi-line data requires each line to be prefixed with `data: `
213
+ const lines = serialized.split(/\r?\n/);
214
+ return lines.map((line) => `data: ${line}`).join('\n') + '\n';
215
+ }
216
+ //# sourceMappingURL=sse.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sse.js","sourceRoot":"","sources":["../../src/server/sse.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/testing/client.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAA;AAC5B,OAAO,EAAE,GAAG,EAAE,MAAM,eAAe,CAAA;AACnC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AAEzD,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,IAAI,CAAC,mBAAmB,CAAA;IAEjC,IAAI,EAAE,GAAG,CAAA;IACT,IAAI,EAAE,MAAM,CAAA;CACb;AAED,qBAAa,WAAW;IACtB,OAAO,CAAC,UAAU,CAAyB;IAC3C,OAAO,CAAC,WAAW,CAAC,CAAc;IAClC,OAAO,CAAC,IAAI,CAAC,CAAK;IAClB,OAAO,CAAC,OAAO,CAAQ;IACvB,OAAO,CAAC,KAAK,CAAQ;IACrB,OAAO,CAAC,KAAK,CAAC,CAAS;IACvB,OAAO,CAAC,QAAQ,CAA6B;IAC7C,OAAO,CAAC,eAAe,CAAC,CAAQ;IAChC,OAAO,CAAC,gBAAgB,CAAsC;IAC9D,OAAO,CAAC,aAAa,CAAC,CAAS;gBAEnB,GAAG,EAAE,GAAG,GAAG,iBAAiB,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;IAMtE,IAAI,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI;IAKzB,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAKxC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAC5B,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IACpD,MAAM,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI;IAY3B,IAAI,CAAC,QAAQ,GAAG,YAAY,EAAE,QAAQ,GAAG,KAAK,EAC5C,WAAW,CAAC,EACR,CAAC,CAAC,KAAK,EAAE,YAAY,KAAK,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC,GAC3D,SAAS,GACT,IAAI,EACR,UAAU,CAAC,EACT,CAAC,CAAC,MAAM,EAAE,OAAO,KAAK,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC,GAAG,SAAS,GAAG,IAAI,GAC3E,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAI/B,KAAK,CAAC,OAAO,GAAG,KAAK,EACnB,UAAU,CAAC,EACT,CAAC,CAAC,MAAM,EAAE,OAAO,KAAK,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC,GAAG,SAAS,GAAG,IAAI,GACzE,OAAO,CAAC,YAAY,GAAG,OAAO,CAAC;IAIlC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,GAAG,IAAI,GAAG,OAAO,CAAC,YAAY,CAAC;IAI9D,OAAO,IAAI,OAAO,CAAC,YAAY,CAAC;IA+B7C,OAAO,CAAC,cAAc;CAmCvB;AAED,MAAM,WAAW,OAAO;IACtB,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,CAAA;IAC9B,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,CAAA;IAC/B,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,CAAA;IAC9B,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,CAAA;IAChC,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,CAAA;IACjC,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,CAAA;IAClC,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,CAAA;IAC/B,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,CAAA;IAChC,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,CAAA;IAChC,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,CAAA;IAClC,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,WAAW,CAAA;CACnD;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,GAAG,GAAG,iBAAiB,GAAG,OAAO,CAcnE"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/testing/client.ts"],"names":[],"mappings":"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"}
@@ -88,11 +88,39 @@ class TestRequest {
88
88
  }
89
89
  }
90
90
  if (this._expectedBody !== undefined) {
91
- // Very basic deep equality check for testing
92
- const expectedStr = JSON.stringify(this._expectedBody);
93
- const actualStr = JSON.stringify(res.body);
94
- if (expectedStr !== actualStr) {
95
- throw new Error(`Expected body ${expectedStr}, got ${actualStr}`);
91
+ if (typeof this._expectedBody === 'object' &&
92
+ this._expectedBody !== null &&
93
+ typeof res.body === 'object' &&
94
+ res.body !== null) {
95
+ // Semantic object comparison that is key-order independent
96
+ const isDeepEqual = (a, b) => {
97
+ if (a === b)
98
+ return true;
99
+ if (typeof a !== 'object' ||
100
+ a === null ||
101
+ typeof b !== 'object' ||
102
+ b === null)
103
+ return false;
104
+ const keysA = Object.keys(a);
105
+ const keysB = Object.keys(b);
106
+ if (keysA.length !== keysB.length)
107
+ return false;
108
+ for (const key of keysA) {
109
+ if (!keysB.includes(key) || !isDeepEqual(a[key], b[key]))
110
+ return false;
111
+ }
112
+ return true;
113
+ };
114
+ if (!isDeepEqual(this._expectedBody, res.body)) {
115
+ throw new Error(`Expected body ${JSON.stringify(this._expectedBody)}, got ${JSON.stringify(res.body)}`);
116
+ }
117
+ }
118
+ else {
119
+ const expectedStr = JSON.stringify(this._expectedBody);
120
+ const actualStr = JSON.stringify(res.body);
121
+ if (expectedStr !== actualStr) {
122
+ throw new Error(`Expected body ${expectedStr}, got ${actualStr}`);
123
+ }
96
124
  }
97
125
  }
98
126
  }
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/testing/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/testing/client.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  export * from './mocks';
2
2
  export type { TestResponse, TestApp } from './client';
3
- export { TestRequest } from './client';
3
+ export { TestRequest, createTestApp } from './client';
4
4
  import * as _nodeTest from 'node:test';
5
5
  import { TestApp } from './client';
6
6
  export interface TestOptions {
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/testing/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/testing/index.ts"],"names":[],"mappings":"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"}
@@ -39,12 +39,13 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
39
39
  return (mod && mod.__esModule) ? mod : { "default": mod };
40
40
  };
41
41
  Object.defineProperty(exports, "__esModule", { value: true });
42
- exports.expect = exports.assert = exports.ex = exports.mock = exports.afterEach = exports.beforeEach = exports.afterAll = exports.after = exports.beforeAll = exports.before = exports.it = exports.describe = exports.test = exports.TestRequest = void 0;
42
+ exports.expect = exports.assert = exports.ex = exports.mock = exports.afterEach = exports.beforeEach = exports.afterAll = exports.after = exports.beforeAll = exports.before = exports.it = exports.describe = exports.test = exports.createTestApp = exports.TestRequest = void 0;
43
43
  exports.registerCleanup = registerCleanup;
44
44
  exports.createTestContext = createTestContext;
45
45
  __exportStar(require("./mocks"), exports);
46
46
  var client_1 = require("./client");
47
47
  Object.defineProperty(exports, "TestRequest", { enumerable: true, get: function () { return client_1.TestRequest; } });
48
+ Object.defineProperty(exports, "createTestApp", { enumerable: true, get: function () { return client_1.createTestApp; } });
48
49
  const _nodeTest = __importStar(require("node:test"));
49
50
  const node_assert_1 = __importDefault(require("node:assert"));
50
51
  const node_util_1 = __importDefault(require("node:util"));