@daloyjs/core 0.32.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 (125) hide show
  1. package/README.md +13 -2
  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 +37 -37
  10. package/dist/app.d.ts.map +1 -1
  11. package/dist/app.js +103 -63
  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 +5 -5
  48. package/dist/errors.js +7 -7
  49. package/dist/errors.js.map +1 -1
  50. package/dist/etag.d.ts +1 -1
  51. package/dist/etag.js +1 -1
  52. package/dist/fetch-guard.d.ts +163 -0
  53. package/dist/fetch-guard.d.ts.map +1 -0
  54. package/dist/fetch-guard.js +265 -0
  55. package/dist/fetch-guard.js.map +1 -0
  56. package/dist/index.d.ts +4 -2
  57. package/dist/index.d.ts.map +1 -1
  58. package/dist/index.js +3 -2
  59. package/dist/index.js.map +1 -1
  60. package/dist/ip-restriction.d.ts +17 -0
  61. package/dist/ip-restriction.d.ts.map +1 -1
  62. package/dist/ip-restriction.js +6 -3
  63. package/dist/ip-restriction.js.map +1 -1
  64. package/dist/jwk.d.ts +1 -1
  65. package/dist/jwk.d.ts.map +1 -1
  66. package/dist/jwk.js +3 -3
  67. package/dist/jwt.d.ts +3 -3
  68. package/dist/jwt.d.ts.map +1 -1
  69. package/dist/jwt.js +19 -7
  70. package/dist/jwt.js.map +1 -1
  71. package/dist/load-shedding.d.ts +1 -1
  72. package/dist/load-shedding.js +1 -1
  73. package/dist/logger.d.ts +14 -0
  74. package/dist/logger.d.ts.map +1 -1
  75. package/dist/logger.js +66 -4
  76. package/dist/logger.js.map +1 -1
  77. package/dist/middleware.d.ts +40 -15
  78. package/dist/middleware.d.ts.map +1 -1
  79. package/dist/middleware.js +18 -14
  80. package/dist/middleware.js.map +1 -1
  81. package/dist/multipart.d.ts +22 -0
  82. package/dist/multipart.d.ts.map +1 -1
  83. package/dist/multipart.js +69 -0
  84. package/dist/multipart.js.map +1 -1
  85. package/dist/openapi.d.ts +13 -0
  86. package/dist/openapi.d.ts.map +1 -1
  87. package/dist/openapi.js +5 -0
  88. package/dist/openapi.js.map +1 -1
  89. package/dist/router.d.ts +9 -0
  90. package/dist/router.d.ts.map +1 -1
  91. package/dist/router.js +6 -0
  92. package/dist/router.js.map +1 -1
  93. package/dist/sbom.cdx.json +60 -0
  94. package/dist/sbom.spdx.json +42 -0
  95. package/dist/security-schemes.d.ts +29 -0
  96. package/dist/security-schemes.d.ts.map +1 -1
  97. package/dist/security-schemes.js +11 -0
  98. package/dist/security-schemes.js.map +1 -1
  99. package/dist/security.d.ts +53 -2
  100. package/dist/security.d.ts.map +1 -1
  101. package/dist/security.js +67 -2
  102. package/dist/security.js.map +1 -1
  103. package/dist/session.d.ts +4 -2
  104. package/dist/session.d.ts.map +1 -1
  105. package/dist/session.js +2 -2
  106. package/dist/session.js.map +1 -1
  107. package/dist/streaming.d.ts +8 -0
  108. package/dist/streaming.d.ts.map +1 -1
  109. package/dist/streaming.js.map +1 -1
  110. package/dist/subdomains.d.ts +1 -1
  111. package/dist/subdomains.js +1 -1
  112. package/dist/time-claims.d.ts +1 -2
  113. package/dist/time-claims.d.ts.map +1 -1
  114. package/dist/time-claims.js +1 -2
  115. package/dist/time-claims.js.map +1 -1
  116. package/dist/tracing.d.ts +10 -0
  117. package/dist/tracing.d.ts.map +1 -1
  118. package/dist/tracing.js +5 -0
  119. package/dist/tracing.js.map +1 -1
  120. package/dist/types.d.ts +1 -1
  121. package/dist/websocket.d.ts +67 -2
  122. package/dist/websocket.d.ts.map +1 -1
  123. package/dist/websocket.js +81 -0
  124. package/dist/websocket.js.map +1 -1
  125. package/package.json +30 -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
