@c9up/ream 0.1.24 → 0.1.26

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/ConfigLoader.d.ts +46 -5
  2. package/dist/ConfigLoader.d.ts.map +1 -1
  3. package/dist/ConfigLoader.js +60 -9
  4. package/dist/ConfigLoader.js.map +1 -1
  5. package/dist/HttpKernel.d.ts.map +1 -1
  6. package/dist/HttpKernel.js +46 -6
  7. package/dist/HttpKernel.js.map +1 -1
  8. package/dist/Ignitor.d.ts.map +1 -1
  9. package/dist/Ignitor.js +21 -3
  10. package/dist/Ignitor.js.map +1 -1
  11. package/dist/container/Container.d.ts +23 -3
  12. package/dist/container/Container.d.ts.map +1 -1
  13. package/dist/container/Container.js +139 -60
  14. package/dist/container/Container.js.map +1 -1
  15. package/dist/env/Env.d.ts +29 -4
  16. package/dist/env/Env.d.ts.map +1 -1
  17. package/dist/env/Env.js +27 -4
  18. package/dist/env/Env.js.map +1 -1
  19. package/dist/env/Secret.d.ts +11 -0
  20. package/dist/env/Secret.d.ts.map +1 -0
  21. package/dist/env/Secret.js +36 -0
  22. package/dist/env/Secret.js.map +1 -0
  23. package/dist/env/interpolate.d.ts +26 -0
  24. package/dist/env/interpolate.d.ts.map +1 -0
  25. package/dist/env/interpolate.js +48 -0
  26. package/dist/env/interpolate.js.map +1 -0
  27. package/dist/env/loadEnvFiles.d.ts.map +1 -1
  28. package/dist/env/loadEnvFiles.js +14 -4
  29. package/dist/env/loadEnvFiles.js.map +1 -1
  30. package/dist/env/schema.d.ts +23 -6
  31. package/dist/env/schema.d.ts.map +1 -1
  32. package/dist/env/schema.js +67 -33
  33. package/dist/env/schema.js.map +1 -1
  34. package/dist/events/Emitter.d.ts +1 -1
  35. package/dist/events/Emitter.d.ts.map +1 -1
  36. package/dist/events/Emitter.js +1 -1
  37. package/dist/events/Emitter.js.map +1 -1
  38. package/dist/events/EventsProvider.d.ts +2 -2
  39. package/dist/events/EventsProvider.d.ts.map +1 -1
  40. package/dist/events/EventsProvider.js +3 -3
  41. package/dist/events/EventsProvider.js.map +1 -1
  42. package/dist/graphql/GraphQLEngine.d.ts +1 -1
  43. package/dist/graphql/GraphQLEngine.d.ts.map +1 -1
  44. package/dist/graphql/GraphQLEngine.js +2 -2
  45. package/dist/graphql/GraphQLEngine.js.map +1 -1
  46. package/dist/graphql/GraphQLProvider.d.ts.map +1 -1
  47. package/dist/graphql/GraphQLProvider.js +7 -3
  48. package/dist/graphql/GraphQLProvider.js.map +1 -1
  49. package/dist/http/Exception.d.ts +63 -1
  50. package/dist/http/Exception.d.ts.map +1 -1
  51. package/dist/http/Exception.js +185 -48
  52. package/dist/http/Exception.js.map +1 -1
  53. package/dist/http/HttpContext.d.ts +56 -9
  54. package/dist/http/HttpContext.d.ts.map +1 -1
  55. package/dist/http/HttpContext.js +56 -15
  56. package/dist/http/HttpContext.js.map +1 -1
  57. package/dist/http/RedirectBuilder.d.ts.map +1 -1
  58. package/dist/http/RedirectBuilder.js +4 -1
  59. package/dist/http/RedirectBuilder.js.map +1 -1
  60. package/dist/http/Request.d.ts +141 -10
  61. package/dist/http/Request.d.ts.map +1 -1
  62. package/dist/http/Request.js +244 -34
  63. package/dist/http/Request.js.map +1 -1
  64. package/dist/http/Response.d.ts +176 -9
  65. package/dist/http/Response.d.ts.map +1 -1
  66. package/dist/http/Response.js +431 -19
  67. package/dist/http/Response.js.map +1 -1
  68. package/dist/index.d.ts +5 -4
  69. package/dist/index.d.ts.map +1 -1
  70. package/dist/index.js +4 -3
  71. package/dist/index.js.map +1 -1
  72. package/dist/middleware/Pipeline.js +1 -1
  73. package/dist/middleware/Pipeline.js.map +1 -1
  74. package/dist/openapi/OpenApiProvider.js +4 -4
  75. package/dist/openapi/OpenApiProvider.js.map +1 -1
  76. package/dist/router/Router.d.ts +223 -31
  77. package/dist/router/Router.d.ts.map +1 -1
  78. package/dist/router/Router.js +520 -102
  79. package/dist/router/Router.js.map +1 -1
  80. package/dist/rpc/RpcProvider.d.ts +1 -0
  81. package/dist/rpc/RpcProvider.d.ts.map +1 -1
  82. package/dist/rpc/RpcProvider.js +7 -3
  83. package/dist/rpc/RpcProvider.js.map +1 -1
  84. package/dist/rpc/RpcRouter.d.ts +2 -2
  85. package/dist/rpc/RpcRouter.d.ts.map +1 -1
  86. package/dist/rpc/RpcRouter.js +5 -4
  87. package/dist/rpc/RpcRouter.js.map +1 -1
  88. package/dist/scheduler/ScheduleProvider.d.ts.map +1 -1
  89. package/dist/scheduler/ScheduleProvider.js +7 -15
  90. package/dist/scheduler/ScheduleProvider.js.map +1 -1
  91. package/dist/server/Server.d.ts +17 -4
  92. package/dist/server/Server.d.ts.map +1 -1
  93. package/dist/server/Server.js +41 -7
  94. package/dist/server/Server.js.map +1 -1
  95. package/dist/session/SessionMiddleware.js +3 -3
  96. package/dist/session/SessionMiddleware.js.map +1 -1
  97. package/dist/storage/StaticProvider.js +1 -1
  98. package/dist/storage/StaticProvider.js.map +1 -1
  99. package/dist/testing/RequestBuilder.d.ts +60 -0
  100. package/dist/testing/RequestBuilder.d.ts.map +1 -1
  101. package/dist/testing/RequestBuilder.js +180 -1
  102. package/dist/testing/RequestBuilder.js.map +1 -1
  103. package/dist/testing/TestClient.d.ts +22 -1
  104. package/dist/testing/TestClient.d.ts.map +1 -1
  105. package/dist/testing/TestClient.js +40 -0
  106. package/dist/testing/TestClient.js.map +1 -1
  107. package/dist/utils/Macroable.d.ts +30 -0
  108. package/dist/utils/Macroable.d.ts.map +1 -0
  109. package/dist/utils/Macroable.js +43 -0
  110. package/dist/utils/Macroable.js.map +1 -0
  111. package/dist/utils/inflect.d.ts +17 -0
  112. package/dist/utils/inflect.d.ts.map +1 -0
  113. package/dist/utils/inflect.js +32 -0
  114. package/dist/utils/inflect.js.map +1 -0
  115. package/dist/utils/objectPath.d.ts +57 -0
  116. package/dist/utils/objectPath.d.ts.map +1 -0
  117. package/dist/utils/objectPath.js +141 -0
  118. package/dist/utils/objectPath.js.map +1 -0
  119. package/events.darwin-arm64.node +0 -0
  120. package/events.darwin-x64.node +0 -0
  121. package/events.linux-arm64-gnu.node +0 -0
  122. package/events.linux-x64-gnu.node +0 -0
  123. package/events.win32-x64-msvc.node +0 -0
  124. package/index.darwin-arm64.node +0 -0
  125. package/index.darwin-x64.node +0 -0
  126. package/index.linux-arm64-gnu.node +0 -0
  127. package/index.linux-x64-gnu.node +0 -0
  128. package/index.win32-x64-msvc.node +0 -0
  129. package/package.json +6 -1
  130. package/scheduler.darwin-arm64.node +0 -0
  131. package/scheduler.darwin-x64.node +0 -0
  132. package/scheduler.linux-arm64-gnu.node +0 -0
  133. package/scheduler.linux-x64-gnu.node +0 -0
  134. package/scheduler.win32-x64-msvc.node +0 -0
  135. package/src/ConfigLoader.ts +72 -9
  136. package/src/HttpKernel.ts +53 -15
  137. package/src/Ignitor.ts +24 -3
  138. package/src/container/Container.ts +145 -61
  139. package/src/env/Env.ts +49 -5
  140. package/src/env/Secret.ts +41 -0
  141. package/src/env/interpolate.ts +54 -0
  142. package/src/env/loadEnvFiles.ts +12 -4
  143. package/src/env/schema.ts +109 -35
  144. package/src/events/Emitter.ts +2 -2
  145. package/src/events/EventsProvider.ts +5 -5
  146. package/src/graphql/GraphQLEngine.ts +4 -4
  147. package/src/graphql/GraphQLProvider.ts +7 -3
  148. package/src/http/Exception.ts +214 -37
  149. package/src/http/HttpContext.ts +93 -20
  150. package/src/http/RedirectBuilder.ts +4 -1
  151. package/src/http/Request.ts +264 -34
  152. package/src/http/Response.ts +504 -30
  153. package/src/index.ts +11 -2
  154. package/src/middleware/Pipeline.ts +1 -1
  155. package/src/openapi/OpenApiProvider.ts +4 -4
  156. package/src/router/Router.ts +631 -113
  157. package/src/rpc/RpcProvider.ts +6 -2
  158. package/src/rpc/RpcRouter.ts +7 -6
  159. package/src/scheduler/ScheduleProvider.ts +7 -15
  160. package/src/server/Server.ts +49 -10
  161. package/src/session/SessionMiddleware.ts +4 -4
  162. package/src/storage/StaticProvider.ts +1 -1
  163. package/src/testing/RequestBuilder.ts +218 -1
  164. package/src/testing/TestClient.ts +57 -1
  165. package/src/utils/Macroable.ts +54 -0
  166. package/src/utils/inflect.ts +29 -0
  167. package/src/utils/objectPath.ts +142 -0
  168. package/dist/decorators/Lazy.d.ts +0 -19
  169. package/dist/decorators/Lazy.d.ts.map +0 -1
  170. package/dist/decorators/Lazy.js +0 -53
  171. package/dist/decorators/Lazy.js.map +0 -1
  172. package/src/decorators/Lazy.ts +0 -57
