@nifrajs/web 3.5.0 → 4.0.2

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 (390) hide show
  1. package/dist/backend-only.d.ts +15 -0
  2. package/dist/backend-only.d.ts.map +1 -0
  3. package/dist/backend-only.js +16 -0
  4. package/dist/backend-only.js.map +1 -0
  5. package/dist/boundary.d.ts +5 -0
  6. package/dist/boundary.d.ts.map +1 -1
  7. package/dist/boundary.js +11 -2
  8. package/dist/boundary.js.map +1 -1
  9. package/dist/build-plan.d.ts +18 -6
  10. package/dist/build-plan.d.ts.map +1 -1
  11. package/dist/build-plan.js +82 -34
  12. package/dist/build-plan.js.map +1 -1
  13. package/dist/build-vite.d.ts +4 -0
  14. package/dist/build-vite.d.ts.map +1 -1
  15. package/dist/build-vite.js +68 -13
  16. package/dist/build-vite.js.map +1 -1
  17. package/dist/build.d.ts +57 -23
  18. package/dist/build.d.ts.map +1 -1
  19. package/dist/build.js +356 -85
  20. package/dist/build.js.map +1 -1
  21. package/dist/bun-dev-entry.d.ts +1 -1
  22. package/dist/bun-dev-entry.js +1 -1
  23. package/dist/cdn.d.ts +74 -0
  24. package/dist/cdn.d.ts.map +1 -0
  25. package/dist/cdn.js +132 -0
  26. package/dist/cdn.js.map +1 -0
  27. package/dist/client.d.ts +3 -1
  28. package/dist/client.d.ts.map +1 -1
  29. package/dist/client.js +136 -35
  30. package/dist/client.js.map +1 -1
  31. package/dist/conformance.d.ts +4 -3
  32. package/dist/conformance.d.ts.map +1 -1
  33. package/dist/conformance.js +12 -3
  34. package/dist/conformance.js.map +1 -1
  35. package/dist/csp.d.ts +93 -0
  36. package/dist/csp.d.ts.map +1 -0
  37. package/dist/csp.js +122 -0
  38. package/dist/csp.js.map +1 -0
  39. package/dist/dev-client.d.ts +76 -0
  40. package/dist/dev-client.d.ts.map +1 -0
  41. package/dist/dev-client.js +280 -0
  42. package/dist/dev-client.js.map +1 -0
  43. package/dist/dev-diagnostics.d.ts +26 -2
  44. package/dist/dev-diagnostics.d.ts.map +1 -1
  45. package/dist/dev-diagnostics.js +38 -7
  46. package/dist/dev-diagnostics.js.map +1 -1
  47. package/dist/dev-error.d.ts +4 -13
  48. package/dist/dev-error.d.ts.map +1 -1
  49. package/dist/dev-error.js +46 -4
  50. package/dist/dev-error.js.map +1 -1
  51. package/dist/dev-feed.d.ts +298 -0
  52. package/dist/dev-feed.d.ts.map +1 -0
  53. package/dist/dev-feed.js +797 -0
  54. package/dist/dev-feed.js.map +1 -0
  55. package/dist/dev-indicator.d.ts +38 -0
  56. package/dist/dev-indicator.d.ts.map +1 -0
  57. package/dist/dev-indicator.js +93 -0
  58. package/dist/dev-indicator.js.map +1 -0
  59. package/dist/dev-session.d.ts +77 -0
  60. package/dist/dev-session.d.ts.map +1 -0
  61. package/dist/dev-session.js +580 -0
  62. package/dist/dev-session.js.map +1 -0
  63. package/dist/dev-sourcemap.d.ts +27 -0
  64. package/dist/dev-sourcemap.d.ts.map +1 -0
  65. package/dist/dev-sourcemap.js +235 -0
  66. package/dist/dev-sourcemap.js.map +1 -0
  67. package/dist/dev-ssr-graph.d.ts.map +1 -1
  68. package/dist/dev-ssr-graph.js +13 -5
  69. package/dist/dev-ssr-graph.js.map +1 -1
  70. package/dist/dev.d.ts +15 -2
  71. package/dist/dev.d.ts.map +1 -1
  72. package/dist/dev.js +69 -44
  73. package/dist/dev.js.map +1 -1
  74. package/dist/diagnostic-catalog.d.ts +35 -0
  75. package/dist/diagnostic-catalog.d.ts.map +1 -0
  76. package/dist/diagnostic-catalog.js +203 -0
  77. package/dist/diagnostic-catalog.js.map +1 -0
  78. package/dist/diagnostic-prompt.d.ts +49 -0
  79. package/dist/diagnostic-prompt.d.ts.map +1 -0
  80. package/dist/diagnostic-prompt.js +303 -0
  81. package/dist/diagnostic-prompt.js.map +1 -0
  82. package/dist/diagnostic.d.ts +17 -23
  83. package/dist/diagnostic.d.ts.map +1 -1
  84. package/dist/diagnostic.js +31 -39
  85. package/dist/diagnostic.js.map +1 -1
  86. package/dist/draft.d.ts.map +1 -1
  87. package/dist/draft.js +4 -1
  88. package/dist/draft.js.map +1 -1
  89. package/dist/fn.d.ts +5 -0
  90. package/dist/fn.d.ts.map +1 -1
  91. package/dist/fn.js +13 -3
  92. package/dist/fn.js.map +1 -1
  93. package/dist/fs.d.ts.map +1 -1
  94. package/dist/fs.js +4 -2
  95. package/dist/fs.js.map +1 -1
  96. package/dist/index.d.ts +13 -15
  97. package/dist/index.d.ts.map +1 -1
  98. package/dist/index.js +11 -12
  99. package/dist/index.js.map +1 -1
  100. package/dist/internal/cdn/cloudflare.d.ts +48 -0
  101. package/dist/internal/cdn/cloudflare.d.ts.map +1 -0
  102. package/dist/internal/cdn/cloudflare.js +94 -0
  103. package/dist/internal/cdn/cloudflare.js.map +1 -0
  104. package/dist/internal/cdn/core.d.ts +91 -0
  105. package/dist/internal/cdn/core.d.ts.map +1 -0
  106. package/dist/internal/cdn/core.js +220 -0
  107. package/dist/internal/cdn/core.js.map +1 -0
  108. package/dist/internal/cdn/fastly.d.ts +17 -0
  109. package/dist/internal/cdn/fastly.d.ts.map +1 -0
  110. package/dist/internal/cdn/fastly.js +43 -0
  111. package/dist/internal/cdn/fastly.js.map +1 -0
  112. package/dist/internal/cdn/vercel.d.ts +31 -0
  113. package/dist/internal/cdn/vercel.d.ts.map +1 -0
  114. package/dist/internal/cdn/vercel.js +56 -0
  115. package/dist/internal/cdn/vercel.js.map +1 -0
  116. package/dist/internal/code-unit-order.d.ts +4 -0
  117. package/dist/internal/code-unit-order.d.ts.map +1 -0
  118. package/dist/internal/code-unit-order.js +6 -0
  119. package/dist/internal/code-unit-order.js.map +1 -0
  120. package/dist/internal/codegen.d.ts.map +1 -1
  121. package/dist/internal/codegen.js +141 -25
  122. package/dist/internal/codegen.js.map +1 -1
  123. package/dist/internal/dev-csp.d.ts +24 -0
  124. package/dist/internal/dev-csp.d.ts.map +1 -0
  125. package/dist/internal/dev-csp.js +160 -0
  126. package/dist/internal/dev-csp.js.map +1 -0
  127. package/dist/internal/dev-reserved.d.ts +25 -0
  128. package/dist/internal/dev-reserved.d.ts.map +1 -0
  129. package/dist/internal/dev-reserved.js +39 -0
  130. package/dist/internal/dev-reserved.js.map +1 -0
  131. package/dist/internal/html-spans.d.ts +10 -0
  132. package/dist/internal/html-spans.d.ts.map +1 -0
  133. package/dist/internal/html-spans.js +46 -0
  134. package/dist/internal/html-spans.js.map +1 -0
  135. package/dist/internal/loading-runtime.d.ts +44 -0
  136. package/dist/internal/loading-runtime.d.ts.map +1 -0
  137. package/dist/internal/loading-runtime.js +206 -0
  138. package/dist/internal/loading-runtime.js.map +1 -0
  139. package/dist/internal/matches-runtime.d.ts +8 -0
  140. package/dist/internal/matches-runtime.d.ts.map +1 -0
  141. package/dist/internal/matches-runtime.js +61 -0
  142. package/dist/internal/matches-runtime.js.map +1 -0
  143. package/dist/internal/mount-shadow.d.ts +36 -0
  144. package/dist/internal/mount-shadow.d.ts.map +1 -0
  145. package/dist/internal/mount-shadow.js +65 -0
  146. package/dist/internal/mount-shadow.js.map +1 -0
  147. package/dist/internal/node-builtins.d.ts +3 -0
  148. package/dist/internal/node-builtins.d.ts.map +1 -0
  149. package/dist/internal/node-builtins.js +79 -0
  150. package/dist/internal/node-builtins.js.map +1 -0
  151. package/dist/internal/output-guard.d.ts +65 -0
  152. package/dist/internal/output-guard.d.ts.map +1 -0
  153. package/dist/internal/output-guard.js +630 -0
  154. package/dist/internal/output-guard.js.map +1 -0
  155. package/dist/internal/page-execution.d.ts +20 -8
  156. package/dist/internal/page-execution.d.ts.map +1 -1
  157. package/dist/internal/page-execution.js +571 -105
  158. package/dist/internal/page-execution.js.map +1 -1
  159. package/dist/internal/parity.d.ts +21 -0
  160. package/dist/internal/parity.d.ts.map +1 -1
  161. package/dist/internal/parity.js +104 -22
  162. package/dist/internal/parity.js.map +1 -1
  163. package/dist/internal/private-env.d.ts +12 -0
  164. package/dist/internal/private-env.d.ts.map +1 -0
  165. package/dist/internal/private-env.js +335 -0
  166. package/dist/internal/private-env.js.map +1 -0
  167. package/dist/internal/public-url.d.ts +3 -0
  168. package/dist/internal/public-url.d.ts.map +1 -0
  169. package/dist/internal/public-url.js +18 -0
  170. package/dist/internal/public-url.js.map +1 -0
  171. package/dist/internal/render-document.d.ts +25 -19
  172. package/dist/internal/render-document.d.ts.map +1 -1
  173. package/dist/internal/render-document.js +77 -61
  174. package/dist/internal/render-document.js.map +1 -1
  175. package/dist/internal/response-controls.d.ts +75 -0
  176. package/dist/internal/response-controls.d.ts.map +1 -0
  177. package/dist/internal/response-controls.js +256 -0
  178. package/dist/internal/response-controls.js.map +1 -0
  179. package/dist/internal/runtime-contract.d.ts +11 -16
  180. package/dist/internal/runtime-contract.d.ts.map +1 -1
  181. package/dist/internal/runtime-contract.js.map +1 -1
  182. package/dist/internal/secret-scan.d.ts +104 -0
  183. package/dist/internal/secret-scan.d.ts.map +1 -0
  184. package/dist/internal/secret-scan.js +503 -0
  185. package/dist/internal/secret-scan.js.map +1 -0
  186. package/dist/internal/server-boundary.d.ts +6 -29
  187. package/dist/internal/server-boundary.d.ts.map +1 -1
  188. package/dist/internal/server-boundary.js +6 -66
  189. package/dist/internal/server-boundary.js.map +1 -1
  190. package/dist/internal/source-map.d.ts +47 -0
  191. package/dist/internal/source-map.d.ts.map +1 -0
  192. package/dist/internal/source-map.js +225 -0
  193. package/dist/internal/source-map.js.map +1 -0
  194. package/dist/internal/target-compat.d.ts +27 -0
  195. package/dist/internal/target-compat.d.ts.map +1 -0
  196. package/dist/internal/target-compat.js +77 -0
  197. package/dist/internal/target-compat.js.map +1 -0
  198. package/dist/internal/timing-safe-equal.d.ts +6 -0
  199. package/dist/internal/timing-safe-equal.d.ts.map +1 -1
  200. package/dist/internal/timing-safe-equal.js +10 -0
  201. package/dist/internal/timing-safe-equal.js.map +1 -1
  202. package/dist/internal/vitals-runtime.d.ts +18 -0
  203. package/dist/internal/vitals-runtime.d.ts.map +1 -0
  204. package/dist/internal/vitals-runtime.js +38 -0
  205. package/dist/internal/vitals-runtime.js.map +1 -0
  206. package/dist/internal/web-app.d.ts +38 -9
  207. package/dist/internal/web-app.d.ts.map +1 -1
  208. package/dist/internal/web-app.js +199 -59
  209. package/dist/internal/web-app.js.map +1 -1
  210. package/dist/internal/zone-graph.d.ts +89 -0
  211. package/dist/internal/zone-graph.d.ts.map +1 -0
  212. package/dist/internal/zone-graph.js +492 -0
  213. package/dist/internal/zone-graph.js.map +1 -0
  214. package/dist/isr.d.ts +83 -6
  215. package/dist/isr.d.ts.map +1 -1
  216. package/dist/isr.js +263 -36
  217. package/dist/isr.js.map +1 -1
  218. package/dist/llms-txt.d.ts.map +1 -1
  219. package/dist/llms-txt.js +31 -6
  220. package/dist/llms-txt.js.map +1 -1
  221. package/dist/manifest.d.ts +220 -13
  222. package/dist/manifest.d.ts.map +1 -1
  223. package/dist/manifest.js +394 -9
  224. package/dist/manifest.js.map +1 -1
  225. package/dist/module-graph.d.ts +26 -5
  226. package/dist/module-graph.d.ts.map +1 -1
  227. package/dist/module-graph.js +17 -7
  228. package/dist/module-graph.js.map +1 -1
  229. package/dist/navigation.d.ts +17 -3
  230. package/dist/navigation.d.ts.map +1 -1
  231. package/dist/navigation.js +11 -5
  232. package/dist/navigation.js.map +1 -1
  233. package/dist/nonce.d.ts +47 -0
  234. package/dist/nonce.d.ts.map +1 -0
  235. package/dist/nonce.js +63 -0
  236. package/dist/nonce.js.map +1 -0
  237. package/dist/plugins/css-modules.d.ts.map +1 -1
  238. package/dist/plugins/css-modules.js +4 -3
  239. package/dist/plugins/css-modules.js.map +1 -1
  240. package/dist/plugins/kit.d.ts +9 -0
  241. package/dist/plugins/kit.d.ts.map +1 -1
  242. package/dist/plugins/kit.js +18 -0
  243. package/dist/plugins/kit.js.map +1 -1
  244. package/dist/plugins/svg.d.ts +22 -3
  245. package/dist/plugins/svg.d.ts.map +1 -1
  246. package/dist/plugins/svg.js +112 -1
  247. package/dist/plugins/svg.js.map +1 -1
  248. package/dist/plugins/vite-leak-guard.d.ts +107 -3
  249. package/dist/plugins/vite-leak-guard.d.ts.map +1 -1
  250. package/dist/plugins/vite-leak-guard.js +378 -17
  251. package/dist/plugins/vite-leak-guard.js.map +1 -1
  252. package/dist/plugins/vite-zone-guard.d.ts +61 -0
  253. package/dist/plugins/vite-zone-guard.d.ts.map +1 -0
  254. package/dist/plugins/vite-zone-guard.js +208 -0
  255. package/dist/plugins/vite-zone-guard.js.map +1 -0
  256. package/dist/plugins/zone-guard.d.ts +27 -0
  257. package/dist/plugins/zone-guard.d.ts.map +1 -0
  258. package/dist/plugins/zone-guard.js +80 -0
  259. package/dist/plugins/zone-guard.js.map +1 -0
  260. package/dist/prerender.d.ts +10 -0
  261. package/dist/prerender.d.ts.map +1 -1
  262. package/dist/prerender.js +35 -3
  263. package/dist/prerender.js.map +1 -1
  264. package/dist/public-dir.d.ts +9 -0
  265. package/dist/public-dir.d.ts.map +1 -1
  266. package/dist/public-dir.js +67 -9
  267. package/dist/public-dir.js.map +1 -1
  268. package/dist/pwa-manifest.d.ts +68 -0
  269. package/dist/pwa-manifest.d.ts.map +1 -0
  270. package/dist/pwa-manifest.js +178 -0
  271. package/dist/pwa-manifest.js.map +1 -0
  272. package/dist/query.js +4 -4
  273. package/dist/query.js.map +1 -1
  274. package/dist/render-seam.d.ts +42 -2
  275. package/dist/render-seam.d.ts.map +1 -1
  276. package/dist/render-seam.js +6 -0
  277. package/dist/render-seam.js.map +1 -1
  278. package/dist/route-manifest.d.ts +3 -0
  279. package/dist/route-manifest.d.ts.map +1 -1
  280. package/dist/route-manifest.js +26 -3
  281. package/dist/route-manifest.js.map +1 -1
  282. package/dist/route-types.d.ts +24 -0
  283. package/dist/route-types.d.ts.map +1 -0
  284. package/dist/route-types.js +195 -0
  285. package/dist/route-types.js.map +1 -0
  286. package/dist/router.d.ts +28 -6
  287. package/dist/router.d.ts.map +1 -1
  288. package/dist/router.js +129 -40
  289. package/dist/router.js.map +1 -1
  290. package/dist/vitals.d.ts +33 -0
  291. package/dist/vitals.d.ts.map +1 -0
  292. package/dist/vitals.js +16 -0
  293. package/dist/vitals.js.map +1 -0
  294. package/dist/vite.d.ts +16 -1
  295. package/dist/vite.d.ts.map +1 -1
  296. package/dist/vite.js +248 -43
  297. package/dist/vite.js.map +1 -1
  298. package/dist/zones.d.ts +70 -0
  299. package/dist/zones.d.ts.map +1 -0
  300. package/dist/zones.js +365 -0
  301. package/dist/zones.js.map +1 -0
  302. package/package.json +67 -14
  303. package/src/backend-only.ts +16 -0
  304. package/src/boundary.ts +18 -5
  305. package/src/build-plan.ts +90 -35
  306. package/src/build-vite.ts +77 -11
  307. package/src/build.ts +466 -96
  308. package/src/bun-dev-entry.ts +1 -1
  309. package/src/cdn.ts +216 -0
  310. package/src/client.ts +135 -36
  311. package/src/conformance.ts +16 -3
  312. package/src/csp.ts +194 -0
  313. package/src/dev-client.ts +349 -0
  314. package/src/dev-diagnostics.ts +60 -7
  315. package/src/dev-error.ts +49 -5
  316. package/src/dev-feed.ts +1140 -0
  317. package/src/dev-indicator.ts +113 -0
  318. package/src/dev-session.ts +729 -0
  319. package/src/dev-sourcemap.ts +281 -0
  320. package/src/dev-ssr-graph.ts +16 -5
  321. package/src/dev.ts +86 -43
  322. package/src/diagnostic-catalog.ts +243 -0
  323. package/src/diagnostic-prompt.ts +355 -0
  324. package/src/diagnostic.ts +63 -66
  325. package/src/draft.ts +4 -1
  326. package/src/fn.ts +19 -3
  327. package/src/fs.ts +13 -2
  328. package/src/index.ts +42 -10
  329. package/src/internal/cdn/cloudflare.ts +146 -0
  330. package/src/internal/cdn/core.ts +316 -0
  331. package/src/internal/cdn/fastly.ts +62 -0
  332. package/src/internal/cdn/vercel.ts +95 -0
  333. package/src/internal/code-unit-order.ts +5 -0
  334. package/src/internal/codegen.ts +161 -24
  335. package/src/internal/dev-csp.ts +176 -0
  336. package/src/internal/dev-reserved.ts +52 -0
  337. package/src/internal/html-spans.ts +50 -0
  338. package/src/internal/loading-runtime.ts +244 -0
  339. package/src/internal/matches-runtime.ts +62 -0
  340. package/src/internal/mount-shadow.ts +88 -0
  341. package/src/internal/node-builtins.ts +79 -0
  342. package/src/internal/output-guard.ts +701 -0
  343. package/src/internal/page-execution.ts +795 -185
  344. package/src/internal/parity.ts +150 -36
  345. package/src/internal/private-env.ts +334 -0
  346. package/src/internal/public-url.ts +22 -0
  347. package/src/internal/render-document.ts +114 -67
  348. package/src/internal/response-controls.ts +284 -0
  349. package/src/internal/runtime-contract.ts +10 -15
  350. package/src/internal/secret-scan.ts +638 -0
  351. package/src/internal/server-boundary.ts +6 -69
  352. package/src/internal/source-map.ts +256 -0
  353. package/src/internal/target-compat.ts +92 -0
  354. package/src/internal/timing-safe-equal.ts +13 -0
  355. package/src/internal/vitals-runtime.ts +53 -0
  356. package/src/internal/web-app.ts +262 -84
  357. package/src/internal/zone-graph.ts +593 -0
  358. package/src/isr.ts +325 -37
  359. package/src/llms-txt.ts +28 -4
  360. package/src/manifest.ts +682 -16
  361. package/src/module-graph.ts +53 -9
  362. package/src/navigation.ts +29 -6
  363. package/src/nonce.ts +104 -0
  364. package/src/plugins/css-modules.ts +5 -3
  365. package/src/plugins/kit.ts +24 -0
  366. package/src/plugins/svg.ts +135 -4
  367. package/src/plugins/vite-leak-guard.ts +529 -16
  368. package/src/plugins/vite-zone-guard.ts +263 -0
  369. package/src/plugins/zone-guard.ts +119 -0
  370. package/src/prerender.ts +49 -3
  371. package/src/public-dir.ts +69 -8
  372. package/src/pwa-manifest.ts +226 -0
  373. package/src/query.ts +4 -4
  374. package/src/render-seam.ts +46 -1
  375. package/src/route-manifest.ts +15 -3
  376. package/src/route-types.ts +264 -0
  377. package/src/router.ts +163 -63
  378. package/src/vitals.ts +44 -0
  379. package/src/vite.ts +257 -42
  380. package/src/zones.ts +430 -0
  381. package/dist/plugins/vite-server-only.d.ts +0 -49
  382. package/dist/plugins/vite-server-only.d.ts.map +0 -1
  383. package/dist/plugins/vite-server-only.js +0 -57
  384. package/dist/plugins/vite-server-only.js.map +0 -1
  385. package/dist/server-only.d.ts +0 -21
  386. package/dist/server-only.d.ts.map +0 -1
  387. package/dist/server-only.js +0 -25
  388. package/dist/server-only.js.map +0 -1
  389. package/src/plugins/vite-server-only.ts +0 -75
  390. package/src/server-only.ts +0 -25
