@nifrajs/core 5.1.0 → 5.3.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 (92) hide show
  1. package/CHANGELOG.md +2409 -0
  2. package/dist/edge-kit.d.ts +1 -1
  3. package/dist/edge-kit.d.ts.map +1 -1
  4. package/dist/edge-kit.js +1 -1
  5. package/dist/edge-kit.js.map +1 -1
  6. package/dist/idempotency.d.ts.map +1 -1
  7. package/dist/idempotency.js +2 -0
  8. package/dist/idempotency.js.map +1 -1
  9. package/dist/index.d.ts +1 -1
  10. package/dist/index.js +1 -1
  11. package/dist/internal/hook-origins.d.ts +17 -1
  12. package/dist/internal/hook-origins.d.ts.map +1 -1
  13. package/dist/internal/hook-origins.js +20 -0
  14. package/dist/internal/hook-origins.js.map +1 -1
  15. package/dist/internal/route-program.d.ts +2 -0
  16. package/dist/internal/route-program.d.ts.map +1 -1
  17. package/dist/internal/route-program.js +22 -17
  18. package/dist/internal/route-program.js.map +1 -1
  19. package/dist/mount.d.ts +12 -0
  20. package/dist/mount.d.ts.map +1 -1
  21. package/dist/mount.js +20 -0
  22. package/dist/mount.js.map +1 -1
  23. package/dist/reflection.d.ts +23 -2
  24. package/dist/reflection.d.ts.map +1 -1
  25. package/dist/reflection.js +57 -1
  26. package/dist/reflection.js.map +1 -1
  27. package/dist/server/context.d.ts +7 -4
  28. package/dist/server/context.d.ts.map +1 -1
  29. package/dist/server/core-copies.d.ts +7 -1
  30. package/dist/server/core-copies.d.ts.map +1 -1
  31. package/dist/server/core-copies.js +37 -1
  32. package/dist/server/core-copies.js.map +1 -1
  33. package/dist/server/headers.d.ts +9 -0
  34. package/dist/server/headers.d.ts.map +1 -1
  35. package/dist/server/headers.js +26 -0
  36. package/dist/server/headers.js.map +1 -1
  37. package/dist/server/registry.d.ts +8 -10
  38. package/dist/server/registry.d.ts.map +1 -1
  39. package/dist/server/request-context.d.ts.map +1 -1
  40. package/dist/server/request-context.js +4 -3
  41. package/dist/server/request-context.js.map +1 -1
  42. package/dist/server/request-target.d.ts +9 -7
  43. package/dist/server/request-target.d.ts.map +1 -1
  44. package/dist/server/request-target.js +21 -12
  45. package/dist/server/request-target.js.map +1 -1
  46. package/dist/server/respond.d.ts.map +1 -1
  47. package/dist/server/respond.js +10 -7
  48. package/dist/server/respond.js.map +1 -1
  49. package/dist/server/response-contract-lane.d.ts +37 -2
  50. package/dist/server/response-contract-lane.d.ts.map +1 -1
  51. package/dist/server/response-contract-lane.js +278 -32
  52. package/dist/server/response-contract-lane.js.map +1 -1
  53. package/dist/server/server-types.d.ts +7 -4
  54. package/dist/server/server-types.d.ts.map +1 -1
  55. package/dist/server/server.d.ts +17 -4
  56. package/dist/server/server.d.ts.map +1 -1
  57. package/dist/server/server.js +184 -40
  58. package/dist/server/server.js.map +1 -1
  59. package/dist/server/websocket.d.ts.map +1 -1
  60. package/dist/server/websocket.js +4 -0
  61. package/dist/server/websocket.js.map +1 -1
  62. package/dist/single-copy.d.ts.map +1 -1
  63. package/dist/single-copy.js +46 -5
  64. package/dist/single-copy.js.map +1 -1
  65. package/dist/tool-contract.d.ts.map +1 -1
  66. package/dist/tool-contract.js +8 -4
  67. package/dist/tool-contract.js.map +1 -1
  68. package/dist/transport-codec.d.ts.map +1 -1
  69. package/dist/transport-codec.js +4 -1
  70. package/dist/transport-codec.js.map +1 -1
  71. package/package.json +3 -2
  72. package/src/edge-kit.ts +1 -1
  73. package/src/idempotency.ts +2 -0
  74. package/src/index.ts +1 -1
  75. package/src/internal/hook-origins.ts +35 -0
  76. package/src/internal/route-program.ts +39 -20
  77. package/src/mount.ts +25 -0
  78. package/src/reflection.ts +61 -1
  79. package/src/server/context.ts +7 -4
  80. package/src/server/core-copies.ts +40 -0
  81. package/src/server/headers.ts +39 -0
  82. package/src/server/registry.ts +18 -19
  83. package/src/server/request-context.ts +6 -3
  84. package/src/server/request-target.ts +21 -12
  85. package/src/server/respond.ts +10 -7
  86. package/src/server/response-contract-lane.ts +357 -42
  87. package/src/server/server-types.ts +7 -4
  88. package/src/server/server.ts +235 -35
  89. package/src/server/websocket.ts +3 -0
  90. package/src/single-copy.ts +55 -5
  91. package/src/tool-contract.ts +7 -4
  92. package/src/transport-codec.ts +4 -1
@@ -1,5 +1,6 @@
1
1
  /**
2
- * Dot segments in a request target, resolved the way a WHATWG URL parser resolves them.
2
+ * Dot segments in a request target, resolved the way a WHATWG URL parser resolves them, and the
3
+ * characters it percent-encodes in a path, encoded.
3
4
  *
4
5
  * Bun and workerd hand an app a request whose URL is already parsed: a client that sends
5
6
  * `/users/../posts`, `/users/%2e%2e/posts` or `/users/..\posts` is asking for `/posts`, and that
@@ -7,19 +8,20 @@
7
8
  * exactly as it was sent. Routing the raw text on those runtimes and the parsed text on the others
8
9
  * sends one request to two different handlers - with two different sets of guards - depending on
9
10
  * where the app runs. So a raw target is resolved before anything reads it, and every runtime routes
10
- * the same path.
11
+ * the same path. The same goes for a raw `/vault<tag>`: the parsed URL is `/vault%3Ctag%3E`, the
12
+ * path a route registered for that text matches.
11
13
  *
12
14
  * No imports: `@nifrajs/node` carries a generated copy of this module, since it never depends on
13
15
  * core at runtime.
14
16
  */
15
17
  /**
16
18
  * Whether `target` - an absolute URL or an origin-form `/path?query` - may hold a `.` or `..`
17
- * segment, raw or percent-encoded, or a backslash: what a WHATWG parser would rewrite. Never false
18
- * when the path has one. It can be true when only the query looks like one (`?next=/../x`):
19
- * resolving that target leaves its path and query as they are, apart from the characters a parser
20
- * always percent-encodes.
19
+ * segment, raw or percent-encoded, a backslash, or a character a WHATWG parser percent-encodes in a
20
+ * path: what that parser would rewrite. Never false when the path has one. It can be true when only
21
+ * the query looks like one (`?next=/../x`): resolving that target leaves its path and query as they
22
+ * are, apart from the characters a parser always percent-encodes.
21
23
  */
22
- export declare function hasDotSegment(target: string): boolean;
24
+ export declare function needsResolving(target: string): boolean;
23
25
  /**
24
26
  * `target` with its dot segments resolved and its backslashes read as `/`, by the platform's own
25
27
  * WHATWG parser. An origin-form target stays origin-form (the fragment, which no client sends,
@@ -1 +1 @@
1
- {"version":3,"file":"request-target.d.ts","sourceRoot":"","sources":["../../src/server/request-target.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAMH;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAGrD;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAOzD"}
1
+ {"version":3,"file":"request-target.d.ts","sourceRoot":"","sources":["../../src/server/request-target.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AASH;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAGtD;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAWzD"}
@@ -1,5 +1,6 @@
1
1
  /**
2
- * Dot segments in a request target, resolved the way a WHATWG URL parser resolves them.
2
+ * Dot segments in a request target, resolved the way a WHATWG URL parser resolves them, and the
3
+ * characters it percent-encodes in a path, encoded.
3
4
  *
4
5
  * Bun and workerd hand an app a request whose URL is already parsed: a client that sends
5
6
  * `/users/../posts`, `/users/%2e%2e/posts` or `/users/..\posts` is asking for `/posts`, and that
@@ -7,22 +8,25 @@
7
8
  * exactly as it was sent. Routing the raw text on those runtimes and the parsed text on the others
8
9
  * sends one request to two different handlers - with two different sets of guards - depending on
9
10
  * where the app runs. So a raw target is resolved before anything reads it, and every runtime routes
10
- * the same path.
11
+ * the same path. The same goes for a raw `/vault<tag>`: the parsed URL is `/vault%3Ctag%3E`, the
12
+ * path a route registered for that text matches.
11
13
  *
12
14
  * No imports: `@nifrajs/node` carries a generated copy of this module, since it never depends on
13
15
  * core at runtime.
14
16
  */
