@daloyjs/core 0.30.0 → 0.34.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 (126) hide show
  1. package/README.md +14 -1
  2. package/bin/daloy.mjs +0 -0
  3. package/dist/adapters/bun.d.ts.map +1 -1
  4. package/dist/adapters/bun.js +5 -1
  5. package/dist/adapters/bun.js.map +1 -1
  6. package/dist/adapters/node.d.ts.map +1 -1
  7. package/dist/adapters/node.js +7 -2
  8. package/dist/adapters/node.js.map +1 -1
  9. package/dist/app.d.ts +47 -36
  10. package/dist/app.d.ts.map +1 -1
  11. package/dist/app.js +229 -59
  12. package/dist/app.js.map +1 -1
  13. package/dist/banner.d.ts +2 -0
  14. package/dist/banner.d.ts.map +1 -1
  15. package/dist/banner.js.map +1 -1
  16. package/dist/cli.d.ts.map +1 -1
  17. package/dist/cli.js +29 -31
  18. package/dist/cli.js.map +1 -1
  19. package/dist/client.d.ts +10 -0
  20. package/dist/client.d.ts.map +1 -1
  21. package/dist/client.js.map +1 -1
  22. package/dist/compression.d.ts +2 -2
  23. package/dist/compression.js +2 -2
  24. package/dist/config.d.ts +2 -1
  25. package/dist/config.d.ts.map +1 -1
  26. package/dist/config.js +2 -1
  27. package/dist/config.js.map +1 -1
  28. package/dist/conn-info.d.ts +5 -5
  29. package/dist/conn-info.js +4 -4
  30. package/dist/contract.d.ts +19 -0
  31. package/dist/contract.d.ts.map +1 -1
  32. package/dist/contract.js +10 -0
  33. package/dist/contract.js.map +1 -1
  34. package/dist/cookie.d.ts +15 -1
  35. package/dist/cookie.d.ts.map +1 -1
  36. package/dist/cookie.js +24 -4
  37. package/dist/cookie.js.map +1 -1
  38. package/dist/dependency.d.ts +1 -1
  39. package/dist/dependency.js +1 -1
  40. package/dist/discriminator.d.ts +9 -0
  41. package/dist/discriminator.d.ts.map +1 -1
  42. package/dist/discriminator.js.map +1 -1
  43. package/dist/docs.d.ts +49 -2
  44. package/dist/docs.d.ts.map +1 -1
  45. package/dist/docs.js +26 -2
  46. package/dist/docs.js.map +1 -1
  47. package/dist/errors.d.ts +89 -0
  48. package/dist/errors.d.ts.map +1 -1
  49. package/dist/errors.js +148 -7
  50. package/dist/errors.js.map +1 -1
  51. package/dist/etag.d.ts +1 -1
  52. package/dist/etag.js +1 -1
  53. package/dist/fetch-guard.d.ts +163 -0
  54. package/dist/fetch-guard.d.ts.map +1 -0
  55. package/dist/fetch-guard.js +265 -0
  56. package/dist/fetch-guard.js.map +1 -0
  57. package/dist/index.d.ts +6 -4
  58. package/dist/index.d.ts.map +1 -1
  59. package/dist/index.js +4 -3
  60. package/dist/index.js.map +1 -1
  61. package/dist/ip-restriction.d.ts +17 -0
  62. package/dist/ip-restriction.d.ts.map +1 -1
  63. package/dist/ip-restriction.js +6 -3
  64. package/dist/ip-restriction.js.map +1 -1
  65. package/dist/jwk.d.ts +1 -1
  66. package/dist/jwk.d.ts.map +1 -1
  67. package/dist/jwk.js +3 -3
  68. package/dist/jwt.d.ts +3 -3
  69. package/dist/jwt.d.ts.map +1 -1
  70. package/dist/jwt.js +19 -7
  71. package/dist/jwt.js.map +1 -1
  72. package/dist/load-shedding.d.ts +1 -1
  73. package/dist/load-shedding.js +1 -1
  74. package/dist/logger.d.ts +14 -0
  75. package/dist/logger.d.ts.map +1 -1
  76. package/dist/logger.js +66 -4
  77. package/dist/logger.js.map +1 -1
  78. package/dist/middleware.d.ts +40 -15
  79. package/dist/middleware.d.ts.map +1 -1
  80. package/dist/middleware.js +18 -14
  81. package/dist/middleware.js.map +1 -1
  82. package/dist/multipart.d.ts +22 -0
  83. package/dist/multipart.d.ts.map +1 -1
  84. package/dist/multipart.js +69 -0
  85. package/dist/multipart.js.map +1 -1
  86. package/dist/openapi.d.ts +13 -0
  87. package/dist/openapi.d.ts.map +1 -1
  88. package/dist/openapi.js +5 -0
  89. package/dist/openapi.js.map +1 -1
  90. package/dist/router.d.ts +9 -0
  91. package/dist/router.d.ts.map +1 -1
  92. package/dist/router.js +6 -0
  93. package/dist/router.js.map +1 -1
  94. package/dist/sbom.cdx.json +60 -0
  95. package/dist/sbom.spdx.json +42 -0
  96. package/dist/security-schemes.d.ts +29 -0
  97. package/dist/security-schemes.d.ts.map +1 -1
  98. package/dist/security-schemes.js +11 -0
  99. package/dist/security-schemes.js.map +1 -1
  100. package/dist/security.d.ts +53 -2
  101. package/dist/security.d.ts.map +1 -1
  102. package/dist/security.js +67 -2
  103. package/dist/security.js.map +1 -1
  104. package/dist/session.d.ts +4 -2
  105. package/dist/session.d.ts.map +1 -1
  106. package/dist/session.js +2 -2
  107. package/dist/session.js.map +1 -1
  108. package/dist/streaming.d.ts +8 -0
  109. package/dist/streaming.d.ts.map +1 -1
  110. package/dist/streaming.js.map +1 -1
  111. package/dist/subdomains.d.ts +1 -1
  112. package/dist/subdomains.js +1 -1
  113. package/dist/time-claims.d.ts +1 -2
  114. package/dist/time-claims.d.ts.map +1 -1
  115. package/dist/time-claims.js +1 -2
  116. package/dist/time-claims.js.map +1 -1
  117. package/dist/tracing.d.ts +10 -0
  118. package/dist/tracing.d.ts.map +1 -1
  119. package/dist/tracing.js +5 -0
  120. package/dist/tracing.js.map +1 -1
  121. package/dist/types.d.ts +1 -1
  122. package/dist/websocket.d.ts +87 -0
  123. package/dist/websocket.d.ts.map +1 -1
  124. package/dist/websocket.js +81 -0
  125. package/dist/websocket.js.map +1 -1
  126. package/package.json +31 -10