@@ -1,10 +1,17 @@
1
1
  import { type ResponseResult } from "@nifrajs/core/server";
2
2
  import type { BoundaryRegistration, BoundaryStates } from "../boundary.js";
3
+ import { type CspPolicy } from "../csp.js";
3
4
  import { type CssLoadingMode } from "../css-contract.js";
4
5
  import type { Loader as LayoutLoader, LinkDescriptor, Meta, MetaDescriptor, MetaInput, RouteModule, ScriptDescriptor, UnsafeScriptDescriptor } from "../manifest.js";
5
- import type { RenderAdapter } from "../render-seam.js";
6
+ import type { MatchChain, RenderAdapter } from "../render-seam.js";
6
7
  type MaybePromise<T> = T | Promise<T>;
7
8
  declare const RESPONSE_RESULT: unique symbol;
9
+ /**
10
+ * A control-flow value that renders as plain data - what `redirect()` returns, and what core's
11
+ * `status(...)` returns. Recognized here rather than imported: core keeps its own predicate internal,
12
+ * and the registry symbol is the contract between them (two copies of core must still agree).
13
+ */
14
+ export declare const isResponseResult: (value: unknown) => value is ResponseResult;
8
15
  /** A returned/thrown value that ends the request as-is: either shape of control-flow signal. */