@@ -50,7 +50,7 @@ export interface ProblemRenderOptions {
50
50
  /** Request id stamped into `instance` as `urn:request:<id>` for log correlation. */
51
51
  requestId?: string;
52
52
  /**
53
- * Wave 11 — extra response headers (typically `ctx.set.headers`) to merge
53
+ * Extra response headers (typically `ctx.set.headers`) to merge
54
54
  * onto the rendered problem response so per-request state (CSRF rotation,
55
55
  * session renewal, request-id, secure-headers) is not lost when a handler
56
56
  * throws an {@link HttpError}. Existing headers baked into the error
@@ -63,7 +63,7 @@ export interface ProblemRenderOptions {
63
63
  contextHeaders?: Headers | HeadersInit;
64
64
  }
65
65
  /**
66
- * Wave 11 — headers that are safe to attach to a custom error response
66
+ * Headers that are safe to attach to a custom error response
67
67
  * (typically a `WWW-Authenticate` challenge built by an auth helper). Any
68
68
  * header outside this allowlist on a custom response would leak state from
69
69
  * the request scope into a generic error response and is refused at
@@ -73,7 +73,7 @@ export interface ProblemRenderOptions {
73
73
  */
74
74
  export declare const SAFE_CUSTOM_ERROR_RESPONSE_HEADERS: ReadonlySet<string>;
75
75
  /**
76
- * Wave 11 — thrown when {@link httpError} is asked to attach a custom
76
+ * Thrown when {@link httpError} is asked to attach a custom
77
77
  * `Response` whose headers would leak request-scoped state (cookies,
78
78
  * caching directives other than `no-store` / `no-cache`, server-timing,
79
79
  * `X-*-Token` debug headers) into the error response.
@@ -92,14 +92,14 @@ export declare class MessageLeakError extends Error {
92
92
  }
93
93
  /**
94
94
  * @internal — header-safety check applied by {@link httpError} when a custom
95
- * `res` is supplied. Exported for the Wave 11 audit and tests.
95
+ * `res` is supplied. Exported for audits and tests.
96
96
  */
97
97
  export declare function checkCustomErrorResponseHeaders(headers: Headers): Array<{
98
98
  name: string;
99
99
  reason: string;
100
100
  }>;
101
101
  /**
102
- * Wave 11 — factory for constructing an {@link HttpError} with an optional
102
+ * Factory for constructing an {@link HttpError} with an optional
103
103
  * custom `res` (typically a `WWW-Authenticate` challenge). Refuses-at-
104
104
  * construction in production under `secureDefaults` when the custom
105
105
  * response carries headers that would leak request-scoped state — see
package/dist/errors.js CHANGED
@@ -9,7 +9,7 @@
9
9
  * messages never leak to clients (security: information disclosure).
10
10
  */
11
11
  /**
12
- * Wave 11 — headers that are safe to attach to a custom error response
12
+ * Headers that are safe to attach to a custom error response
13
13
  * (typically a `WWW-Authenticate` challenge built by an auth helper). Any
14
14
  * header outside this allowlist on a custom response would leak state from
15
15
  * the request scope into a generic error response and is refused at
@@ -29,7 +29,7 @@ export const SAFE_CUSTOM_ERROR_RESPONSE_HEADERS = new Set([
29
29
  "cache-control",
30
30
  ]);
31
31
  /**
32
- * Wave 11 — thrown when {@link httpError} is asked to attach a custom
32
+ * Thrown when {@link httpError} is asked to attach a custom
33
33
  * `Response` whose headers would leak request-scoped state (cookies,
34
34
  * caching directives other than `no-store` / `no-cache`, server-timing,
35
35
  * `X-*-Token` debug headers) into the error response.
@@ -52,7 +52,7 @@ export class MessageLeakError extends Error {
52
52
  }
53
53
  /**
54
54
  * @internal — header-safety check applied by {@link httpError} when a custom
55
- * `res` is supplied. Exported for the Wave 11 audit and tests.
55
+ * `res` is supplied. Exported for audits and tests.
56
56
  */
57
57
  export function checkCustomErrorResponseHeaders(headers) {
58
58
  const offending = [];
@@ -205,7 +205,7 @@ export class HttpError extends Error {
205
205
  for (const [name, value] of Object.entries(this.headers ?? {})) {
206
206
  headers.set(name, value);
207
207
  }
208
- // Wave 11 — merge Context.set.headers (CSRF rotation, session renewal,
208
+ // Merge Context.set.headers (CSRF rotation, session renewal,
209
209
  // request-id, secureHeaders output) without overriding headers the
210
210
  // error class baked in (e.g. `cache-control: no-store` on auth
211
211
  // failures). The framework already merges these at the dispatch
@@ -301,7 +301,7 @@ export class UnauthorizedError extends HttpError {
301
301
  title: "Unauthorized",
302
302
  ...(detail ? { detail } : {}),
303
303
  },
304
- // Wave 11 — auth-failure responses must never be cached. `no-store`
304
+ // Auth-failure responses must never be cached. `no-store`
305
305
  // already forbids both shared and private caches per RFC 9111 §5.2.2.5.
306
306
  { "cache-control": "no-store" });
307
307
  this.name = "UnauthorizedError";
@@ -322,7 +322,7 @@ export class ForbiddenError extends HttpError {
322
322
  title: "Forbidden",
323
323
  ...(detail ? { detail } : {}),
324
324
  },
325
- // Wave 11 — authorization-failure responses must never be cached.
325
+ // Authorization-failure responses must never be cached.
326
326
  { "cache-control": "no-store" });
327
327
  this.name = "ForbiddenError";
328
328
  }