package/dist/docs.d.ts CHANGED
@@ -1,16 +1,27 @@
1
1
  /**
2
2
  * Built-in API documentation handlers.
3
3
  *
4
- * Both serve a single self-contained HTML page that loads the spec at
5
- * `specUrl` from a CDN. No build step, no extra deps.
4
+ * Scalar and Swagger UI helpers serve a single HTML page that loads the spec
5
+ * at `specUrl` and fetches UI assets from a CDN by default. No build step,
6
+ * no extra deps.
6
7
  *
7
8
  * (You can self-host the assets if your CSP forbids CDNs.)
8
9
  */
10
+ /** JSON primitive accepted by {@link ScalarReferenceConfiguration}. */
9
11
  export type ScalarJsonPrimitive = string | number | boolean | null;
12
+ /** Recursive JSON value accepted by Scalar configuration fields. */
10
13
  export type ScalarJsonValue = ScalarJsonPrimitive | ScalarJsonValue[] | {
11
14
  [key: string]: ScalarJsonValue | undefined;
12
15
  };
16
+ /** Built-in Scalar API Reference color theme names. */
13
17
  export type ScalarTheme = "alternate" | "default" | "moon" | "purple" | "solarized" | "bluePlanet" | "saturn" | "kepler" | "mars" | "deepSpace" | "laserwave" | "none";
