pipework 0.66.0 → 0.68.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (83) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/REFERENCE.md +89 -2
  3. package/dist/core/config/namespace.d.ts +1 -0
  4. package/dist/core/config/namespace.d.ts.map +1 -1
  5. package/dist/core/config/schema.d.ts +3 -0
  6. package/dist/core/config/schema.d.ts.map +1 -1
  7. package/dist/core/config/schema.js +2 -0
  8. package/dist/core/config/schema.js.map +1 -1
  9. package/dist/data/migrate/internal-definitions.d.ts.map +1 -1
  10. package/dist/data/migrate/internal-definitions.js +4 -0
  11. package/dist/data/migrate/internal-definitions.js.map +1 -1
  12. package/dist/index.d.ts +4 -1
  13. package/dist/index.d.ts.map +1 -1
  14. package/dist/index.js +1 -0
  15. package/dist/index.js.map +1 -1
  16. package/dist/infra/aws/sigv4.d.ts +46 -0
  17. package/dist/infra/aws/sigv4.d.ts.map +1 -0
  18. package/dist/infra/aws/sigv4.js +94 -0
  19. package/dist/infra/aws/sigv4.js.map +1 -0
  20. package/dist/infra/email/index.d.ts +1 -1
  21. package/dist/infra/email/index.d.ts.map +1 -1
  22. package/dist/infra/email/index.js +1 -1
  23. package/dist/infra/email/index.js.map +1 -1
  24. package/dist/infra/email/providers.d.ts +1 -1
  25. package/dist/infra/email/providers.d.ts.map +1 -1
  26. package/dist/infra/email/providers.js +1 -1
  27. package/dist/infra/email/providers.js.map +1 -1
  28. package/dist/infra/storage/backend.d.ts +32 -0
  29. package/dist/infra/storage/backend.d.ts.map +1 -0
  30. package/dist/infra/storage/backend.js +2 -0
  31. package/dist/infra/storage/backend.js.map +1 -0
  32. package/dist/infra/storage/handle.d.ts +110 -0
  33. package/dist/infra/storage/handle.d.ts.map +1 -0
  34. package/dist/infra/storage/handle.js +317 -0
  35. package/dist/infra/storage/handle.js.map +1 -0
  36. package/dist/infra/storage/index.d.ts +8 -0
  37. package/dist/infra/storage/index.d.ts.map +1 -0
  38. package/dist/infra/storage/index.js +4 -0
  39. package/dist/infra/storage/index.js.map +1 -0
  40. package/dist/infra/storage/local.d.ts +16 -0
  41. package/dist/infra/storage/local.d.ts.map +1 -0
  42. package/dist/infra/storage/local.js +95 -0
  43. package/dist/infra/storage/local.js.map +1 -0
  44. package/dist/infra/storage/namespace.d.ts +13 -0
  45. package/dist/infra/storage/namespace.d.ts.map +1 -0
  46. package/dist/infra/storage/namespace.js +13 -0
  47. package/dist/infra/storage/namespace.js.map +1 -0
  48. package/dist/infra/storage/s3.d.ts +34 -0
  49. package/dist/infra/storage/s3.d.ts.map +1 -0
  50. package/dist/infra/storage/s3.js +220 -0
  51. package/dist/infra/storage/s3.js.map +1 -0
  52. package/dist/infra/storage/schema.d.ts +43 -0
  53. package/dist/infra/storage/schema.d.ts.map +1 -0
  54. package/dist/infra/storage/schema.js +23 -0
  55. package/dist/infra/storage/schema.js.map +1 -0
  56. package/dist/request/di/builder.d.ts +28 -1
  57. package/dist/request/di/builder.d.ts.map +1 -1
  58. package/dist/request/di/builder.js +49 -0
  59. package/dist/request/di/builder.js.map +1 -1
  60. package/dist/request/di/index.d.ts +1 -1
  61. package/dist/request/di/index.d.ts.map +1 -1
  62. package/dist/request/di/types.d.ts +8 -0
  63. package/dist/request/di/types.d.ts.map +1 -1
  64. package/dist/request/http/file.d.ts +62 -0
  65. package/dist/request/http/file.d.ts.map +1 -0
  66. package/dist/request/http/file.js +120 -0
  67. package/dist/request/http/file.js.map +1 -0
  68. package/dist/request/http/index.d.ts +1 -0
  69. package/dist/request/http/index.d.ts.map +1 -1
  70. package/dist/request/http/index.js.map +1 -1
  71. package/dist/request/http/namespace.d.ts +5 -2
  72. package/dist/request/http/namespace.d.ts.map +1 -1
  73. package/dist/request/http/namespace.js +3 -2
  74. package/dist/request/http/namespace.js.map +1 -1
  75. package/dist/request/http/server.d.ts.map +1 -1
  76. package/dist/request/http/server.js +49 -3
  77. package/dist/request/http/server.js.map +1 -1
  78. package/dist/request/http/types.d.ts +3 -1
  79. package/dist/request/http/types.d.ts.map +1 -1
  80. package/dist/request/openapi/generate.d.ts.map +1 -1
  81. package/dist/request/openapi/generate.js +7 -1
  82. package/dist/request/openapi/generate.js.map +1 -1
  83. package/package.json +1 -1
@@ -23,6 +23,7 @@ export class Builder {
23
23
  wantsResponse: state?.wantsResponse ?? false,
24
24
  wantsRawBody: state?.wantsRawBody ?? false,
25
25
  upload: state?.upload ?? null,
26
+ file: state?.file ?? null,
26
27
  };
27
28
  }
28
29
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
@@ -174,6 +175,41 @@ export class Builder {
174
175
  upload: config,
175
176
  });
176
177
  }
178
+ /**
179
+ * Declares that this route answers with a file, returned from the handler as
180
+ * `http.file({ body, mediaType, filename? ... })`. `mediaTypes` lists what the
181
+ * route may send (`type/*` wildcards allowed) and `status` (default 200) is the
182
+ * status of the file response. OpenAPI gets `responses.<status>.content.<type>`
183
+ * as `{ type: 'string', format: 'binary' }` for each media type.
184
+ *
185
+ * A route declared with `.file()` must return `http.file(...)`: anything else,
186
+ * or a file whose `mediaType` is outside `mediaTypes`, is a 500 with the reason
187
+ * in the body. A Buffer is sent whole with Content-Length; a Readable is
188
+ * streamed (add `length` for Content-Length, else it is chunked). Content-
189
+ * Disposition carries an ASCII `filename=` fallback and the exact name in
190
+ * `filename*`, and the response sets `X-Content-Type-Options: nosniff`.
191
+ *
192
+ * The request transaction (auto mode) has committed before the body streams,
193
+ * so the stream must not need it. A stream that fails after the first byte
194
+ * destroys the connection and logs the error. Range requests and redirects are
195
+ * not supported.
196
+ *
197
+ * Cannot be combined with `.output()` for the same status, or with `.job()`;
198
+ * `fit()` throws.
199
+ */
200
+ file(config) {
201
+ if (config.mediaTypes.length === 0) {
202
+ throw new Error('[pipework] .file() needs at least one entry in mediaTypes (e.g. ["application/pdf"] or ["image/*"]).');
203
+ }
204
+ const status = config.status ?? 200;
205
+ if (!Number.isInteger(status) || status < 200 || status > 599) {
206
+ throw new Error(`[pipework] .file() status must be an HTTP status code, got ${String(config.status)}.`);
207
+ }
208
+ return new Builder({
209
+ ...this.state,
210
+ file: { mediaTypes: [...config.mediaTypes], status },
211
+ });
212
+ }
177
213
  fixture(name, operations) {
178
214
  const dbName = this.state.databases[0];
179
215
  if (dbName === undefined) {
@@ -201,6 +237,18 @@ export class Builder {
201
237
  ' Remove ' + what + (what === '.job()' ? ': a job has no request body to stream.' : ', or take the text fields from a multipart form (`fields`).') + '\n');
202
238
  }
203
239
  }