@@ -398,7 +398,7 @@ export class TooManyRequestsError extends HttpError {
398
398
  type: "https://daloyjs.dev/errors/too-many-requests",
399
399
  title: "Too Many Requests",
400
400
  },
401
- // 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
402
402
  // private cache cannot extend the throttle window past `Retry-After`.
403
403
  retryAfterSeconds !== undefined
404
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":"AAAA;;;;;;;;;GASG;AAuDH;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,kCAAkC,GAAwB,IAAI,GAAG,CAAC;IAC7E,kBAAkB;IAClB,oBAAoB;IACpB,aAAa;IACb,cAAc;IACd,kBAAkB;IAClB,gBAAgB;IAChB,kEAAkE;IAClE,+DAA+D;IAC/D,eAAe;CAChB,CAAC,CAAC;AAEH;;;;;;;GAOG;AACH,MAAM,OAAO,gBAAiB,SAAQ,KAAK;IAChC,gBAAgB,CAAkD;IAC3E,YACE,gBAAiE;QAEjE,MAAM,OAAO,GAAG,gBAAgB;aAC7B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC;aACrC,IAAI,CAAC,IAAI,CAAC,CAAC;QACd,KAAK,CACH,2EAA2E,OAAO,IAAI;YACpF,wEAAwE;YACxE,0EAA0E;YAC1E,2CAA2C,CAC9C,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAC;QAC/B,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;IAC3C,CAAC;CACF;AAED;;;GAGG;AACH,MAAM,UAAU,+BAA+B,CAC7C,OAAgB;IAEhB,MAAM,SAAS,GAA4C,EAAE,CAAC;IAC9D,OAAO,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;QAC9B,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QACjC,IAAI,KAAK,KAAK,eAAe,EAAE,CAAC;YAC9B,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;YACzC,IAAI,KAAK,KAAK,UAAU,IAAI,KAAK,KAAK,UAAU,EAAE,CAAC;gBACjD,SAAS,CAAC,IAAI,CAAC;oBACb,IAAI;oBACJ,MAAM,EAAE,uDAAuD,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;iBACvF,CAAC,CAAC;YACL,CAAC;YACD,OAAO;QACT,CAAC;QACD,IAAI,KAAK,KAAK,YAAY,IAAI,KAAK,KAAK,aAAa,EAAE,CAAC;YACtD,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,uDAAuD,EAAE,CAAC,CAAC;YAC1F,OAAO;QACT,CAAC;QACD,IAAI,KAAK,KAAK,eAAe,EAAE,CAAC;YAC9B,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,yDAAyD,EAAE,CAAC,CAAC;YAC5F,OAAO;QACT,CAAC;QACD,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YACvD,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,sCAAsC,EAAE,CAAC,CAAC;YACzE,OAAO;QACT,CAAC;QACD,IAAI,CAAC,kCAAkC,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YACnD,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,iDAAiD,EAAE,CAAC,CAAC;QACtF,CAAC;IACH,CAAC,CAAC,CAAC;IACH,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,mBAAmB;IAC1B,OAAO,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,CAAC,GAAG,EAAE,QAAQ,KAAK,YAAY,CAAC;AAClF,CAAC;AAED,SAAS,qBAAqB;IAC5B,0EAA0E;IAC1E,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,4BAA4B,CAAC,IAAY,EAAE,KAAa;IAC/D,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;IACjC,OAAO,CACL,kCAAkC,CAAC,GAAG,CAAC,KAAK,CAAC;QAC7C,CAAC,CAAC,KAAK,KAAK,eAAe;YACzB,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,KAAK,UAAU;YACzC,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,KAAK,UAAU,CAAC,CAC7C,CAAC;AACJ,CAAC;AAED,SAAS,2BAA2B,CAAC,IAAY,EAAE,KAAa;IAC9D,IAAI,CAAC,4BAA4B,CAAC,IAAI,EAAE,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAC7D,2EAA2E;IAC3E,4EAA4E;IAC5E,OAAO,IAAI,CAAC,WAAW,EAAE,KAAK,gBAAgB,CAAC;AACjD,CAAC;AAmCD;;;;;GAKG;AACH,MAAM,UAAU,SAAS,CAAC,IAAsB;IAC9C,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC1C,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;QACb,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,IAAI,mBAAmB,EAAE,CAAC;QACxD,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,IAAI,qBAAqB,EAAE,CAAC;QACtE,MAAM,SAAS,GAAG,+BAA+B,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACpE,IAAI,MAAM,IAAI,cAAc,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrD,MAAM,IAAI,gBAAgB,CAAC,SAAS,CAAC,CAAC;QACxC,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;YACvC,iEAAiE;YACjE,6DAA6D;YAC7D,IAAI,2BAA2B,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC;gBAC7C,2CAA2C;gBAC3C,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;oBAAE,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YACnD,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IACD,OAAO,IAAI,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;AACzF,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,MAAM,OAAO,SAAU,SAAQ,KAAK;IACzB,MAAM,CAAS;IACf,OAAO,CAAiB;IACxB,OAAO,CAA0B;IAE1C,YACE,MAAc,EACd,OAAoD,EACpD,OAAgC;QAEhC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACrB,IAAI,CAAC,IAAI,GAAG,WAAW,CAAC;QACxB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,OAAO,GAAG;YACb,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,2BAA2B,MAAM,EAAE;YACzD,GAAG,OAAO;YACV,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,MAAM;SACP,CAAC;QACF,IAAI,OAAO;YAAE,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACtC,CAAC;IAED;;;;;;;OAOG;IACH,UAAU,CAAC,OAA6B,EAAE;QACxC,MAAM,MAAM,GACV,IAAI,CAAC,UAAU;YACf,CAAC,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,CAAC,GAAG,EAAE,QAAQ,KAAK,YAAY,CAAC,CAAC;QAC7E,MAAM,GAAG,GAAmB,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAChD,IAAI,MAAM,IAAI,IAAI,CAAC,MAAM,IAAI,GAAG,EAAE,CAAC;YACjC,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC,wBAAwB;QAC7C,CAAC;QACD,IAAI,IAAI,CAAC,SAAS;YAAE,GAAG,CAAC,QAAQ,GAAG,eAAe,IAAI,CAAC,SAAS,EAAE,CAAC;QACnE,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,EAAE,cAAc,EAAE,0BAA0B,EAAE,CAAC,CAAC;QAC5E,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,EAAE,CAAC;YAC/D,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAC3B,CAAC;QACD,6DAA6D;QAC7D,mEAAmE;QACnE,+DAA+D;QAC/D,gEAAgE;QAChE,qEAAqE;QACrE,gCAAgC;QAChC,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACxB,MAAM,UAAU,GACd,IAAI,CAAC,cAAc,YAAY,OAAO;gBACpC,CAAC,CAAC,IAAI,CAAC,cAAc;gBACrB,CAAC,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YACvC,UAAU,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;gBACjC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;oBAAE,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YACnD,CAAC,CAAC,CAAC;QACL,CAAC;QACD,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;IAC7E,CAAC;CACF;AAED;;;;;;;;;;;GAWG;AACH,MAAM,OAAO,eAAgB,SAAQ,SAAS;IAC5C,YAAY,MAAe;QACzB,KAAK,CAAC,GAAG,EAAE;YACT,IAAI,EAAE,wCAAwC;YAC9C,KAAK,EAAE,aAAa;YACpB,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC9B,CAAC,CAAC;QACH,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;IAChC,CAAC;CACF;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,OAAO,eAAgB,SAAQ,SAAS;IAC5C,YACE,KAA8C,EAC9C,MAAgD;QAEhD,KAAK,CAAC,GAAG,EAAE;YACT,IAAI,EAAE,uCAAuC;YAC7C,KAAK,EAAE,2BAA2B;YAClC,MAAM,EAAE,WAAW,KAAK,EAAE;YAC1B,MAAM,EAAE,MAAM;SACf,CAAC,CAAC;QACH,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;IAChC,CAAC;CACF;AAED;;;;;;GAMG;AACH,MAAM,OAAO,aAAc,SAAQ,SAAS;IAC1C,YAAY,MAAe;QACzB,KAAK,CAAC,GAAG,EAAE;YACT,IAAI,EAAE,sCAAsC;YAC5C,KAAK,EAAE,WAAW;YAClB,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC9B,CAAC,CAAC;QACH,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC;IAC9B,CAAC;CACF;AAED;;;;;;;GAOG;AACH,MAAM,OAAO,iBAAkB,SAAQ,SAAS;IAC9C,YAAY,MAAe;QACzB,KAAK,CACH,GAAG,EACH;YACE,IAAI,EAAE,yCAAyC;YAC/C,KAAK,EAAE,cAAc;YACrB,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC9B;QACD,0DAA0D;QAC1D,wEAAwE;QACxE,EAAE,eAAe,EAAE,UAAU,EAAE,CAChC,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC;IAClC,CAAC;CACF;AAED;;;;;;;GAOG;AACH,MAAM,OAAO,cAAe,SAAQ,SAAS;IAC3C,YAAY,MAAe;QACzB,KAAK,CACH,GAAG,EACH;YACE,IAAI,EAAE,sCAAsC;YAC5C,KAAK,EAAE,WAAW;YAClB,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC9B;QACD,wDAAwD;QACxD,EAAE,eAAe,EAAE,UAAU,EAAE,CAChC,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC;IAC/B,CAAC;CACF;AAED;;;;;;;;GAQG;AACH,MAAM,OAAO,qBAAsB,SAAQ,SAAS;IAClD,YAAY,KAAe;QACzB,KAAK,CACH,GAAG,EACH;YACE,IAAI,EAAE,+CAA+C;YACrD,KAAK,EAAE,oBAAoB;SAC5B,EACD,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC5B,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,uBAAuB,CAAC;IACtC,CAAC;CACF;AAED;;;;;;;;GAQG;AACH,MAAM,OAAO,oBAAqB,SAAQ,SAAS;IACjD,YAAY,KAAa;QACvB,KAAK,CAAC,GAAG,EAAE;YACT,IAAI,EAAE,8CAA8C;YACpD,KAAK,EAAE,mBAAmB;YAC1B,MAAM,EAAE,gBAAgB,KAAK,QAAQ;SACtC,CAAC,CAAC;QACH,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAC;IACrC,CAAC;CACF;AAED;;;;;;;;GAQG;AACH,MAAM,OAAO,yBAA0B,SAAQ,SAAS;IACtD,YAAY,GAAW,EAAE,QAAkB;QACzC,KAAK,CAAC,GAAG,EAAE;YACT,IAAI,EAAE,mDAAmD;YACzD,KAAK,EAAE,wBAAwB;YAC/B,MAAM,EAAE,QAAQ,GAAG,uBAAuB,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;SAChE,CAAC,CAAC;QACH,IAAI,CAAC,IAAI,GAAG,2BAA2B,CAAC;IAC1C,CAAC;CACF;AAED;;;;;;;;GAQG;AACH,MAAM,OAAO,oBAAqB,SAAQ,SAAS;IACjD,YAAY,iBAA0B;QACpC,KAAK,CACH,GAAG,EACH;YACE,IAAI,EAAE,8CAA8C;YACpD,KAAK,EAAE,mBAAmB;SAC3B;QACD,4DAA4D;QAC5D,sEAAsE;QACtE,iBAAiB,KAAK,SAAS;YAC7B,CAAC,CAAC,EAAE,aAAa,EAAE,MAAM,CAAC,iBAAiB,CAAC,EAAE,eAAe,EAAE,UAAU,EAAE;YAC3E,CAAC,CAAC,EAAE,eAAe,EAAE,UAAU,EAAE,CACpC,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAC;IACrC,CAAC;CACF;AAED;;;;;;;;GAQG;AACH,MAAM,OAAO,mBAAoB,SAAQ,SAAS;IAChD,YAAY,EAAU;QACpB,KAAK,CAAC,GAAG,EAAE;YACT,IAAI,EAAE,4CAA4C;YAClD,KAAK,EAAE,iBAAiB;YACxB,MAAM,EAAE,oBAAoB,EAAE,IAAI;SACnC,CAAC,CAAC;QACH,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAC;IACpC,CAAC;CACF;AAED;;;;;;;;GAQG;AACH,MAAM,OAAO,aAAc,SAAQ,SAAS;IAC1C,YAAY,MAAe;QACzB,KAAK,CAAC,GAAG,EAAE;YACT,IAAI,EAAE,qCAAqC;YAC3C,KAAK,EAAE,uBAAuB;YAC9B,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC9B,CAAC,CAAC;QACH,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC;IAC9B,CAAC;CACF"}
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
@@ -0,0 +1,163 @@
1
+ /**
2
+ * `fetchGuard()` — SSRF-hardened wrapper around the global `fetch` for
3
+ * outbound calls a handler makes on behalf of a user.
4
+ *
5
+ * The classic SSRF chain documented by the
6
+ * [Aikido write-up](https://www.aikido.dev/blog/how-a-startups-cloud-got-taken-over-by-a-simple-form-that-sends-an-email)
7
+ * starts with a handler that fetches a user-supplied URL (an email avatar,
8
+ * a webhook target, an "import from URL" feature) and ends with the
9
+ * attacker pivoting through the cloud metadata service
10
+ * (`http://169.254.169.254/...` on AWS/Azure/DigitalOcean,
11
+ * `http://100.100.100.200/...` on Alibaba, `http://192.0.0.192/...` on
12
+ * Oracle Cloud) to steal short-lived IAM credentials.
13
+ *
14
+ * `fetchGuard()` rejects requests that resolve to any of the following
15
+ * address ranges unless explicitly opted-in:
16
+ *
17
+ * - Loopback: `127.0.0.0/8`, `::1` (opt in: `allowLoopback`).
18
+ * - RFC1918 private: `10.0.0.0/8`, `172.16.0.0/12`, `192.168.0.0/16`
19
+ * (opt in: `allowPrivate`).
20
+ * - Link-local **including every documented cloud metadata IP**:
21
+ * `169.254.0.0/16`, `fe80::/10` (opt in: `allowLinkLocal`).
22
+ * - Unique-local IPv6: `fc00::/7` (opt in: `allowUniqueLocal`).
23
+ *
24
+ * Plus an always-deny floor that no flag can lift:
25
+ *
26
+ * - `0.0.0.0/8` (this-network), `100.64.0.0/10` (carrier-grade NAT — covers
27
+ * Alibaba `100.100.100.200`), `192.0.0.0/24` (covers Oracle Cloud
28
+ * `192.0.0.192`), `192.0.2.0/24`, `198.18.0.0/15`, `198.51.100.0/24`,
29
+ * `203.0.113.0/24` (IANA-reserved), `224.0.0.0/4` (multicast),
30
+ * `240.0.0.0/4` (reserved), `255.255.255.255` (broadcast).
31
+ * - IPv6: `::/128` (unspecified), `ff00::/8` (multicast), IPv4-mapped
32
+ * `::ffff:0:0/96` is re-checked against the embedded IPv4 address.
33
+ *
34
+ * Redirects are followed **manually** with re-validation at each hop so
35
+ * an attacker cannot bypass the check via a `302 → http://169.254...`.
36
+ * `non-http(s)` protocols (`file:`, `ftp:`, `gopher:`, `data:`) are
37
+ * rejected before any network call.
38
+ *
39
+ * @since 0.34.0
40
+ * @module
41
+ */
42
+ /**
43
+ * Reason an SSRF guard refused to dispatch a request. Surfaced on
44
+ * {@link SsrfBlockedError.reason} so callers can branch in tests / logs.
45
+ *
46
+ * @since 0.34.0
47
+ */
48
+ export type SsrfBlockReason = "protocol-not-allowed" | "host-not-allowed" | "dns-resolution-failed" | "address-not-allowed" | "too-many-redirects" | "invalid-url";
49
+ /**
50
+ * Thrown by {@link fetchGuard} when an outbound request is refused. Never
51
+ * thrown for ordinary network failures — those bubble through unchanged
52
+ * so retry logic can distinguish "we refused" from "the network is sad".
53
+ *
54
+ * @since 0.34.0
55
+ */
56
+ export declare class SsrfBlockedError extends Error {
57
+ readonly url: string;
58
+ readonly reason: SsrfBlockReason;
59
+ readonly address?: string;
60
+ constructor(url: string, reason: SsrfBlockReason, address?: string);
61
+ }
62
+ /**
63
+ * Options for {@link fetchGuard}. All defaults bias toward the safe
64
+ * posture: only public IPs reachable over `http:` / `https:` are allowed.
65
+ *
66
+ * @since 0.34.0
67
+ */
68
+ export interface FetchGuardOptions {
69
+ /**
70
+ * URL schemes the guard will permit. Defaults to
71
+ * `["http:", "https:"]`. Anything else (`file:`, `data:`, `ftp:`,
72
+ * `gopher:`, `dict:`, `ldap:`) is rejected with
73
+ * `protocol-not-allowed`.
74
+ */
75
+ allowProtocols?: readonly string[];
76
+ /**
77
+ * IP literals, IPv4/IPv6 addresses, or CIDR ranges that bypass the
78
+ * deny defaults. Use this for an explicit allowlist of public
79
+ * upstreams. Hostnames are matched case-insensitively against the
80
+ * post-DNS address set — pass an IP / CIDR, not a domain name.
81
+ *
82
+ * @example `["198.51.100.42", "2001:db8::/32"]`
83
+ */
84
+ allowAddresses?: readonly string[];
85
+ /**
86
+ * Hostnames that bypass DNS-based checks entirely. Useful when the
87
+ * caller already verified the target out of band (e.g. internal
88
+ * services on a known DNS name). Compared case-insensitively against
89
+ * the URL hostname.
90
+ */
91
+ allowHosts?: readonly string[];
92
+ /**
93
+ * Extra IP / CIDR matchers to deny on top of the default floor.
94
+ * Always wins against `allowAddresses`.
95
+ */
96
+ denyAddresses?: readonly string[];
97
+ /**
98
+ * Allow loopback addresses (`127.0.0.0/8`, `::1`). Default `false`.
99
+ * Enable only for local-dev fixtures.
100
+ */
101
+ allowLoopback?: boolean;
102
+ /**
103
+ * Allow RFC1918 private ranges (`10.0.0.0/8`, `172.16.0.0/12`,
104
+ * `192.168.0.0/16`). Default `false`.
105
+ */
106
+ allowPrivate?: boolean;
107
+ /**
108
+ * Allow link-local ranges (`169.254.0.0/16`, `fe80::/10`). Default
109
+ * `false`. **Leaving this off blocks every documented cloud
110
+ * metadata service IP** (AWS/Azure/DigitalOcean `169.254.169.254`,
111
+ * GCP `metadata.google.internal`).
112
+ */
113
+ allowLinkLocal?: boolean;
114
+ /**
115
+ * Allow IPv6 unique-local addresses (`fc00::/7`). Default `false`.
116
+ */
117
+ allowUniqueLocal?: boolean;
118
+ /**
119
+ * Maximum number of redirects to follow with re-validation. Default
120
+ * `5`. Set `0` to refuse all redirects (returns the 3xx response
121
+ * directly).
122
+ */
123
+ maxRedirects?: number;
124
+ /**
125
+ * Underlying fetch implementation. Defaults to `globalThis.fetch`.
126
+ * Useful for tests or for layering on top of an instrumented client.
127
+ */
128
+ fetch?: typeof fetch;
129
+ /**
130
+ * DNS resolver. Defaults to `node:dns/promises.lookup(host, { all: true })`.
131
+ * Provide a custom resolver on non-Node runtimes (Workers, Deno
132
+ * without `--allow-net`) or to enforce an in-memory test fixture.
133
+ */
134
+ resolve?: (hostname: string) => Promise<readonly string[]>;
135
+ }
136
+ /**
137
+ * Wrap `fetch` with an SSRF-hardened guard. The returned function has
138
+ * the same call signature as the global `fetch` and throws
139
+ * {@link SsrfBlockedError} when an outbound request would target a
140
+ * dangerous internal address.
141
+ *
142
+ * @example
143
+ * ```ts
144
+ * import { fetchGuard } from "@daloyjs/core";
145
+ *
146
+ * const safeFetch = fetchGuard();
147
+ *
148
+ * app.route({
149
+ * method: "POST", path: "/import", operationId: "import",
150
+ * request: { json: z.object({ url: z.string().url() }) },
151
+ * responses: { 200: { description: "ok" } },
152
+ * handler: async ({ request }) => {
153
+ * const { url } = await request.json();
154
+ * const upstream = await safeFetch(url); // refuses 169.254.169.254
155
+ * return { status: 200 as const, body: await upstream.text() };
156
+ * },
157
+ * });
158
+ * ```
159
+ *
160
+ * @since 0.34.0
161
+ */
162
+ export declare function fetchGuard(options?: FetchGuardOptions): typeof fetch;
163
+ //# sourceMappingURL=fetch-guard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fetch-guard.d.ts","sourceRoot":"","sources":["../src/fetch-guard.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AAKH;;;;;GAKG;AACH,MAAM,MAAM,eAAe,GACvB,sBAAsB,GACtB,kBAAkB,GAClB,uBAAuB,GACvB,qBAAqB,GACrB,oBAAoB,GACpB,aAAa,CAAC;AAElB;;;;;;GAMG;AACH,qBAAa,gBAAiB,SAAQ,KAAK;IACzC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAC;IACjC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;gBACd,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,OAAO,CAAC,EAAE,MAAM;CAQnE;AAED;;;;;GAKG;AACH,MAAM,WAAW,iBAAiB;IAChC;;;;;OAKG;IACH,cAAc,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC;;;;;;;OAOG;IACH,cAAc,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC;;;;;OAKG;IACH,UAAU,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC/B;;;OAGG;IACH,aAAa,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;;OAGG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB;;;;;OAKG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB;;OAEG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;OAGG;IACH,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;IACrB;;;;OAIG;IACH,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,SAAS,MAAM,EAAE,CAAC,CAAC;CAC5D;AAsBD;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,UAAU,CAAC,OAAO,GAAE,iBAAsB,GAAG,OAAO,KAAK,CAqHxE"}