exisjs 0.8.1 → 0.9.1

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 (190) hide show
  1. package/dist/cli/commands/build.d.ts.map +1 -1
  2. package/dist/cli/commands/build.js +20 -1
  3. package/dist/cli/commands/build.js.map +1 -1
  4. package/dist/cli/commands/dev.d.ts +8 -0
  5. package/dist/cli/commands/dev.d.ts.map +1 -1
  6. package/dist/cli/commands/dev.js +96 -36
  7. package/dist/cli/commands/dev.js.map +1 -1
  8. package/dist/cli/index.js +1 -0
  9. package/dist/cli/index.js.map +1 -1
  10. package/dist/cli/manifest.d.ts.map +1 -1
  11. package/dist/cli/manifest.js +2 -1
  12. package/dist/cli/manifest.js.map +1 -1
  13. package/dist/cli/routes.d.ts +2 -0
  14. package/dist/cli/routes.d.ts.map +1 -1
  15. package/dist/cli/routes.js +14 -5
  16. package/dist/cli/routes.js.map +1 -1
  17. package/dist/config/config.d.ts +3 -1
  18. package/dist/config/config.d.ts.map +1 -1
  19. package/dist/config/config.js.map +1 -1
  20. package/dist/config/types.d.ts +11 -1
  21. package/dist/config/types.d.ts.map +1 -1
  22. package/dist/cron/job.d.ts +2 -0
  23. package/dist/cron/job.d.ts.map +1 -1
  24. package/dist/cron/job.js +33 -1
  25. package/dist/cron/job.js.map +1 -1
  26. package/dist/cron/manager.d.ts +12 -1
  27. package/dist/cron/manager.d.ts.map +1 -1
  28. package/dist/cron/manager.js +7 -1
  29. package/dist/cron/manager.js.map +1 -1
  30. package/dist/cron/types.d.ts +24 -0
  31. package/dist/cron/types.d.ts.map +1 -1
  32. package/dist/database/lifecycle.d.ts +19 -2
  33. package/dist/database/lifecycle.d.ts.map +1 -1
  34. package/dist/database/lifecycle.js +92 -53
  35. package/dist/database/lifecycle.js.map +1 -1
  36. package/dist/decorators/index.d.ts +1 -0
  37. package/dist/decorators/index.d.ts.map +1 -1
  38. package/dist/decorators/index.js +5 -0
  39. package/dist/decorators/index.js.map +1 -1
  40. package/dist/decorators/pipes.d.ts +2 -0
  41. package/dist/decorators/pipes.d.ts.map +1 -1
  42. package/dist/decorators/pipes.js +39 -18
  43. package/dist/decorators/pipes.js.map +1 -1
  44. package/dist/decorators/transaction.d.ts +0 -21
  45. package/dist/decorators/transaction.d.ts.map +1 -1
  46. package/dist/decorators/transaction.js +52 -32
  47. package/dist/decorators/transaction.js.map +1 -1
  48. package/dist/di/container.d.ts +6 -0
  49. package/dist/di/container.d.ts.map +1 -1
  50. package/dist/di/container.js +73 -57
  51. package/dist/di/container.js.map +1 -1
  52. package/dist/docs/content/boundaries.mdx +2 -0
  53. package/dist/docs/content/cli/commands.mdx +2 -1
  54. package/dist/docs/content/config.mdx +6 -4
  55. package/dist/docs/content/cron.mdx +25 -1
  56. package/dist/docs/content/decorators.mdx +5 -5
  57. package/dist/docs/content/errors.mdx +37 -36
  58. package/dist/docs/content/installation.mdx +3 -4
  59. package/dist/docs/content/introduction.mdx +1 -1
  60. package/dist/docs/content/middleware.mdx +4 -2
  61. package/dist/docs/content/providers.mdx +2 -0
  62. package/dist/docs/content/requests.mdx +4 -2
  63. package/dist/docs/content/responses.mdx +72 -0
  64. package/dist/docs/content/security.mdx +93 -4
  65. package/dist/docs/content/testing.mdx +38 -0
  66. package/dist/docs/content/validation.mdx +34 -1
  67. package/dist/docs/reference/README.md +16 -16
  68. package/dist/docs/reference/config.mdx +1 -1
  69. package/dist/docs/reference/database.mdx +3 -2
  70. package/dist/docs/reference/decorators.mdx +2 -4
  71. package/dist/docs/reference/middleware.mdx +1 -1
  72. package/dist/docs/reference/router.mdx +5 -7
  73. package/dist/docs/reference/validator.mdx +3 -0
  74. package/dist/error/errors.d.ts +9 -1
  75. package/dist/error/errors.d.ts.map +1 -1
  76. package/dist/error/errors.js +24 -15
  77. package/dist/error/errors.js.map +1 -1
  78. package/dist/index.d.ts +11 -2
  79. package/dist/index.d.ts.map +1 -1
  80. package/dist/lib/inspect-routes.js +2 -0
  81. package/dist/lib/inspect-routes.js.map +1 -1
  82. package/dist/middleware/compression.d.ts.map +1 -1
  83. package/dist/middleware/compression.js +6 -5
  84. package/dist/middleware/compression.js.map +1 -1
  85. package/dist/middleware/idempotency.d.ts +25 -23
  86. package/dist/middleware/idempotency.d.ts.map +1 -1
  87. package/dist/middleware/idempotency.js +70 -35
  88. package/dist/middleware/idempotency.js.map +1 -1
  89. package/dist/middleware/middleware.d.ts.map +1 -1
  90. package/dist/middleware/middleware.js +48 -34
  91. package/dist/middleware/middleware.js.map +1 -1
  92. package/dist/middleware/rate-limit.d.ts +36 -0
  93. package/dist/middleware/rate-limit.d.ts.map +1 -1
  94. package/dist/middleware/rate-limit.js +33 -19
  95. package/dist/middleware/rate-limit.js.map +1 -1
  96. package/dist/middleware/security.d.ts.map +1 -1
  97. package/dist/middleware/security.js +12 -5
  98. package/dist/middleware/security.js.map +1 -1
  99. package/dist/router/authorize.d.ts +43 -0
  100. package/dist/router/authorize.d.ts.map +1 -0
  101. package/dist/router/authorize.js +66 -0
  102. package/dist/router/authorize.js.map +1 -0
  103. package/dist/router/controller-registrar.d.ts.map +1 -1
  104. package/dist/router/controller-registrar.js +121 -156
  105. package/dist/router/controller-registrar.js.map +1 -1
  106. package/dist/router/route-scanner.d.ts +3 -0
  107. package/dist/router/route-scanner.d.ts.map +1 -1
  108. package/dist/router/route-scanner.js +32 -21
  109. package/dist/router/route-scanner.js.map +1 -1
  110. package/dist/router/router.d.ts +5 -0
  111. package/dist/router/router.d.ts.map +1 -1
  112. package/dist/router/router.js +83 -75
  113. package/dist/router/router.js.map +1 -1
  114. package/dist/router/scanner/boundary-loader.d.ts.map +1 -1
  115. package/dist/router/scanner/boundary-loader.js +37 -38
  116. package/dist/router/scanner/boundary-loader.js.map +1 -1
  117. package/dist/router/scanner/cron-mounter.d.ts.map +1 -1
  118. package/dist/router/scanner/cron-mounter.js +32 -18
  119. package/dist/router/scanner/cron-mounter.js.map +1 -1
  120. package/dist/router/scanner/functional-compiler.d.ts.map +1 -1
  121. package/dist/router/scanner/functional-compiler.js +55 -156
  122. package/dist/router/scanner/functional-compiler.js.map +1 -1
  123. package/dist/router/send-result.d.ts +24 -0
  124. package/dist/router/send-result.d.ts.map +1 -0
  125. package/dist/router/send-result.js +81 -0
  126. package/dist/router/send-result.js.map +1 -0
  127. package/dist/server/app.d.ts +5 -0
  128. package/dist/server/app.d.ts.map +1 -1
  129. package/dist/server/app.js +48 -6
  130. package/dist/server/app.js.map +1 -1
  131. package/dist/server/engines/node-engine.d.ts.map +1 -1
  132. package/dist/server/engines/node-engine.js +6 -1
  133. package/dist/server/engines/node-engine.js.map +1 -1
  134. package/dist/server/helpers/body-parser.d.ts +1 -1
  135. package/dist/server/helpers/body-parser.d.ts.map +1 -1
  136. package/dist/server/helpers/body-parser.js +9 -7
  137. package/dist/server/helpers/body-parser.js.map +1 -1
  138. package/dist/server/helpers/conditional.d.ts +60 -0
  139. package/dist/server/helpers/conditional.d.ts.map +1 -0
  140. package/dist/server/helpers/conditional.js +189 -0
  141. package/dist/server/helpers/conditional.js.map +1 -0
  142. package/dist/server/helpers/etag.d.ts +0 -1
  143. package/dist/server/helpers/etag.d.ts.map +1 -1
  144. package/dist/server/helpers/etag.js +0 -10
  145. package/dist/server/helpers/etag.js.map +1 -1
  146. package/dist/server/helpers/index.d.ts +2 -1
  147. package/dist/server/helpers/index.d.ts.map +1 -1
  148. package/dist/server/helpers/index.js +16 -2
  149. package/dist/server/helpers/index.js.map +1 -1
  150. package/dist/server/request-handler.d.ts +2 -0
  151. package/dist/server/request-handler.d.ts.map +1 -1
  152. package/dist/server/request-handler.js +23 -4
  153. package/dist/server/request-handler.js.map +1 -1
  154. package/dist/server/request.d.ts +19 -4
  155. package/dist/server/request.d.ts.map +1 -1
  156. package/dist/server/request.js +60 -84
  157. package/dist/server/request.js.map +1 -1
  158. package/dist/server/response.d.ts +45 -2
  159. package/dist/server/response.d.ts.map +1 -1
  160. package/dist/server/response.js +157 -70
  161. package/dist/server/response.js.map +1 -1
  162. package/dist/swagger/mounter.d.ts.map +1 -1
  163. package/dist/swagger/mounter.js +2 -0
  164. package/dist/swagger/mounter.js.map +1 -1
  165. package/dist/testing/client.d.ts +32 -0
  166. package/dist/testing/client.d.ts.map +1 -1
  167. package/dist/testing/client.js +69 -0
  168. package/dist/testing/client.js.map +1 -1
  169. package/dist/testing/index.d.ts +10 -2
  170. package/dist/testing/index.d.ts.map +1 -1
  171. package/dist/testing/index.js +7 -2
  172. package/dist/testing/index.js.map +1 -1
  173. package/dist/validator/builder.d.ts +33 -16
  174. package/dist/validator/builder.d.ts.map +1 -1
  175. package/dist/validator/builder.js +11 -17
  176. package/dist/validator/builder.js.map +1 -1
  177. package/dist/validator/engine.d.ts +28 -1
  178. package/dist/validator/engine.d.ts.map +1 -1
  179. package/dist/validator/engine.js +212 -124
  180. package/dist/validator/engine.js.map +1 -1
  181. package/dist/validator/error.d.ts +4 -0
  182. package/dist/validator/error.d.ts.map +1 -1
  183. package/dist/validator/error.js +20 -4
  184. package/dist/validator/error.js.map +1 -1
  185. package/dist/validator/index.d.ts +12 -1
  186. package/dist/validator/index.d.ts.map +1 -1
  187. package/dist/validator/index.js.map +1 -1
  188. package/dist/validator/tex-types.d.ts +29 -2
  189. package/dist/validator/tex-types.d.ts.map +1 -1
  190. package/package.json +3 -5