18
+ /**
19
+ * Subset of Scalar API Reference configuration safe to serialize from the
20
+ * server (function callbacks and inline `spec` are intentionally excluded).
21
+ *
22
+ * Forwarded verbatim as the `data-configuration` attribute on the Scalar
23
+ * script tag.
24
+ */
14
25
  export interface ScalarReferenceConfiguration {
15
26
  [key: string]: ScalarJsonValue | undefined;
16
27
  theme?: ScalarTheme;
@@ -81,29 +92,65 @@ export interface ScalarReferenceConfiguration {
81
92
  spec?: never;
82
93
  url?: never;
83
94
  }
95
+ /** Shared options for {@link scalarHtml} and {@link swaggerUiHtml}. */
84
96
  export interface DocsOptions {
97
+ /** Absolute or relative URL of the OpenAPI document to render. */
85
98
  specUrl: string;
99
+ /** `<title>` of the generated HTML page. */
86
100
  title?: string;
101
+ /** Override CDN URLs for the docs UI assets (useful for self-hosting). */
87
102
  assets?: {
88
103
  scalarScriptUrl?: string;
89
104
  swaggerUiCssUrl?: string;
90
105
  swaggerUiBundleUrl?: string;
91
106
  };
107
+ /** CSP `nonce` to apply to inline/script tags; must match the response CSP. */
92
108
  scriptNonce?: string;
93
109
  }
110
+ /** Options for {@link scalarHtml}; adds Scalar-specific UI configuration. */
94
111
  export interface ScalarHtmlOptions extends DocsOptions {
112
+ /** Forwarded to the Scalar `<script id="api-reference">` tag. */
95
113
  configuration?: ScalarReferenceConfiguration;
96
114
  }
115
+ /** Options for {@link docsContentSecurityPolicy}. */
97
116
  export interface DocsContentSecurityPolicyOptions {
117
+ /** Extra origins to allow for `script-src` / `style-src` (defaults to jsDelivr). */
98
118
  assetOrigins?: string[];
119
+ /** When set, allows nonce-protected inline scripts instead of `'unsafe-inline'`. */
99
120
  scriptNonce?: string;
121
+ /** When `false`, omits `'unsafe-inline'` from `style-src`. Defaults to `true`. */
100
122
  allowInlineStyles?: boolean;
101
123
  }
124
+ /** Options for {@link htmlResponse}. */
102
125
  export interface HtmlResponseOptions extends DocsContentSecurityPolicyOptions {
126
+ /** Override the computed `content-security-policy` header verbatim. */
103
127
  contentSecurityPolicy?: string;
104
128
  }
129
+ /**
130
+ * Render a Scalar API Reference HTML page that loads `opts.specUrl`.
131
+ *
132
+ * The output is a single HTML document with configurable external assets;
133
+ * pair it with {@link htmlResponse} (or your own `Response`) and serve from
134
+ * any route.
135
+ */
105
136
  export declare function scalarHtml(opts: ScalarHtmlOptions): string;
137
+ /**
138
+ * Render a Swagger UI HTML page that loads `opts.specUrl`. Same usage as
139
+ * {@link scalarHtml} but emits the classic Swagger UI bundle.
140
+ */
106
141
  export declare function swaggerUiHtml(opts: DocsOptions): string;
142
+ /**
143
+ * Build a Content-Security-Policy string compatible with the docs HTML
144
+ * produced by {@link scalarHtml} / {@link swaggerUiHtml}.
145
+ *
146
+ * Allows `'self'` plus the listed `assetOrigins` (default: jsDelivr) and
147
+ * either `'unsafe-inline'` or the provided `scriptNonce` for scripts.
148
+ */
107
149
  export declare function docsContentSecurityPolicy(opts?: DocsContentSecurityPolicyOptions): string;
150
+ /**
151
+ * Wrap a docs HTML string in a `Response` with safe defaults:
152
+ * `text/html` content type, `nosniff`, `no-referrer`, and a CSP from
153
+ * {@link docsContentSecurityPolicy} (or a caller-supplied override).
154
+ */
108
155
  export declare function htmlResponse(html: string, opts?: HtmlResponseOptions): Response;
109
156
  //# sourceMappingURL=docs.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"docs.d.ts","sourceRoot":"","sources":["../src/docs.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"docs.d.ts","sourceRoot":"","sources":["../src/docs.ts"],"names":[],"mappings":"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"}
package/dist/docs.js CHANGED
@@ -1,8 +1,9 @@
1
1
  /**
2
2
  * Built-in API documentation handlers.
3
3
  *
4
- * Both serve a single self-contained HTML page that loads the spec at
5
- * `specUrl` from a CDN. No build step, no extra deps.
4
+ * Scalar and Swagger UI helpers serve a single HTML page that loads the spec
5
+ * at `specUrl` and fetches UI assets from a CDN by default. No build step,
6
+ * no extra deps.
6
7
  *
7
8
  * (You can self-host the assets if your CSP forbids CDNs.)
8
9
  */
@@ -10,6 +11,13 @@ const JSDELIVR_ORIGIN = "https://cdn.jsdelivr.net";
10
11
  function nonceAttr(nonce) {
11
12
  return nonce ? ` nonce="${escapeHtml(nonce)}"` : "";
12
13
  }
14
+ /**
15
+ * Render a Scalar API Reference HTML page that loads `opts.specUrl`.
16
+ *
17
+ * The output is a single HTML document with configurable external assets;
18
+ * pair it with {@link htmlResponse} (or your own `Response`) and serve from
19
+ * any route.
20
+ */
13
21
  export function scalarHtml(opts) {
14
22
  const title = escapeHtml(opts.title ?? "API Reference");
15
23
  const url = escapeHtml(opts.specUrl);
@@ -27,6 +35,10 @@ export function scalarHtml(opts) {
27
35
  <script src="${scriptUrl}"${nonce}></script>
28
36
  </body></html>`;
29
37
  }
38
+ /**
39
+ * Render a Swagger UI HTML page that loads `opts.specUrl`. Same usage as
40
+ * {@link scalarHtml} but emits the classic Swagger UI bundle.
41
+ */
30
42
  export function swaggerUiHtml(opts) {
31
43
  const title = escapeHtml(opts.title ?? "API Docs");
32
44
  const url = escapeHtml(opts.specUrl);
@@ -47,6 +59,13 @@ export function swaggerUiHtml(opts) {
47
59
  <script${nonce}>window.onload=()=>SwaggerUIBundle({url:"${url}",dom_id:"#swagger"});</script>
48
60
  </body></html>`;
49
61
  }
62
+ /**
63
+ * Build a Content-Security-Policy string compatible with the docs HTML
64
+ * produced by {@link scalarHtml} / {@link swaggerUiHtml}.
65
+ *
66
+ * Allows `'self'` plus the listed `assetOrigins` (default: jsDelivr) and
67
+ * either `'unsafe-inline'` or the provided `scriptNonce` for scripts.
68
+ */
50
69
  export function docsContentSecurityPolicy(opts = {}) {
51
70
  const assetOrigins = opts.assetOrigins ?? [JSDELIVR_ORIGIN];
52
71
  const scriptSrc = ["'self'", ...assetOrigins];
@@ -65,6 +84,11 @@ export function docsContentSecurityPolicy(opts = {}) {
65
84
  "connect-src 'self'",
66
85
  ].join("; ");
67
86
  }
87
+ /**
88
+ * Wrap a docs HTML string in a `Response` with safe defaults:
89
+ * `text/html` content type, `nosniff`, `no-referrer`, and a CSP from
90
+ * {@link docsContentSecurityPolicy} (or a caller-supplied override).
91
+ */
68
92
  export function htmlResponse(html, opts = {}) {
69
93
  return new Response(html, {
70
94
  headers: {
package/dist/docs.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"docs.js","sourceRoot":"","sources":["../src/docs.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"docs.js","sourceRoot":"","sources":["../src/docs.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAmIH,MAAM,eAAe,GAAG,0BAA0B,CAAC;AAEnD,SAAS,SAAS,CAAC,KAAyB;IAC1C,OAAO,KAAK,CAAC,CAAC,CAAC,WAAW,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;AACtD,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,UAAU,CAAC,IAAuB;IAChD,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,KAAK,IAAI,eAAe,CAAC,CAAC;IACxD,MAAM,GAAG,GAAG,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACrC,MAAM,SAAS,GAAG,UAAU,CAC1B,IAAI,CAAC,MAAM,EAAE,eAAe;QAC1B,GAAG,eAAe,4BAA4B,CACjD,CAAC;IACF,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC1C,MAAM,aAAa,GAAG,uBAAuB,CAC3C,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,aAAa,CACnB,CAAC;IACF,OAAO;;;;SAIA,KAAK;;uCAEyB,GAAG,IAAI,aAAa,GAAG,KAAK;eACpD,SAAS,IAAI,KAAK;eAClB,CAAC;AAChB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAC,IAAiB;IAC7C,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,KAAK,IAAI,UAAU,CAAC,CAAC;IACnD,MAAM,GAAG,GAAG,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACrC,MAAM,MAAM,GAAG,UAAU,CACvB,IAAI,CAAC,MAAM,EAAE,eAAe;QAC1B,GAAG,eAAe,qCAAqC,CAC1D,CAAC;IACF,MAAM,SAAS,GAAG,UAAU,CAC1B,IAAI,CAAC,MAAM,EAAE,kBAAkB;QAC7B,GAAG,eAAe,2CAA2C,CAChE,CAAC;IACF,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC1C,OAAO;;;;SAIA,KAAK;+BACiB,MAAM;;;eAGtB,SAAS,IAAI,KAAK;SACxB,KAAK,4CAA4C,GAAG;eAC9C,CAAC;AAChB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,yBAAyB,CACvC,OAAyC,EAAE;IAE3C,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,IAAI,CAAC,eAAe,CAAC,CAAC;IAC5D,MAAM,SAAS,GAAG,CAAC,QAAQ,EAAE,GAAG,YAAY,CAAC,CAAC;IAC9C,IAAI,IAAI,CAAC,WAAW;QAAE,SAAS,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;;QAC/D,SAAS,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IAEvC,MAAM,QAAQ,GAAG,CAAC,QAAQ,EAAE,GAAG,YAAY,CAAC,CAAC;IAC7C,IAAI,IAAI,CAAC,iBAAiB,KAAK,KAAK;QAAE,QAAQ,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IAEvE,OAAO;QACL,oBAAoB;QACpB,cAAc,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;QACnC,aAAa,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;QACjC,6BAA6B;QAC7B,oBAAoB;KACrB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAC1B,IAAY,EACZ,OAA4B,EAAE;IAE9B,OAAO,IAAI,QAAQ,CAAC,IAAI,EAAE;QACxB,OAAO,EAAE;YACP,cAAc,EAAE,0BAA0B;YAC1C,yBAAyB,EACvB,IAAI,CAAC,qBAAqB;gBAC1B,yBAAyB,CAAC;oBACxB,YAAY,EAAE,IAAI,CAAC,YAAY;oBAC/B,WAAW,EAAE,IAAI,CAAC,WAAW;oBAC7B,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;iBAC1C,CAAC;YACJ,wBAAwB,EAAE,SAAS;YACnC,iBAAiB,EAAE,aAAa;SACjC;KACF,CAAC,CAAC;AACL,CAAC;AAED,SAAS,UAAU,CAAC,CAAS;IAC3B,OAAO,CAAC,CAAC,OAAO,CACd,UAAU,EACV,CAAC,CAAC,EAAE,EAAE,CACJ,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,CACvE,CAAC,CACD,CACL,CAAC;AACJ,CAAC;AAED,SAAS,uBAAuB,CAC9B,OAAe,EACf,aAAuD;IAEvD,IAAI,CAAC,aAAa;QAAE,OAAO,EAAE,CAAC;IAC9B,MAAM,EACJ,OAAO,EAAE,QAAQ,EACjB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,QAAQ,EACjB,OAAO,EAAE,QAAQ,EACjB,IAAI,EAAE,KAAK,EACX,GAAG,EAAE,IAAI,EACT,GAAG,eAAe,EACnB,GAAG,aAAa,CAAC;IAClB,OAAO,wBAAwB,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,eAAe,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC;AACrG,CAAC"}
package/dist/errors.d.ts CHANGED
@@ -49,7 +49,96 @@ export interface ProblemRenderOptions {
49
49
  production?: boolean;
50
50
  /** Request id stamped into `instance` as `urn:request:<id>` for log correlation. */
51
51
  requestId?: string;
52
+ /**
53
+ * Extra response headers (typically `ctx.set.headers`) to merge
54
+ * onto the rendered problem response so per-request state (CSRF rotation,
55
+ * session renewal, request-id, secure-headers) is not lost when a handler
56
+ * throws an {@link HttpError}. Existing headers baked into the error
57
+ * (e.g. `cache-control: no-store` on `UnauthorizedError`) win over the
58
+ * supplied set — they were declared by the error class for a reason and
59
+ * are not overridable by ad-hoc Context state.
60
+ *
61
+ * @since 0.32.0
62
+ */
63
+ contextHeaders?: Headers | HeadersInit;
64
+ }
65
+ /**
66
+ * Headers that are safe to attach to a custom error response
67
+ * (typically a `WWW-Authenticate` challenge built by an auth helper). Any
68
+ * header outside this allowlist on a custom response would leak state from
69
+ * the request scope into a generic error response and is refused at
70
+ * construction time by {@link httpError}.
71
+ *
72
+ * @since 0.32.0
73
+ */
74
+ export declare const SAFE_CUSTOM_ERROR_RESPONSE_HEADERS: ReadonlySet<string>;
75
+ /**
76
+ * Thrown when {@link httpError} is asked to attach a custom
77
+ * `Response` whose headers would leak request-scoped state (cookies,
78
+ * caching directives other than `no-store` / `no-cache`, server-timing,
79
+ * `X-*-Token` debug headers) into the error response.
80
+ *
81
+ * @since 0.32.0
82
+ */
83
+ export declare class MessageLeakError extends Error {
84
+ readonly offendingHeaders: ReadonlyArray<{
85
+ name: string;
86
+ reason: string;
87
+ }>;
88
+ constructor(offendingHeaders: ReadonlyArray<{
89
+ name: string;
90
+ reason: string;
91
+ }>);
92
+ }
93
+ /**
94
+ * @internal — header-safety check applied by {@link httpError} when a custom
95
+ * `res` is supplied. Exported for audits and tests.
96
+ */
97
+ export declare function checkCustomErrorResponseHeaders(headers: Headers): Array<{
98
+ name: string;
99
+ reason: string;
100
+ }>;
101
+ /**
102
+ * Factory for constructing an {@link HttpError} with an optional
103
+ * custom `res` (typically a `WWW-Authenticate` challenge). Refuses-at-
104
+ * construction in production under `secureDefaults` when the custom
105
+ * response carries headers that would leak request-scoped state — see
106
+ * {@link SAFE_CUSTOM_ERROR_RESPONSE_HEADERS} and {@link MessageLeakError}.
107
+ *
108
+ * @since 0.32.0
109
+ */
110
+ export interface HttpErrorOptions {
111
+ status: number;
112
+ problem: Partial<ProblemDetails> & {
113
+ title: string;
114
+ };
115
+ /** Plain headers merged onto the rendered response. */
116
+ headers?: Record<string, string>;
117
+ /**
118
+ * Custom `Response` providing additional headers (typically a
119
+ * `WWW-Authenticate` challenge). Body is ignored; only headers are
120
+ * extracted. Headers are validated against the safe allowlist.
121
+ */
122
+ res?: Response;
123
+ /**
124
+ * Override the production check. Defaults to
125
+ * `process.env.NODE_ENV === "production"`.
126
+ */
127
+ production?: boolean;
128
+ /**
129
+ * Override the secureDefaults check. Defaults to `true`. The refuse-at-
130
+ * construction behavior only activates when `production && secureDefaults`
131
+ * are both true.
132
+ */
133
+ secureDefaults?: boolean;
52
134
  }
135
+ /**
136
+ * Build an {@link HttpError} with optional safe-header extraction from a
137
+ * custom `Response`. See {@link HttpErrorOptions}.
138
+ *
139
+ * @since 0.32.0
140
+ */
141
+ export declare function httpError(opts: HttpErrorOptions): HttpError;
53
142
  /**
54
143
  * Base class for every DaloyJS HTTP error.
55
144
  *
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,cAAc;IAC7B,kFAAkF;IAClF,IAAI,EAAE,MAAM,CAAC;IACb,gFAAgF;IAChF,KAAK,EAAE,MAAM,CAAC;IACd,uDAAuD;IACvD,MAAM,EAAE,MAAM,CAAC;IACf,8FAA8F;IAC9F,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,qFAAqF;IACrF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,qFAAqF;IACrF,MAAM,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAClD,oDAAoD;IACpD,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED;;;;GAIG;AACH,MAAM,WAAW,oBAAoB;IACnC,8FAA8F;IAC9F,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,oFAAoF;IACpF,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,qBAAa,SAAU,SAAQ,KAAK;IAClC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC;IACjC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;gBAGxC,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,EACpD,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAclC;;;;;;;OAOG;IACH,UAAU,CAAC,IAAI,GAAE,oBAAyB,GAAG,QAAQ;CAetD;AAED;;;;;;;;;;;GAWG;AACH,qBAAa,eAAgB,SAAQ,SAAS;gBAChC,MAAM,CAAC,EAAE,MAAM;CAQ5B;AAED;;;;;;;;;;;;GAYG;AACH,qBAAa,eAAgB,SAAQ,SAAS;gBAE1C,KAAK,EAAE,QAAQ,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,EAC9C,MAAM,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;CAUnD;AAED;;;;;;GAMG;AACH,qBAAa,aAAc,SAAQ,SAAS;gBAC9B,MAAM,CAAC,EAAE,MAAM;CAQ5B;AAED;;;;;;;GAOG;AACH,qBAAa,iBAAkB,SAAQ,SAAS;gBAClC,MAAM,CAAC,EAAE,MAAM;CAc5B;AAED;;;;;;;GAOG;AACH,qBAAa,cAAe,SAAQ,SAAS;gBAC/B,MAAM,CAAC,EAAE,MAAM;CAa5B;AAED;;;;;;;;GAQG;AACH,qBAAa,qBAAsB,SAAQ,SAAS;gBACtC,KAAK,EAAE,MAAM,EAAE;CAW5B;AAED;;;;;;;;GAQG;AACH,qBAAa,oBAAqB,SAAQ,SAAS;gBACrC,KAAK,EAAE,MAAM;CAQ1B;AAED;;;;;;;;GAQG;AACH,qBAAa,yBAA0B,SAAQ,SAAS;gBAC1C,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE;CAQ5C;AAED;;;;;;;;GAQG;AACH,qBAAa,oBAAqB,SAAQ,SAAS;gBACrC,iBAAiB,CAAC,EAAE,MAAM;CAevC;AAED;;;;;;;;GAQG;AACH,qBAAa,mBAAoB,SAAQ,SAAS;gBACpC,EAAE,EAAE,MAAM;CAQvB;AAED;;;;;;;;GAQG;AACH,qBAAa,aAAc,SAAQ,SAAS;gBAC9B,MAAM,CAAC,EAAE,MAAM;CAQ5B"}
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}
package/dist/errors.js CHANGED
@@ -8,6 +8,132 @@
8
8
  * Production-mode rendering scrubs `detail` for 5xx responses so internal
9
9
  * messages never leak to clients (security: information disclosure).
10
10
  */
11
+ /**
12
+ * Headers that are safe to attach to a custom error response
13
+ * (typically a `WWW-Authenticate` challenge built by an auth helper). Any
14
+ * header outside this allowlist on a custom response would leak state from
15
+ * the request scope into a generic error response and is refused at
16
+ * construction time by {@link httpError}.
17
+ *
18
+ * @since 0.32.0
19
+ */
20
+ export const SAFE_CUSTOM_ERROR_RESPONSE_HEADERS = new Set([
21
+ "www-authenticate",
22
+ "proxy-authenticate",
23
+ "retry-after",
24
+ "content-type",
25
+ "content-language",
26
+ "content-length",
27
+ // `cache-control` is allowed only when its value is `no-store` or
28
+ // `no-cache`; that constraint is enforced in the check itself.
29
+ "cache-control",
30
+ ]);
31
+ /**
32
+ * Thrown when {@link httpError} is asked to attach a custom
33
+ * `Response` whose headers would leak request-scoped state (cookies,
34
+ * caching directives other than `no-store` / `no-cache`, server-timing,
35
+ * `X-*-Token` debug headers) into the error response.
36
+ *
37
+ * @since 0.32.0
38
+ */
39
+ export class MessageLeakError extends Error {
40
+ offendingHeaders;
41
+ constructor(offendingHeaders) {
42
+ const summary = offendingHeaders
43
+ .map((h) => `${h.name} (${h.reason})`)
44
+ .join(", ");
45
+ super(`httpError({ res }): custom error response carries disallowed header(s): ${summary}. ` +
46
+ "Only WWW-Authenticate, Proxy-Authenticate, Retry-After, Content-Type, " +
47
+ "Content-Language, Content-Length, and Cache-Control (no-store|no-cache) " +
48
+ "are permitted on a custom error response.");
49
+ this.name = "MessageLeakError";
50
+ this.offendingHeaders = offendingHeaders;
51
+ }
52
+ }
53
+ /**
54
+ * @internal — header-safety check applied by {@link httpError} when a custom
55
+ * `res` is supplied. Exported for audits and tests.
56
+ */
57
+ export function checkCustomErrorResponseHeaders(headers) {
58
+ const offending = [];
59
+ headers.forEach((value, name) => {
60
+ const lower = name.toLowerCase();
61
+ if (lower === "cache-control") {
62
+ const token = value.trim().toLowerCase();
63
+ if (token !== "no-store" && token !== "no-cache") {
64
+ offending.push({
65
+ name,
66
+ reason: `cache-control must be "no-store" or "no-cache"; got ${JSON.stringify(value)}`,
67
+ });
68
+ }
69
+ return;
70
+ }
71
+ if (lower === "set-cookie" || lower === "set-cookie2") {
72
+ offending.push({ name, reason: "cookies are not permitted on a generic error response" });
73
+ return;
74
+ }
75
+ if (lower === "server-timing") {
76
+ offending.push({ name, reason: "Server-Timing is a side-channel leak in error responses" });
77
+ return;
78
+ }
79
+ if (lower.startsWith("x-") && lower.endsWith("-token")) {
80
+ offending.push({ name, reason: "X-*-Token headers are request-scoped" });
81
+ return;
82
+ }
83
+ if (!SAFE_CUSTOM_ERROR_RESPONSE_HEADERS.has(lower)) {
84
+ offending.push({ name, reason: "not in the safe-custom-error-response allowlist" });
85
+ }
86
+ });
87
+ return offending;
88
+ }
89
+ function defaultIsProduction() {
90
+ return typeof process !== "undefined" && process.env?.NODE_ENV === "production";
91
+ }
92
+ function defaultSecureDefaults() {
93
+ // Mirrors App({ secureDefaults: true }) — on unless explicitly opted out.
94
+ return true;
95
+ }
96
+ function isSafeCustomErrorHeaderValue(name, value) {
97
+ const lower = name.toLowerCase();
98
+ return (SAFE_CUSTOM_ERROR_RESPONSE_HEADERS.has(lower) &&
99
+ !(lower === "cache-control" &&
100
+ value.trim().toLowerCase() !== "no-store" &&
101
+ value.trim().toLowerCase() !== "no-cache"));
102
+ }
103
+ function shouldCopyCustomErrorHeader(name, value) {
104
+ if (!isSafeCustomErrorHeaderValue(name, value))
105
+ return false;
106
+ // The custom Response body is intentionally ignored by httpError({ res });
107
+ // forwarding its Content-Length would describe the wrong problem+json body.
108
+ return name.toLowerCase() !== "content-length";
109
+ }
110
+ /**
111
+ * Build an {@link HttpError} with optional safe-header extraction from a
112
+ * custom `Response`. See {@link HttpErrorOptions}.
113
+ *
114
+ * @since 0.32.0
115
+ */
116
+ export function httpError(opts) {
117
+ const headers = new Headers(opts.headers);
118
+ if (opts.res) {
119
+ const isProd = opts.production ?? defaultIsProduction();
120
+ const secureDefaults = opts.secureDefaults ?? defaultSecureDefaults();
121
+ const offending = checkCustomErrorResponseHeaders(opts.res.headers);
122
+ if (isProd && secureDefaults && offending.length > 0) {
123
+ throw new MessageLeakError(offending);
124
+ }
125
+ opts.res.headers.forEach((value, name) => {
126
+ // Allow the safe headers through; disallowed ones are dropped in
127
+ // non-secureDefaults / dev contexts after a check-only pass.
128
+ if (shouldCopyCustomErrorHeader(name, value)) {
129
+ // Don't overwrite caller-supplied headers.
130
+ if (!headers.has(name))
131
+ headers.set(name, value);
132
+ }
133
+ });
134
+ }
135
+ return new HttpError(opts.status, opts.problem, Object.fromEntries(headers.entries()));
136
+ }
11
137
  /**
12
138
  * Base class for every DaloyJS HTTP error.
13
139
  *
@@ -75,10 +201,25 @@ export class HttpError extends Error {
75
201
  }
76
202
  if (opts.requestId)
77
203
  out.instance = `urn:request:${opts.requestId}`;
78
- const headers = {
79
- "content-type": "application/problem+json",
80
- ...(this.headers ?? {}),
81
- };
204
+ const headers = new Headers({ "content-type": "application/problem+json" });
205
+ for (const [name, value] of Object.entries(this.headers ?? {})) {
206
+ headers.set(name, value);
207
+ }
208
+ // Merge Context.set.headers (CSRF rotation, session renewal,
209
+ // request-id, secureHeaders output) without overriding headers the
210
+ // error class baked in (e.g. `cache-control: no-store` on auth
211
+ // failures). The framework already merges these at the dispatch
212
+ // boundary; this branch lets direct callers (custom `onError` hooks,
213
+ // tests) get the same behavior.
214
+ if (opts.contextHeaders) {
215
+ const ctxHeaders = opts.contextHeaders instanceof Headers
216
+ ? opts.contextHeaders
217
+ : new Headers(opts.contextHeaders);
218
+ ctxHeaders.forEach((value, name) => {
219
+ if (!headers.has(name))
220
+ headers.set(name, value);
221
+ });
222
+ }
82
223
  return new Response(JSON.stringify(out), { status: this.status, headers });
83
224
  }
84
225
  }
@@ -160,7 +301,7 @@ export class UnauthorizedError extends HttpError {
160
301
  title: "Unauthorized",
161
302
  ...(detail ? { detail } : {}),
162
303
  },
163
- // Wave 11 — auth-failure responses must never be cached. `no-store`
304
+ // Auth-failure responses must never be cached. `no-store`
164
305
  // already forbids both shared and private caches per RFC 9111 §5.2.2.5.
165
306
  { "cache-control": "no-store" });
166
307
  this.name = "UnauthorizedError";
@@ -181,7 +322,7 @@ export class ForbiddenError extends HttpError {
181
322
  title: "Forbidden",
182
323
  ...(detail ? { detail } : {}),
183
324
  },
184
- // Wave 11 — authorization-failure responses must never be cached.
325
+ // Authorization-failure responses must never be cached.
185
326
  { "cache-control": "no-store" });
186
327
  this.name = "ForbiddenError";
187
328
  }
@@ -257,7 +398,7 @@ export class TooManyRequestsError extends HttpError {
257
398
  type: "https://daloyjs.dev/errors/too-many-requests",
258
399
  title: "Too Many Requests",
259
400
  },
260
- // Wave 11 — rate-limit responses must never be cached so a 429 from a
401
+ // Rate-limit responses must never be cached so a 429 from a
261
402
  // private cache cannot extend the throttle window past `Retry-After`.
262
403
  retryAfterSeconds !== undefined
263
404
  ? { "retry-after": String(retryAfterSeconds), "cache-control": "no-store" }
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}
package/dist/etag.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Wave 5 leftover: first-party `etag()` helper with strong-validation default.
2
+ * First-party `etag()` helper with strong-validation default.
3
3
  *
4
4
  * Automatically computes a SHA-1 strong ETag for successful `GET` / `HEAD`
5
5
  * responses, responds `304 Not Modified` on a matching `If-None-Match`, and
package/dist/etag.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Wave 5 leftover: first-party `etag()` helper with strong-validation default.
2
+ * First-party `etag()` helper with strong-validation default.
3
3
  *
4
4
  * Automatically computes a SHA-1 strong ETag for successful `GET` / `HEAD`
5
5
  * responses, responds `304 Not Modified` on a matching `If-None-Match`, and