9
16
  export declare const isControlFlow: (value: unknown) => value is Response | ResponseResult;
10
17
  export interface RenderedPage {
@@ -51,6 +58,9 @@ export interface RenderPageOptions {
51
58
  /** SSG: the prerendered-path set, serialized to `window.__NIFRA_PRERENDERED__` so the client fetches
52
59
  * a static `_data.json` on soft-nav into a prerendered route. Empty/omitted ⇒ not injected. */
53
60
  readonly prerenderedPaths?: readonly string[];
61
+ /** SSG: the URL of a JSON array of the prerendered paths, handed over in place of
62
+ * {@link prerenderedPaths} so a large set is fetched once instead of riding in every page. */
63
+ readonly prerenderedListUrl?: string;
54
64
  /** ISR: route freshness in seconds, emitted as the `x-nifra-isr-revalidate` header for a `withISR`
55
65
  * wrapper to read. Omit ⇒ no header (the wrapper's default TTL applies). */
56
66
  readonly revalidate?: number;
@@ -75,6 +85,8 @@ export interface RenderPageOptions {
75
85
  readonly layoutData?: readonly unknown[];
76
86
  /** Dynamic-boundary states, forwarded to the adapter and serialized for hydration when present. */
77
87
  readonly boundaries?: BoundaryStates;
88
+ /** The chain's ids and `handle` exports, forwarded as `RenderProps.matchChain` for `useMatches`. */
89
+ readonly matchChain?: MatchChain;
78
90
  /** HTTP status for the response (default 200; e.g. 404 for a not-found page). */
79
91
  readonly status?: number;
80
92
  /** Extra response headers - e.g. the `cache-control` a terminal status page wants. `content-type`
@@ -111,6 +123,12 @@ export interface RenderPageOptions {
111
123
  /** CSP nonce applied to every framework-owned executable script in this document. Nonce-bearing
112
124
  * documents are marked `private, no-store` so a request-specific nonce is never replayed. */
113
125
  readonly nonce?: string;
126
+ /**
127
+ * A hash-based Content-Security-Policy from `createCspPolicy`. The document then carries `nonce`
128
+ * only when it needs one (it defers a value, or a head tag names the nonce); otherwise it renders
129
+ * nonce-free and cacheable. The policy's header is set on the response either way.
130
+ */
131
+ readonly csp?: CspPolicy;
114
132
  /**
115
133
  * Advanced: a per-route slot the renderer fills with the request-invariant document pieces (shell
116
134
  * prefix/suffix, tail statics) on the first render and reuses afterwards, skipping their re-assembly.
@@ -131,13 +149,10 @@ export interface RenderAssemblyCache {
131
149
  shellPre?: string;
132
150
  /** Shell from after the deferred-runtime insertion point through the open `#root` container. */
133
151
  shellPost?: string;
134
- /** Tail opener: the inline script open tag + the route-id global (before the action global). */
152
+ /** Tail opener: the handover script open tag + the data member's key. */
135
153
  tailPre?: string;
136
- /** Tail mid: the prerendered-paths global (between the action and layout-data globals). */
137
- tailMid?: string;
138
- /** Tail data prefix: the `window.<data global>=` assignment head. */
139
- tailData?: string;
140
- /** Tail from after the serialized data through `</html>`. */
154
+ /** Tail from after the per-request handover members (the route id, prerendered paths, the handover
155
+ * close) through `</html>`. */
141
156
  tailPost?: string;
142
157
  }
143
158
  /**
@@ -170,7 +185,7 @@ export interface RedirectOptions {
170
185
  * attacker-controlled input straight through. Set `true` for a deliberate external redirect. */
171
186
  readonly external?: boolean;
172
187
  /** Extra response headers. A redirect is no longer a `Response`, so there is no `.headers` to
173
- * mutate after the fact - name them here. Cookies still ride `c.set`, as on any other response. */
188
+ * mutate after the fact - name them here. Cookies queued with `ctx.set.cookie()` still ride it. */
174
189
  readonly headers?: Readonly<Record<string, string>>;
175
190
  }
176
191
  /** A same-origin destination is an absolute path: one leading `/`, but NOT `//` (protocol-relative →
@@ -223,17 +238,6 @@ export type HeadersLike = ConstructorParameters<typeof Headers>[0];
223
238
  * signature does not match, so an ordinary render error reads exactly as before.
224
239
  */
225
240
  export declare function withDuplicateInstanceHint(err: unknown): unknown;
226
- /**
227
- * An action's control-flow value passes straight through - except a redirect on a client-submit data
228
- * request: fetch would follow the 3xx into HTML the client can't use, so the redirect rides the
229
- * X-Nifra-Redirect header on a 204 and the client navigates. One conversion shared by the returned-
230
- * and thrown- paths, so `return redirect()` and `throw redirect()` agree.
231
- *
232
- * Takes either shape: `redirect()` is a plain render, while a hand-rolled `new Response(...)` from an
233
- * action still arrives as a `Response`. The rewrite stays on the lane its input was on - a plain
234
- * redirect converts to a plain 204, and never materializes the `Response` it is replacing.
235
- */
236
- export declare function actionResponse(result: Response | ResponseResult, isDataRequest: boolean): Response | ResponseResult;
237
241
  /** A loaded layout module. `loader`/`gate` are the layout-loader surface; `meta` predates it. */
238
242
  export type LoadedLayoutModules = ReadonlyArray<{
239
243
  default: unknown;
@@ -241,6 +245,8 @@ export type LoadedLayoutModules = ReadonlyArray<{
241
245
  loader?: LayoutLoader;
242
246
  action?: unknown;
243
247
  gate?: boolean;
248
+ shouldRevalidate?: unknown;
249
+ handle?: unknown;
244
250
  searchSchema?: RouteModule["searchSchema"];
245
251
  boundaries?: readonly BoundaryRegistration[];
246
252
  }>;
@@ -1 +1 @@
1
- {"version":3,"file":"render-document.d.ts","sourceRoot":"","sources":["../../src/internal/render-document.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"render-document.d.ts","sourceRoot":"","sources":["../../src/internal/render-document.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,10 @@
1
1
  import { isSameOriginPath, status as statusResult } from "@nifrajs/core/server";
2
+ import { cspDocumentNonce, cspHeaderValue, prepareCspPolicy } from "../csp.js";
2
3
  import { DEFAULT_CSS_LOADING, normalizeCssLoading } from "../css-contract.js";
3
4
  import { DEFERRED_ERROR_CODE, DEFERRED_RUNTIME, prepareDeferred } from "../deferred.js";
4
5
  import { ISR_REVALIDATE_HEADER, ISR_REVALIDATE_TAGS_HEADER, serializeISRTags } from "../isr.js";
5
- import { ACTION_GLOBAL, BOUNDARY_GLOBAL, DATA_GLOBAL, LAYOUT_DATA_GLOBAL, ROOT_ATTRIBUTE, ROUTE_GLOBAL, } from "../render-seam.js";
6
- import { PRERENDERED_GLOBAL, REDIRECT_HEADER } from "../router.js";
6
+ import { ACTION_GLOBAL, BOUNDARY_GLOBAL, DATA_GLOBAL, HANDOVER_ID, LAYOUT_DATA_GLOBAL, ROOT_ATTRIBUTE, ROUTE_GLOBAL, } from "../render-seam.js";
7
+ import { PRERENDERED_GLOBAL } from "../router.js";
7
8
  import { trustedHeadAttributes } from "./head-attributes.js";
8
9
  import { isStaticMeta, mergeHeads } from "./head-merge.js";
9
10
  import { PRE_HYDRATION_GUARD } from "./runtime-contract.js";
@@ -29,7 +30,7 @@ const RESPONSE_RESULT = Symbol.for("nifra.response.result");
29
30
  * `status(...)` returns. Recognized here rather than imported: core keeps its own predicate internal,
30
31
  * and the registry symbol is the contract between them (two copies of core must still agree).
31
32
  */
32
- const isResponseResult = (value) => typeof value === "object" &&
33
+ export const isResponseResult = (value) => typeof value === "object" &&
33
34
  value !== null &&
34
35
  value[RESPONSE_RESULT] === true &&
35
36
  typeof value.toResponse === "function";
@@ -47,18 +48,28 @@ export function renderPage(options) {
47
48
  return page instanceof Promise ? page.then((p) => p.toResponse()) : page.toResponse();
48
49
  }
49
50
  export function renderPageResult(options) {
50
- const { adapter, chain, data, actionData, clientEntry, preload = [], styles = [], cssLoading: requestedCssLoading, prerenderedPaths = [], revalidate, revalidateTags = [], routeId, status = 200, title = "nifra", head, rootId = "root", hydrate = true, islandScripts = [], nonce, boundaries, headers: extraHeaders, } = options;
51
+ const { csp } = options;
52
+ if (csp !== undefined) {
53
+ // The policy hashes the adapter's constant scripts once; only the first document waits for it.
54
+ const ready = prepareCspPolicy(csp, options.adapter);
55
+ if (ready !== undefined)
56
+ return ready.then(() => renderPageResult(options));
57
+ }
58
+ const { adapter, chain, data, actionData, clientEntry, preload = [], styles = [], cssLoading: requestedCssLoading, prerenderedPaths = [], prerenderedListUrl, revalidate, revalidateTags = [], routeId, status = 200, title = "nifra", head, rootId = "root", hydrate = true, islandScripts = [], nonce: requestedNonce, boundaries, headers: extraHeaders, } = options;
51
59
  const cssLoading = normalizeCssLoading(requestedCssLoading ?? DEFAULT_CSS_LOADING);
52
- if (nonce !== undefined && nonce.trim() === "") {
60
+ if (requestedNonce !== undefined && requestedNonce.trim() === "") {
53
61
  throw new TypeError("[nifra/web] renderPage nonce must be non-empty when provided");
54
62
  }
55
- const nonceAttr = nonce === undefined ? "" : ` nonce="${escapeAttr(nonce)}"`;
56
- const route = routeId === undefined ? "" : `window.${ROUTE_GLOBAL}=${serializeData(routeId)};`;
63
+ // Each handover entry after the data is `,"<global>":<json>`; the data opens the object, so it always
64
+ // has a first member and every other entry is a plain suffix.
65
+ const route = routeId === undefined ? "" : `,"${ROUTE_GLOBAL}":${serializeData(routeId)}`;
57
66
  // The SSG prerendered-path set (when an app declares it) - the client reads it to fetch a static
58
67
  // `_data.json` on soft-nav into a prerendered route instead of hitting the worker. Empty ⇒ omitted.
59
- const prerendered = prerenderedPaths.length === 0
60
- ? ""
61
- : `window.${PRERENDERED_GLOBAL}=${serializeData(prerenderedPaths)};`;
68
+ const prerendered = prerenderedListUrl !== undefined
69
+ ? `,"${PRERENDERED_GLOBAL}":${serializeData(prerenderedListUrl)}`
70
+ : prerenderedPaths.length === 0
71
+ ? ""
72
+ : `,"${PRERENDERED_GLOBAL}":${serializeData(prerenderedPaths)}`;
62
73
  // Split deferred values: the component sees markers (id + promise) to `<Await>`; the serialized
63
74
  // data carries `{__nifra_deferred: id}` placeholders (promises don't serialize). `actionData` may
64
75
  // also `defer()` - split it too, continuing the id space so a single registry settles both. The
@@ -92,17 +103,23 @@ export function renderPageResult(options) {
92
103
  ...(actionSplit ? actionSplit.deferred : []),
93
104
  ...(boundarySplit ? boundarySplit.deferred : []),
94
105
  ];
106
+ // Under a CSP policy a document carries a nonce only when it has a script specific to this request:
107
+ // each settled deferred value streams one, and an executable head tag names the nonce. Every other
108
+ // document is nonce-free - its inline scripts are the constant ones the policy lists by hash - so its
109
+ // CSP header is the same on every request and it stays cacheable.
110
+ const nonce = csp === undefined
111
+ ? requestedNonce
112
+ : cspDocumentNonce(csp, adapter, hydrate, allDeferred.length > 0 || headNamesNonce(head), requestedNonce);
113
+ const nonceAttr = nonce === undefined ? "" : ` nonce="${escapeAttr(nonce)}"`;
95
114
  // Omitted entirely when no layout has a loader - a page-only app emits exactly what it did before.
96
115
  const layoutTail = options.layoutData === undefined
97
116
  ? ""
98
- : `window.${LAYOUT_DATA_GLOBAL}=${serializeData(layoutSplits.map((split) => split.forClient))};`;
117
+ : `,"${LAYOUT_DATA_GLOBAL}":${serializeData(layoutSplits.map((split) => split.forClient))}`;
99
118
  // Only emit the action global when an action actually ran, so plain GET output is unchanged.
100
- const action = actionSplit === undefined
101
- ? ""
102
- : `window.${ACTION_GLOBAL}=${serializeData(actionSplit.forClient)};`;
119
+ const action = actionSplit === undefined ? "" : `,"${ACTION_GLOBAL}":${serializeData(actionSplit.forClient)}`;
103
120
  const boundaryTail = boundarySplit === undefined
104
121
  ? ""
105
- : `window.${BOUNDARY_GLOBAL}=${serializeData(boundarySplit.forClient)};`;
122
+ : `,"${BOUNDARY_GLOBAL}":${serializeData(boundarySplit.forClient)}`;
106
123
  const deferredRuntime = allDeferred.length > 0 ? `<script${nonceAttr}>${DEFERRED_RUNTIME}</script>` : "";
107
124
  // The regex only injects the CSP nonce into the (constant) hydration head; with no nonce it's a
108
125
  // no-op that still scans the whole script every request. Skip it on the common no-nonce path.
@@ -112,6 +129,12 @@ export function renderPageResult(options) {
112
129
  // the tail - are always assembled fresh. Byte-identical to building the whole document inline.
113
130
  const slot = nonce === undefined && options.assemblyCache !== undefined ? options.assemblyCache : {};
114
131
  if (slot.shellPre === undefined) {
132
+ // An empty entry is not "no client": `<script type="module" src="">` resolves to the page URL, so
133
+ // the browser would load the document itself as a module. Checked here, where the shell is built,
134
+ // so a cached route pays it once.
135
+ if (hydrate && (clientEntry === undefined || clientEntry.trim() === "")) {
136
+ throw new TypeError("[nifra/web] a hydrating page needs a non-empty clientEntry (the built client entry URL); pass hydrate: false for a page with no client");
137
+ }
115
138
  // Matched-route chunk preloads, concatenated directly. De-duped against the entry, which is
116
139
  // preloaded separately below.
117
140
  let preloadLinks = "";
@@ -166,7 +189,7 @@ export function renderPageResult(options) {
166
189
  const entryPreloads = hydrate
167
190
  ? `<link rel="modulepreload" href="${escapeAttr(clientEntry ?? "")}">${preloadLinks}`
168
191
  : "";
169
- slot.shellPre = `<!doctype html><html${htmlAttrs}><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1">${hydrationGuard}<title>${escapeHtml(head?.title ?? title)}</title>${headTags(head)}${styleLinks}${entryPreloads}`;
192
+ slot.shellPre = `<!doctype html><html${htmlAttrs}><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1">${hydrationGuard}<title>${escapeHtml(head?.title ?? title)}</title>${headTags(head, nonce)}${styleLinks}${entryPreloads}`;
170
193
  slot.shellPost = `${islandPreloads}${hydrationHead}</head><body><div id="${escapeAttr(rootId)}"${rootMarker}>`;
171
194
  // Island bundles load regardless of `hydrate` - a static page (hydrate:false) ships no framework
172
195
  // client but can still mount no-framework islands (`@nifrajs/web/islands`).
@@ -174,15 +197,12 @@ export function renderPageResult(options) {
174
197
  for (const src of islandScripts)
175
198
  islandTags += `<script type="module" src="${escapeAttr(src)}"${nonceAttr}></script>`;
176
199
  if (hydrate) {
177
- slot.tailPre = `<script${nonceAttr}>${route}`;
178
- slot.tailMid = prerendered;
179
- slot.tailData = `window.${DATA_GLOBAL}=`;
180
- slot.tailPost = `</script><script type="module" src="${escapeAttr(clientEntry ?? "")}"${nonceAttr}></script>${islandTags}</body></html>`;
200
+ // Inert JSON, never executed: the page state needs no nonce and no hash under any CSP.
201
+ slot.tailPre = `<script type="application/json" id="${HANDOVER_ID}">{"${DATA_GLOBAL}":`;
202
+ slot.tailPost = `${route}${prerendered}}</script><script type="module" src="${escapeAttr(clientEntry ?? "")}"${nonceAttr}></script>${islandTags}</body></html>`;
181
203
  }
182
204
  else {
183
205
  slot.tailPre = "";
184
- slot.tailMid = "";
185
- slot.tailData = "";
186
206
  slot.tailPost = `${islandTags}</body></html>`;
187
207
  }
188
208
  }
@@ -193,10 +213,10 @@ export function renderPageResult(options) {
193
213
  // Closes the hydration container; deferred resolve scripts go AFTER it (outside `#root`) so they
194
214
  // aren't part of the adapter's hydrated tree (an inline script inside it breaks hydration).
195
215
  const closeRootHtml = "</div>";
196
- // Tail - the loader-data globals + the client module. Module scripts defer (run after parse), so
197
- // the data global + every streamed deferred resolution are set before the entry hydrates.
216
+ // Tail - the page-state handover + the client module. Module scripts defer (run after parse), so
217
+ // the handover + every streamed deferred resolution are in the document before the entry hydrates.
198
218
  const tailHtml = hydrate
199
- ? `${slot.tailPre}${action}${slot.tailMid}${layoutTail}${boundaryTail}${slot.tailData}${serializeData(forClient)}${slot.tailPost}`
219
+ ? `${slot.tailPre}${serializeData(forClient)}${action}${layoutTail}${boundaryTail}${slot.tailPost}`
200
220
  : slot.tailPost;
201
221
  const headers = { "content-type": "text/html; charset=utf-8" };
202
222
  // Caller-supplied headers (a terminal status page's `cache-control`, say). Applied before the
@@ -221,6 +241,11 @@ export function renderPageResult(options) {
221
241
  // authorization to run under the caller's CSP.
222
242
  if (nonce !== undefined)
223
243
  headers["cache-control"] = "private, no-store";
244
+ if (csp !== undefined) {
245
+ const policy = cspHeaderValue(csp, adapter, nonce);
246
+ if (policy !== undefined)
247
+ headers["content-security-policy"] = policy;
248
+ }
224
249
  const renderProps = {
225
250
  data: forComponent,
226
251
  actionData: actionSplit?.forComponent,
@@ -239,6 +264,7 @@ export function renderPageResult(options) {
239
264
  ...(boundarySplit !== undefined
240
265
  ? { boundaries: boundarySplit.forComponent }
241
266
  : {}),
267
+ ...(options.matchChain !== undefined ? { matchChain: options.matchChain } : {}),
242
268
  };
243
269
  // Fast path: nothing `defer()`s and the adapter can render synchronously to a string → buffer the
244
270
  // whole document in one pass. Progressive streaming only benefits pages with deferred boundaries
@@ -252,9 +278,9 @@ export function renderPageResult(options) {
252
278
  ? new BufferedRenderedPage(shellHtml + out + closeRootHtml + tailHtml, status, headers)
253
279
  : out.then((bodyHtml) => new BufferedRenderedPage(shellHtml + bodyHtml + closeRootHtml + tailHtml, status, headers));
254
280
  }
255
- return renderStreamedPage(adapter, chain, renderProps, shellHtml, closeRootHtml, allDeferred, tailHtml, status, headers, nonceAttr).then((response) => new ResponseRenderedPage(response));
281
+ return renderStreamedPage(adapter, chain, renderProps, shellHtml, closeRootHtml, allDeferred, tailHtml, status, headers, nonce, nonceAttr).then((response) => new ResponseRenderedPage(response));
256
282
  }
257
- async function renderStreamedPage(adapter, chain, renderProps, shellHtml, closeRootHtml, allDeferred, tailHtml, status, headers, nonceAttr) {
283
+ async function renderStreamedPage(adapter, chain, renderProps, shellHtml, closeRootHtml, allDeferred, tailHtml, status, headers, nonce, nonceAttr) {
258
284
  // Streaming path - required for `defer()` (progressive `<Await>` resolution) and used by any adapter
259
285
  // that doesn't implement `renderToString`. Awaiting `renderToStream` resolves on shell-readiness
260
286
  // (React: on-shell-ready; Solid: synchronously), so a shell-render throw surfaces before any byte is
@@ -263,7 +289,9 @@ async function renderStreamedPage(adapter, chain, renderProps, shellHtml, closeR
263
289
  const shell = enc.encode(shellHtml);
264
290
  const closeRoot = enc.encode(closeRootHtml);
265
291
  const tail = enc.encode(tailHtml);
266
- const appStream = await adapter.renderToStream(chain, renderProps);
292
+ const appStream = nonce === undefined
293
+ ? await adapter.renderToStream(chain, renderProps)
294
+ : await adapter.renderToStream(chain, renderProps, { nonce });
267
295
  const body = streamDocument(shell, appStream, closeRoot, allDeferred, tail, enc, nonceAttr);
268
296
  return new Response(body, { status, headers });
269
297
  }
@@ -425,36 +453,6 @@ export function withDuplicateInstanceHint(err) {
425
453
  augmented.stack = err.stack;
426
454
  return augmented;
427
455
  }
428
- /**
429
- * An action's control-flow value passes straight through - except a redirect on a client-submit data
430
- * request: fetch would follow the 3xx into HTML the client can't use, so the redirect rides the
431
- * X-Nifra-Redirect header on a 204 and the client navigates. One conversion shared by the returned-
432
- * and thrown- paths, so `return redirect()` and `throw redirect()` agree.
433
- *
434
- * Takes either shape: `redirect()` is a plain render, while a hand-rolled `new Response(...)` from an
435
- * action still arrives as a `Response`. The rewrite stays on the lane its input was on - a plain
436
- * redirect converts to a plain 204, and never materializes the `Response` it is replacing.
437
- */
438
- export function actionResponse(result, isDataRequest) {
439
- if (!isDataRequest)
440
- return result;
441
- if (isResponseResult(result)) {
442
- const plain = result.plain;
443
- // No `plain` means a carrier that only knows how to build a `Response` (not one of ours) - fall
444
- // back rather than guess at its status.
445
- if (plain === undefined)
446
- return actionResponse(result.toResponse(), isDataRequest);
447
- if (plain.status < 300 || plain.status >= 400)
448
- return result;
449
- const location = plain.headers?.location ?? "/";
450
- return statusResult(204, undefined, { headers: { [REDIRECT_HEADER]: location } });
451
- }
452
- if (result.status >= 300 && result.status < 400) {
453
- const location = result.headers.get("location") ?? "/";
454
- return statusResult(204, undefined, { headers: { [REDIRECT_HEADER]: location } });
455
- }
456
- return result;
457
- }
458
456
  /**
459
457
  * Narrow the route's params to the ones a layout owns.
460
458
  *
@@ -634,6 +632,15 @@ function tagAttrs(tag, attrs) {
634
632
  // never cached, even when a function deliberately reuses one mutable object across requests. WeakMap
635
633
  // so a route module that's GC'd takes its entry with it.
636
634
  const headTagsCache = new WeakMap();
635
+ // An executable script runs as written, so it is checked rather than escaped: `\u003c` is valid only
636
+ // inside a JS string, and escaping turned `if (a < b)` into a syntax error. What the HTML tokenizer
637
+ // reads as the element's end, or as the start of an escaped section, is refused instead.
638
+ const SCRIPT_BREAKOUT = /<\/script|<!--/i;
639
+ function assertExecutableScriptContent(content) {
640
+ if (SCRIPT_BREAKOUT.test(content)) {
641
+ throw new TypeError('[nifra/web] an executable inline script cannot contain "</script" or "<!--"; write "<\\/script" or split the string');
642
+ }
643
+ }
637
644
  function assertExecutableScriptType(type) {
638
645
  if (!EXECUTABLE_SCRIPT_TYPES.has(type)) {
639
646
  throw new TypeError(`[nifra/web] executable inline scripts accept ${[...EXECUTABLE_SCRIPT_TYPES].map((t) => JSON.stringify(t)).join(" or ")}; received ${JSON.stringify(type)}`);
@@ -646,10 +653,14 @@ function assertExecutableScriptType(type) {
646
653
  * or close the tag early. String concatenation (no intermediate `.map()` arrays + spread) - parity with
647
654
  * the already concat-based preloadLinks/styleLinks/islandPreloads loops; byte-identical output. Result
648
655
  * is memoized only for objects observed as static meta exports (serialized once per route). */
649
- function headTags(head) {
656
+ /** Whether a document head names the CSP nonce: an executable script or a `<link nonce>`. */
657
+ const headNamesNonce = (head) => (head?.unsafeScript?.length ?? 0) > 0 || (head?.link?.some((l) => l.nonce !== undefined) ?? false);
658
+ function headTags(head, documentNonce) {
650
659
  if (head === undefined)
651
660
  return "";
652
- const cacheable = isStaticMeta(head);
661
+ // Executable head metadata carries a caller-chosen nonce, so never cache it by object identity. A
662
+ // static route object may otherwise retain one request's nonce and replay it on another document.
663
+ const cacheable = isStaticMeta(head) && (head.unsafeScript?.length ?? 0) === 0;
653
664
  if (cacheable) {
654
665
  const cached = headTagsCache.get(head);
655
666
  if (cached !== undefined)
@@ -691,7 +702,11 @@ function headTags(head) {
691
702
  // attribute and inject markup. Measured: `type: '"><img src=x onerror=alert(1)>'` reached the
692
703
  // document. An injection in the slot whose whole purpose is to make script emission trustworthy.
693
704
  assertExecutableScriptType(s.type);
694
- out += `<script type="${s.type}" nonce="${escapeAttr(s.nonce)}" data-nifra>${escapeScriptContent(s.content)}</script>`;
705
+ if (documentNonce !== undefined && s.nonce !== documentNonce) {
706
+ throw new TypeError("[nifra/web] executable head scripts must use the same CSP nonce as the document");
707
+ }
708
+ assertExecutableScriptContent(s.content);
709
+ out += `<script type="${s.type}" nonce="${escapeAttr(s.nonce)}" data-nifra>${s.content}</script>`;
695
710
  }
696
711
  if (cacheable)
697
712
  headTagsCache.set(head, out);
@@ -757,6 +772,7 @@ export function unsafeInlineScript(content, options) {
757
772
  // place a caller is told what it may pass. Failing at the call site names the argument; failing at
758
773
  // render names a document.
759
774
  assertExecutableScriptType(type);
775
+ assertExecutableScriptContent(content);
760
776
  return {
761
777
  unsafe: true,
762
778
  type,
@@ -1 +1 @@
1
- {"version":3,"file":"render-document.js","sourceRoot":"","sources":["../../src/internal/render-document.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"render-document.js","sourceRoot":"","sources":["../../src/internal/render-document.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,75 @@
1
+ import { type CookieOptions } from "@nifrajs/core/server";
2
+ import type { LoaderResponseControls } from "../manifest.js";
3
+ /** The serving app's response controls - the structural subset of a route handler's `c.set` used here. */
4
+ export interface CoreResponseControls {
5
+ readonly headers: Record<string, string>;
6
+ cookie(name: string, value: string, options?: CookieOptions): void;
7
+ deleteCookie(name: string, options?: Pick<CookieOptions, "path" | "domain">): void;
8
+ }
9
+ export declare const PRIVATE_NO_STORE = "private, no-store";
10
+ /**
11
+ * Headers of a navigation data response. It shares its URL with the document and differs only by a
12
+ * request header, so it must never be stored by a cache keyed on the URL alone: a stored data payload
13
+ * would be served in place of the page.
14
+ */
15
+ export declare const DATA_RESPONSE_HEADERS: Readonly<Record<string, string>>;
16
+ /**
17
+ * Merge order of the header writers: middleware root to leaf (`MIDDLEWARE_SCOPE + i`), layouts root
18
+ * to leaf (`i`), then the page loader, then the action.
19
+ */
20
+ export declare const PAGE_SCOPE = 1000000000;
21
+ export declare const ACTION_SCOPE: number;
22
+ export declare const MIDDLEWARE_SCOPE: number;
23
+ /** `existing` with the data-request header added, so a cache keeps the document and its data apart. */
24
+ export declare function varyOnDataHeader(existing: string | null | undefined): string;
25
+ /** Headers of a rendered page that carries a cookie queued through `ctx.set`. */
26
+ export declare const PRIVATE_PAGE_HEADERS: Readonly<Record<string, string>>;
27
+ /**
28
+ * `outcome` kept out of shared caches, for a request that queued a cookie through `ctx.set`.
29
+ *
30
+ * A rendered page is already private, and a plain render (`redirect()`, `status()`) inherits the
31
+ * serving app's header record. That leaves a hand-built `Response`, which inherits nothing, and a
32
+ * plain render that names its own `cache-control`, which would win over the inherited one.
33
+ */
34
+ export declare function privateOutcome(outcome: unknown): unknown;
35
+ /**
36
+ * One page request's `ctx.set`: the response headers and cookies its loaders and action write.
37
+ *
38
+ * Every loader gets its own header record ({@link scope}), merged in a fixed order when the response
39
+ * is committed, so layout loaders that run in parallel with the page loader cannot race on a name.
40
+ * Cookies go straight to the serving app's own controls, which serialize them with the secure defaults
41
+ * and append them to whatever the request answers with.
42
+ */
43
+ export declare class PageResponseControls {
44
+ #private;
45
+ constructor(c: {
46
+ readonly set: CoreResponseControls;
47
+ });
48
+ /** True once a cookie was queued through `ctx.set`: the response is specific to this visitor. */
49
+ get personalized(): boolean;
50
+ /** The `ctx.set` of one loader or action. `order` fixes where its headers land in the merge. */
51
+ scope(order: number): LoaderResponseControls;
52
+ /** A scope's header record, created on first use. */
53
+ track(order: number): Record<string, string>;
54
+ /** The serving app's controls, marked as carrying per-visitor state. Throws once sealed. */
55
+ cookies(member: string): CoreResponseControls;
56
+ /** Mark the response as one visitor's - a queued cookie, or a draft render - so no cache stores it. */
57
+ personalize(): void;
58
+ assertOpen(member: string): void;
59
+ /**
60
+ * Close the controls: the response is decided. A later write - a deferred promise that settles after
61
+ * the loader returned - throws instead of being dropped without a trace.
62
+ */
63
+ seal(): void;
64
+ /**
65
+ * Seal, validate, and merge every written header. Returns `undefined` when none was written.
66
+ * Throws on a name or value that cannot be sent, and on a name the framework or transport owns.
67
+ */
68
+ commit(): Record<string, string> | undefined;
69
+ /**
70
+ * The committed headers for the document. Written headers make the document vary on the
71
+ * data-request header; a queued cookie makes it private, whatever a loader asked for.
72
+ */
73
+ documentHeaders(): Record<string, string> | undefined;
74
+ }
75
+ //# sourceMappingURL=response-controls.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"response-controls.d.ts","sourceRoot":"","sources":["../../src/internal/response-controls.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,aAAa,EAGnB,MAAM,sBAAsB,CAAA;AAC7B,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAA;AAI5D,0GAA0G;AAC1G,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACxC,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,IAAI,CAAA;IAClE,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,aAAa,EAAE,MAAM,GAAG,QAAQ,CAAC,GAAG,IAAI,CAAA;CACnF;AAED,eAAO,MAAM,gBAAgB,sBAAsB,CAAA;AAEnD;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAGjE,CAAA;AAEF;;;GAGG;AACH,eAAO,MAAM,UAAU,aAAM,CAAA;AAC7B,eAAO,MAAM,YAAY,QAAiB,CAAA;AAC1C,eAAO,MAAM,gBAAgB,QAAc,CAAA;AA6B3C,uGAAuG;AACvG,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CAU5E;AAID,iFAAiF;AACjF,eAAO,MAAM,oBAAoB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAEhE,CAAA;AAEF;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAexD;AAwBD;;;;;;;GAOG;AACH,qBAAa,oBAAoB;;gBAMnB,CAAC,EAAE;QAAE,QAAQ,CAAC,GAAG,EAAE,oBAAoB,CAAA;KAAE;IAIrD,iGAAiG;IACjG,IAAI,YAAY,IAAI,OAAO,CAE1B;IAED,gGAAgG;IAChG,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,sBAAsB;IAI5C,qDAAqD;IACrD,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAO5C,4FAA4F;IAC5F,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,oBAAoB;IAM7C,uGAAuG;IACvG,WAAW,IAAI,IAAI;IAQnB,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAOhC;;;OAGG;IACH,IAAI,IAAI,IAAI;IAOZ;;;OAGG;IACH,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS;IAgB5C;;;OAGG;IACH,eAAe,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS;CAQtD"}