@@ -2,6 +2,7 @@ import { ServerResponse } from 'node:http';
2
2
  import type { CookieOptions, Request as IRequest } from '../types';
3
3
  import { SSEStream, type SSEOptions } from './sse';
4
4
  import type { DownloadOptions } from './download';
5
+ import { type Validators } from './helpers/conditional';
5
6
  export declare class ExisResponse<TResponse = any> {
6
7
  raw: ServerResponse;
7
8
  req?: IRequest;
@@ -9,8 +10,9 @@ export declare class ExisResponse<TResponse = any> {
9
10
  _onFinish: (() => void)[];
10
11
  _serializer?: (data: unknown) => string;
11
12
  _onDone?: () => void;
13
+ /** Set while a stream or file is being sent asynchronously */
14
+ _pending: boolean;
12
15
  constructor(raw: ServerResponse);
13
- init(raw: ServerResponse): this;
14
16
  get headersSent(): boolean;
15
17
  get isWritable(): boolean;
16
18
  get statusCode(): number;
@@ -20,7 +22,48 @@ export declare class ExisResponse<TResponse = any> {
20
22
  setHeader(name: string, value: string | number | readonly string[]): void;
21
23
  hasHeader(name: string): boolean;
22
24
  end(data?: unknown): void;
23
- private _isNotModified;
25
+ private _isCacheableRead;
26
+ /**
27
+ * Content-Length, automatic ETag and conditional GET for a finished body.
28
+ * Shared by send() and json().
29
+ */
30
+ private _sendBody;
31
+ private _sendNotModified;
32
+ private _sendPreconditionFailed;
33
+ /**
34
+ * Checks the request's conditional headers against the current state of
35
+ * the resource (RFC 9110 §13), before a handler reads or changes it.
36
+ *
37
+ * - **Reads (GET/HEAD):** sets `ETag` / `Last-Modified`, and answers
38
+ * `304 Not Modified` when the client's copy is current. Returns `true`
39
+ * when it answered, so the handler can stop.
40
+ * - **Writes (PUT/PATCH/DELETE/POST):** throws `412 Precondition Failed`
41
+ * when `If-Match` / `If-Unmodified-Since` no longer match (another
42
+ * client changed the resource), or when `If-None-Match: *` targets a
43
+ * resource that exists. With `{ required: true }`, a write without any
44
+ * precondition is refused with `428 Precondition Required`.
45
+ *
46
+ * @param validators The resource's current `etag` (quoted or not),
47
+ * `lastModified`, and `exists: false` when it does not exist yet
48
+ *
49
+ * @example
50
+ * ```ts
51
+ * // GET: revalidate cheaply from a version column
52
+ * const user = await users.find(id)
53
+ * if (res.checkPreconditions({ etag: `v${user.version}`, lastModified: user.updatedAt })) return
54
+ * return user
55
+ *
56
+ * // PUT: refuse lost updates
57
+ * const current = await users.find(id)
58
+ * res.checkPreconditions({ etag: `v${current.version}` }, { required: true })
59
+ * const updated = await users.update(id, body)
60
+ * res.setHeader('ETag', `"v${updated.version}"`)
61
+ * return updated
62
+ * ```
63
+ */
64
+ checkPreconditions(validators: Validators, options?: {
65
+ required?: boolean;
66
+ }): boolean;
24
67
  private _markDone;
25
68
  /**
26
69
  * Sets the HTTP response status code.
@@ -1 +1 @@
1
- {"version":3,"file":"response.d.ts","sourceRoot":"","sources":["../../src/server/response.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"response.d.ts","sourceRoot":"","sources":["../../src/server/response.ts"],"names":[],"mappings":"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"}
@@ -9,6 +9,8 @@ const node_path_1 = __importDefault(require("node:path"));
9
9
  const index_1 = require("../logger/index");
10
10
  const sse_1 = require("./sse");
11
11
  const helpers_1 = require("./helpers");
12
+ const conditional_1 = require("./helpers/conditional");
13
+ const errors_1 = require("../error/errors");
12
14
  // eslint-disable-next-line @typescript-eslint/no-require-imports
13
15
  const contentDispositionLib = require('content-disposition');
14
16
  // v2 exports { create }; v1 exported the function itself
@@ -22,15 +24,8 @@ class ExisResponse {
22
24
  this.raw = raw;
23
25
  this.etagEnabled = false;
24
26
  this._onFinish = [];
25
- }
26
- init(raw) {
27
- this.raw = raw;
28
- this.req = undefined;
29
- this.etagEnabled = false;
30
- this._onFinish.length = 0;
31
- this._serializer = undefined;
32
- this._onDone = undefined;
33
- return this;
27
+ /** Set while a stream or file is being sent asynchronously */
28
+ this._pending = false;
34
29
  }
35
30
  get headersSent() {
36
31
  return this.raw.headersSent;
@@ -84,19 +79,137 @@ class ExisResponse {
84
79
  this._markDone();
85
80
  });
86
81
  }
87
- // 304 only applies to conditional requests; check the cheap request
88
- // headers first so ordinary responses skip two hasHeader() calls
89
- _isNotModified() {
90
- const req = this.req;
91
- if (req === undefined)
92
- return false;
93
- const h = req.headers;
94
- if (h === undefined ||
95
- (h['if-none-match'] === undefined && h['if-modified-since'] === undefined)) {
96
- return false;
82
+ // Whether this response is a successful read, the only kind that gets an
83
+ // automatic ETag and is revalidated after the handler ran. Unsafe methods
84
+ // check preconditions before acting, with checkPreconditions().
85
+ _isCacheableRead() {
86
+ const method = this.req?.method;
87
+ const s = this.raw.statusCode;
88
+ return (method === 'GET' || method === 'HEAD') && s >= 200 && s < 300;
89
+ }
90
+ /**
91
+ * Content-Length, automatic ETag and conditional GET for a finished body.
92
+ * Shared by send() and json().
93
+ */
94
+ _sendBody(body) {
95
+ const length = typeof body === 'string' ? Buffer.byteLength(body) : body.length;
96
+ const read = this._isCacheableRead();
97
+ if (read && this.etagEnabled && !this.raw.hasHeader('ETag')) {
98
+ this.raw.setHeader('ETag', (0, conditional_1.generateETag)(body, length));
99
+ }
100
+ // The request headers are the cheap check; most requests stop here
101
+ if (read && this.req !== undefined && (0, conditional_1.hasPreconditions)(this.req.headers)) {
102
+ const etag = this.raw.getHeader('ETag');
103
+ const lastModified = this.raw.getHeader('Last-Modified');
104
+ if (etag !== undefined || lastModified !== undefined) {
105
+ const outcome = (0, conditional_1.evaluatePreconditions)(this.req.method, this.req.headers, {
106
+ etag: etag === undefined ? undefined : String(etag),
107
+ lastModified: lastModified === undefined
108
+ ? undefined
109
+ : (0, conditional_1.toHttpTime)(String(lastModified)),
110
+ });
111
+ if (outcome === 'not-modified')
112
+ return this._sendNotModified();
113
+ if (outcome === 'failed')
114
+ return this._sendPreconditionFailed();
115
+ }
97
116
  }
98
- return ((this.raw.hasHeader('ETag') || this.raw.hasHeader('Last-Modified')) &&
99
- req.fresh);
117
+ if (!this.raw.hasHeader('Content-Length')) {
118
+ this.raw.setHeader('Content-Length', length);
119
+ }
120
+ this.end(body);
121
+ }
122
+ // 304 carries the validators and caching headers of the 200 it stands
123
+ // for, but no content and no content metadata (RFC 9110 §15.4.5)
124
+ _sendNotModified() {
125
+ this.raw.statusCode = 304;
126
+ this.raw.removeHeader('Content-Type');
127
+ this.raw.removeHeader('Content-Length');
128
+ this.raw.removeHeader('Content-Encoding');
129
+ this.raw.removeHeader('Transfer-Encoding');
130
+ this.end();
131
+ }
132
+ _sendPreconditionFailed() {
133
+ const body = JSON.stringify(new errors_1.HttpError('Precondition failed: the resource has changed', 412, 'PRECONDITION_FAILED').toJSON());
134
+ this.raw.statusCode = 412;
135
+ this.raw.removeHeader('ETag');
136
+ this.raw.removeHeader('Last-Modified');
137
+ this.raw.setHeader('Content-Type', 'application/json; charset=utf-8');
138
+ this.raw.setHeader('Content-Length', Buffer.byteLength(body));
139
+ this.end(body);
140
+ }
141
+ /**
142
+ * Checks the request's conditional headers against the current state of
143
+ * the resource (RFC 9110 §13), before a handler reads or changes it.
144
+ *
145
+ * - **Reads (GET/HEAD):** sets `ETag` / `Last-Modified`, and answers
146
+ * `304 Not Modified` when the client's copy is current. Returns `true`
147
+ * when it answered, so the handler can stop.
148
+ * - **Writes (PUT/PATCH/DELETE/POST):** throws `412 Precondition Failed`
149
+ * when `If-Match` / `If-Unmodified-Since` no longer match (another
150
+ * client changed the resource), or when `If-None-Match: *` targets a
151
+ * resource that exists. With `{ required: true }`, a write without any
152
+ * precondition is refused with `428 Precondition Required`.
153
+ *
154
+ * @param validators The resource's current `etag` (quoted or not),
155
+ * `lastModified`, and `exists: false` when it does not exist yet
156
+ *
157
+ * @example
158
+ * ```ts
159
+ * // GET: revalidate cheaply from a version column
160
+ * const user = await users.find(id)
161
+ * if (res.checkPreconditions({ etag: `v${user.version}`, lastModified: user.updatedAt })) return
162
+ * return user
163
+ *
164
+ * // PUT: refuse lost updates
165
+ * const current = await users.find(id)
166
+ * res.checkPreconditions({ etag: `v${current.version}` }, { required: true })
167
+ * const updated = await users.update(id, body)
168
+ * res.setHeader('ETag', `"v${updated.version}"`)
169
+ * return updated
170
+ * ```
171
+ */
172
+ checkPreconditions(validators, options = {}) {
173
+ const method = this.req?.method ?? 'GET';
174
+ const headers = this.req?.headers ?? {};
175
+ const isRead = method === 'GET' || method === 'HEAD';
176
+ const etag = validators.etag === undefined ? undefined : (0, conditional_1.formatETag)(validators.etag);
177
+ const time = validators.lastModified === undefined
178
+ ? undefined
179
+ : (0, conditional_1.toHttpTime)(validators.lastModified);
180
+ // A Last-Modified in the future would make clients cache wrongly
181
+ const lastModified = time === undefined
182
+ ? undefined
183
+ : Math.min(time, Math.floor(Date.now() / 1000) * 1000);
184
+ if (options.required &&
185
+ !isRead &&
186
+ headers['if-match'] === undefined &&
187
+ headers['if-unmodified-since'] === undefined &&
188
+ headers['if-none-match'] === undefined) {
189
+ throw new errors_1.HttpError('This request must be conditional: send If-Match with the ETag you last received', 428, 'PRECONDITION_REQUIRED');
190
+ }
191
+ const outcome = (0, conditional_1.evaluatePreconditions)(method, headers, {
192
+ etag,
193
+ lastModified,
194
+ exists: validators.exists,
195
+ });
196
+ if (outcome === 'failed') {
197
+ throw new errors_1.HttpError('Precondition failed: the resource has changed', 412, 'PRECONDITION_FAILED');
198
+ }
199
+ // On a write the response describes the new state, so the old
200
+ // validators are not sent; set the new ETag after the change
201
+ if (isRead && validators.exists !== false) {
202
+ if (etag !== undefined)
203
+ this.setHeader('ETag', etag);
204
+ if (lastModified !== undefined) {
205
+ this.setHeader('Last-Modified', new Date(lastModified).toUTCString());
206
+ }
207
+ }
208
+ if (outcome === 'not-modified') {
209
+ this._sendNotModified();
210
+ return true;
211
+ }
212
+ return false;
100
213
  }
101
214
  _markDone() {
102
215
  const cb = this._onDone;
@@ -191,24 +304,7 @@ class ExisResponse {
191
304
  if (!this.raw.hasHeader('Content-Type')) {
192
305
  this.raw.setHeader('Content-Type', isBuffer ? 'application/octet-stream' : 'text/plain; charset=utf-8');
193
306
  }
194
- if (this.etagEnabled && !this.raw.hasHeader('ETag')) {
195
- const buf = isBuffer
196
- ? body
197
- : Buffer.from(body, 'utf8');
198
- this.raw.setHeader('ETag', (0, helpers_1.generateETag)(buf));
199
- }
200
- if (this._isNotModified()) {
201
- this.statusCode = 304;
202
- this.end();
203
- return;
204
- }
205
- if (!this.raw.hasHeader('Content-Length')) {
206
- const len = isBuffer
207
- ? body.length
208
- : Buffer.byteLength(body);
209
- this.raw.setHeader('Content-Length', len);
210
- }
211
- this.end(body);
307
+ this._sendBody(body);
212
308
  }
213
309
  /**
214
310
  * Sends a JSON response with automatic native serialization and fast ETag support.
@@ -258,24 +354,7 @@ class ExisResponse {
258
354
  if (!this.raw.hasHeader('Content-Type')) {
259
355
  this.raw.setHeader('Content-Type', 'application/json; charset=utf-8');
260
356
  }
261
- if (!this.raw.hasHeader('Content-Length')) {
262
- const len = Buffer.isBuffer(payload)
263
- ? payload.length
264
- : Buffer.byteLength(payload);
265
- this.raw.setHeader('Content-Length', len);
266
- }
267
- if (this.etagEnabled && !this.raw.hasHeader('ETag')) {
268
- const buf = Buffer.isBuffer(payload)
269
- ? payload
270
- : Buffer.from(payload, 'utf8');
271
- this.raw.setHeader('ETag', (0, helpers_1.generateETag)(buf));
272
- }
273
- if (this._isNotModified()) {
274
- this.statusCode = 304;
275
- this.end();
276
- return;
277
- }
278
- this.end(payload);
357
+ this._sendBody(payload);
279
358
  }
280
359
  /**
281
360
  * Sends an HTML response with `Content-Type: text/html; charset=utf-8`.
@@ -293,7 +372,8 @@ class ExisResponse {
293
372
  if (!this.hasHeader('Content-Type')) {
294
373
  this.setHeader('Content-Type', 'text/html; charset=utf-8');
295
374
  }
296
- this.end(content);
375
+ // send() adds Content-Length, ETag and 304 handling
376
+ this.send(content);
297
377
  }
298
378
  /**
299
379
  * Performs an HTTP redirect to a given URL with an optional status code (defaults to 302).
@@ -326,6 +406,7 @@ class ExisResponse {
326
406
  * ```
327
407
  */
328
408
  sendStream(readable) {
409
+ this._pending = true;
329
410
  (0, helpers_1.streamToResponse)(this.raw, readable, this.isWritable, this.headersSent, (name) => this.hasHeader(name), (name, val) => this.setHeader(name, val), (code) => {
330
411
  this.statusCode = code;
331
412
  }, (data) => this.end(data), this.req);
@@ -483,6 +564,7 @@ class ExisResponse {
483
564
  return;
484
565
  this.status(404).json({
485
566
  success: false,
567
+ statusCode: 404,
486
568
  error: { code: 'NOT_FOUND', message: 'File not found' },
487
569
  });
488
570
  };
@@ -497,13 +579,28 @@ class ExisResponse {
497
579
  }
498
580
  // Headers are only set once the file is known to exist, so a 404 does
499
581
  // not carry attachment headers
582
+ this._pending = true;
500
583
  node_fs_1.default.stat(full, (err, stat) => {
501
584
  if (err || !stat.isFile()) {
585
+ this._pending = false;
502
586
  notFound();
503
587
  return;
504
588
  }
505
589
  if (!this.isWritable)
506
590
  return;
591
+ try {
592
+ const validators = {
593
+ etag: (0, conditional_1.fileETag)(stat.size, stat.mtimeMs),
594
+ lastModified: stat.mtime,
595
+ };
596
+ if (this.checkPreconditions(validators))
597
+ return;
598
+ }
599
+ catch {
600
+ // Only a failed If-Match / If-Unmodified-Since throws here
601
+ this._sendPreconditionFailed();
602
+ return;
603
+ }
507
604
  this._setDownloadHeaders(filename || node_path_1.default.basename(full), options);
508
605
  this.setHeader('Content-Length', stat.size);
509
606
  this.sendStream(node_fs_1.default.createReadStream(full));
@@ -574,12 +671,7 @@ class ExisResponse {
574
671
  * ```
575
672
  */
576
673
  cookie(name, value, options = {}) {
577
- const serialized = (0, helpers_1.serializeCookie)(name, value, options);
578
- this.append('Set-Cookie', serialized);
579
- if (process.env.NODE_ENV === 'development') {
580
- this.append('X-Set-Cookie', serialized);
581
- }
582
- return this;
674
+ return this.append('Set-Cookie', (0, helpers_1.serializeCookie)(name, value, options));
583
675
  }
584
676
  /**
585
677
  * Clears a cookie by setting its expiration to the past.
@@ -593,12 +685,7 @@ class ExisResponse {
593
685
  * ```
594
686
  */
595
687
  clearCookie(name, options = {}) {
596
- const serialized = (0, helpers_1.serializeClearCookie)(name, options);
597
- this.append('Set-Cookie', serialized);
598
- if (process.env.NODE_ENV === 'development') {
599
- this.append('X-Set-Cookie', serialized);
600
- }
601
- return this;
688
+ return this.append('Set-Cookie', (0, helpers_1.serializeClearCookie)(name, options));
602
689
  }
603
690
  }
604
691
  exports.ExisResponse = ExisResponse;
@@ -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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"}
@@ -1 +1 @@
1
- {"version":3,"file":"mounter.d.ts","sourceRoot":"","sources":["../../src/swagger/mounter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,eAAe,CAAA;AACxC,OAAO,KAAK,EAAE,aAAa,EAAe,MAAM,SAAS,CAAA;AAIzD;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,EACb,OAAO,GAAE,aAAkB,GAC1B,IAAI,CAyDN"}
1
+ {"version":3,"file":"mounter.d.ts","sourceRoot":"","sources":["../../src/swagger/mounter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,eAAe,CAAA;AACxC,OAAO,KAAK,EAAE,aAAa,EAAe,MAAM,SAAS,CAAA;AAIzD;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,EACb,OAAO,GAAE,aAAkB,GAC1B,IAAI,CA8DN"}
@@ -46,6 +46,8 @@ function mountDocumentation(app, options = {}) {
46
46
  // Interactive HTML Documentation UI Endpoints
47
47
  const htmlHandler = (_req, res) => {
48
48
  res.setHeader('Content-Type', 'text/html; charset=utf-8');
49
+ // The UI is loaded from jsDelivr and configured by an inline script
50
+ res.setHeader('Content-Security-Policy', "default-src 'self'; script-src 'self' 'unsafe-inline' https://cdn.jsdelivr.net; style-src 'self' 'unsafe-inline' https://cdn.jsdelivr.net; img-src 'self' data: https:; font-src 'self' data: https://cdn.jsdelivr.net; connect-src 'self'; frame-ancestors 'none'; object-src 'none'");
49
51
  return res.send(getHtml());
50
52
  };
51
53
  app.get(docsPath || '/', { excludeFromDocs: true }, htmlHandler);
@@ -1 +1 @@
1
- {"version":3,"file":"mounter.js","sourceRoot":"","sources":["../../src/swagger/mounter.ts"],"names":[],"mappings":";;AAQA,gDA4DC;AAlED,2CAAiD;AACjD,6BAA8C;AAE9C;;GAEG;AACH,SAAgB,kBAAkB,CAChC,GAAa,EACb,UAAyB,EAAE;IAE3B,MAAM,QAAQ,GAAG,CAAC,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;IAC9D,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,GAAG,QAAQ,OAAO,CAAA;IACvD,MAAM,cAAc,GAAkB;QACpC,GAAG,OAAO;QACV,IAAI,EAAE,QAAQ;QACd,QAAQ;KACT,CAAA;IAED,IAAI,UAAU,GAAkB,IAAI,CAAA;IACpC,IAAI,UAAU,GAAuB,IAAI,CAAA;IAEzC,MAAM,OAAO,GAAG,GAAW,EAAE;QAC3B,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,UAAU,GAAG,IAAA,4BAAuB,EAAC,cAAc,CAAC,CAAA;QACtD,CAAC;QACD,OAAO,UAAU,CAAA;IACnB,CAAC,CAAA;IAED,MAAM,OAAO,GAAG,GAAgB,EAAE;QAChC,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,MAAM,MAAM,GAAG,GAAG,CAAC,SAAS,EAAE,CAAC,SAAS,EAAE,IAAI,EAAE,CAAA;YAChD,UAAU,GAAG,IAAA,+BAAmB,EAAC,MAAM,EAAE,cAAc,CAAC,CAAA;QAC1D,CAAC;QACD,OAAO,UAAU,CAAA;IACnB,CAAC,CAAA;IAED,4CAA4C;IAC5C,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,eAAe,EAAE,IAAI,EAAS,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;QAChE,MAAM,IAAI,GAAG,OAAO,EAAE,CAAA;QACtB,GAAG,CAAC,SAAS,CAAC,cAAc,EAAE,iCAAiC,CAAC,CAAA;QAChE,OAAO,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAA;IACvC,CAAC,CAAC,CAAA;IAEF,4CAA4C;IAC5C,IAAI,QAAQ,KAAK,GAAG,QAAQ,eAAe,EAAE,CAAC;QAC5C,GAAG,CAAC,GAAG,CACL,GAAG,QAAQ,eAAe,EAC1B,EAAE,eAAe,EAAE,IAAI,EAAS,EAChC,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;YACZ,MAAM,IAAI,GAAG,OAAO,EAAE,CAAA;YACtB,GAAG,CAAC,SAAS,CAAC,cAAc,EAAE,iCAAiC,CAAC,CAAA;YAChE,OAAO,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAA;QACvC,CAAC,CACF,CAAA;IACH,CAAC;IAED,8CAA8C;IAC9C,MAAM,WAAW,GAAG,CAAC,IAAS,EAAE,GAAQ,EAAE,EAAE;QAC1C,GAAG,CAAC,SAAS,CAAC,cAAc,EAAE,0BAA0B,CAAC,CAAA;QACzD,OAAO,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAA;IAC5B,CAAC,CAAA;IAED,GAAG,CAAC,GAAG,CAAC,QAAQ,IAAI,GAAG,EAAE,EAAE,eAAe,EAAE,IAAI,EAAS,EAAE,WAAW,CAAC,CAAA;IACvE,IAAI,QAAQ,EAAE,CAAC;QACb,GAAG,CAAC,GAAG,CAAC,GAAG,QAAQ,GAAG,EAAE,EAAE,eAAe,EAAE,IAAI,EAAS,EAAE,WAAW,CAAC,CAAA;IACxE,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"mounter.js","sourceRoot":"","sources":["../../src/swagger/mounter.ts"],"names":[],"mappings":";;AAQA,gDAiEC;AAvED,2CAAiD;AACjD,6BAA8C;AAE9C;;GAEG;AACH,SAAgB,kBAAkB,CAChC,GAAa,EACb,UAAyB,EAAE;IAE3B,MAAM,QAAQ,GAAG,CAAC,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;IAC9D,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,GAAG,QAAQ,OAAO,CAAA;IACvD,MAAM,cAAc,GAAkB;QACpC,GAAG,OAAO;QACV,IAAI,EAAE,QAAQ;QACd,QAAQ;KACT,CAAA;IAED,IAAI,UAAU,GAAkB,IAAI,CAAA;IACpC,IAAI,UAAU,GAAuB,IAAI,CAAA;IAEzC,MAAM,OAAO,GAAG,GAAW,EAAE;QAC3B,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,UAAU,GAAG,IAAA,4BAAuB,EAAC,cAAc,CAAC,CAAA;QACtD,CAAC;QACD,OAAO,UAAU,CAAA;IACnB,CAAC,CAAA;IAED,MAAM,OAAO,GAAG,GAAgB,EAAE;QAChC,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,MAAM,MAAM,GAAG,GAAG,CAAC,SAAS,EAAE,CAAC,SAAS,EAAE,IAAI,EAAE,CAAA;YAChD,UAAU,GAAG,IAAA,+BAAmB,EAAC,MAAM,EAAE,cAAc,CAAC,CAAA;QAC1D,CAAC;QACD,OAAO,UAAU,CAAA;IACnB,CAAC,CAAA;IAED,4CAA4C;IAC5C,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,eAAe,EAAE,IAAI,EAAS,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;QAChE,MAAM,IAAI,GAAG,OAAO,EAAE,CAAA;QACtB,GAAG,CAAC,SAAS,CAAC,cAAc,EAAE,iCAAiC,CAAC,CAAA;QAChE,OAAO,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAA;IACvC,CAAC,CAAC,CAAA;IAEF,4CAA4C;IAC5C,IAAI,QAAQ,KAAK,GAAG,QAAQ,eAAe,EAAE,CAAC;QAC5C,GAAG,CAAC,GAAG,CACL,GAAG,QAAQ,eAAe,EAC1B,EAAE,eAAe,EAAE,IAAI,EAAS,EAChC,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;YACZ,MAAM,IAAI,GAAG,OAAO,EAAE,CAAA;YACtB,GAAG,CAAC,SAAS,CAAC,cAAc,EAAE,iCAAiC,CAAC,CAAA;YAChE,OAAO,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAA;QACvC,CAAC,CACF,CAAA;IACH,CAAC;IAED,8CAA8C;IAC9C,MAAM,WAAW,GAAG,CAAC,IAAS,EAAE,GAAQ,EAAE,EAAE;QAC1C,GAAG,CAAC,SAAS,CAAC,cAAc,EAAE,0BAA0B,CAAC,CAAA;QACzD,oEAAoE;QACpE,GAAG,CAAC,SAAS,CACX,yBAAyB,EACzB,uRAAuR,CACxR,CAAA;QACD,OAAO,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAA;IAC5B,CAAC,CAAA;IAED,GAAG,CAAC,GAAG,CAAC,QAAQ,IAAI,GAAG,EAAE,EAAE,eAAe,EAAE,IAAI,EAAS,EAAE,WAAW,CAAC,CAAA;IACvE,IAAI,QAAQ,EAAE,CAAC;QACb,GAAG,CAAC,GAAG,CAAC,GAAG,QAAQ,GAAG,EAAE,EAAE,eAAe,EAAE,IAAI,EAAS,EAAE,WAAW,CAAC,CAAA;IACxE,CAAC;AACH,CAAC"}
@@ -18,8 +18,17 @@ export declare class TestRequest {
18
18
  private _expectedStatus?;
19
19
  private _expectedHeaders;
20
20
  private _expectedBody?;
21
+ private _timeoutMs;
21
22
  constructor(app: App | ExisAppDefinition, method: string, path: string);
22
23
  send(body: unknown): this;
24
+ /** Adds query-string parameters: `.query({ page: 2, tags: ['a', 'b'] })` */
25
+ query(params: Record<string, string | number | boolean | (string | number)[]>): this;
26
+ /**
27
+ * Fails the request after `ms` (default 5000, or `EXIS_TEST_TIMEOUT`),
28
+ * so a handler that never answers fails its test instead of hanging the run.
29
+ * `0` waits forever.
30
+ */
31
+ timeout(ms: number): this;
23
32
  set(header: string, value: string): this;
24
33
  expect(status: number): this;
25
34
  expect(header: string, value: string | RegExp): this;
@@ -49,4 +58,27 @@ export interface TestApp {
49
58
  request(method: string, path: string, options?: RequestOptions): TestRequest;
50
59
  }
51
60
  export declare function createTestApp(app: App | ExisAppDefinition | any): TestApp;
61
+ export interface TestServer {
62
+ /** Base URL, e.g. `http://127.0.0.1:53211` */
63
+ url: string;
64
+ port: number;
65
+ /** `fetch` against the running server: `server.request('/health')` */
66
+ request(path: string, init?: RequestInit): Promise<Response>;
67
+ /** Runs graceful shutdown (onClose hooks, database disconnects) */
68
+ close(): Promise<void>;
69
+ }
70
+ /**
71
+ * Starts the app on a free port on 127.0.0.1 and talks to it over real
72
+ * sockets. Use it for what in-memory requests cannot show: CORS and
73
+ * security headers as a browser sees them, keep-alive, malformed HTTP.
74
+ * Set `NODE_ENV=production` before calling it to test production behaviour.
75
+ *
76
+ * @example
77
+ * ```ts
78
+ * const server = await startTestServer(app)
79
+ * const res = await server.request('/health')
80
+ * await server.close()
81
+ * ```
82
+ */
83
+ export declare function startTestServer(source: App | ExisAppDefinition): Promise<TestServer>;
52
84
  //# sourceMappingURL=client.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/testing/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/testing/client.ts"],"names":[],"mappings":"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"}