15
- // A `.` or `..` segment (`%2e` counts as a dot, in either case), or a backslash, which a WHATWG
16
- // parser reads as a `/` in an http(s) path.
17
- const DOT_SEGMENT = /\\|\/(?:\.|%2e){1,2}(?:[/?#]|$)/i;
17
+ // A `.` or `..` segment (`%2e` counts as a dot, in either case), a backslash, which a WHATWG
18
+ // parser reads as a `/` in an http(s) path, or, before any `?` or `#`, a character outside the
19
+ // class the parser keeps as written in a path: a control, space, `"`, `<`, `>`, `^`, `` ` ``, `{`,
20
+ // `}`, or anything past ASCII, all of which it percent-encodes.
21
+ const DOT_SEGMENT = /\\|\/(?:\.|%2e){1,2}(?:[/?#]|$)|^[^?#]*[^!#$%&'()*+,\-./0-9:;=?@A-Z[\\\]_a-z|~]/i;
18
22
  /**
19
23
  * Whether `target` - an absolute URL or an origin-form `/path?query` - may hold a `.` or `..`
20
- * segment, raw or percent-encoded, or a backslash: what a WHATWG parser would rewrite. Never false
21
- * when the path has one. It can be true when only the query looks like one (`?next=/../x`):
22
- * resolving that target leaves its path and query as they are, apart from the characters a parser
23
- * always percent-encodes.
24
+ * segment, raw or percent-encoded, a backslash, or a character a WHATWG parser percent-encodes in a
25
+ * path: what that parser would rewrite. Never false when the path has one. It can be true when only
26
+ * the query looks like one (`?next=/../x`): resolving that target leaves its path and query as they
27
+ * are, apart from the characters a parser always percent-encodes.
24
28
  */
25
- export function hasDotSegment(target) {
29
+ export function needsResolving(target) {
26
30
  // One regex pass: measured faster on Node and Deno than substring scans that gate it.
27
31
  return DOT_SEGMENT.test(target);
28
32
  }
@@ -34,11 +38,16 @@ export function hasDotSegment(target) {
34
38
  * `*`, or text no URL parser accepts - comes back as it arrived: there is no path to resolve.
35
39
  */
36
40
  export function resolveDotSegments(target) {
41
+ // Bun, Node and workerd's parsers percent-encode a `^` in a path; Deno's keeps it as written.
37
42
  if (target.charCodeAt(0) === 47 /* / */) {
38
43
  // Appended to an origin, not resolved against one: `//host/..` must stay a path on this origin.
39
44
  const url = new URL(`http://localhost${target}`);
40
- return url.pathname + url.search;
45
+ return url.pathname.replaceAll("^", "%5E") + url.search;
41
46
  }
42
- return URL.canParse(target) ? new URL(target).href : target;
47
+ if (!URL.canParse(target))
48
+ return target;
49
+ const url = new URL(target);
50
+ url.pathname = url.pathname.replaceAll("^", "%5E");
51
+ return url.href;
43
52
  }
44
53
  //# sourceMappingURL=request-target.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"request-target.js","sourceRoot":"","sources":["../../src/server/request-target.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,gGAAgG;AAChG,4CAA4C;AAC5C,MAAM,WAAW,GAAG,kCAAkC,CAAA;AAEtD;;;;;;GAMG;AACH,MAAM,UAAU,aAAa,CAAC,MAAc;IAC1C,sFAAsF;IACtF,OAAO,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;AACjC,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,kBAAkB,CAAC,MAAc;IAC/C,IAAI,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,CAAC;QACxC,gGAAgG;QAChG,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,mBAAmB,MAAM,EAAE,CAAC,CAAA;QAChD,OAAO,GAAG,CAAC,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAA;IAClC,CAAC;IACD,OAAO,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAA;AAC7D,CAAC"}
1
+ {"version":3,"file":"request-target.js","sourceRoot":"","sources":["../../src/server/request-target.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,6FAA6F;AAC7F,+FAA+F;AAC/F,mGAAmG;AACnG,gEAAgE;AAChE,MAAM,WAAW,GACf,kFAAkF,CAAA;AAEpF;;;;;;GAMG;AACH,MAAM,UAAU,cAAc,CAAC,MAAc;IAC3C,sFAAsF;IACtF,OAAO,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;AACjC,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,kBAAkB,CAAC,MAAc;IAC/C,8FAA8F;IAC9F,IAAI,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,CAAC;QACxC,gGAAgG;QAChG,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,mBAAmB,MAAM,EAAE,CAAC,CAAA;QAChD,OAAO,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,GAAG,CAAC,MAAM,CAAA;IACzD,CAAC;IACD,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,OAAO,MAAM,CAAA;IACxC,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAA;IAC3B,GAAG,CAAC,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;IAClD,OAAO,GAAG,CAAC,IAAI,CAAA;AACjB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"respond.d.ts","sourceRoot":"","sources":["../../src/server/respond.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EAIL,KAAK,aAAa,EAIlB,KAAK,cAAc,EACpB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACrD,OAAO,EAA2B,KAAK,qBAAqB,EAAE,MAAM,qBAAqB,CAAA;AA8BzF;;;;;GAKG;AACH,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EACxC,SAAS,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAC3C,qBAAqB,CAkBvB;AAED;;;;;;GAMG;AACH,wBAAgB,0BAA0B,CACxC,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,qBAAqB,EAC9B,OAAO,CAAC,EAAE,OAAO,GAChB,QAAQ,CAYV;AA4ED,wBAAgB,uBAAuB,IAAI,MAAM,CAKhD;AAkED,qGAAqG;AACrG,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,GAAG,QAAQ,CAGvF;AAwBD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,QAAQ,CAuBhF;AAcD,0FAA0F;AAC1F,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,QAAQ,CAazF;AAOD,KAAK,qBAAqB,GAAG,KAAK,GAAG,IAAI,GAAG,MAAM,GAAG,SAAS,CAAA;AAE9D,qGAAqG;AACrG,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,QAAQ,EAClB,MAAM,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,GAC3B,MAAM,GAAG,UAAU,GAAG,SAAS,CAqBjC;AAED,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM,GAAG,SAAS,CAO1E;AAED,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,MAAM,GAAG,UAAU,EACzB,KAAK,CAAC,EAAE,MAAM,GACb,QAAQ,CAKV;AAiBD;;gFAEgF;AAChF,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,OAAO,EACf,eAAe,GAAE,qBAA6B,EAC9C,OAAO,CAAC,EAAE,qBAAqB,EAC/B,SAAS,UAAQ,EACjB,OAAO,CAAC,EAAE,OAAO,GAChB,QAAQ,CAgFV;AAED;yGACyG;AACzG,wBAAgB,YAAY,CAC1B,MAAM,EAAE,OAAO,EACf,GAAG,EAAE,UAAU,EACf,eAAe,GAAE,qBAA6B,EAC9C,OAAO,CAAC,EAAE,qBAAqB,EAC/B,SAAS,UAAQ,GAChB,QAAQ,CAMV;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CACxB,MAAM,EAAE,aAAa,EACrB,GAAG,EAAE,MAAM,EACX,eAAe,GAAE,qBAA6B,EAC9C,OAAO,CAAC,EAAE,qBAAqB,EAC/B,OAAO,CAAC,EAAE,OAAO,GAChB,QAAQ,CAgCV;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,cAAc,GAAG,QAAQ,CAW7D;AA+GD;iCACiC;AACjC,eAAO,MAAM,sBAAsB,EAAE,WAAW,CAAC,MAAM,CAMrD,CAAA;AAEF,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,QAAQ,CAmB/F;AAED;yFACyF;AACzF,eAAO,MAAM,SAAS,gBAAoC,CAAA"}
1
+ {"version":3,"file":"respond.d.ts","sourceRoot":"","sources":["../../src/server/respond.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,EAIL,KAAK,aAAa,EAIlB,KAAK,cAAc,EACpB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACrD,OAAO,EAA2B,KAAK,qBAAqB,EAAE,MAAM,qBAAqB,CAAA;AA8BzF;;;;;GAKG;AACH,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EACxC,SAAS,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAC3C,qBAAqB,CAkBvB;AAED;;;;;;GAMG;AACH,wBAAgB,0BAA0B,CACxC,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,qBAAqB,EAC9B,OAAO,CAAC,EAAE,OAAO,GAChB,QAAQ,CAYV;AA4ED,wBAAgB,uBAAuB,IAAI,MAAM,CAKhD;AAmED,qGAAqG;AACrG,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,GAAG,QAAQ,CAGvF;AAuBD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,QAAQ,CAuBhF;AAcD,0FAA0F;AAC1F,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,QAAQ,CAazF;AAOD,KAAK,qBAAqB,GAAG,KAAK,GAAG,IAAI,GAAG,MAAM,GAAG,SAAS,CAAA;AAE9D,qGAAqG;AACrG,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,QAAQ,EAClB,MAAM,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,GAC3B,MAAM,GAAG,UAAU,GAAG,SAAS,CAqBjC;AAED,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM,GAAG,SAAS,CAO1E;AAED,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,MAAM,GAAG,UAAU,EACzB,KAAK,CAAC,EAAE,MAAM,GACb,QAAQ,CAKV;AAiBD;;gFAEgF;AAChF,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,OAAO,EACf,eAAe,GAAE,qBAA6B,EAC9C,OAAO,CAAC,EAAE,qBAAqB,EAC/B,SAAS,UAAQ,EACjB,OAAO,CAAC,EAAE,OAAO,GAChB,QAAQ,CAkFV;AAED;yGACyG;AACzG,wBAAgB,YAAY,CAC1B,MAAM,EAAE,OAAO,EACf,GAAG,EAAE,UAAU,EACf,eAAe,GAAE,qBAA6B,EAC9C,OAAO,CAAC,EAAE,qBAAqB,EAC/B,SAAS,UAAQ,GAChB,QAAQ,CAMV;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CACxB,MAAM,EAAE,aAAa,EACrB,GAAG,EAAE,MAAM,EACX,eAAe,GAAE,qBAA6B,EAC9C,OAAO,CAAC,EAAE,qBAAqB,EAC/B,OAAO,CAAC,EAAE,OAAO,GAChB,QAAQ,CAgCV;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,cAAc,GAAG,QAAQ,CAW7D;AA+GD;iCACiC;AACjC,eAAO,MAAM,sBAAsB,EAAE,WAAW,CAAC,MAAM,CAMrD,CAAA;AAEF,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,QAAQ,CAmB/F;AAED;yFACyF;AACzF,eAAO,MAAM,SAAS,gBAAoC,CAAA"}
@@ -3,6 +3,7 @@
3
3
  * responders, the fast JSON path, and cookie append. Imports only the runtime-core primitives + the
4
4
  * spine types, so the wire-response format lives in one module distinct from the request engine.
5
5
  */
6
+ import { hasResidentBody, markResidentBody, residentBodiesRecorded } from "../mount.js";
6
7
  import { NODE_BRIDGE_MARKER_KEYS } from "./bridge-markers.js";
7
8
  import { plainError } from "./http.js";
8
9
  import { CONTEXT_REQUEST, CONTEXT_SET, EMPTY_RESPONSE_CONTROLS, isResponseResult, plainRenderHeaders, } from "./runtime-core.js";
@@ -174,7 +175,8 @@ function jsonResponseWithOwnHeaders(result, status, headers) {
174
175
  const RESPONSE_BODY = Symbol.for(NODE_BRIDGE_MARKER_KEYS.responseBody);
175
176
  /**
176
177
  * Responses known to carry a body and take header writes: framework renders built with one, and
177
- * foreign ones `writableResponse` has already checked. A body is sent once, so such a response belongs
178
+ * foreign ones `writableResponse` has already checked. A body the framework serialized itself is
179
+ * recorded by `markResidentBody` instead, and counts the same. A body is sent once, so such a response belongs
178
180
  * to whichever request holds it and is written in place without reading `.body` again - on Bun that
179
181
  * read turns a string body into a stream, measured at about 6% of a request.
180
182
  */
@@ -197,10 +199,9 @@ export function rememberRenderedResponse(response, hasBody) {
197
199
  WRITABLE_BODY_RESPONSES.add(response);
198
200
  return response;
199
201
  }
200
- /** `rememberRenderedResponse` for a Response the framework constructed with a body. */
202
+ /** `rememberRenderedResponse` for a Response the framework built around a body it serialized. */
201
203
  function withBody(response) {
202
- WRITABLE_BODY_RESPONSES.add(response);
203
- return response;
204
+ return markResidentBody(response);
204
205
  }
205
206
  const HEADER_MUTABILITY_PROBE = "x-nifra-header-probe";
206
207
  /** Whether `headers` takes writes. A guarded `Headers` rejects the first one, so the probe changes
@@ -234,7 +235,7 @@ function headersTakeWrites(headers) {
234
235
  * handed back on any other request, that copy is copied again.
235
236
  */
236
237
  export function writableResponse(response, request) {
237
- if (WRITABLE_BODY_RESPONSES.has(response))
238
+ if (hasResidentBody(response) || WRITABLE_BODY_RESPONSES.has(response))
238
239
  return response;
239
240
  if (response.body === null) {
240
241
  // A 101 upgrade and the status-0 `Response.error()` cannot be constructed, and a runtime makes
@@ -329,7 +330,8 @@ export function fusedRespondNoSet(result, tagResponseBody = false, statics, unst
329
330
  // hook walk is empty; an app that registers ANY response hook keeps the record, because the
330
331
  // alternative is `writableResponse` reading `.body` and probing the headers of every response (each
331
332
  // one is fresh, so nothing amortizes) - the probe alone measured 19% slower than the WeakSet write.
332
- // Default false: an unknown caller pays one WeakSet write rather than a probe per response.
333
+ // Default false: an unknown caller pays one WeakSet write rather than a probe per response. Once an
334
+ // in-process client exists the write is no longer dead: it reads a recorded body whole.
333
335
  if (unstamped &&
334
336
  (tagResponseBody === false || tagResponseBody === undefined) &&
335
337
  statics === undefined &&
@@ -338,7 +340,8 @@ export function fusedRespondNoSet(result, tagResponseBody = false, statics, unst
338
340
  result !== null &&
339
341
  !(result instanceof Response) &&
340
342
  !isResponseResult(result)) {
341
- return Response.json(result);
343
+ const response = Response.json(result);
344
+ return residentBodiesRecorded ? markResidentBody(response) : response;
342
345
  }
343
346
  if (result !== undefined &&
344
347
  !(result instanceof Response) &&
@@ -1 +1 @@
1
- {"version":3,"file":"respond.js","sourceRoot":"","sources":["../../src/server/respond.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAA;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAA;AACtC,OAAO,EACL,eAAe,EACf,WAAW,EACX,uBAAuB,EAEvB,gBAAgB,EAEhB,kBAAkB,GAEnB,MAAM,mBAAmB,CAAA;AAE1B,OAAO,EAAE,uBAAuB,EAA8B,MAAM,qBAAqB,CAAA;AAEzF;;oGAEoG;AACpG,SAAS,WAAW,CAAC,GAAW;IAC9B,MAAM,OAAO,GAAG,GAAG,CAAC,QAAQ,CAAA;IAC5B,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,GAAG,CAAC,QAAQ,CAAA;IACtE,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;IACzC,KAAK,MAAM,MAAM,IAAI,OAAO;QAAE,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,CAAA;IAClE,OAAO,OAAO,CAAA;AAChB,CAAC;AAED;uEACuE;AACvE,SAAS,cAAc,CAAC,KAAkB,EAAE,GAAW;IACrD,OAAO;QACL,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,QAAQ,EAAE,kBAAkB,CAAC,KAAK,EAAE,GAAG,CAAC;QACxC,QAAQ,EAAE,GAAG,CAAC,QAAQ;KACb,CAAA;AACb,CAAC;AAED,iGAAiG;AACjG,+FAA+F;AAC/F,sFAAsF;AACtF,MAAM,iBAAiB,GAAG,gCAAgC,CAAA;AAC1D,MAAM,eAAe,GAAG,IAAI,OAAO,CAAC,EAAE,cAAc,EAAE,iBAAiB,EAAE,CAAC,CAAA;AAC1E,MAAM,aAAa,GAAiB,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,eAAe,EAAE,CAAA;AAE7E;;;;;GAKG;AACH,MAAM,UAAU,0BAA0B,CACxC,MAAwC,EACxC,SAA4C;IAE5C,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,MAAM,EAAE,CAAC,CAAA;IAC3C,MAAM,WAAW,GAAG,IAAI,OAAO,CAAC,EAAE,GAAG,MAAM,EAAE,cAAc,EAAE,iBAAiB,EAAE,CAAC,CAAA;IACjF,IAAI,YAAsC,CAAA;IAC1C,OAAO;QACL,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC9C,WAAW;QACX,WAAW,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,WAAW,EAAE;QAClD,SAAS;QACT,mBAAmB,EAAE,GAAG,EAAE;YACxB,YAAY,KAAK;gBACf,MAAM,EAAE,GAAG;gBACX,OAAO,EAAE,IAAI,OAAO,CAAC,EAAE,GAAG,MAAM,EAAE,cAAc,EAAE,uBAAuB,EAAE,EAAE,CAAC;aAC/E,CAAA;YACD,OAAO,YAAY,CAAA;QACrB,CAAC;KACF,CAAA;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,0BAA0B,CACxC,QAAkB,EAClB,OAA8B,EAC9B,OAAiB;IAEjB,IAAI,MAAM,GAAG,QAAQ,CAAA;IACrB,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAA;IAC/B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACxC,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAE,CAAA;QACzB,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;QAC9C,uEAAuE;QACvE,IAAI,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,IAAI,OAAO,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;YAAE,SAAQ;QACzF,IAAI,MAAM,KAAK,QAAQ;YAAE,MAAM,GAAG,gBAAgB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;QACrE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;IACxC,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,kBAAkB,CACzB,IAAY,EACZ,MAAc,EACd,OAA8B,EAC9B,WAAmB,EACnB,IAAkB;IAElB,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,wBAAwB,CAC7B,IAAI,EACJ,MAAM,EACN,OAAO,CAAC,MAAgC,EACxC,WAAW,CACZ,CAAA;IACH,CAAC;IACD,mGAAmG;IACnG,iFAAiF;IACjF,OAAO,IAAI,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;AACjC,CAAC;AAED,SAAS,WAAW,CAClB,QAAkB,EAClB,OAA0C,EAC1C,OAA4B;IAE5B,OAAO,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,0BAA0B,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAA;AAClG,CAAC;AAED,SAAS,mBAAmB,CAAC,OAAgB,EAAE,OAA8B;IAC3E,kGAAkG;IAClG,+FAA+F;IAC/F,kEAAkE;IAClE,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAA;IAC/B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACxC,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAE,CAAA;QACzB,iGAAiG;QACjG,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;YACnE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;IACnC,CAAC;AACH,CAAC;AAED,oFAAoF;AACpF,SAAS,oBAAoB,CAC3B,GAAiD,EACjD,OAA8B;IAE9B,IAAI,GAAG,KAAK,SAAS;QAAE,OAAO,OAAO,CAAC,MAAM,CAAA;IAC5C,IAAI,GAAG,YAAY,OAAO,EAAE,CAAC;QAC3B,wFAAwF;QACxF,mBAAmB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAA;QACjC,OAAO,GAAG,CAAA;IACZ,CAAC;IACD,OAAO,uBAAuB,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAA2B,CAAA;AAC/E,CAAC;AAED,gGAAgG;AAChG,iGAAiG;AACjG,gGAAgG;AAChG,iGAAiG;AACjG,gGAAgG;AAChG,4FAA4F;AAC5F,MAAM,MAAM,GAAG,OAAQ,UAAgC,CAAC,GAAG,KAAK,WAAW,CAAA;AAC3E,MAAM,OAAO,GAAG,OAAQ,UAAiC,CAAC,IAAI,KAAK,WAAW,CAAA;AAC9E,IAAI,mBAAuC,CAAA;AAE3C,MAAM,UAAU,uBAAuB;IACrC,IAAI,mBAAmB,KAAK,SAAS,EAAE,CAAC;QACtC,mBAAmB,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,kBAAkB,CAAA;IAC1F,CAAC;IACD,OAAO,mBAAmB,CAAA;AAC5B,CAAC;AAED,SAAS,wBAAwB,CAC/B,IAAY,EACZ,MAAc,EACd,OAA+B,EAC/B,kBAAkB,GAAG,uBAAuB,EAAE;IAE9C,mGAAmG;IACnG,iFAAiF;IACjF,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,CAAC,CAAA;IAC/C,IAAI,cAAc,GAAG,KAAK,CAAA;IAC1B,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QACpD,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;QACjC,IAAI,IAAI,CAAC,WAAW,EAAE,KAAK,cAAc,EAAE,CAAC;YAC1C,cAAc,GAAG,IAAI,CAAA;QACvB,CAAC;IACH,CAAC;IACD,IAAI,CAAC,cAAc;QAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAA;IAC7E,OAAO,QAAQ,CAAA;AACjB,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,0BAA0B,CACjC,MAAc,EACd,MAAc,EACd,OAA+B;IAE/B,MAAM,QAAQ,GAAG,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,CAAA;IAC3F,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC;QAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAE,CAAC,CAAA;IACnF,OAAO,QAAQ,CAAC,QAAQ,CAAC,CAAA;AAC3B,CAAC;AAED,kGAAkG;AAClG,gGAAgG;AAChG,oEAAoE;AACpE,MAAM,aAAa,GAAG,MAAM,CAAC,GAAG,CAAC,uBAAuB,CAAC,YAAY,CAAC,CAAA;AAEtE;;;;;GAKG;AACH,MAAM,uBAAuB,GAAG,IAAI,OAAO,EAAY,CAAA;AAEvD;;;;;GAKG;AACH,MAAM,aAAa,GAAG,IAAI,OAAO,EAAqB,CAAA;AAEtD,SAAS,OAAO,CAAC,QAAkB,EAAE,OAA4B;IAC/D,IAAI,OAAO,KAAK,SAAS;QAAE,aAAa,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;IAC/D,OAAO,QAAQ,CAAA;AACjB,CAAC;AAED,qGAAqG;AACrG,MAAM,UAAU,wBAAwB,CAAC,QAAkB,EAAE,OAAgB;IAC3E,IAAI,OAAO;QAAE,uBAAuB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;IAClD,OAAO,QAAQ,CAAA;AACjB,CAAC;AAED,uFAAuF;AACvF,SAAS,QAAQ,CAAC,QAAkB;IAClC,uBAAuB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;IACrC,OAAO,QAAQ,CAAA;AACjB,CAAC;AAED,MAAM,uBAAuB,GAAG,sBAAsB,CAAA;AAEtD;yBACyB;AACzB,SAAS,iBAAiB,CAAC,OAAgB;IACzC,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAA;QACrD,OAAO,CAAC,GAAG,CAAC,uBAAuB,EAAE,GAAG,CAAC,CAAA;QACzC,IAAI,QAAQ,KAAK,IAAI;YAAE,OAAO,CAAC,MAAM,CAAC,uBAAuB,CAAC,CAAA;;YACzD,OAAO,CAAC,GAAG,CAAC,uBAAuB,EAAE,QAAQ,CAAC,CAAA;IACrD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAA;IACd,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,gBAAgB,CAAC,QAAkB,EAAE,OAAiB;IACpE,IAAI,uBAAuB,CAAC,GAAG,CAAC,QAAQ,CAAC;QAAE,OAAO,QAAQ,CAAA;IAC1D,IAAI,QAAQ,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;QAC3B,+FAA+F;QAC/F,oBAAoB;QACpB,IAAI,QAAQ,CAAC,MAAM,GAAG,GAAG;YAAE,OAAO,QAAQ,CAAA;QAC1C,IAAI,OAAO,KAAK,SAAS,IAAI,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,OAAO;YAAE,OAAO,QAAQ,CAAA;QACrF,MAAM,IAAI,GAAG,cAAc,CACzB,QAAQ,EACR,IAAI,QAAQ,CAAC,IAAI,EAAE;YACjB,MAAM,EAAE,QAAQ,CAAC,MAAM;YACvB,UAAU,EAAE,QAAQ,CAAC,UAAU;YAC/B,OAAO,EAAE,QAAQ,CAAC,OAAO;SAC1B,CAAC,EACF,KAAK,CACN,CAAA;QACD,OAAO,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;IAC/B,CAAC;IACD,IAAI,iBAAiB,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QACxC,uBAAuB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;QACrC,OAAO,QAAQ,CAAA;IACjB,CAAC;IACD,OAAO,cAAc,CAAC,QAAQ,EAAE,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,IAAI,CAAC,CAAA;AAC9E,CAAC;AAED;sGACsG;AACtG,SAAS,cAAc,CAAC,QAAkB,EAAE,IAAc,EAAE,OAAgB;IAC1E,MAAM,MAAM,GAAY,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAA;IAC5D,IAAI,MAAM,KAAK,SAAS;QAAE,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,aAAa,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAA;IACvF,OAAO,wBAAwB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;AAChD,CAAC;AAED,SAAS,gBAAgB,CAAC,MAAc;IACtC,OAAO,MAAM,KAAK,GAAG,IAAI,MAAM,KAAK,GAAG,IAAI,MAAM,KAAK,GAAG,CAAA;AAC3D,CAAC;AAED,0FAA0F;AAC1F,MAAM,UAAU,yBAAyB,CAAC,QAAkB,EAAE,OAAiB;IAC7E,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,OAAO,QAAQ,CAAA;IACvD,IAAI,QAAQ,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC;QAAE,OAAO,QAAQ,CAAA;IACtF,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;IAC7C,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAA;IAChC,OAAO,OAAO,CACZ,IAAI,QAAQ,CAAC,IAAI,EAAE;QACjB,MAAM,EAAE,QAAQ,CAAC,MAAM;QACvB,UAAU,EAAE,QAAQ,CAAC,UAAU;QAC/B,OAAO;KACR,CAAC,EACF,OAAO,CACR,CAAA;AACH,CAAC;AASD,qGAAqG;AACrG,MAAM,UAAU,kBAAkB,CAChC,QAAkB,EAClB,MAA4B;IAE5B,MAAM,MAAM,GAAI,QAA6E,CAC3F,aAAa,CACd,CAAA;IACD,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,+FAA+F;QAC/F,8FAA8F;QAC9F,yFAAyF;QACzF,IACE,OAAO,MAAM,KAAK,QAAQ;YAC1B,MAAM,KAAK,IAAI;YACf,MAAM,YAAY,UAAU;YAC5B,MAAM,CAAC,KAAK,KAAK,SAAS;YAC1B,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,EACzB,CAAC;YACD,OAAO,SAAS,CAAA;QAClB,CAAC;QACD,OAAO,MAAM,CAAC,IAAI,CAAA;IACpB,CAAC;IACD,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,YAAY,UAAU;QAAE,OAAO,MAAM,CAAA;IAC7E,OAAO,MAAM,EAAE,IAAI,CAAA;AACrB,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,QAAkB;IACpD,MAAM,MAAM,GAAI,QAA6E,CAC3F,aAAa,CACd,CAAA;IACD,OAAO,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,IAAI,OAAO,IAAI,MAAM;QACvE,CAAC,CAAC,MAAM,CAAC,KAAK;QACd,CAAC,CAAC,SAAS,CAAA;AACf,CAAC;AAED,MAAM,UAAU,kBAAkB,CAChC,QAAkB,EAClB,IAAyB,EACzB,KAAc;IAEd,MAAM,CAAC,cAAc,CAAC,QAAQ,EAAE,aAAa,EAAE;QAC7C,KAAK,EAAE,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAE,EAAE,IAAI,EAAE,KAAK,EAAkC;KACrF,CAAC,CAAA;IACF,OAAO,QAAQ,CAAA;AACjB,CAAC;AAED,SAAS,MAAM,CACb,QAAkB,EAClB,IAAY,EACZ,eAAsC;IAEtC,QAAQ,CAAC,QAAQ,CAAC,CAAA;IAClB,OAAO,eAAe,KAAK,KAAK,IAAI,eAAe,KAAK,SAAS;QAC/D,CAAC,CAAC,QAAQ;QACV,CAAC,CAAC,kBAAkB,CAChB,QAAQ,EACR,IAAI,EACJ,OAAO,eAAe,KAAK,QAAQ,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS,CAClE,CAAA;AACP,CAAC;AAED;;gFAEgF;AAChF,MAAM,UAAU,iBAAiB,CAC/B,MAAe,EACf,kBAAyC,KAAK,EAC9C,OAA+B,EAC/B,SAAS,GAAG,KAAK,EACjB,OAAiB;IAEjB,iGAAiG;IACjG,oGAAoG;IACpG,oGAAoG;IACpG,4FAA4F;IAC5F,oGAAoG;IACpG,oGAAoG;IACpG,4FAA4F;IAC5F,IACE,SAAS;QACT,CAAC,eAAe,KAAK,KAAK,IAAI,eAAe,KAAK,SAAS,CAAC;QAC5D,OAAO,KAAK,SAAS;QACrB,MAAM,KAAK,SAAS;QACpB,OAAO,MAAM,KAAK,QAAQ;QAC1B,MAAM,KAAK,IAAI;QACf,CAAC,CAAC,MAAM,YAAY,QAAQ,CAAC;QAC7B,CAAC,gBAAgB,CAAC,MAAM,CAAC,EACzB,CAAC;QACD,OAAO,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IAC9B,CAAC;IACD,IACE,MAAM,KAAK,SAAS;QACpB,CAAC,CAAC,MAAM,YAAY,QAAQ,CAAC;QAC7B,OAAO,MAAM,KAAK,QAAQ;QAC1B,MAAM,KAAK,IAAI;QACf,CAAC,gBAAgB,CAAC,MAAM,CAAC,EACzB,CAAC;QACD,gGAAgG;QAChG,kGAAkG;QAClG,iGAAiG;QACjG,8FAA8F;QAC9F,gCAAgC;QAChC,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC;YACzD,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;YACtC,uFAAuF;YACvF,4BAA4B;YAC5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAChD,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAE,CAAA;gBACjC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;YAC1C,CAAC;YACD,OAAO,QAAQ,CAAC,QAAQ,CAAC,CAAA;QAC3B,CAAC;QACD,oFAAoF;QACpF,4FAA4F;QAC5F,qEAAqE;QACrE,IAAI,eAAe,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC7C,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAuB,CAAA;YACzD,gGAAgG;YAChG,gGAAgG;YAChG,4FAA4F;YAC5F,IAAI,IAAI,KAAK,SAAS;gBACpB,OAAO,MAAM,CACX,OAAO,KAAK,SAAS;oBACnB,CAAC,CAAC,IAAI,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;oBACnC,CAAC,CAAC,eAAe;wBACf,CAAC,CAAC,kBAAkB,CAAC,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,iBAAiB,EAAE,OAAO,CAAC,WAAW,CAAC;wBAChF,CAAC,CAAC,kBAAkB,CAChB,IAAI,EACJ,GAAG,EACH,OAAO,EACP,uBAAuB,EAAE,EACzB,OAAO,CAAC,mBAAmB,EAAE,CAC9B,EACP,IAAI,EACJ,eAAe,CAChB,CAAA;QACL,CAAC;QACD,OAAO,QAAQ,CACb,OAAO,KAAK,SAAS;YACnB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC;YACvB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,mBAAmB,EAAE,CAAC,CACzD,CAAA;IACH,CAAC;IACD,OAAO,UAAU,CACf,MAAuB,EACvB,uBAAuB,EACvB,eAAe,EACf,OAAO,EACP,OAAO,CACR,CAAA;AACH,CAAC;AAED;yGACyG;AACzG,MAAM,UAAU,YAAY,CAC1B,MAAe,EACf,GAAe,EACf,kBAAyC,KAAK,EAC9C,OAA+B,EAC/B,SAAS,GAAG,KAAK;IAEjB,MAAM,GAAG,GAAG,GAAG,CAAC,WAAW,CAAC,EAAE,CAAA;IAC9B,MAAM,OAAO,GAAG,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC,CAAA;IAC5D,IAAI,GAAG,KAAK,SAAS;QACnB,OAAO,iBAAiB,CAAC,MAAM,EAAE,eAAe,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC,CAAA;IAChF,OAAO,UAAU,CAAC,MAAuB,EAAE,GAAG,EAAE,eAAe,EAAE,OAAO,EAAE,OAAO,CAAC,CAAA;AACpF,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,UAAU,CACxB,MAAqB,EACrB,GAAW,EACX,kBAAyC,KAAK,EAC9C,OAA+B,EAC/B,OAAiB;IAEjB,IAAI,gBAAgB,CAAC,MAAM,CAAC,EAAE,CAAC;QAC7B,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAA;QAC1B,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,8FAA8F;YAC9F,4FAA4F;YAC5F,gFAAgF;YAChF,OAAO,UAAU,CACf,KAAK,CAAC,IAAqB,EAC3B,cAAc,CAAC,KAAK,EAAE,GAAG,CAAC,EAC1B,eAAe,EACf,OAAO,EACP,OAAO,CACR,CAAA;QACH,CAAC;QACD,OAAO,WAAW,CAChB,kBAAkB,CAAC,yBAAyB,CAAC,MAAM,CAAC,UAAU,EAAE,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,EACzF,OAAO,EACP,OAAO,CACR,CAAA;IACH,CAAC;IACD,IAAI,MAAM,YAAY,QAAQ,EAAE,CAAC;QAC/B,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;YACpB,OAAO,UAAU,CAAC,SAAS,EAAE,uBAAuB,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,CAAA;QAChF,CAAC;QACD,OAAO,WAAW,CAChB,kBAAkB,CAAC,yBAAyB,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,EAC5E,OAAO,EACP,OAAO,CACR,CAAA;IACH,CAAC;IACD,OAAO,WAAW,CAAC,MAAM,EAAE,GAAG,EAAE,eAAe,EAAE,OAAO,EAAE,OAAO,CAAC,CAAA;AACpE,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,YAAY,CAAC,MAAsB;IACjD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAA;IAC1B,OAAO,KAAK,KAAK,SAAS;QACxB,CAAC,CAAC,yBAAyB,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;QAChD,CAAC,CAAC,WAAW,CACT,KAAK,CAAC,IAAI,EACV,cAAc,CAAC,KAAK,EAAE,uBAAuB,CAAC,EAC9C,KAAK,EACL,SAAS,EACT,SAAS,CACV,CAAA;AACP,CAAC;AAED;4CAC4C;AAC5C,SAAS,WAAW,CAClB,MAAe,EACf,GAAW,EACX,eAAsC,EACtC,OAA0C,EAC1C,OAA4B;IAE5B,6FAA6F;IAC7F,+EAA+E;IAC/E,MAAM,GAAG,GAAG,WAAW,CAAC,GAAG,CAAC,CAAA;IAC5B,MAAM,OAAO,GAAG,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,oBAAoB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAA;IAChF,MAAM,aAAa,GAAG,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAA;IACnF,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,IAAI,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;IAC/D,IAAI,MAAM,KAAK,GAAG,IAAI,MAAM,KAAK,GAAG,IAAI,MAAM,KAAK,GAAG,EAAE,CAAC;QACvD,OAAO,OAAO,CACZ,IAAI,QAAQ,CAAC,IAAI,EAAE,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,EAC5E,OAAO,CACR,CAAA;IACH,CAAC;IACD,mGAAmG;IACnG,6FAA6F;IAC7F,qGAAqG;IACrG,8FAA8F;IAC9F,oFAAoF;IACpF,IACE,GAAG,KAAK,SAAS;QACjB,CAAC,CAAC,GAAG,YAAY,OAAO,CAAC;QACzB,OAAO,KAAK,SAAS;QACrB,CAAC,GAAG,CAAC,QAAQ,KAAK,SAAS,IAAI,GAAG,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC;QACzD,CAAC,MAAM,IAAI,OAAO,CAAC;QACnB,CAAC,eAAe;QAChB,MAAM,KAAK,SAAS;QACpB,OAAO,MAAM,KAAK,QAAQ;QAC1B,MAAM,KAAK,IAAI,EACf,CAAC;QACD,OAAO,0BAA0B,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,CAAA;IACxD,CAAC;IACD,IAAI,GAAG,KAAK,SAAS,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QAC9C,6FAA6F;QAC7F,2FAA2F;QAC3F,2FAA2F;QAC3F,wFAAwF;QACxF,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAuB,CAAA;QACzD,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,MAAM,IAAI,GACR,MAAM,KAAK,GAAG;gBACZ,CAAC,CAAC,CAAC,OAAO,EAAE,WAAW,IAAI,aAAa,CAAC;gBACzC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,CAAA;YACxC,OAAO,MAAM,CACX,OAAO,KAAK,SAAS;gBACnB,CAAC,CAAC,kFAAkF;oBAClF,IAAI,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;gBAC1B,CAAC,CAAC,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,iBAAiB,EAAE,IAAI,CAAC,EACtE,IAAI,EACJ,eAAe,CAChB,CAAA;QACH,CAAC;IACH,CAAC;IACD,MAAM,IAAI,GAAiB,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,CAAA;IACnF,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,OAAO,CAAC,IAAI,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,OAAO,CAAC,CAAA;IAC3E,IAAI,eAAe,EAAE,CAAC;QACpB,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAuB,CAAA;QACzD,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,MAAM,QAAQ,GACZ,OAAO,IAAI,CAAC,CAAC,OAAO,YAAY,OAAO,CAAC;gBACtC,CAAC,CAAC,wBAAwB,CACtB,IAAI,EACJ,MAAM,EACN,OAAiC,EACjC,eAAe,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,gCAAgC,CACxE;gBACH,CAAC,CAAC,kFAAkF;oBAClF,IAAI,QAAQ,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,mBAAmB,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;YAC3E,OAAO,MAAM,CACX,QAAQ,EACR,IAAI,EACJ,OAAO,eAAe,KAAK,QAAQ,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS,CAClE,CAAA;QACH,CAAC;IACH,CAAC;IACD,IAAI,OAAO,IAAI,OAAO,KAAK,SAAS,IAAI,CAAC,CAAC,OAAO,YAAY,OAAO,CAAC,EAAE,CAAC;QACtE,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAuB,CAAA;QACzD,IAAI,IAAI,KAAK,SAAS;YAAE,OAAO,QAAQ,CAAC,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;IAC1F,CAAC;IACD,OAAO,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAA;AAC9C,CAAC;AAED,mGAAmG;AACnG,iGAAiG;AACjG,gGAAgG;AAChG,oGAAoG;AACpG,mGAAmG;AACnG,8FAA8F;AAC9F,0DAA0D;AAC1D,SAAS,mBAAmB,CAC1B,OAAqD;IAErD,IAAI,OAAO,KAAK,SAAS;QAAE,OAAO,eAAe,CAAA;IACjD,IAAI,OAAO,YAAY,OAAO,EAAE,CAAC;QAC/B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;YAAE,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,gCAAgC,CAAC,CAAA;QAC/F,OAAO,OAAO,CAAA;IAChB,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,cAAc,CAAC;QAC3C,CAAC,CAAC,OAAO;QACT,CAAC,CAAC,EAAE,GAAG,OAAO,EAAE,cAAc,EAAE,gCAAgC,EAAE,CAAA;AACtE,CAAC;AAED;iCACiC;AACjC,MAAM,CAAC,MAAM,sBAAsB,GAAwB,IAAI,GAAG,CAAC;IACjE,cAAc;IACd,gBAAgB;IAChB,kBAAkB;IAClB,eAAe;IACf,mBAAmB;CACpB,CAAC,CAAA;AAEF,MAAM,UAAU,kBAAkB,CAAC,QAAkB,EAAE,GAAW,EAAE,OAAiB;IACnF,oGAAoG;IACpG,qGAAqG;IACrG,kGAAkG;IAClG,iGAAiG;IACjG,IAAI,MAAM,GAAG,QAAQ,CAAA;IACrB,MAAM,OAAO,GAAG,GAAG,CAAC,QAAQ,CAAA;IAC5B,IAAI,OAAO,KAAK,SAAS,IAAI,QAAQ,CAAC,MAAM,IAAI,GAAG,EAAE,CAAC;QACpD,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;YAC3B,IAAI,sBAAsB,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;gBAAE,SAAQ;YACxF,IAAI,MAAM,KAAK,QAAQ;gBAAE,MAAM,GAAG,gBAAgB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;YACrE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAE,CAAC,CAAA;QAC1C,CAAC;IACH,CAAC;IACD,MAAM,OAAO,GAAG,GAAG,CAAC,QAAQ,CAAA;IAC5B,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,MAAM,CAAA;IAChE,IAAI,MAAM,KAAK,QAAQ;QAAE,MAAM,GAAG,gBAAgB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;IACrE,KAAK,MAAM,MAAM,IAAI,OAAO;QAAE,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,CAAA;IACzE,OAAO,MAAM,CAAA;AACf,CAAC;AAED;yFACyF;AACzF,MAAM,CAAC,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAA"}
1
+ {"version":3,"file":"respond.js","sourceRoot":"","sources":["../../src/server/respond.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAA;AACvF,OAAO,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAA;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAA;AACtC,OAAO,EACL,eAAe,EACf,WAAW,EACX,uBAAuB,EAEvB,gBAAgB,EAEhB,kBAAkB,GAEnB,MAAM,mBAAmB,CAAA;AAE1B,OAAO,EAAE,uBAAuB,EAA8B,MAAM,qBAAqB,CAAA;AAEzF;;oGAEoG;AACpG,SAAS,WAAW,CAAC,GAAW;IAC9B,MAAM,OAAO,GAAG,GAAG,CAAC,QAAQ,CAAA;IAC5B,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,GAAG,CAAC,QAAQ,CAAA;IACtE,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;IACzC,KAAK,MAAM,MAAM,IAAI,OAAO;QAAE,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,CAAA;IAClE,OAAO,OAAO,CAAA;AAChB,CAAC;AAED;uEACuE;AACvE,SAAS,cAAc,CAAC,KAAkB,EAAE,GAAW;IACrD,OAAO;QACL,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,QAAQ,EAAE,kBAAkB,CAAC,KAAK,EAAE,GAAG,CAAC;QACxC,QAAQ,EAAE,GAAG,CAAC,QAAQ;KACb,CAAA;AACb,CAAC;AAED,iGAAiG;AACjG,+FAA+F;AAC/F,sFAAsF;AACtF,MAAM,iBAAiB,GAAG,gCAAgC,CAAA;AAC1D,MAAM,eAAe,GAAG,IAAI,OAAO,CAAC,EAAE,cAAc,EAAE,iBAAiB,EAAE,CAAC,CAAA;AAC1E,MAAM,aAAa,GAAiB,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,eAAe,EAAE,CAAA;AAE7E;;;;;GAKG;AACH,MAAM,UAAU,0BAA0B,CACxC,MAAwC,EACxC,SAA4C;IAE5C,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,MAAM,EAAE,CAAC,CAAA;IAC3C,MAAM,WAAW,GAAG,IAAI,OAAO,CAAC,EAAE,GAAG,MAAM,EAAE,cAAc,EAAE,iBAAiB,EAAE,CAAC,CAAA;IACjF,IAAI,YAAsC,CAAA;IAC1C,OAAO;QACL,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC9C,WAAW;QACX,WAAW,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,WAAW,EAAE;QAClD,SAAS;QACT,mBAAmB,EAAE,GAAG,EAAE;YACxB,YAAY,KAAK;gBACf,MAAM,EAAE,GAAG;gBACX,OAAO,EAAE,IAAI,OAAO,CAAC,EAAE,GAAG,MAAM,EAAE,cAAc,EAAE,uBAAuB,EAAE,EAAE,CAAC;aAC/E,CAAA;YACD,OAAO,YAAY,CAAA;QACrB,CAAC;KACF,CAAA;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,0BAA0B,CACxC,QAAkB,EAClB,OAA8B,EAC9B,OAAiB;IAEjB,IAAI,MAAM,GAAG,QAAQ,CAAA;IACrB,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAA;IAC/B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACxC,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAE,CAAA;QACzB,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;QAC9C,uEAAuE;QACvE,IAAI,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,IAAI,OAAO,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;YAAE,SAAQ;QACzF,IAAI,MAAM,KAAK,QAAQ;YAAE,MAAM,GAAG,gBAAgB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;QACrE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;IACxC,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,kBAAkB,CACzB,IAAY,EACZ,MAAc,EACd,OAA8B,EAC9B,WAAmB,EACnB,IAAkB;IAElB,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,wBAAwB,CAC7B,IAAI,EACJ,MAAM,EACN,OAAO,CAAC,MAAgC,EACxC,WAAW,CACZ,CAAA;IACH,CAAC;IACD,mGAAmG;IACnG,iFAAiF;IACjF,OAAO,IAAI,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;AACjC,CAAC;AAED,SAAS,WAAW,CAClB,QAAkB,EAClB,OAA0C,EAC1C,OAA4B;IAE5B,OAAO,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,0BAA0B,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAA;AAClG,CAAC;AAED,SAAS,mBAAmB,CAAC,OAAgB,EAAE,OAA8B;IAC3E,kGAAkG;IAClG,+FAA+F;IAC/F,kEAAkE;IAClE,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAA;IAC/B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACxC,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAE,CAAA;QACzB,iGAAiG;QACjG,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;YACnE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;IACnC,CAAC;AACH,CAAC;AAED,oFAAoF;AACpF,SAAS,oBAAoB,CAC3B,GAAiD,EACjD,OAA8B;IAE9B,IAAI,GAAG,KAAK,SAAS;QAAE,OAAO,OAAO,CAAC,MAAM,CAAA;IAC5C,IAAI,GAAG,YAAY,OAAO,EAAE,CAAC;QAC3B,wFAAwF;QACxF,mBAAmB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAA;QACjC,OAAO,GAAG,CAAA;IACZ,CAAC;IACD,OAAO,uBAAuB,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAA2B,CAAA;AAC/E,CAAC;AAED,gGAAgG;AAChG,iGAAiG;AACjG,gGAAgG;AAChG,iGAAiG;AACjG,gGAAgG;AAChG,4FAA4F;AAC5F,MAAM,MAAM,GAAG,OAAQ,UAAgC,CAAC,GAAG,KAAK,WAAW,CAAA;AAC3E,MAAM,OAAO,GAAG,OAAQ,UAAiC,CAAC,IAAI,KAAK,WAAW,CAAA;AAC9E,IAAI,mBAAuC,CAAA;AAE3C,MAAM,UAAU,uBAAuB;IACrC,IAAI,mBAAmB,KAAK,SAAS,EAAE,CAAC;QACtC,mBAAmB,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,kBAAkB,CAAA;IAC1F,CAAC;IACD,OAAO,mBAAmB,CAAA;AAC5B,CAAC;AAED,SAAS,wBAAwB,CAC/B,IAAY,EACZ,MAAc,EACd,OAA+B,EAC/B,kBAAkB,GAAG,uBAAuB,EAAE;IAE9C,mGAAmG;IACnG,iFAAiF;IACjF,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,CAAC,CAAA;IAC/C,IAAI,cAAc,GAAG,KAAK,CAAA;IAC1B,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QACpD,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;QACjC,IAAI,IAAI,CAAC,WAAW,EAAE,KAAK,cAAc,EAAE,CAAC;YAC1C,cAAc,GAAG,IAAI,CAAA;QACvB,CAAC;IACH,CAAC;IACD,IAAI,CAAC,cAAc;QAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAA;IAC7E,OAAO,QAAQ,CAAA;AACjB,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,0BAA0B,CACjC,MAAc,EACd,MAAc,EACd,OAA+B;IAE/B,MAAM,QAAQ,GAAG,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,CAAA;IAC3F,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC;QAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAE,CAAC,CAAA;IACnF,OAAO,QAAQ,CAAC,QAAQ,CAAC,CAAA;AAC3B,CAAC;AAED,kGAAkG;AAClG,gGAAgG;AAChG,oEAAoE;AACpE,MAAM,aAAa,GAAG,MAAM,CAAC,GAAG,CAAC,uBAAuB,CAAC,YAAY,CAAC,CAAA;AAEtE;;;;;;GAMG;AACH,MAAM,uBAAuB,GAAG,IAAI,OAAO,EAAY,CAAA;AAEvD;;;;;GAKG;AACH,MAAM,aAAa,GAAG,IAAI,OAAO,EAAqB,CAAA;AAEtD,SAAS,OAAO,CAAC,QAAkB,EAAE,OAA4B;IAC/D,IAAI,OAAO,KAAK,SAAS;QAAE,aAAa,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;IAC/D,OAAO,QAAQ,CAAA;AACjB,CAAC;AAED,qGAAqG;AACrG,MAAM,UAAU,wBAAwB,CAAC,QAAkB,EAAE,OAAgB;IAC3E,IAAI,OAAO;QAAE,uBAAuB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;IAClD,OAAO,QAAQ,CAAA;AACjB,CAAC;AAED,iGAAiG;AACjG,SAAS,QAAQ,CAAC,QAAkB;IAClC,OAAO,gBAAgB,CAAC,QAAQ,CAAC,CAAA;AACnC,CAAC;AAED,MAAM,uBAAuB,GAAG,sBAAsB,CAAA;AAEtD;yBACyB;AACzB,SAAS,iBAAiB,CAAC,OAAgB;IACzC,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAA;QACrD,OAAO,CAAC,GAAG,CAAC,uBAAuB,EAAE,GAAG,CAAC,CAAA;QACzC,IAAI,QAAQ,KAAK,IAAI;YAAE,OAAO,CAAC,MAAM,CAAC,uBAAuB,CAAC,CAAA;;YACzD,OAAO,CAAC,GAAG,CAAC,uBAAuB,EAAE,QAAQ,CAAC,CAAA;IACrD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAA;IACd,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,gBAAgB,CAAC,QAAkB,EAAE,OAAiB;IACpE,IAAI,eAAe,CAAC,QAAQ,CAAC,IAAI,uBAAuB,CAAC,GAAG,CAAC,QAAQ,CAAC;QAAE,OAAO,QAAQ,CAAA;IACvF,IAAI,QAAQ,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;QAC3B,+FAA+F;QAC/F,oBAAoB;QACpB,IAAI,QAAQ,CAAC,MAAM,GAAG,GAAG;YAAE,OAAO,QAAQ,CAAA;QAC1C,IAAI,OAAO,KAAK,SAAS,IAAI,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,OAAO;YAAE,OAAO,QAAQ,CAAA;QACrF,MAAM,IAAI,GAAG,cAAc,CACzB,QAAQ,EACR,IAAI,QAAQ,CAAC,IAAI,EAAE;YACjB,MAAM,EAAE,QAAQ,CAAC,MAAM;YACvB,UAAU,EAAE,QAAQ,CAAC,UAAU;YAC/B,OAAO,EAAE,QAAQ,CAAC,OAAO;SAC1B,CAAC,EACF,KAAK,CACN,CAAA;QACD,OAAO,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;IAC/B,CAAC;IACD,IAAI,iBAAiB,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QACxC,uBAAuB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;QACrC,OAAO,QAAQ,CAAA;IACjB,CAAC;IACD,OAAO,cAAc,CAAC,QAAQ,EAAE,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,IAAI,CAAC,CAAA;AAC9E,CAAC;AAED;sGACsG;AACtG,SAAS,cAAc,CAAC,QAAkB,EAAE,IAAc,EAAE,OAAgB;IAC1E,MAAM,MAAM,GAAY,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAA;IAC5D,IAAI,MAAM,KAAK,SAAS;QAAE,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,aAAa,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAA;IACvF,OAAO,wBAAwB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;AAChD,CAAC;AAED,SAAS,gBAAgB,CAAC,MAAc;IACtC,OAAO,MAAM,KAAK,GAAG,IAAI,MAAM,KAAK,GAAG,IAAI,MAAM,KAAK,GAAG,CAAA;AAC3D,CAAC;AAED,0FAA0F;AAC1F,MAAM,UAAU,yBAAyB,CAAC,QAAkB,EAAE,OAAiB;IAC7E,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,OAAO,QAAQ,CAAA;IACvD,IAAI,QAAQ,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC;QAAE,OAAO,QAAQ,CAAA;IACtF,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;IAC7C,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAA;IAChC,OAAO,OAAO,CACZ,IAAI,QAAQ,CAAC,IAAI,EAAE;QACjB,MAAM,EAAE,QAAQ,CAAC,MAAM;QACvB,UAAU,EAAE,QAAQ,CAAC,UAAU;QAC/B,OAAO;KACR,CAAC,EACF,OAAO,CACR,CAAA;AACH,CAAC;AASD,qGAAqG;AACrG,MAAM,UAAU,kBAAkB,CAChC,QAAkB,EAClB,MAA4B;IAE5B,MAAM,MAAM,GAAI,QAA6E,CAC3F,aAAa,CACd,CAAA;IACD,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,+FAA+F;QAC/F,8FAA8F;QAC9F,yFAAyF;QACzF,IACE,OAAO,MAAM,KAAK,QAAQ;YAC1B,MAAM,KAAK,IAAI;YACf,MAAM,YAAY,UAAU;YAC5B,MAAM,CAAC,KAAK,KAAK,SAAS;YAC1B,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,EACzB,CAAC;YACD,OAAO,SAAS,CAAA;QAClB,CAAC;QACD,OAAO,MAAM,CAAC,IAAI,CAAA;IACpB,CAAC;IACD,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,YAAY,UAAU;QAAE,OAAO,MAAM,CAAA;IAC7E,OAAO,MAAM,EAAE,IAAI,CAAA;AACrB,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,QAAkB;IACpD,MAAM,MAAM,GAAI,QAA6E,CAC3F,aAAa,CACd,CAAA;IACD,OAAO,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,IAAI,OAAO,IAAI,MAAM;QACvE,CAAC,CAAC,MAAM,CAAC,KAAK;QACd,CAAC,CAAC,SAAS,CAAA;AACf,CAAC;AAED,MAAM,UAAU,kBAAkB,CAChC,QAAkB,EAClB,IAAyB,EACzB,KAAc;IAEd,MAAM,CAAC,cAAc,CAAC,QAAQ,EAAE,aAAa,EAAE;QAC7C,KAAK,EAAE,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAE,EAAE,IAAI,EAAE,KAAK,EAAkC;KACrF,CAAC,CAAA;IACF,OAAO,QAAQ,CAAA;AACjB,CAAC;AAED,SAAS,MAAM,CACb,QAAkB,EAClB,IAAY,EACZ,eAAsC;IAEtC,QAAQ,CAAC,QAAQ,CAAC,CAAA;IAClB,OAAO,eAAe,KAAK,KAAK,IAAI,eAAe,KAAK,SAAS;QAC/D,CAAC,CAAC,QAAQ;QACV,CAAC,CAAC,kBAAkB,CAChB,QAAQ,EACR,IAAI,EACJ,OAAO,eAAe,KAAK,QAAQ,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS,CAClE,CAAA;AACP,CAAC;AAED;;gFAEgF;AAChF,MAAM,UAAU,iBAAiB,CAC/B,MAAe,EACf,kBAAyC,KAAK,EAC9C,OAA+B,EAC/B,SAAS,GAAG,KAAK,EACjB,OAAiB;IAEjB,iGAAiG;IACjG,oGAAoG;IACpG,oGAAoG;IACpG,4FAA4F;IAC5F,oGAAoG;IACpG,oGAAoG;IACpG,oGAAoG;IACpG,wFAAwF;IACxF,IACE,SAAS;QACT,CAAC,eAAe,KAAK,KAAK,IAAI,eAAe,KAAK,SAAS,CAAC;QAC5D,OAAO,KAAK,SAAS;QACrB,MAAM,KAAK,SAAS;QACpB,OAAO,MAAM,KAAK,QAAQ;QAC1B,MAAM,KAAK,IAAI;QACf,CAAC,CAAC,MAAM,YAAY,QAAQ,CAAC;QAC7B,CAAC,gBAAgB,CAAC,MAAM,CAAC,EACzB,CAAC;QACD,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QACtC,OAAO,sBAAsB,CAAC,CAAC,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAA;IACvE,CAAC;IACD,IACE,MAAM,KAAK,SAAS;QACpB,CAAC,CAAC,MAAM,YAAY,QAAQ,CAAC;QAC7B,OAAO,MAAM,KAAK,QAAQ;QAC1B,MAAM,KAAK,IAAI;QACf,CAAC,gBAAgB,CAAC,MAAM,CAAC,EACzB,CAAC;QACD,gGAAgG;QAChG,kGAAkG;QAClG,iGAAiG;QACjG,8FAA8F;QAC9F,gCAAgC;QAChC,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC;YACzD,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;YACtC,uFAAuF;YACvF,4BAA4B;YAC5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAChD,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAE,CAAA;gBACjC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;YAC1C,CAAC;YACD,OAAO,QAAQ,CAAC,QAAQ,CAAC,CAAA;QAC3B,CAAC;QACD,oFAAoF;QACpF,4FAA4F;QAC5F,qEAAqE;QACrE,IAAI,eAAe,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC7C,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAuB,CAAA;YACzD,gGAAgG;YAChG,gGAAgG;YAChG,4FAA4F;YAC5F,IAAI,IAAI,KAAK,SAAS;gBACpB,OAAO,MAAM,CACX,OAAO,KAAK,SAAS;oBACnB,CAAC,CAAC,IAAI,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;oBACnC,CAAC,CAAC,eAAe;wBACf,CAAC,CAAC,kBAAkB,CAAC,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,iBAAiB,EAAE,OAAO,CAAC,WAAW,CAAC;wBAChF,CAAC,CAAC,kBAAkB,CAChB,IAAI,EACJ,GAAG,EACH,OAAO,EACP,uBAAuB,EAAE,EACzB,OAAO,CAAC,mBAAmB,EAAE,CAC9B,EACP,IAAI,EACJ,eAAe,CAChB,CAAA;QACL,CAAC;QACD,OAAO,QAAQ,CACb,OAAO,KAAK,SAAS;YACnB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC;YACvB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,mBAAmB,EAAE,CAAC,CACzD,CAAA;IACH,CAAC;IACD,OAAO,UAAU,CACf,MAAuB,EACvB,uBAAuB,EACvB,eAAe,EACf,OAAO,EACP,OAAO,CACR,CAAA;AACH,CAAC;AAED;yGACyG;AACzG,MAAM,UAAU,YAAY,CAC1B,MAAe,EACf,GAAe,EACf,kBAAyC,KAAK,EAC9C,OAA+B,EAC/B,SAAS,GAAG,KAAK;IAEjB,MAAM,GAAG,GAAG,GAAG,CAAC,WAAW,CAAC,EAAE,CAAA;IAC9B,MAAM,OAAO,GAAG,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC,CAAA;IAC5D,IAAI,GAAG,KAAK,SAAS;QACnB,OAAO,iBAAiB,CAAC,MAAM,EAAE,eAAe,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC,CAAA;IAChF,OAAO,UAAU,CAAC,MAAuB,EAAE,GAAG,EAAE,eAAe,EAAE,OAAO,EAAE,OAAO,CAAC,CAAA;AACpF,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,UAAU,CACxB,MAAqB,EACrB,GAAW,EACX,kBAAyC,KAAK,EAC9C,OAA+B,EAC/B,OAAiB;IAEjB,IAAI,gBAAgB,CAAC,MAAM,CAAC,EAAE,CAAC;QAC7B,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAA;QAC1B,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,8FAA8F;YAC9F,4FAA4F;YAC5F,gFAAgF;YAChF,OAAO,UAAU,CACf,KAAK,CAAC,IAAqB,EAC3B,cAAc,CAAC,KAAK,EAAE,GAAG,CAAC,EAC1B,eAAe,EACf,OAAO,EACP,OAAO,CACR,CAAA;QACH,CAAC;QACD,OAAO,WAAW,CAChB,kBAAkB,CAAC,yBAAyB,CAAC,MAAM,CAAC,UAAU,EAAE,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,EACzF,OAAO,EACP,OAAO,CACR,CAAA;IACH,CAAC;IACD,IAAI,MAAM,YAAY,QAAQ,EAAE,CAAC;QAC/B,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;YACpB,OAAO,UAAU,CAAC,SAAS,EAAE,uBAAuB,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,CAAA;QAChF,CAAC;QACD,OAAO,WAAW,CAChB,kBAAkB,CAAC,yBAAyB,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,EAC5E,OAAO,EACP,OAAO,CACR,CAAA;IACH,CAAC;IACD,OAAO,WAAW,CAAC,MAAM,EAAE,GAAG,EAAE,eAAe,EAAE,OAAO,EAAE,OAAO,CAAC,CAAA;AACpE,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,YAAY,CAAC,MAAsB;IACjD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAA;IAC1B,OAAO,KAAK,KAAK,SAAS;QACxB,CAAC,CAAC,yBAAyB,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;QAChD,CAAC,CAAC,WAAW,CACT,KAAK,CAAC,IAAI,EACV,cAAc,CAAC,KAAK,EAAE,uBAAuB,CAAC,EAC9C,KAAK,EACL,SAAS,EACT,SAAS,CACV,CAAA;AACP,CAAC;AAED;4CAC4C;AAC5C,SAAS,WAAW,CAClB,MAAe,EACf,GAAW,EACX,eAAsC,EACtC,OAA0C,EAC1C,OAA4B;IAE5B,6FAA6F;IAC7F,+EAA+E;IAC/E,MAAM,GAAG,GAAG,WAAW,CAAC,GAAG,CAAC,CAAA;IAC5B,MAAM,OAAO,GAAG,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,oBAAoB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAA;IAChF,MAAM,aAAa,GAAG,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAA;IACnF,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,IAAI,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;IAC/D,IAAI,MAAM,KAAK,GAAG,IAAI,MAAM,KAAK,GAAG,IAAI,MAAM,KAAK,GAAG,EAAE,CAAC;QACvD,OAAO,OAAO,CACZ,IAAI,QAAQ,CAAC,IAAI,EAAE,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,EAC5E,OAAO,CACR,CAAA;IACH,CAAC;IACD,mGAAmG;IACnG,6FAA6F;IAC7F,qGAAqG;IACrG,8FAA8F;IAC9F,oFAAoF;IACpF,IACE,GAAG,KAAK,SAAS;QACjB,CAAC,CAAC,GAAG,YAAY,OAAO,CAAC;QACzB,OAAO,KAAK,SAAS;QACrB,CAAC,GAAG,CAAC,QAAQ,KAAK,SAAS,IAAI,GAAG,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC;QACzD,CAAC,MAAM,IAAI,OAAO,CAAC;QACnB,CAAC,eAAe;QAChB,MAAM,KAAK,SAAS;QACpB,OAAO,MAAM,KAAK,QAAQ;QAC1B,MAAM,KAAK,IAAI,EACf,CAAC;QACD,OAAO,0BAA0B,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,CAAA;IACxD,CAAC;IACD,IAAI,GAAG,KAAK,SAAS,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QAC9C,6FAA6F;QAC7F,2FAA2F;QAC3F,2FAA2F;QAC3F,wFAAwF;QACxF,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAuB,CAAA;QACzD,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,MAAM,IAAI,GACR,MAAM,KAAK,GAAG;gBACZ,CAAC,CAAC,CAAC,OAAO,EAAE,WAAW,IAAI,aAAa,CAAC;gBACzC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,CAAA;YACxC,OAAO,MAAM,CACX,OAAO,KAAK,SAAS;gBACnB,CAAC,CAAC,kFAAkF;oBAClF,IAAI,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;gBAC1B,CAAC,CAAC,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,iBAAiB,EAAE,IAAI,CAAC,EACtE,IAAI,EACJ,eAAe,CAChB,CAAA;QACH,CAAC;IACH,CAAC;IACD,MAAM,IAAI,GAAiB,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,CAAA;IACnF,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,OAAO,CAAC,IAAI,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,OAAO,CAAC,CAAA;IAC3E,IAAI,eAAe,EAAE,CAAC;QACpB,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAuB,CAAA;QACzD,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,MAAM,QAAQ,GACZ,OAAO,IAAI,CAAC,CAAC,OAAO,YAAY,OAAO,CAAC;gBACtC,CAAC,CAAC,wBAAwB,CACtB,IAAI,EACJ,MAAM,EACN,OAAiC,EACjC,eAAe,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,gCAAgC,CACxE;gBACH,CAAC,CAAC,kFAAkF;oBAClF,IAAI,QAAQ,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,mBAAmB,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;YAC3E,OAAO,MAAM,CACX,QAAQ,EACR,IAAI,EACJ,OAAO,eAAe,KAAK,QAAQ,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS,CAClE,CAAA;QACH,CAAC;IACH,CAAC;IACD,IAAI,OAAO,IAAI,OAAO,KAAK,SAAS,IAAI,CAAC,CAAC,OAAO,YAAY,OAAO,CAAC,EAAE,CAAC;QACtE,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAuB,CAAA;QACzD,IAAI,IAAI,KAAK,SAAS;YAAE,OAAO,QAAQ,CAAC,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;IAC1F,CAAC;IACD,OAAO,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAA;AAC9C,CAAC;AAED,mGAAmG;AACnG,iGAAiG;AACjG,gGAAgG;AAChG,oGAAoG;AACpG,mGAAmG;AACnG,8FAA8F;AAC9F,0DAA0D;AAC1D,SAAS,mBAAmB,CAC1B,OAAqD;IAErD,IAAI,OAAO,KAAK,SAAS;QAAE,OAAO,eAAe,CAAA;IACjD,IAAI,OAAO,YAAY,OAAO,EAAE,CAAC;QAC/B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;YAAE,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,gCAAgC,CAAC,CAAA;QAC/F,OAAO,OAAO,CAAA;IAChB,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,cAAc,CAAC;QAC3C,CAAC,CAAC,OAAO;QACT,CAAC,CAAC,EAAE,GAAG,OAAO,EAAE,cAAc,EAAE,gCAAgC,EAAE,CAAA;AACtE,CAAC;AAED;iCACiC;AACjC,MAAM,CAAC,MAAM,sBAAsB,GAAwB,IAAI,GAAG,CAAC;IACjE,cAAc;IACd,gBAAgB;IAChB,kBAAkB;IAClB,eAAe;IACf,mBAAmB;CACpB,CAAC,CAAA;AAEF,MAAM,UAAU,kBAAkB,CAAC,QAAkB,EAAE,GAAW,EAAE,OAAiB;IACnF,oGAAoG;IACpG,qGAAqG;IACrG,kGAAkG;IAClG,iGAAiG;IACjG,IAAI,MAAM,GAAG,QAAQ,CAAA;IACrB,MAAM,OAAO,GAAG,GAAG,CAAC,QAAQ,CAAA;IAC5B,IAAI,OAAO,KAAK,SAAS,IAAI,QAAQ,CAAC,MAAM,IAAI,GAAG,EAAE,CAAC;QACpD,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;YAC3B,IAAI,sBAAsB,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;gBAAE,SAAQ;YACxF,IAAI,MAAM,KAAK,QAAQ;gBAAE,MAAM,GAAG,gBAAgB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;YACrE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAE,CAAC,CAAA;QAC1C,CAAC;IACH,CAAC;IACD,MAAM,OAAO,GAAG,GAAG,CAAC,QAAQ,CAAA;IAC5B,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,MAAM,CAAA;IAChE,IAAI,MAAM,KAAK,QAAQ;QAAE,MAAM,GAAG,gBAAgB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;IACrE,KAAK,MAAM,MAAM,IAAI,OAAO;QAAE,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,CAAA;IACzE,OAAO,MAAM,CAAA;AACf,CAAC;AAED;yFACyF;AACzF,MAAM,CAAC,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAA"}
@@ -61,10 +61,42 @@ export interface ResponseContractOptions {
61
61
  * closed `t.object` reports them, so an enforced response becomes a 500 and the log names them.
62
62
  * `"strip"` drops them first, for any schema exposing its JSON Schema as `jsonSchema` (every
63
63
  * `@nifrajs/schema` `t` schema) - nested objects, arrays and records included. A union is projected
64
- * only when exactly one branch can hold an object. Schemas without `jsonSchema` (zod, valibot) are
64
+ * when an object value can meet only one of its branches: a single object branch, or object
65
+ * branches that all require one key holding literals no two branches share (`ok: true` /
66
+ * `ok: false`, `kind: "a"` / `kind: "b"`). Schemas without `jsonSchema` (zod, valibot) are
65
67
  * unaffected: they already strip or reject by their own rules.
66
68
  */
67
69
  readonly extra?: "reject" | "strip";
70
+ /**
71
+ * `enforce` only: log the names of the fields that never reached the wire - dropped by `extra:
72
+ * "strip"` or by a validator that strips on its own - so a field the contract does not declare
73
+ * (a new column) shows up in the log instead of vanishing. Logged as a `warn` named "response
74
+ * contract", once per route for each distinct set of names, at most 32 sets per route. Values are
75
+ * never logged. Each response is compared with what was sent, so it costs a walk of the payload.
76
+ */
77
+ readonly logStripped?: boolean;
78
+ /**
79
+ * Called for every response the contract has something to say about, for a metric or an alert, where
80
+ * the log speaks once per route. `violation`: enforce mode, the payload failed and a 500 went out in
81
+ * its place. `warn`: warn mode, the payload failed or carried undeclared top-level keys (`fields`)
82
+ * and was sent anyway. `stripped`: enforce mode, the payload was sent without `fields`. The message is
83
+ * the text the log line carries; values are never passed. Called before the response is sent; a hook
84
+ * that throws, rejects or is not a function is logged once and changes nothing. In enforce mode it costs the payload walk
85
+ * `logStripped` does.
86
+ */
87
+ readonly onReport?: (report: ResponseContractReport) => void;
88
+ }
89
+ /** One response the contract reported on, passed to {@link ResponseContractOptions.onReport}. */
90
+ export interface ResponseContractReport {
91
+ readonly kind: "violation" | "warn" | "stripped";
92
+ /** The route's method as registered, e.g. `GET`. */
93
+ readonly method: string;
94
+ /** The route's path as registered, e.g. `/users/:id`, so a metric keyed by it stays bounded. */
95
+ readonly route: string;
96
+ /** `stripped`: each field that never reached the wire (`user.passwordHash`, `items[].cost`), sorted.
97
+ * `warn`: the undeclared top-level keys that were sent, when they are the reason. */
98
+ readonly fields?: readonly string[] | undefined;
99
+ readonly message: string;
68
100
  }
69
101
  /** Success and status-specific error schemas captured by one route at registration time. */
70
102
  export interface ResponseContractDefinition {
@@ -78,11 +110,13 @@ export type ResponseContractOutcome =
78
110
  readonly kind: "ok";
79
111
  readonly value: unknown;
80
112
  }
81
- /** `warn` only: the payload differed from the contract. The ORIGINAL result is still served. */
113
+ /** Logged, then `value` is served: in `warn` the ORIGINAL result, in `enforce` (with
114
+ * `logStripped`) the cleaned one. `fields`: in `warn`, the undeclared keys when they are the reason. */
82
115
  | {
83
116
  readonly kind: "warn";
84
117
  readonly value: unknown;
85
118
  readonly message: string;
119
+ readonly fields?: readonly string[];
86
120
  }
87
121
  /** `enforce` only: the payload cannot be reconciled with the contract, so it must not be sent. */
88
122
  | {
@@ -113,6 +147,7 @@ export declare function checkRouteResponseContract(definition: ResponseContractD
113
147
  export interface ResponseContractRuntime {
114
148
  readonly mode: ResponseContractMode;
115
149
  check(definition: ResponseContractDefinition, result: unknown, context?: {
150
+ readonly req?: Request;
116
151
  readonly jsonReply?: Response | undefined;
117
152
  readonly jsonBody?: unknown;
118
153
  }): ResponseContractOutcome | Promise<ResponseContractOutcome>;
@@ -1 +1 @@
1
- {"version":3,"file":"response-contract-lane.d.ts","sourceRoot":"","sources":["../../src/server/response-contract-lane.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AACH,OAAO,EAGL,KAAK,gBAAgB,EACtB,MAAM,uBAAuB,CAAA;AAE9B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAIjD;;;;;;;;GAQG;AACH,MAAM,MAAM,oBAAoB,GAAG,MAAM,GAAG,SAAS,CAAA;AAErD,MAAM,WAAW,uBAAuB;IACtC;;;;;;;OAOG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAA;CACpC;AAED,4FAA4F;AAC5F,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,QAAQ,CAAC,EAAE,gBAAgB,CAAA;IACpC,QAAQ,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC,CAAA;CAC7D;AAED,uFAAuF;AACvF,MAAM,MAAM,uBAAuB;AACjC,yGAAyG;AACvG;IAAE,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAA;CAAE;AAClD,gGAAgG;GAC9F;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAAE;AAC9E,kGAAkG;GAChG;IAAE,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAA;AAoI5D;;;;;GAKG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,gBAAgB,EACxB,MAAM,EAAE,OAAO,EACf,IAAI,EAAE,MAAM,GAAG,SAAS,EACxB,OAAO,CAAC,EAAE,uBAAuB,GAChC,uBAAuB,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAE5D;AAiBD;;;;;;GAMG;AACH,wBAAgB,0BAA0B,CACxC,UAAU,EAAE,0BAA0B,EACtC,MAAM,EAAE,OAAO,EACf,IAAI,EAAE,MAAM,GAAG,SAAS,EACxB,SAAS,CAAC,EAAE;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAA;CAAE,EACtC,OAAO,CAAC,EAAE,uBAAuB,GAChC,uBAAuB,GAAG,OAAO,CAAC,uBAAuB,CAAC,CA8B5D;AA6CD;;;GAGG;AACH,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,IAAI,EAAE,oBAAoB,CAAA;IACnC,KAAK,CACH,UAAU,EAAE,0BAA0B,EACtC,MAAM,EAAE,OAAO,EACf,OAAO,CAAC,EAAE;QAAE,QAAQ,CAAC,SAAS,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;QAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;KAAE,GACnF,uBAAuB,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAAA;CAC9D;AAMD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,gBAAgB,CAC9B,IAAI,GAAE,oBAA6B,EACnC,OAAO,GAAE,uBAA4B,GACpC,cAAc,CAyBhB"}
1
+ {"version":3,"file":"response-contract-lane.d.ts","sourceRoot":"","sources":["../../src/server/response-contract-lane.ts"],"names":[],"mappings":"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"}