@@ -6,6 +6,12 @@
6
6
  *
7
7
  * @implements FR21
8
8
  */
9
+ import { readFileSync } from 'node:fs';
10
+ import { basename } from 'node:path';
11
+ import etag from 'etag';
12
+ import { contentType } from 'mime-types';
13
+ import { Macroable } from '../utils/Macroable.js';
14
+ import { E_HTTP_REQUEST_ABORTED } from './Exception.js';
9
15
  import { openSseStream, } from './SseStream.js';
10
16
  /**
11
17
  * Reject CR / LF / NUL bytes in header names or values. Without this guard
@@ -18,7 +24,26 @@ function assertNoCRLF(name, value) {
18
24
  throw new Error(`CRLF / NUL byte in header '${name}' is not allowed (response-splitting protection).`);
19
25
  }
20
26
  }
21
- export class Response {
27
+ /**
28
+ * JSON.stringify with AdonisJS-parity safety: `BigInt` values are emitted as
29
+ * strings (native `JSON.stringify` throws on them) and circular references are
30
+ * dropped instead of throwing — so `response.json()` / an object `send()` never
31
+ * blows up on a payload the raw serializer can't handle.
32
+ */
33
+ function safeStringify(value) {
34
+ const seen = new WeakSet();
35
+ return JSON.stringify(value, (_key, val) => {
36
+ if (typeof val === 'bigint')
37
+ return val.toString();
38
+ if (typeof val === 'object' && val !== null) {
39
+ if (seen.has(val))
40
+ return undefined;
41
+ seen.add(val);
42
+ }
43
+ return val;
44
+ });
45
+ }
46
+ export class Response extends Macroable {
22
47
  #status = 200;
23
48
  #headers = {};
24
49
  #cookies = [];
@@ -27,6 +52,8 @@ export class Response {
27
52
  #redirectBuilderFactory;
28
53
  #streamBackend;
29
54
  #streamId;
55
+ #request;
56
+ #cookieSigner;
30
57
  /**
31
58
  * CSP nonce for this request (AdonisJS idiom: `response.nonce`). Seeded by
32
59
  * the `@c9up/blackhole` middleware when the CSP uses `@nonce`; `undefined`
@@ -74,26 +101,91 @@ export class Response {
74
101
  delete this.#headers[key.toLowerCase()];
75
102
  return this;
76
103
  }
77
- /** Set the Content-Type header. Chainable. */
78
- type(contentType) {
79
- // Same CRLF/NUL guard as header() — `type(userValue)` must not be a
104
+ /**
105
+ * Set a header only if it has not been set yet (AdonisJS `safeHeader`) —
106
+ * the idiom for defaulting a header from middleware without clobbering a
107
+ * value a downstream handler already chose.
108
+ */
109
+ safeHeader(key, value) {
110
+ if (!this.getHeader(key))
111
+ this.header(key, value);
112
+ return this;
113
+ }
114
+ /** Append field(s) to the `Vary` header, de-duplicated (AdonisJS parity). */
115
+ vary(field) {
116
+ const fields = Array.isArray(field) ? field : [field];
117
+ const current = this.getHeader('vary');
118
+ const existing = current
119
+ ? current
120
+ .split(',')
121
+ .map((f) => f.trim())
122
+ .filter(Boolean)
123
+ : [];
124
+ for (const f of fields)
125
+ if (!existing.includes(f))
126
+ existing.push(f);
127
+ this.header('Vary', existing.join(', '));
128
+ return this;
129
+ }
130
+ /** Set the `Location` header without issuing a redirect (AdonisJS parity). */
131
+ location(url) {
132
+ this.header('Location', url);
133
+ return this;
134
+ }
135
+ /**
136
+ * Set the Content-Type header. Chainable. AdonisJS parity
137
+ * (`response.type(type, charset?)`): `type` may be a full MIME type OR a file
138
+ * extension — `type('txt')` → `text/plain; charset=utf-8`, `type('json')` →
139
+ * `application/json; charset=utf-8` — resolved via `mime-types` exactly like
140
+ * Adonis. An optional `charset` is appended before resolution.
141
+ */
142
+ type(type, charset) {
143
+ const input = charset ? `${type}; charset=${charset}` : type;
144
+ // `contentType()` returns `false` for an unrecognised value — fall back to
145
+ // the raw input rather than writing `content-type: false`.
146
+ const resolved = contentType(input);
147
+ const value = resolved === false ? input : resolved;
148
+ // Same CRLF/NUL guard as header() — a resolved type must never be a
80
149
  // response-splitting hole just because it writes a fixed header key.
81
- assertNoCRLF('content-type', contentType);
82
- this.#headers['content-type'] = contentType;
150
+ assertNoCRLF('content-type', value);
151
+ this.#headers['content-type'] = value;
83
152
  return this;
84
153
  }
85
154
  // ─── Body ─────────────────────────────────────────────────
86
155
  /** Send a JSON response. Sets content-type and stringifies. */
87
156
  json(data) {
88
157
  this.#headers['content-type'] = 'application/json';
89
- this.#body = JSON.stringify(data);
158
+ this.#body = safeStringify(data);
159
+ this.#finished = true;
160
+ }
161
+ /**
162
+ * Send a JSONP response (AdonisJS parity) — wraps the JSON body in a
163
+ * `callbackName(...)` call served as `text/javascript`. The callback name is
164
+ * sanitised to identifier-safe characters and U+2028 / U+2029 are escaped
165
+ * (valid in JSON, but break JS), so neither the callback nor the payload can
166
+ * inject script.
167
+ */
168
+ jsonp(body, callbackName = 'callback') {
169
+ // Sanitise the callback name to identifier-safe characters — the JSONP XSS
170
+ // guard (an attacker-controlled callback must not inject script).
171
+ const safeCallback = callbackName.replace(/[^\w$.]/g, '');
172
+ // Escape U+2028 / U+2029 — valid inside JSON strings but line terminators in
173
+ // JS, so they'd break the wrapped payload in a <script> context (Adonis parity).
174
+ const json = safeStringify(body).replace(/[\u2028\u2029]/g, (c) => c === '\u2028' ? '\\u2028' : '\\u2029');
175
+ this.#headers['content-type'] = 'text/javascript; charset=utf-8';
176
+ this.#body = `/**/ typeof ${safeCallback} === 'function' && ${safeCallback}(${json});`;
90
177
  this.#finished = true;
91
178
  }
92
179
  /** Send a response body. Auto-detects content type if not set. */
93
180
  send(data) {
94
181
  if (typeof data === 'string') {
95
182
  if (!this.#headers['content-type']) {
96
- this.#headers['content-type'] = 'text/html; charset=utf-8';
183
+ // AdonisJS parity: an HTML-looking string (opens with `<`) is served as
184
+ // `text/html`; a plain string as `text/plain` — not everything forced to
185
+ // HTML (which mislabels plain text and JSON/CSV/robots.txt bodies).
186
+ this.#headers['content-type'] = data.trimStart().startsWith('<')
187
+ ? 'text/html; charset=utf-8'
188
+ : 'text/plain; charset=utf-8';
97
189
  }
98
190
  this.#body = data;
99
191
  }
@@ -106,7 +198,7 @@ export class Response {
106
198
  }
107
199
  else if (typeof data === 'object' && data !== null) {
108
200
  this.#headers['content-type'] = 'application/json';
109
- this.#body = JSON.stringify(data);
201
+ this.#body = safeStringify(data);
110
202
  }
111
203
  else if (data !== undefined && data !== null) {
112
204
  if (!this.#headers['content-type']) {
@@ -140,6 +232,212 @@ export class Response {
140
232
  this.#body = '';
141
233
  this.#finished = true;
142
234
  }
235
+ // ─── Descriptive status methods (AdonisJS parity) ────────
236
+ // Each sets the status then sends the (optional) body — mirrors
237
+ // `@adonisjs/http-server` Response (e.g. `response.notFound(body)`).
238
+ /** 100 Continue. */
239
+ continue() {
240
+ this.status(100);
241
+ }
242
+ /** 101 Switching Protocols. */
243
+ switchingProtocols() {
244
+ this.status(101);
245
+ }
246
+ /** 200 ok. */
247
+ ok(body) {
248
+ this.status(200);
249
+ this.send(body);
250
+ }
251
+ /** 201 created. */
252
+ created(body) {
253
+ this.status(201);
254
+ this.send(body);
255
+ }
256
+ /** 202 accepted. */
257
+ accepted(body) {
258
+ this.status(202);
259
+ this.send(body);
260
+ }
261
+ /** 203 nonAuthoritativeInformation. */
262
+ nonAuthoritativeInformation(body) {
263
+ this.status(203);
264
+ this.send(body);
265
+ }
266
+ /** 205 resetContent. */
267
+ resetContent(body) {
268
+ this.status(205);
269
+ this.send(body);
270
+ }
271
+ /** 206 partialContent. */
272
+ partialContent(body) {
273
+ this.status(206);
274
+ this.send(body);
275
+ }
276
+ /** 300 multipleChoices. */
277
+ multipleChoices(body) {
278
+ this.status(300);
279
+ this.send(body);
280
+ }
281
+ /** 301 movedPermanently. */
282
+ movedPermanently(body) {
283
+ this.status(301);
284
+ this.send(body);
285
+ }
286
+ /** 302 movedTemporarily. */
287
+ movedTemporarily(body) {
288
+ this.status(302);
289
+ this.send(body);
290
+ }
291
+ /** 303 seeOther. */
292
+ seeOther(body) {
293
+ this.status(303);
294
+ this.send(body);
295
+ }
296
+ /** 304 notModified. */
297
+ notModified(body) {
298
+ this.status(304);
299
+ this.send(body);
300
+ }
301
+ /** 305 useProxy. */
302
+ useProxy(body) {
303
+ this.status(305);
304
+ this.send(body);
305
+ }
306
+ /** 307 temporaryRedirect. */
307
+ temporaryRedirect(body) {
308
+ this.status(307);
309
+ this.send(body);
310
+ }
311
+ /** 400 badRequest. */
312
+ badRequest(body) {
313
+ this.status(400);
314
+ this.send(body);
315
+ }
316
+ /** 401 unauthorized. */
317
+ unauthorized(body) {
318
+ this.status(401);
319
+ this.send(body);
320
+ }
321
+ /** 402 paymentRequired. */
322
+ paymentRequired(body) {
323
+ this.status(402);
324
+ this.send(body);
325
+ }
326
+ /** 403 forbidden. */
327
+ forbidden(body) {
328
+ this.status(403);
329
+ this.send(body);
330
+ }
331
+ /** 404 notFound. */
332
+ notFound(body) {
333
+ this.status(404);
334
+ this.send(body);
335
+ }
336
+ /** 405 methodNotAllowed. */
337
+ methodNotAllowed(body) {
338
+ this.status(405);
339
+ this.send(body);
340
+ }
341
+ /** 406 notAcceptable. */
342
+ notAcceptable(body) {
343
+ this.status(406);
344
+ this.send(body);
345
+ }
346
+ /** 407 proxyAuthenticationRequired. */
347
+ proxyAuthenticationRequired(body) {
348
+ this.status(407);
349
+ this.send(body);
350
+ }
351
+ /** 408 requestTimeout. */
352
+ requestTimeout(body) {
353
+ this.status(408);
354
+ this.send(body);
355
+ }
356
+ /** 409 conflict. */
357
+ conflict(body) {
358
+ this.status(409);
359
+ this.send(body);
360
+ }
361
+ /** 410 gone. */
362
+ gone(body) {
363
+ this.status(410);
364
+ this.send(body);
365
+ }
366
+ /** 411 lengthRequired. */
367
+ lengthRequired(body) {
368
+ this.status(411);
369
+ this.send(body);
370
+ }
371
+ /** 412 preconditionFailed. */
372
+ preconditionFailed(body) {
373
+ this.status(412);
374
+ this.send(body);
375
+ }
376
+ /** 413 requestEntityTooLarge. */
377
+ requestEntityTooLarge(body) {
378
+ this.status(413);
379
+ this.send(body);
380
+ }
381
+ /** 414 requestUriTooLong. */
382
+ requestUriTooLong(body) {
383
+ this.status(414);
384
+ this.send(body);
385
+ }
386
+ /** 415 unsupportedMediaType. */
387
+ unsupportedMediaType(body) {
388
+ this.status(415);
389
+ this.send(body);
390
+ }
391
+ /** 416 requestedRangeNotSatisfiable. */
392
+ requestedRangeNotSatisfiable(body) {
393
+ this.status(416);
394
+ this.send(body);
395
+ }
396
+ /** 417 expectationFailed. */
397
+ expectationFailed(body) {
398
+ this.status(417);
399
+ this.send(body);
400
+ }
401
+ /** 422 unprocessableEntity. */
402
+ unprocessableEntity(body) {
403
+ this.status(422);
404
+ this.send(body);
405
+ }
406
+ /** 429 tooManyRequests. */
407
+ tooManyRequests(body) {
408
+ this.status(429);
409
+ this.send(body);
410
+ }
411
+ /** 500 internalServerError. */
412
+ internalServerError(body) {
413
+ this.status(500);
414
+ this.send(body);
415
+ }
416
+ /** 501 notImplemented. */
417
+ notImplemented(body) {
418
+ this.status(501);
419
+ this.send(body);
420
+ }
421
+ /** 502 badGateway. */
422
+ badGateway(body) {
423
+ this.status(502);
424
+ this.send(body);
425
+ }
426
+ /** 503 serviceUnavailable. */
427
+ serviceUnavailable(body) {
428
+ this.status(503);
429
+ this.send(body);
430
+ }
431
+ /** 504 gatewayTimeout. */
432
+ gatewayTimeout(body) {
433
+ this.status(504);
434
+ this.send(body);
435
+ }
436
+ /** 505 httpVersionNotSupported. */
437
+ httpVersionNotSupported(body) {
438
+ this.status(505);
439
+ this.send(body);
440
+ }
143
441
  // ─── Redirect ─────────────────────────────────────────────
144
442
  /** Get a redirect builder. */
145
443
  redirect() {
@@ -149,6 +447,90 @@ export class Response {
149
447
  throw new Error('redirect() requires an HttpContext. Response was created outside a request handler.');
150
448
  }
151
449
  /** @internal Set the redirect builder factory (injected by HttpContext). */
450
+ /** Give the response access to the request (wired by HttpContext) — used by `fresh()`. */
451
+ setRequest(request) {
452
+ this.#request = request;
453
+ }
454
+ /** Inject the APP_KEY-backed cookie signer — wired by HttpContext. */
455
+ setCookieSigner(signer) {
456
+ this.#cookieSigner = signer;
457
+ }
458
+ /** Set a strong (or weak) `ETag` for the given body (AdonisJS parity, `etag` pkg). */
459
+ setEtag(body, weak = false) {
460
+ this.header('Etag', etag(body, { weak }));
461
+ return this;
462
+ }
463
+ /**
464
+ * Whether the client's cached copy is still fresh (AdonisJS `fresh`) — a
465
+ * cacheable method (GET/HEAD) with a 2xx/304 status whose `If-None-Match`
466
+ * matches this response's `ETag`. Lets a handler answer `304 Not Modified`.
467
+ */
468
+ fresh() {
469
+ const method = this.#request?.method();
470
+ if (method && method !== 'GET' && method !== 'HEAD')
471
+ return false;
472
+ const status = this.#status;
473
+ if (!((status >= 200 && status < 300) || status === 304))
474
+ return false;
475
+ const noneMatch = this.#request?.header('if-none-match');
476
+ const currentEtag = this.getHeader('etag');
477
+ if (!noneMatch || !currentEtag)
478
+ return false;
479
+ if (noneMatch.trim() === '*')
480
+ return true;
481
+ return noneMatch.split(',').some((tag) => {
482
+ const t = tag.trim();
483
+ return t === currentEtag || t === `W/${currentEtag}` || `W/${t}` === currentEtag;
484
+ });
485
+ }
486
+ /**
487
+ * Abort the request with a body + status (AdonisJS parity) — throws
488
+ * `E_HTTP_REQUEST_ABORTED`, which the exception handler renders (a string body
489
+ * verbatim, anything else as JSON).
490
+ */
491
+ abort(body, status = 400) {
492
+ throw new E_HTTP_REQUEST_ABORTED(body, status);
493
+ }
494
+ /** Abort only when `condition` is truthy (AdonisJS `abortIf`). */
495
+ abortIf(condition, body, status = 400) {
496
+ if (condition)
497
+ this.abort(body, status);
498
+ }
499
+ /**
500
+ * Send a file to the client (AdonisJS `download`) — reads the file, infers the
501
+ * content-type from its extension, and sends it as a binary body. On a read
502
+ * error, `errorCallback` may map it to `[message, status?]`, else a 404.
503
+ */
504
+ download(filePath, generateEtag = false, errorCallback) {
505
+ let content;
506
+ try {
507
+ content = readFileSync(filePath);
508
+ }
509
+ catch (error) {
510
+ if (errorCallback) {
511
+ const [message, status] = errorCallback(error);
512
+ this.status(status ?? 404).send(message);
513
+ return;
514
+ }
515
+ this.status(404).send('Not Found');
516
+ return;
517
+ }
518
+ const ct = contentType(basename(filePath));
519
+ if (ct)
520
+ this.#headers['content-type'] = ct;
521
+ if (generateEtag)
522
+ this.setEtag(content);
523
+ this.sendBuffer(content);
524
+ }
525
+ /**
526
+ * Force a file download with a `Content-Disposition` header (AdonisJS
527
+ * `attachment`). Defaults the filename to the file's basename.
528
+ */
529
+ attachment(filePath, name, disposition = 'attachment', generateEtag = false) {
530
+ const filename = name ?? basename(filePath);
531
+ this.header('Content-Disposition', `${disposition}; filename="${filename}"`);
532
+ this.download(filePath, generateEtag);
533
+ }
152
534
  setRedirectFactory(factory) {
153
535
  this.#redirectBuilderFactory = factory;
154
536
  }
@@ -197,8 +579,36 @@ export class Response {
197
579
  return stream;
198
580
  }
199
581
  // ─── Cookies ──────────────────────────────────────────────
200
- /** Set a response cookie. */
582
+ /**
583
+ * Set a SIGNED response cookie (AdonisJS default). The value is HMAC-signed
584
+ * with the app's `APP_KEY` (via the injected signer) so tampering is detected
585
+ * on read; `request.cookie()` verifies + unwraps it. Falls back to a plain
586
+ * cookie when no APP_KEY / encryption service is configured.
587
+ */
201
588
  cookie(name, value, options) {
589
+ const signed = this.#cookieSigner ? this.#cookieSigner.sign(value) : value;
590
+ return this.#writeCookie(name, signed, options);
591
+ }
592
+ /**
593
+ * Set an UNSIGNED response cookie (AdonisJS `plainCookie`) — sent as-is. Use
594
+ * for values you already protect (encrypted session ids, CSRF tokens) or that
595
+ * a client-side script must read.
596
+ */
597
+ plainCookie(name, value, options) {
598
+ return this.#writeCookie(name, value, options);
599
+ }
600
+ /**
601
+ * Set an ENCRYPTED response cookie (AdonisJS `encryptedCookie`) — AES-256-GCM
602
+ * encrypted with `APP_KEY`, unreadable + tamper-proof on the client. Requires
603
+ * a configured encryption service (APP_KEY).
604
+ */
605
+ encryptedCookie(name, value, options) {
606
+ if (!this.#cookieSigner) {
607
+ throw new Error('encryptedCookie() requires APP_KEY — set it so the encryption service is registered.');
608
+ }
609
+ return this.#writeCookie(name, this.#cookieSigner.encrypt(value), options);
610
+ }
611
+ #writeCookie(name, value, options) {
202
612
  // SameSite=None cookies REQUIRE the Secure attribute — modern browsers
203
613
  // (Chrome 80+, Firefox, Safari) silently reject the cookie otherwise, so
204
614
  // a missing Secure here turns OAuth callbacks / iframe sessions into a
@@ -207,18 +617,13 @@ export class Response {
207
617
  throw new Error(`Cookie '${name}': SameSite=None requires Secure: true (browsers reject SameSite=None cookies without Secure).`);
208
618
  }
209
619
  const parts = [`${encodeURIComponent(name)}=${encodeURIComponent(value)}`];
210
- // `maxAge: 0` is the RFC 6265 "delete-now" signal used by logout
211
- // flows. A truthiness check would skip it and leave the cookie
212
- // alive for the session — explicit `!== undefined` covers both
213
- // 0 and negative values that browsers also treat as immediate
214
- // expiry.
620
+ // `maxAge: 0` is the RFC 6265 "delete-now" signal used by logout flows. A
621
+ // truthiness check would skip it; explicit `!== undefined` covers 0 too.
215
622
  if (options?.maxAge !== undefined)
216
623
  parts.push(`Max-Age=${options.maxAge}`);
217
624
  if (options?.path) {
218
- // `Path` is concatenated raw (encodeURIComponent would mangle the `/`
219
- // separators a path legitimately contains), so it needs the same
220
- // CRLF/NUL guard as header()/append() — otherwise a controlled path
221
- // injects into the `\n`-joined Set-Cookie header (response-splitting).
625
+ // `Path` is concatenated raw (encodeURIComponent would mangle `/`), so it
626
+ // needs the same CRLF/NUL guard as header() (response-splitting).
222
627
  assertNoCRLF(`Set-Cookie path for '${name}'`, options.path);
223
628
  parts.push(`Path=${options.path}`);
224
629
  }
@@ -231,6 +636,13 @@ export class Response {
231
636
  this.#cookies.push(parts.join('; '));
232
637
  return this;
233
638
  }
639
+ /**
640
+ * Expire a cookie immediately (AdonisJS `clearCookie`) — re-sends it with
641
+ * `Max-Age=0`, the RFC 6265 delete-now signal that `cookie()` honours.
642
+ */
643
+ clearCookie(name, options) {
644
+ return this.plainCookie(name, '', { ...options, maxAge: 0 });
645
+ }
234
646
  // ─── Internals (used by HttpKernel for NAPI serialization) ─
235
647
  /** @internal Get the accumulated status code. */
236
648
  getStatus() {
@@ -1 +1 @@
1
- {"version":3,"file":"Response.js","sourceRoot":"","sources":["../../src/http/Response.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Response.js","sourceRoot":"","sources":["../../src/http/Response.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -5,19 +5,21 @@
5
5
  */
6
6
  import 'reflect-metadata';
7
7
  export { Application } from './Application.js';
8
- export { ConfigStore, defineModuleConfig, env } from './ConfigLoader.js';
8
+ export { ConfigStore, configProvider, defineModuleConfig, env } from './ConfigLoader.js';
9
9
  export { Container } from './container/Container.js';
10
10
  export type { Binding, ServiceFactory, ServiceScope, ServiceToken } from './container/types.js';
11
11
  export { Env, EnvValidationException } from './env/Env.js';
12
12
  export { loadEnvFiles } from './env/loadEnvFiles.js';
13
- export { EnvVarError, type RequiredNode, type SchemaNode, type StringOptions, } from './env/schema.js';
14
- export { E_FORBIDDEN, E_HTTP_EXCEPTION, E_ROUTE_NOT_FOUND, E_ROW_NOT_FOUND, E_UNAUTHORIZED, E_VALIDATION_ERROR, Exception, ExceptionHandler, } from './http/Exception.js';
13
+ export { Secret } from './env/Secret.js';
14
+ export { EnvVarError, type OptionalCondition, type RequiredNode, type SchemaFnOptions, type SchemaNode, type StringOptions, } from './env/schema.js';
15
+ export { createError, E_FORBIDDEN, E_HTTP_EXCEPTION, E_ROUTE_NOT_FOUND, E_ROW_NOT_FOUND, E_UNAUTHORIZED, E_VALIDATION_ERROR, Exception, type ExceptionClass, type ExceptionConstructor, ExceptionHandler, InvalidArgumentsException, RuntimeException, type StatusPageRenderer, } from './http/Exception.js';
15
16
  export type { Authorizer, AuthState, RouteInfo } from './http/HttpContext.js';
16
17
  export { HttpContext } from './http/HttpContext.js';
17
18
  export { RedirectBuilder } from './http/RedirectBuilder.js';
18
19
  export type { RawRequest } from './http/Request.js';
19
20
  export { Request } from './http/Request.js';
20
21
  export { Response } from './http/Response.js';
22
+ export { type GetterFn, Macroable, type MacroFn } from './utils/Macroable.js';
21
23
  export { CookieDriver as SessionCookieDriver } from './session/drivers/CookieDriver.js';
22
24
  export { MemoryDriver as SessionMemoryDriver } from './session/drivers/MemoryDriver.js';
23
25
  export type { SessionConfig, SessionDriver } from './session/Session.js';
@@ -47,7 +49,6 @@ export { CookieSigner } from './security/CookieSigner.js';
47
49
  export { constantTimeEq, hasNativeCrypto, hmacSign, hmacVerify, randomBytesBase64, randomHex, setNapi, } from './security/crypto.js';
48
50
  export type { SignedUrlConfig } from './security/SignedUrl.js';
49
51
  export { SignedUrl } from './security/SignedUrl.js';
50
- export { createLazyProxy, getLazyParams, Lazy } from './decorators/Lazy.js';
51
52
  export { clearServiceRegistry, getServiceMetadata, getServiceRegistry, Inject, inject, Service, } from './decorators/Service.js';
52
53
  export type { ControllerAction, MatchResult, ParamMatcher, RouteDefinition, RouteHandler, RouteHandlerFunction, } from './router/Router.js';
53
54
  export { GroupBuilder, matchers, OnRouteBuilder, RouteBuilder, Router } from './router/Router.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}