240
+ if (this.state.file !== null) {
241
+ if (this.state.isJob) {
242
+ throw new Error('[pipework] .file() cannot be combined with .job().\n\n' +
243
+ ' A file response is sent to an HTTP client; a job has no response to send.\n' +
244
+ ' Remove .file(), or remove .job().\n');
245
+ }
246
+ if (this.state.outputSchemas.has(this.state.file.status)) {
247
+ throw new Error(`[pipework] .file() and .output(${this.state.file.status}, ...) both declare the ${this.state.file.status} response.\n\n` +
248
+ ' A route answers each status with one body: a file or a JSON schema.\n' +
249
+ ' Remove .output() for that status, or give .file({ status }) another one.\n');
250
+ }
251
+ }
204
252
  const meta = {
205
253
  databases: this.state.databases,
206
254
  requiresAuth: this.state.requiresAuth,
@@ -220,6 +268,7 @@ export class Builder {
220
268
  wantsResponse: this.state.wantsResponse,
221
269
  wantsRawBody: this.state.wantsRawBody,
222
270
  upload: this.state.upload,
271
+ file: this.state.file,
223
272
  };
224
273
  return {
225
274
  async execute(deps) {
@@ -1 +1 @@
1
- {"version":3,"file":"builder.js","sourceRoot":"","sources":["../../../src/request/di/builder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"builder.js","sourceRoot":"","sources":["../../../src/request/di/builder.ts"],"names":[],"mappings":"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"}
@@ -2,5 +2,5 @@ export declare const fitting: import("./builder.js").Builder<Record<never, never
2
2
  export { createBuilder, Builder } from './builder.js';
3
3
  export { resolveAndExecute, type ResolveOptions } from './resolve.js';
4
4
  export { DEFAULT_DB } from './types.js';
5
- export type { Handler, HandlerMeta, RouteMeta, HttpMethod, InferDeps, InferReturn, DatabaseDeps, JobTransactionMode, Checkpoint, UploadConfig, BinaryUploadConfig, MultipartUploadConfig, BinaryUpload, MultipartUpload } from './types.js';
5
+ export type { Handler, HandlerMeta, RouteMeta, HttpMethod, InferDeps, InferReturn, DatabaseDeps, JobTransactionMode, Checkpoint, UploadConfig, BinaryUploadConfig, MultipartUploadConfig, BinaryUpload, MultipartUpload, FileConfig } from './types.js';
6
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/request/di/index.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,OAAO,yHAAkB,CAAA;AAEtC,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACrD,OAAO,EAAE,iBAAiB,EAAE,KAAK,cAAc,EAAE,MAAM,cAAc,CAAA;AACrE,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AACvC,YAAY,EAAE,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,kBAAkB,EAAE,UAAU,EAAE,YAAY,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/request/di/index.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,OAAO,yHAAkB,CAAA;AAEtC,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACrD,OAAO,EAAE,iBAAiB,EAAE,KAAK,cAAc,EAAE,MAAM,cAAc,CAAA;AACrE,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AACvC,YAAY,EAAE,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,kBAAkB,EAAE,UAAU,EAAE,YAAY,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,YAAY,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA"}
@@ -59,6 +59,14 @@ export interface HandlerMeta {
59
59
  readonly wantsResponse: boolean;
60
60
  readonly wantsRawBody: boolean;
61
61
  readonly upload?: UploadConfig | null;
62
+ readonly file?: FileConfig | null;
63
+ }
64
+ /** A route's file response, declared by `.file()`. */
65
+ export interface FileConfig {
66
+ /** Media types the route may answer with; `type/*` wildcards allowed. */
67
+ readonly mediaTypes: readonly string[];
68
+ /** Status of the file response (default 200). */
69
+ readonly status: number;
62
70
  }
63
71
  /** Upload whose whole request body is the file's bytes. */
64
72
  export interface BinaryUploadConfig {
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/request/di/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/request/di/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,62 @@
1
+ import { Readable } from 'node:stream';
2
+ import type { FileConfig } from '../di/types.js';
3
+ declare const FILE_RESPONSE: unique symbol;
4
+ /** What `http.file()` takes. */
5
+ export interface FileResponseInit {
6
+ /** The bytes, or a stream that is read as it is sent. */
7
+ readonly body: Buffer | Uint8Array | Readable;
8
+ /** Content-Type of the response, e.g. `application/pdf`. */
9
+ readonly mediaType: string;
10
+ /** Name the browser saves the file under. Any characters; the header is escaped. */
11
+ readonly filename?: string;
12
+ /** `'attachment'` (default) downloads; `'inline'` lets the browser display it. */
13
+ readonly disposition?: 'attachment' | 'inline';
14
+ /** Byte length of a stream body, sent as Content-Length. Ignored for a Buffer, whose length is known. */
15
+ readonly length?: number;
16
+ }
17
+ /**
18
+ * A file for a route to answer with, made by `http.file()`. Return it from a
19
+ * handler declared with `.file()`; it is sent as the response body, streamed
20
+ * when `body` is a Readable.
21
+ */
22
+ export interface FileResponse {
23
+ readonly [FILE_RESPONSE]: true;
24
+ readonly body: Buffer | Readable;
25
+ readonly mediaType: string;
26
+ readonly filename: string | undefined;
27
+ readonly disposition: 'attachment' | 'inline';
28
+ readonly length: number | undefined;
29
+ }
30
+ /**
31
+ * Builds the value a handler returns to answer with a file: `body` (Buffer,
32
+ * Uint8Array or Readable), `mediaType`, and optionally `filename`,
33
+ * `disposition` (`'attachment'` default, or `'inline'`) and `length` (the byte
34
+ * length of a stream, sent as Content-Length; without it a stream is sent
35
+ * chunked).
36
+ *
37
+ * Declare the route with `.file({ mediaTypes })` so OpenAPI describes it. The
38
+ * response carries Content-Type, Content-Length (Buffer, or stream with
39
+ * `length`), Content-Disposition with an ASCII `filename=` fallback and the
40
+ * exact name in `filename*=UTF-8''...`, and `X-Content-Type-Options: nosniff`.
41
+ *
42
+ * The request transaction (auto mode) has committed before the first byte is
43
+ * sent, so a stream must not need it. A stream that fails before its first
44
+ * byte gets a 500; one that fails after destroys the connection and logs the
45
+ * error, so the client sees an aborted download, never a complete-looking
46
+ * short one. Range requests and redirects are not supported.
47
+ */
48
+ export declare function file(init: FileResponseInit): FileResponse;
49
+ /** True for a value made by `http.file()`. */
50
+ export declare function isFileResponse(value: unknown): value is FileResponse;
51
+ /** The reason a file response cannot be sent for a route declared with `declared`, or null. */
52
+ export declare function fileResponseProblem(declared: FileConfig | null, file: FileResponse): string | null;
53
+ /** Content-Disposition value per RFC 6266 / RFC 5987: ASCII fallback plus the exact name percent-encoded. */
54
+ export declare function contentDisposition(disposition: 'attachment' | 'inline', filename: string | undefined): string;
55
+ /**
56
+ * Reads a stream's first chunk before anything is sent, so a stream that fails
57
+ * at once can still become a normal error response. Returns the stream to send
58
+ * (the same bytes, replayed), which fails after `length` mismatches or on error.
59
+ */
60
+ export declare function primeStream(source: Readable, length: number | undefined): Promise<Readable>;
61
+ export {};
62
+ //# sourceMappingURL=file.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file.d.ts","sourceRoot":"","sources":["../../../src/request/http/file.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AACtC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAGhD,QAAA,MAAM,aAAa,eAAsC,CAAA;AAEzD,gCAAgC;AAChC,MAAM,WAAW,gBAAgB;IAC/B,yDAAyD;IACzD,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,QAAQ,CAAA;IAC7C,4DAA4D;IAC5D,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,oFAAoF;IACpF,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;IAC1B,kFAAkF;IAClF,QAAQ,CAAC,WAAW,CAAC,EAAE,YAAY,GAAG,QAAQ,CAAA;IAC9C,yGAAyG;IACzG,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CACzB;AAED;;;;GAIG;AACH,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,CAAC,aAAa,CAAC,EAAE,IAAI,CAAA;IAC9B,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,CAAA;IAChC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAA;IACrC,QAAQ,CAAC,WAAW,EAAE,YAAY,GAAG,QAAQ,CAAA;IAC7C,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAA;CACpC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,IAAI,CAAC,IAAI,EAAE,gBAAgB,GAAG,YAAY,CAwBzD;AAED,8CAA8C;AAC9C,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,YAAY,CAEpE;AAED,+FAA+F;AAC/F,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,UAAU,GAAG,IAAI,EAAE,IAAI,EAAE,YAAY,GAAG,MAAM,GAAG,IAAI,CAMlG;AAED,6GAA6G;AAC7G,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,YAAY,GAAG,QAAQ,EAAE,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAa7G;AAED;;;;GAIG;AACH,wBAAsB,WAAW,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC,QAAQ,CAAC,CA2BjG"}
@@ -0,0 +1,120 @@
1
+ import { Readable } from 'node:stream';
2
+ import { mediaTypeAllowed } from './upload.js';
3
+ const FILE_RESPONSE = Symbol.for('pipework.fileResponse');
4
+ /**
5
+ * Builds the value a handler returns to answer with a file: `body` (Buffer,
6
+ * Uint8Array or Readable), `mediaType`, and optionally `filename`,
7
+ * `disposition` (`'attachment'` default, or `'inline'`) and `length` (the byte
8
+ * length of a stream, sent as Content-Length; without it a stream is sent
9
+ * chunked).
10
+ *
11
+ * Declare the route with `.file({ mediaTypes })` so OpenAPI describes it. The
12
+ * response carries Content-Type, Content-Length (Buffer, or stream with
13
+ * `length`), Content-Disposition with an ASCII `filename=` fallback and the
14
+ * exact name in `filename*=UTF-8''...`, and `X-Content-Type-Options: nosniff`.
15
+ *
16
+ * The request transaction (auto mode) has committed before the first byte is
17
+ * sent, so a stream must not need it. A stream that fails before its first
18
+ * byte gets a 500; one that fails after destroys the connection and logs the
19
+ * error, so the client sees an aborted download, never a complete-looking
20
+ * short one. Range requests and redirects are not supported.
21
+ */
22
+ export function file(init) {
23
+ if (typeof init.mediaType !== 'string' || init.mediaType.trim() === '' || /[\r\n]/.test(init.mediaType)) {
24
+ throw new Error('[pipework] http.file() needs a mediaType such as "application/pdf" (one line, not empty).');
25
+ }
26
+ const disposition = init.disposition ?? 'attachment';
27
+ if (disposition !== 'attachment' && disposition !== 'inline') {
28
+ throw new Error(`[pipework] http.file() disposition must be 'attachment' or 'inline', got ${String(disposition)}.`);
29
+ }
30
+ if (init.length !== undefined && (!Number.isInteger(init.length) || init.length < 0)) {
31
+ throw new Error(`[pipework] http.file() length must be a non-negative integer number of bytes, got ${String(init.length)}.`);
32
+ }
33
+ let body;
34
+ if (init.body instanceof Readable)
35
+ body = init.body;
36
+ else if (Buffer.isBuffer(init.body))
37
+ body = init.body;
38
+ else if (init.body instanceof Uint8Array)
39
+ body = Buffer.from(init.body.buffer, init.body.byteOffset, init.body.byteLength);
40
+ else
41
+ throw new Error('[pipework] http.file() body must be a Buffer, Uint8Array or Readable stream.');
42
+ return Object.freeze({
43
+ [FILE_RESPONSE]: true,
44
+ body,
45
+ mediaType: init.mediaType.trim(),
46
+ filename: init.filename,
47
+ disposition,
48
+ length: init.length,
49
+ });
50
+ }
51
+ /** True for a value made by `http.file()`. */
52
+ export function isFileResponse(value) {
53
+ return value !== null && typeof value === 'object' && value[FILE_RESPONSE] === true;
54
+ }
55
+ /** The reason a file response cannot be sent for a route declared with `declared`, or null. */
56
+ export function fileResponseProblem(declared, file) {
57
+ if (declared === null)
58
+ return null;
59
+ if (!mediaTypeAllowed(declared.mediaTypes, file.mediaType.split(';')[0].trim().toLowerCase())) {
60
+ return `The file's mediaType ${file.mediaType} is not in the route's .file() list (${declared.mediaTypes.join(', ')}).`;
61
+ }
62
+ return null;
63
+ }
64
+ /** Content-Disposition value per RFC 6266 / RFC 5987: ASCII fallback plus the exact name percent-encoded. */
65
+ export function contentDisposition(disposition, filename) {
66
+ if (filename === undefined || filename === '')
67
+ return disposition;
68
+ const wellFormed = filename.replace(/[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?<![\uD800-\uDBFF])[\uDC00-\uDFFF]/g, '\uFFFD');
69
+ let fallback = '';
70
+ for (const ch of wellFormed) {
71
+ const code = ch.codePointAt(0);
72
+ if (code > 0x7e)
73
+ fallback += '_';
74
+ else if (code < 0x20 || code === 0x7f || ch === '"' || ch === '\\' || ch === '/')
75
+ continue;
76
+ else
77
+ fallback += ch;
78
+ }
79
+ if (fallback.trim() === '')
80
+ fallback = 'file';
81
+ const encoded = encodeURIComponent(wellFormed).replace(/['()*]/g, (c) => `%${c.charCodeAt(0).toString(16).toUpperCase()}`);
82
+ return `${disposition}; filename="${fallback}"; filename*=UTF-8''${encoded}`;
83
+ }
84
+ /**
85
+ * Reads a stream's first chunk before anything is sent, so a stream that fails
86
+ * at once can still become a normal error response. Returns the stream to send
87
+ * (the same bytes, replayed), which fails after `length` mismatches or on error.
88
+ */
89
+ export async function primeStream(source, length) {
90
+ const iterator = source[Symbol.asyncIterator]();
91
+ let first;
92
+ try {
93
+ first = await iterator.next();
94
+ }
95
+ catch (error) {
96
+ source.destroy();
97
+ throw error;
98
+ }
99
+ async function* replay() {
100
+ let sent = 0;
101
+ try {
102
+ let step = first;
103
+ while (step.done !== true) {
104
+ const chunk = typeof step.value === 'string' ? Buffer.from(step.value) : step.value;
105
+ sent += chunk.length;
106
+ yield chunk;
107
+ step = await iterator.next();
108
+ }
109
+ if (length !== undefined && sent !== length) {
110
+ throw new Error(`[pipework] The file stream ended after ${sent} bytes but http.file() declared length ${length}.`);
111
+ }
112
+ }
113
+ finally {
114
+ if (!source.destroyed)
115
+ source.destroy();
116
+ }
117
+ }
118
+ return Readable.from(replay(), { objectMode: false });
119
+ }
120
+ //# sourceMappingURL=file.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file.js","sourceRoot":"","sources":["../../../src/request/http/file.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  export { createServer, type PipeworkServer } from './server.js';
2
2
  export type { ServerConfig, RouteRegistration, ErrorResponse, HandlerResponse, InjectOptions, InjectResponse, HttpRequest, HttpResponse, CorsConfig, SecurityConfig, RateLimitConfig } from './types.js';
3
+ export type { FileResponse, FileResponseInit } from './file.js';
3
4
  export { buildErrorResponse, buildInternalErrorResponse } from './response.js';
4
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/request/http/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,KAAK,cAAc,EAAE,MAAM,aAAa,CAAA;AAC/D,YAAY,EAAE,YAAY,EAAE,iBAAiB,EAAE,aAAa,EAAE,eAAe,EAAE,aAAa,EAAE,cAAc,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AACxM,OAAO,EAAE,kBAAkB,EAAE,0BAA0B,EAAE,MAAM,eAAe,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/request/http/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,KAAK,cAAc,EAAE,MAAM,aAAa,CAAA;AAC/D,YAAY,EAAE,YAAY,EAAE,iBAAiB,EAAE,aAAa,EAAE,eAAe,EAAE,aAAa,EAAE,cAAc,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AACxM,YAAY,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAA;AAC/D,OAAO,EAAE,kBAAkB,EAAE,0BAA0B,EAAE,MAAM,eAAe,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/request/http/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAuB,MAAM,aAAa,CAAA;AAE/D,OAAO,EAAE,kBAAkB,EAAE,0BAA0B,EAAE,MAAM,eAAe,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/request/http/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAuB,MAAM,aAAa,CAAA;AAG/D,OAAO,EAAE,kBAAkB,EAAE,0BAA0B,EAAE,MAAM,eAAe,CAAA"}
@@ -1,3 +1,6 @@
1
- /** HTTP server namespace — managed by manifold.start(), not directly accessible. */
2
- export declare const http: {};
1
+ import { file } from './file.js';
2
+ /** HTTP namespace: `http.file()` builds a file response; the server itself is managed by manifold.start(). */
3
+ export declare const http: {
4
+ readonly file: typeof file;
5
+ };
3
6
  //# sourceMappingURL=namespace.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"namespace.d.ts","sourceRoot":"","sources":["../../../src/request/http/namespace.ts"],"names":[],"mappings":"AAAA,oFAAoF;AACpF,eAAO,MAAM,IAAI,IAAc,CAAA"}
1
+ {"version":3,"file":"namespace.d.ts","sourceRoot":"","sources":["../../../src/request/http/namespace.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAEhC,8GAA8G;AAC9G,eAAO,MAAM,IAAI;;CAAoB,CAAA"}
@@ -1,3 +1,4 @@
1
- /** HTTP server namespace — managed by manifold.start(), not directly accessible. */
2
- export const http = {};
1
+ import { file } from './file.js';
2
+ /** HTTP namespace: `http.file()` builds a file response; the server itself is managed by manifold.start(). */
3
+ export const http = { file };
3
4
  //# sourceMappingURL=namespace.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"namespace.js","sourceRoot":"","sources":["../../../src/request/http/namespace.ts"],"names":[],"mappings":"AAAA,oFAAoF;AACpF,MAAM,CAAC,MAAM,IAAI,GAAG,EAAW,CAAA"}
1
+ {"version":3,"file":"namespace.js","sourceRoot":"","sources":["../../../src/request/http/namespace.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAEhC,8GAA8G;AAC9G,MAAM,CAAC,MAAM,IAAI,GAAG,EAAE,IAAI,EAAW,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../src/request/http/server.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAA;AACtD,OAAO,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AACzD,OAAO,KAAK,EAAE,YAAY,EAAsC,aAAa,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAoBjH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AAGnD,qGAAqG;AACrG,MAAM,WAAW,cAAc;IAC7B,KAAK,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,GAAG,IAAI,CAAA;IACjG,gBAAgB,CAAC,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,EAAE,GAAG,IAAI,CAAA;IAC7E,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,IAAI,CAAA;IACnD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IACtB,MAAM,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,cAAc,CAAC,CAAA;IACpD,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,CAAA;IACzB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;CACvB;AAED,wHAAwH;AACxH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,GAAE,YAAiB,GAAG,cAAc,CA0X1F"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../src/request/http/server.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAA;AACtD,OAAO,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AACzD,OAAO,KAAK,EAAE,YAAY,EAAsC,aAAa,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAsBjH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AAGnD,qGAAqG;AACrG,MAAM,WAAW,cAAc;IAC7B,KAAK,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,GAAG,IAAI,CAAA;IACjG,gBAAgB,CAAC,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,EAAE,GAAG,IAAI,CAAA;IAC7E,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,IAAI,CAAA;IACnD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IACtB,MAAM,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,cAAc,CAAC,CAAA;IACpD,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,CAAA;IACzB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;CACvB;AAED,wHAAwH;AACxH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,GAAE,YAAiB,GAAG,cAAc,CA+X1F"}
@@ -14,6 +14,7 @@ import { closeTrace } from '../../trace/entry/close-trace.js';
14
14
  import { buildErrorResponse, buildInternalErrorResponse } from './response.js';
15
15
  import { isPipeworkError } from '../../core/errors/index.js';
16
16
  import { checkUploadHeaders, uploadBodyLimit, binaryUpload, multipartUpload, settleUpload, MULTIPART_FIELD_LIMIT } from './upload.js';
17
+ import { isFileResponse, fileResponseProblem, contentDisposition, primeStream } from './file.js';
17
18
  import { toJsonSchema } from '../../data/schema/json-schema.js';
18
19
  import { generateOpenAPI } from '../openapi/generate.js';
19
20
  import { getBaseLogger, setLoggingConfig } from '../../core/logging/index.js';
@@ -255,12 +256,16 @@ export function createServer(instance, config = {}) {
255
256
  }
256
257
  finishUpload(false);
257
258
  void closeTrace(instance, ctx.trace, 'closed');
258
- return sendResult(reply, result);
259
+ return await sendResult(reply, req, result, handler.meta.file ?? null, `${method} ${path}`);
259
260
  }
260
261
  catch (error) {
261
262
  finishUpload(true);
262
263
  if (ctx !== undefined)
263
264
  void closeTrace(instance, ctx.trace, 'error');
265
+ if (error instanceof FileResponseError) {
266
+ req.log.error({ route: `${method} ${path}`, requestId: String(req.id), err: error }, 'File response refused');
267
+ return reply.status(500).send({ error: { code: 'FILE_RESPONSE_INVALID', message: error.message } });
268
+ }
264
269
  if (isPipeworkError(error)) {
265
270
  const retryAfter = error.retryAfterSeconds;
266
271
  if (typeof retryAfter === 'number')
@@ -342,7 +347,7 @@ export function createServer(instance, config = {}) {
342
347
  ...(opts.remoteAddress !== undefined ? { remoteAddress: opts.remoteAddress } : {}),
343
348
  });
344
349
  const r = response;
345
- return { statusCode: r.statusCode, headers: r.headers, body: r.body, json: () => r.json() };
350
+ return { statusCode: r.statusCode, headers: r.headers, body: r.body, rawPayload: r.rawPayload, json: () => r.json() };
346
351
  }
347
352
  return { route, registerHandlers, registerResource: registerResourceFn, ready, inject, listen, close };
348
353
  }
@@ -398,7 +403,48 @@ function watchResponse(reply, cb, log) {
398
403
  raw.once('finish', onFinish);
399
404
  raw.once('close', onClose);
400
405
  }
401
- function sendResult(reply, result) {
406
+ /** A file response the route cannot send; becomes a 500 naming the reason. */
407
+ class FileResponseError extends Error {
408
+ }
409
+ async function sendFile(reply, req, file, declared, route) {
410
+ const problem = fileResponseProblem(declared, file);
411
+ if (problem !== null) {
412
+ if (!Buffer.isBuffer(file.body))
413
+ file.body.destroy();
414
+ throw new FileResponseError(`[pipework] ${route}: ${problem}`);
415
+ }
416
+ let body;
417
+ let length;
418
+ if (Buffer.isBuffer(file.body)) {
419
+ body = file.body;
420
+ length = file.body.length;
421
+ }
422
+ else {
423
+ body = await primeStream(file.body, file.length);
424
+ length = file.length;
425
+ const raw = reply.raw;
426
+ body.on('error', (err) => {
427
+ // Headers are out: the only honest signal left is a dead connection.
428
+ req.log.error({ route, requestId: String(req.id), err }, 'File stream failed while sending');
429
+ raw.destroy();
430
+ });
431
+ raw.once('close', () => { if (!body.destroyed)
432
+ body.destroy(); });
433
+ }
434
+ void reply.status(declared?.status ?? 200);
435
+ void reply.header('content-type', file.mediaType);
436
+ void reply.header('content-disposition', contentDisposition(file.disposition, file.filename));
437
+ void reply.header('x-content-type-options', 'nosniff');
438
+ if (length !== undefined)
439
+ void reply.header('content-length', String(length));
440
+ return reply.send(body);
441
+ }
442
+ async function sendResult(reply, req, result, fileConfig, route) {
443
+ if (isFileResponse(result))
444
+ return sendFile(reply, req, result, fileConfig, route);
445
+ if (fileConfig !== null) {
446
+ throw new FileResponseError(`[pipework] ${route} is declared with .file() and must return http.file({ body, mediaType, filename? }); it returned ${result === null ? 'null' : typeof result}.`);
447
+ }
402
448
  if (result !== null && typeof result === 'object' && 'status' in result && typeof result['status'] === 'number') {
403
449
  const response = result;
404
450
  if (response.body !== undefined) {
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../../../src/request/http/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AACtC,OAAO,OAAO,EAAE,EAAgE,MAAM,SAAS,CAAA;AAC/F,OAAO,WAAW,MAAM,eAAe,CAAA;AACvC,OAAO,aAAa,MAAM,iBAAiB,CAAA;AAC3C,OAAO,gBAAgB,MAAM,qBAAqB,CAAA;AAClD,OAAO,gBAAgB,MAAM,oBAAoB,CAAA;AAIjD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAClD,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAC1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAA;AACvE,OAAO,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,eAAe,EAAuB,MAAM,kBAAkB,CAAA;AACnH,OAAO,EAAE,YAAY,EAAuB,MAAM,iBAAiB,CAAA;AACnE,OAAO,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAA;AAE7D,OAAO,EAAE,kBAAkB,EAAE,0BAA0B,EAAE,MAAM,eAAe,CAAA;AAC9E,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAC5D,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,YAAY,EAAE,eAAe,EAAE,YAAY,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAA;AAErI,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAA;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AACxD,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAA;AAC7E,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAA;AAC1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAA;AACrE,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAA;AAEnE,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAA;AAE3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAA;AAa9D,wHAAwH;AACxH,MAAM,UAAU,YAAY,CAAC,QAAkB,EAAE,SAAuB,EAAE;IACxE,IAAI,QAAQ,CAAC,MAAM,CAAC,WAAW,KAAK,YAAY,EAAE,CAAC;QACjD,wBAAwB,CAAC,MAAM,CAAC,CAAA;IAClC,CAAC;IAED,MAAM,WAAW,GAA4B;QAC3C,UAAU,EAAE,MAAM,CAAC,UAAU,IAAI,KAAK;QACtC,QAAQ,EAAE,GAAG,EAAE,CAAC,UAAU,EAAE;QAC5B,eAAe,EAAE,KAAK;KACvB,CAAA;IAED,IAAI,MAAM,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;QACnC,WAAW,CAAC,WAAW,CAAC,GAAG,MAAM,CAAC,SAAS,CAAA;IAC7C,CAAC;IAED,IAAI,MAAM,CAAC,MAAM,KAAK,KAAK,EAAE,CAAC;QAC5B,WAAW,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAA;IAC/B,CAAC;SAAM,CAAC;QACN,WAAW,CAAC,gBAAgB,CAAC,GAAG,MAAM,CAAC,MAAM,IAAI,aAAa,EAAE,CAAA;IAClE,CAAC;IAED,MAAM,GAAG,GAAG,OAAO,CAAC,WAAW,CAAC,CAAA;IAEhC,0EAA0E;IAC1E,8FAA8F;IAC9F,GAAG,CAAC,oBAAoB,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;IAE3D,IAAI,MAAM,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;QAC1B,KAAK,GAAG,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,CAA4B,CAAC,CAAA;IAChF,CAAC;IAED,IAAI,MAAM,CAAC,QAAQ,KAAK,KAAK,EAAE,CAAC;QAC9B,KAAK,GAAG,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC,MAAM,CAAC,QAAQ,IAAI,EAAE,CAA4B,CAAC,CAAA;IACtF,CAAC;IAED,IAAI,MAAM,CAAC,SAAS,KAAK,KAAK,EAAE,CAAC;QAC/B,KAAK,GAAG,CAAC,QAAQ,CAAC,gBAAgB,EAAE,CAAC,MAAM,CAAC,SAAS,IAAI,EAAE,CAA4B,CAAC,CAAA;IAC1F,CAAC;IAED,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,gBAAgB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;IAClC,CAAC;IAED,GAAG,CAAC,eAAe,CAAC,SAAS,EAAE,SAAS,CAAC,CAAA;IAEzC,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;QACnD,KAAK,KAAK,CAAC,MAAM,CAAC,cAAc,EAAE,IAAI,CAAC,EAAE,CAAC,CAAA;QAC1C,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;IACrB,CAAC,CAAC,CAAA;IAEF,MAAM,MAAM,GAAwB,EAAE,CAAA;IAEtC,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAA;IAC9B,MAAM,UAAU,GAAG,UAAU;QAC3B,CAAC,CAAC,CAAC,YAAY,IAAI,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QAC9E,CAAC,CAAC,EAAE,CAAA;IACN,MAAM,SAAS,GAAG,UAAU,IAAI,WAAW,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;IAC7F,MAAM,cAAc,GAAG,UAAU,IAAI,gBAAgB,IAAI,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS,CAAA;IAE3G,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,IAAI,IAAI,CAAA;IAC1C,IAAI,YAAY,EAAE,WAAW,EAAE,CAAC;QAC9B,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,EAAE,CAAC;YACzD,sBAAsB,CAAC,IAAI,CAAC,CAAA;QAC9B,CAAC;IACH,CAAC;IAED,MAAM,cAAc,GAAmB;QACrC,QAAQ;QACR,UAAU;QACV,SAAS;QACT,cAAc;QACd,YAAY;QACZ,YAAY,EAAE,UAAU,EAAE,QAAQ,IAAI,KAAK;QAC3C,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,IAAI;KAChC,CAAA;IAED,MAAM,kBAAkB,GAAG,MAAM,CAAC,kBAAkB,IAAI,KAAK,CAAA;IAC7D,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,CAAC,CAAA;IAE7B,IAAI,MAAM,CAAC,MAAM,KAAK,KAAK,EAAE,CAAC;QAC5B,oBAAoB,CAAC,GAAG,EAAE,QAAQ,EAAE,MAAM,CAAC,YAAY,IAAI,EAAE,EAAE;YAC7D,MAAM,EAAE,MAAM,CAAC,UAAU,IAAI,SAAS;YACtC,KAAK,EAAE,MAAM,CAAC,SAAS,IAAI,QAAQ;SACpC,CAAC,CAAA;IACJ,CAAC;IAED,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,IAAI,IAAI,CAAA;IAExC,MAAM,WAAW,GAAoB,MAAM,CAAC,qBAAqB,KAAK,SAAS,IAAI,MAAM,CAAC,qBAAqB,KAAK,KAAK;QACvH,CAAC,CAAC,CAAC,MAAM,CAAC,qBAAqB,KAAK,IAAI;YACpC,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,CAAC;YACzC,CAAC,CAAC,MAAM,CAAC,qBAAqB,CAAC;QACnC,CAAC,CAAC,IAAI,CAAA;IACR,MAAM,WAAW,GAAG,MAAM,CAAC,oBAAoB,IAAI,IAAI,CAAA;IAEvD,IAAI,YAAY,EAAE,WAAW,KAAK,SAAS,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;QACpE,MAAM,IAAI,KAAK,CACb,wEAAwE;YACxE,qFAAqF;YACrF,6EAA6E;YAC7E,+EAA+E;YAC/E,gFAAgF;YAChF,4BAA4B,CAC7B,CAAA;IACH,CAAC;IAED,SAAS,KAAK,CACZ,MAAkB,EAClB,IAAY,EACZ,OAAkD;QAElD,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAA;QAEtC,MAAM,aAAa,GAAG,MAAM,CAAC,WAAW,EAAiD,CAAA;QAEzF,MAAM,MAAM,GAA4B,EAAE,CAAA;QAC1C,IAAI,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YAC7B,MAAM,CAAC,MAAM,CAAC,GAAG,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;QACzD,CAAC;QACD,IAAI,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;YACxC,MAAM,QAAQ,GAA4B,EAAE,CAAA;YAC5C,KAAK,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;gBAChE,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,YAAY,CAAC,YAAY,CAAC,CAAA;YACvD,CAAC;YACD,MAAM,CAAC,UAAU,CAAC,GAAG,QAAQ,CAAA;QAC/B,CAAC;QACD,IAAI,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YAC7B,MAAM,CAAC,aAAa,CAAC,GAAG,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;QAChE,CAAC;QACD,IAAI,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;YAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;QAC5D,CAAC;QACD,MAAM,IAAI,GAA4B,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;QAEtF,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAA;QAC1C,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YACpB,IAAI,CAAC,WAAW,CAAC,GAAG,eAAe,CAAC,MAAM,CAAC,CAAA;QAC7C,CAAC;aAAM,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,SAAS,KAAK,SAAS,EAAE,CAAC;YACvD,IAAI,CAAC,WAAW,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAA;QAClD,CAAC;QAED,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAA;QACzC,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,yEAAyE;YACzE,2EAA2E;YAC3E,IAAI,CAAC,WAAW,CAAC,GAAG,KAAK,EAAE,GAAmB,EAAE,KAAmB,EAAE,EAAE;gBACrE,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAA;gBACzC,MAAM,QAAQ,GAAG,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;gBACpE,IAAI,OAAO,CAAA;gBACX,IAAI,CAAC;oBACH,4EAA4E;oBAC5E,uEAAuE;oBACvE,yEAAyE;oBACzE,MAAM,SAAS,GAAG,oBAAoB,CAAC;wBACrC,QAAQ;wBACR,SAAS,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;wBACzB,QAAQ,EAAE,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,CAAC,GAAG,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE;qBACjH,CAAC,CAAA;oBACF,OAAO,GAAG,MAAM,YAAY,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC;wBACnD,MAAM,EAAE,GAAG,CAAC,MAAM;wBAClB,GAAG,EAAE,GAAG,CAAC,GAAG;wBACZ,OAAO,EAAE,GAAG,CAAC,OAA6C;wBAC1D,aAAa,EAAE,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI;qBAC3D,CAAC,CAAC,CAAA;gBACL,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,oBAAoB,CAAC,CAAA;oBAC1C,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;wBAC5B,KAAK,EAAE,cAAc;wBACrB,OAAO,EACL,uCAAuC,MAAM,IAAI,IAAI,WAAW,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM;4BAC5H,+DAA+D;4BAC/D,sEAAsE;4BACtE,kEAAkE;qBACrE,CAAC,CAAA;gBACJ,CAAC;gBACD,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;oBAC9C,OAAO,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,EAAE,GAAG,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAA;gBACvF,CAAC;gBACD,OAAO,SAAS,CAAA;YAClB,CAAC,CAAA;QACH,CAAC;QAED,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YACpB,4EAA4E;YAC5E,mCAAmC;YACnC,MAAM,WAAW,GAAG,KAAK,EAAE,GAAmB,EAAE,KAAmB,EAAE,EAAE;gBACrE,MAAM,OAAO,GAAG,kBAAkB,CAAC,MAAM,EAAE,GAAG,CAAC,OAAO,CAAC,CAAA;gBACvD,IAAI,OAAO,KAAK,IAAI;oBAAE,OAAO,SAAS,CAAA;gBACtC,KAAK,KAAK,CAAC,MAAM,CAAC,YAAY,EAAE,OAAO,CAAC,CAAA;gBACxC,OAAO,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAA;YAC3E,CAAC,CAAA;YACD,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAiF,CAAA;YAClH,IAAI,CAAC,WAAW,CAAC,GAAG,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAA;QACtF,CAAC;QAED,IAAI,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;YAC9B,IAAI,CAAC,YAAY,CAAC,GAAG,KAAK,EAAE,GAAmB,EAAE,MAAoB,EAAE,OAA8B,EAAE,EAAE;gBACvG,MAAM,MAAM,GAAa,EAAE,CAAA;gBAC3B,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,OAAO;oBAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;gBACrD,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAChC;gBAAC,GAA4C,CAAC,OAAO,GAAG,GAAG,CAAA;gBAC5D,OAAO,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;YAC3B,CAAC,CAAA;QACH,CAAC;QAED,MAAM,YAAY,GAAG,KAAK,EAAE,GAAmB,EAAE,KAAmB,EAAE,EAAE;YACtE,IAAI,GAAqB,CAAA;YACzB,IAAI,QAAoD,CAAA;YACxD,gFAAgF;YAChF,MAAM,YAAY,GAAG,CAAC,MAAe,EAAQ,EAAE;gBAC7C,IAAI,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,IAAI,MAAM,KAAK,IAAI,CAAC;oBAAE,KAAK,KAAK,CAAC,MAAM,CAAC,YAAY,EAAE,OAAO,CAAC,CAAA;YAC7G,CAAC,CAAA;YACD,IAAI,CAAC;gBACH,GAAG,GAAG,MAAM,YAAY,CAAC,GAAG,EAAE,cAAc,EAAE,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,CAAA;gBAE3E,IAAI,OAAO,CAAC,IAAI,CAAC,UAAU,IAAI,YAAY,EAAE,CAAC;oBAC5C,MAAM,wBAAwB,CAAC,QAAQ,EAAE,GAAG,EAAE,OAAO,CAAC,IAAI,EAAE,YAAY,CAAC,CAAA;gBAC3E,CAAC;gBAED,MAAM,UAAU,GAAqC;oBACnD,OAAO,EAAE,GAAG,CAAC,OAA6C;oBAC1D,EAAE,EAAE,GAAG,CAAC,EAAE;oBACV,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;iBAChC,CAAA;gBACD,MAAM,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,YAAY;oBAC7C,CAAC,CAAE,GAA4C,CAAC,OAAO;oBACvD,CAAC,CAAC,SAAS,CAAA;gBACb,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;oBAC/B,UAAkC,CAAC,OAAO,GAAG,aAAa,CAAA;gBAC7D,CAAC;gBAED,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;oBACpB,QAAQ,GAAG,MAAM,CAAC,IAAI,KAAK,QAAQ;wBACjC,CAAC,CAAC,YAAY,CAAC,GAAG,EAAE,MAAM,CAAC,QAAQ,CAAC;wBACpC,CAAC,CAAC,MAAM,eAAe,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;gBACxC,CAAC;gBAED,MAAM,WAAW,GAAmB;oBAClC,OAAO,EAAE,UAAU;oBACnB,QAAQ,EAAE;wBACR,MAAM,EAAE,CAAC,IAAY,EAAE,KAAa,EAAE,EAAE,GAAG,KAAK,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA,CAAC,CAAC;wBAC3E,QAAQ,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,aAAa,CAAC,KAAK,EAAE,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC;qBACpD;oBACD,GAAG,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBAClE,GAAG,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBACxD,CAAA;gBAED,IAAI,MAAe,CAAA;gBACnB,IAAI,OAAO,CAAC,IAAI,CAAC,cAAc,KAAK,QAAQ,EAAE,CAAC;oBAC7C,oEAAoE;oBACpE,mEAAmE;oBACnE,oEAAoE;oBACpE,iEAAiE;oBACjE,6DAA6D;oBAC7D,iEAAiE;oBACjE,MAAM,UAAU,GAAG,eAAe,CAChC,OAAO,EACP,GAAG,EACH,uBAAuB,CAAC,OAAO,EAAE,QAAQ,CAAC,EAC1C,YAAY,EACZ,WAAW,CACZ,CAAA;oBACD,MAAM,GAAG,MAAM,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,CACpC,iBAAiB,CAAC,OAAO,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,EAAE,GAAG,WAAW,EAAE,UAAU,EAAE,CAAC,CAC5F,CAAA;gBACH,CAAC;qBAAM,IAAI,WAAW,KAAK,IAAI,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC1D,MAAM,GAAG,MAAM,oBAAoB,CACjC,GAAG,EACH,WAAW,EACX,YAAY,EACZ,WAAW,EACX,GAAG,EAAE,CAAC,iBAAiB,CAAC,OAAO,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAC/E,CAAA;gBACH,CAAC;qBAAM,CAAC;oBACN,MAAM,GAAG,MAAM,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,iBAAiB,CAAC,OAAO,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAAA;gBAClH,CAAC;gBAED,YAAY,CAAC,KAAK,CAAC,CAAA;gBACnB,KAAK,UAAU,CAAC,QAAQ,EAAE,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAA;gBAC9C,OAAO,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;YAClC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,YAAY,CAAC,IAAI,CAAC,CAAA;gBAClB,IAAI,GAAG,KAAK,SAAS;oBAAE,KAAK,UAAU,CAAC,QAAQ,EAAE,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;gBAEpE,IAAI,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC;oBAC3B,MAAM,UAAU,GAAI,KAAyC,CAAC,iBAAiB,CAAA;oBAC/E,IAAI,OAAO,UAAU,KAAK,QAAQ;wBAAE,KAAK,KAAK,CAAC,MAAM,CAAC,aAAa,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAA;oBAChH,OAAO,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAA;gBACvE,CAAC;gBAED,uEAAuE;gBACvE,MAAM,YAAY,GAAG,MAAM,KAAK,IAAI,CAAC,CAAC,CAAE,KAAyC,EAAE,UAAU,CAAC,CAAC,CAAC,SAAS,CAAA;gBACzG,IAAI,OAAO,YAAY,KAAK,QAAQ,IAAI,YAAY,IAAI,GAAG,IAAI,YAAY,GAAG,GAAG,EAAE,CAAC;oBAClF,MAAM,CAAC,GAAG,KAA8C,CAAA;oBACxD,OAAO,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,IAAI,aAAa,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,IAAI,aAAa,CAAC,EAAE,EAAE,CAAC,CAAA;gBAC3I,CAAC;gBAED,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,kCAAkC,CAAC,CAAA;gBACxD,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,0BAA0B,CAAC,KAAK,EAAE,MAAM,CAAC,kBAAkB,CAAC,CAAC,CAAA;YAC7F,CAAC;QACH,CAAC,CAAA;QAED,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YACpB,GAAG,CAAC,aAAa,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,YAAY,CAAC,CAAA;QAC9C,CAAC;aAAM,CAAC;YACN,0EAA0E;YAC1E,wDAAwD;YACxD,KAAK,GAAG,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;gBAChC,KAAK,CAAC,2BAA2B,EAAE,CAAA;gBACnC,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;oBAC7B,KAAK,CAAC,oBAAoB,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA,CAAC,CAAC,CAAC,CAAA;gBACnF,CAAC;qBAAM,CAAC;oBACN,MAAM,KAAK,CAAC,QAAQ,CAAC,gBAAgB,EAAE;wBACrC,kBAAkB,EAAE,KAAK;wBACzB,MAAM,EAAE,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,GAAG,IAAI,EAAE,SAAS,EAAE,qBAAqB,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE;qBACtG,CAAC,CAAA;gBACJ,CAAC;gBACD,KAAK,CAAC,aAAa,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,YAAY,CAAC,CAAA;YAChD,CAAC,CAAC,CAAA;QACJ,CAAC;IACH,CAAC;IAED,SAAS,gBAAgB,CAAC,QAAqD;QAC7E,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;gBACvB,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;YACpE,CAAC;QACH,CAAC;IACH,CAAC;IAED,SAAS,kBAAkB,CAAC,QAA2B;QACrD,gBAAgB,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC,CAAA;IAChD,CAAC;IAED,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,IAAI,eAAe,CAAA;QACzD,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,CAAA;QAClC,GAAG,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE;YACzC,OAAO,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAA;QACzD,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,KAAK,UAAU,MAAM;QACnB,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC;YAC/B,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,IAAI;YACzB,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,SAAS;SAC/B,CAAC,CAAA;QAEF,IAAI,MAAM,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;YAC5B,qBAAqB,CAAC,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,kBAAkB,CAAC,CAAA;QACjE,CAAC;QAED,OAAO,OAAO,CAAA;IAChB,CAAC;IAED,KAAK,UAAU,KAAK;QAClB,MAAM,GAAG,CAAC,KAAK,EAAE,CAAA;QACjB,MAAM,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAA;IAChC,CAAC;IAED,KAAK,UAAU,KAAK;QAClB,MAAM,GAAG,CAAC,KAAK,EAAE,CAAA;IACnB,CAAC;IAED,KAAK,UAAU,MAAM,CAAC,IAAmB;QACvC,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC;YAChC,MAAM,EAAE,IAAI,CAAC,MAAe;YAC5B,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,OAAO,EAAE,IAAI,CAAC,OAAiC;YAC/C,OAAO,EAAE,IAAI,CAAC,OAAiB;YAC/B,KAAK,EAAE,IAAI,CAAC,KAA+B;YAC3C,GAAG,CAAC,IAAI,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACnF,CAAC,CAAA;QACF,MAAM,CAAC,GAAG,QAA6I,CAAA;QACvJ,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC,UAAU,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAA;IAC7F,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,CAAA;AACxG,CAAC;AAED,SAAS,qBAAqB,CAC5B,GAAoB,EACpB,QAAkB,EAClB,KAAoC,EACpC,SAAiB;IAEjB,MAAM,QAAQ,GAAG,KAAK,EAAE,MAAc,EAAE,EAAE;QACxC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,6BAA6B,CAAC,CAAA;QAEvD,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;YAC5B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACjB,CAAC,EAAE,SAAS,CAAC,CAAA;QAEb,IAAI,QAAQ,GAAG,CAAC,CAAA;QAChB,IAAI,CAAC;YACH,MAAM,KAAK,CAAC,YAAY,CAAC,SAAS,GAAG,IAAI,CAAC,CAAA;YAC1C,MAAM,GAAG,CAAC,KAAK,EAAE,CAAA;YACjB,MAAM,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAA;QAChC,CAAC;QAAC,MAAM,CAAC;YACP,QAAQ,GAAG,CAAC,CAAA;QACd,CAAC;gBAAS,CAAC;YACT,YAAY,CAAC,KAAK,CAAC,CAAA;YACnB,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QACxB,CAAC;IACH,CAAC,CAAA;IAED,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,EAAE,GAAG,KAAK,QAAQ,CAAC,SAAS,CAAC,CAAA,CAAC,CAAC,CAAC,CAAA;IAC3D,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,GAAG,KAAK,QAAQ,CAAC,QAAQ,CAAC,CAAA,CAAC,CAAC,CAAC,CAAA;AAC3D,CAAC;AAED,gFAAgF;AAChF,qFAAqF;AACrF,SAAS,aAAa,CACpB,KAAmB,EACnB,EAAyD,EACzD,GAAgD;IAEhD,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAA;IACrB,IAAI,MAAM,GAAG,KAAK,CAAA;IAClB,MAAM,MAAM,GAAG,CAAC,OAA2B,EAAQ,EAAE;QACnD,IAAI,MAAM;YAAE,OAAM;QAClB,MAAM,GAAG,IAAI,CAAA;QACb,GAAG,CAAC,cAAc,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAA;QACtC,GAAG,CAAC,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;QACpC,KAAK,CAAC,KAAK,IAAI,EAAE;YACf,IAAI,CAAC;gBACH,MAAM,EAAE,CAAC,OAAO,CAAC,CAAA;YACnB,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,sCAAsC,CAAC,CAAA;YACxD,CAAC;QACH,CAAC,CAAC,EAAE,CAAA;IACN,CAAC,CAAA;IACD,MAAM,QAAQ,GAAG,GAAS,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;IAC3C,MAAM,OAAO,GAAG,GAAS,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAA;IAC7E,IAAI,GAAG,CAAC,gBAAgB;QAAE,OAAO,MAAM,CAAC,MAAM,CAAC,CAAA;IAC/C,IAAI,GAAG,CAAC,SAAS;QAAE,OAAO,MAAM,CAAC,SAAS,CAAC,CAAA;IAC3C,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAA;IAC5B,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;AAC5B,CAAC;AAED,SAAS,UAAU,CAAC,KAAmB,EAAE,MAAe;IACtD,IAAI,MAAM,KAAK,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,QAAQ,IAAI,MAAM,IAAI,OAAQ,MAAkC,CAAC,QAAQ,CAAC,KAAK,QAAQ,EAAE,CAAC;QAC7I,MAAM,QAAQ,GAAG,MAAyB,CAAA;QAC1C,IAAI,QAAQ,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAChC,OAAO,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;QAC1D,CAAC;QACD,OAAO,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAA;IAC7C,CAAC;IACD,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;AACvC,CAAC;AAED,SAAS,wBAAwB,CAAC,MAAoB;IACpD,MAAM,QAAQ,GAAa,EAAE,CAAA;IAE7B,IAAI,MAAM,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;QAC1B,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,IAAI,EAAE,CAAA;QAClC,IAAI,CAAC,CAAC,QAAQ,IAAI,QAAQ,CAAC,EAAE,CAAC;YAC5B,QAAQ,CAAC,IAAI,CACX,8FAA8F;gBAC9F,0FAA0F,CAC3F,CAAA;QACH,CAAC;IACH,CAAC;IAED,IAAI,MAAM,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;QACnC,QAAQ,CAAC,IAAI,CACX,6EAA6E;YAC7E,4GAA4G,CAC7G,CAAA;IACH,CAAC;IAED,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAC7D,QAAQ,CAAC,IAAI,CACX,qEAAqE;YACrE,8FAA8F;YAC9F,sEAAsE,CACvE,CAAA;IACH,CAAC;IAED,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CACb,+EAA+E,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM;YAC5I,2EAA2E;YAC3E,kEAAkE,CACnE,CAAA;IACH,CAAC;AACH,CAAC;AAED,KAAK,UAAU,wBAAwB,CACrC,QAAkB,EAClB,GAAuC,EACvC,IAA0C,EAC1C,IAAU;IAEV,MAAM,UAAU,GAAG,IAAI,CAAC,UAAW,CAAA;IAEnC,IAAI,GAAG,CAAC,IAAI,KAAK,IAAI,IAAI,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QACtD,MAAM,IAAI,cAAc,CAAC,uBAAuB,UAAU,CAAC,QAAQ,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC,CAAA;IAC7F,CAAC;IAED,MAAM,IAAI,GAAG,GAAG,CAAC,IAA+B,CAAA;IAChD,MAAM,MAAM,GAAG,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;IACzE,MAAM,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAA;IAC3B,MAAM,WAAW,GAAG,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IAErF,IAAI,MAAM,KAAK,IAAI,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;QACzC,MAAM,IAAI,cAAc,CAAC,uBAAuB,UAAU,CAAC,QAAQ,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC,CAAA;IAC7F,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;IAC9E,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,MAAM,IAAI,cAAc,CAAC,uBAAuB,UAAU,CAAC,QAAQ,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC,CAAA;IAC7F,CAAC;IAED,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;IACjD,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAA;IAEhD,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAA;IACrF,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,UAAU,CAAC,QAAQ,EAAE,UAAU,CAAC,MAAM,EAAE,UAAU,CAAC,KAAK,CAAC,CAAA;IACnG,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,cAAc,CAAC,uBAAuB,UAAU,CAAC,QAAQ,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC,CAAA;IAC7F,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../../src/request/http/server.ts"],"names":[],"mappings":"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"}
@@ -82,11 +82,13 @@ export interface InjectOptions {
82
82
  /** The socket address the request appears to come from (default `127.0.0.1`). Lets a test exercise `request.ip` and `trustProxy`. */
83
83
  remoteAddress?: string;
84
84
  }
85
- /** Response from server.inject() — statusCode, headers, body, json() helper. */
85
+ /** Response from server.inject() — statusCode, headers, body, rawPayload, json() helper. */
86
86
  export interface InjectResponse {
87
87
  statusCode: number;
88
88
  headers: Record<string, string | number | string[] | undefined>;
89
89
  body: string;
90
+ /** The exact bytes of the response body; use it for binary responses, where `body` is decoded as text. */
91
+ rawPayload: Buffer;
90
92
  json(): unknown;
91
93
  }
92
94
  /** Configuration for http.createServer() — CORS, security headers, rate limiting, transaction timeout. */