@nifrajs/web 3.3.0 → 4.0.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 (407) 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 +35 -6
  10. package/dist/build-plan.d.ts.map +1 -1
  11. package/dist/build-plan.js +89 -35
  12. package/dist/build-plan.js.map +1 -1
  13. package/dist/build-vite.d.ts +18 -0
  14. package/dist/build-vite.d.ts.map +1 -1
  15. package/dist/build-vite.js +97 -17
  16. package/dist/build-vite.js.map +1 -1
  17. package/dist/build.d.ts +72 -23
  18. package/dist/build.d.ts.map +1 -1
  19. package/dist/build.js +411 -98
  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 +21 -1
  28. package/dist/client.d.ts.map +1 -1
  29. package/dist/client.js +226 -15
  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/css-contract.d.ts +21 -0
  40. package/dist/css-contract.d.ts.map +1 -0
  41. package/dist/css-contract.js +28 -0
  42. package/dist/css-contract.js.map +1 -0
  43. package/dist/dev-client.d.ts +76 -0
  44. package/dist/dev-client.d.ts.map +1 -0
  45. package/dist/dev-client.js +280 -0
  46. package/dist/dev-client.js.map +1 -0
  47. package/dist/dev-diagnostics.d.ts +26 -2
  48. package/dist/dev-diagnostics.d.ts.map +1 -1
  49. package/dist/dev-diagnostics.js +38 -7
  50. package/dist/dev-diagnostics.js.map +1 -1
  51. package/dist/dev-error.d.ts +4 -13
  52. package/dist/dev-error.d.ts.map +1 -1
  53. package/dist/dev-error.js +46 -4
  54. package/dist/dev-error.js.map +1 -1
  55. package/dist/dev-feed.d.ts +298 -0
  56. package/dist/dev-feed.d.ts.map +1 -0
  57. package/dist/dev-feed.js +797 -0
  58. package/dist/dev-feed.js.map +1 -0
  59. package/dist/dev-indicator.d.ts +38 -0
  60. package/dist/dev-indicator.d.ts.map +1 -0
  61. package/dist/dev-indicator.js +93 -0
  62. package/dist/dev-indicator.js.map +1 -0
  63. package/dist/dev-session.d.ts +77 -0
  64. package/dist/dev-session.d.ts.map +1 -0
  65. package/dist/dev-session.js +580 -0
  66. package/dist/dev-session.js.map +1 -0
  67. package/dist/dev-sourcemap.d.ts +27 -0
  68. package/dist/dev-sourcemap.d.ts.map +1 -0
  69. package/dist/dev-sourcemap.js +235 -0
  70. package/dist/dev-sourcemap.js.map +1 -0
  71. package/dist/dev-ssr-graph.d.ts.map +1 -1
  72. package/dist/dev-ssr-graph.js +13 -5
  73. package/dist/dev-ssr-graph.js.map +1 -1
  74. package/dist/dev.d.ts +15 -2
  75. package/dist/dev.d.ts.map +1 -1
  76. package/dist/dev.js +69 -44
  77. package/dist/dev.js.map +1 -1
  78. package/dist/diagnostic-catalog.d.ts +35 -0
  79. package/dist/diagnostic-catalog.d.ts.map +1 -0
  80. package/dist/diagnostic-catalog.js +203 -0
  81. package/dist/diagnostic-catalog.js.map +1 -0
  82. package/dist/diagnostic-prompt.d.ts +49 -0
  83. package/dist/diagnostic-prompt.d.ts.map +1 -0
  84. package/dist/diagnostic-prompt.js +303 -0
  85. package/dist/diagnostic-prompt.js.map +1 -0
  86. package/dist/diagnostic.d.ts +17 -23
  87. package/dist/diagnostic.d.ts.map +1 -1
  88. package/dist/diagnostic.js +31 -39
  89. package/dist/diagnostic.js.map +1 -1
  90. package/dist/draft.d.ts.map +1 -1
  91. package/dist/draft.js +4 -1
  92. package/dist/draft.js.map +1 -1
  93. package/dist/fn.d.ts +5 -0
  94. package/dist/fn.d.ts.map +1 -1
  95. package/dist/fn.js +13 -3
  96. package/dist/fn.js.map +1 -1
  97. package/dist/fs.d.ts.map +1 -1
  98. package/dist/fs.js +4 -2
  99. package/dist/fs.js.map +1 -1
  100. package/dist/index.d.ts +15 -15
  101. package/dist/index.d.ts.map +1 -1
  102. package/dist/index.js +13 -12
  103. package/dist/index.js.map +1 -1
  104. package/dist/internal/cdn/cloudflare.d.ts +48 -0
  105. package/dist/internal/cdn/cloudflare.d.ts.map +1 -0
  106. package/dist/internal/cdn/cloudflare.js +94 -0
  107. package/dist/internal/cdn/cloudflare.js.map +1 -0
  108. package/dist/internal/cdn/core.d.ts +91 -0
  109. package/dist/internal/cdn/core.d.ts.map +1 -0
  110. package/dist/internal/cdn/core.js +220 -0
  111. package/dist/internal/cdn/core.js.map +1 -0
  112. package/dist/internal/cdn/fastly.d.ts +17 -0
  113. package/dist/internal/cdn/fastly.d.ts.map +1 -0
  114. package/dist/internal/cdn/fastly.js +43 -0
  115. package/dist/internal/cdn/fastly.js.map +1 -0
  116. package/dist/internal/cdn/vercel.d.ts +31 -0
  117. package/dist/internal/cdn/vercel.d.ts.map +1 -0
  118. package/dist/internal/cdn/vercel.js +56 -0
  119. package/dist/internal/cdn/vercel.js.map +1 -0
  120. package/dist/internal/code-unit-order.d.ts +4 -0
  121. package/dist/internal/code-unit-order.d.ts.map +1 -0
  122. package/dist/internal/code-unit-order.js +6 -0
  123. package/dist/internal/code-unit-order.js.map +1 -0
  124. package/dist/internal/codegen.d.ts +3 -0
  125. package/dist/internal/codegen.d.ts.map +1 -1
  126. package/dist/internal/codegen.js +151 -30
  127. package/dist/internal/codegen.js.map +1 -1
  128. package/dist/internal/dev-csp.d.ts +24 -0
  129. package/dist/internal/dev-csp.d.ts.map +1 -0
  130. package/dist/internal/dev-csp.js +160 -0
  131. package/dist/internal/dev-csp.js.map +1 -0
  132. package/dist/internal/dev-reserved.d.ts +25 -0
  133. package/dist/internal/dev-reserved.d.ts.map +1 -0
  134. package/dist/internal/dev-reserved.js +39 -0
  135. package/dist/internal/dev-reserved.js.map +1 -0
  136. package/dist/internal/html-spans.d.ts +10 -0
  137. package/dist/internal/html-spans.d.ts.map +1 -0
  138. package/dist/internal/html-spans.js +46 -0
  139. package/dist/internal/html-spans.js.map +1 -0
  140. package/dist/internal/loading-runtime.d.ts +44 -0
  141. package/dist/internal/loading-runtime.d.ts.map +1 -0
  142. package/dist/internal/loading-runtime.js +206 -0
  143. package/dist/internal/loading-runtime.js.map +1 -0
  144. package/dist/internal/matches-runtime.d.ts +8 -0
  145. package/dist/internal/matches-runtime.d.ts.map +1 -0
  146. package/dist/internal/matches-runtime.js +61 -0
  147. package/dist/internal/matches-runtime.js.map +1 -0
  148. package/dist/internal/mount-shadow.d.ts +36 -0
  149. package/dist/internal/mount-shadow.d.ts.map +1 -0
  150. package/dist/internal/mount-shadow.js +65 -0
  151. package/dist/internal/mount-shadow.js.map +1 -0
  152. package/dist/internal/node-builtins.d.ts +3 -0
  153. package/dist/internal/node-builtins.d.ts.map +1 -0
  154. package/dist/internal/node-builtins.js +79 -0
  155. package/dist/internal/node-builtins.js.map +1 -0
  156. package/dist/internal/output-guard.d.ts +65 -0
  157. package/dist/internal/output-guard.d.ts.map +1 -0
  158. package/dist/internal/output-guard.js +630 -0
  159. package/dist/internal/output-guard.js.map +1 -0
  160. package/dist/internal/page-execution.d.ts +69 -0
  161. package/dist/internal/page-execution.d.ts.map +1 -0
  162. package/dist/internal/page-execution.js +1021 -0
  163. package/dist/internal/page-execution.js.map +1 -0
  164. package/dist/internal/parity.d.ts +21 -0
  165. package/dist/internal/parity.d.ts.map +1 -1
  166. package/dist/internal/parity.js +104 -22
  167. package/dist/internal/parity.js.map +1 -1
  168. package/dist/internal/private-env.d.ts +12 -0
  169. package/dist/internal/private-env.d.ts.map +1 -0
  170. package/dist/internal/private-env.js +335 -0
  171. package/dist/internal/private-env.js.map +1 -0
  172. package/dist/internal/public-url.d.ts +3 -0
  173. package/dist/internal/public-url.d.ts.map +1 -0
  174. package/dist/internal/public-url.js +18 -0
  175. package/dist/internal/public-url.js.map +1 -0
  176. package/dist/internal/render-document.d.ts +37 -21
  177. package/dist/internal/render-document.d.ts.map +1 -1
  178. package/dist/internal/render-document.js +104 -65
  179. package/dist/internal/render-document.js.map +1 -1
  180. package/dist/internal/request-url.d.ts +3 -0
  181. package/dist/internal/request-url.d.ts.map +1 -0
  182. package/dist/internal/request-url.js +14 -0
  183. package/dist/internal/request-url.js.map +1 -0
  184. package/dist/internal/response-controls.d.ts +75 -0
  185. package/dist/internal/response-controls.d.ts.map +1 -0
  186. package/dist/internal/response-controls.js +256 -0
  187. package/dist/internal/response-controls.js.map +1 -0
  188. package/dist/internal/runtime-contract.d.ts +11 -16
  189. package/dist/internal/runtime-contract.d.ts.map +1 -1
  190. package/dist/internal/runtime-contract.js.map +1 -1
  191. package/dist/internal/secret-scan.d.ts +104 -0
  192. package/dist/internal/secret-scan.d.ts.map +1 -0
  193. package/dist/internal/secret-scan.js +485 -0
  194. package/dist/internal/secret-scan.js.map +1 -0
  195. package/dist/internal/server-boundary.d.ts +6 -29
  196. package/dist/internal/server-boundary.d.ts.map +1 -1
  197. package/dist/internal/server-boundary.js +6 -66
  198. package/dist/internal/server-boundary.js.map +1 -1
  199. package/dist/internal/source-map.d.ts +47 -0
  200. package/dist/internal/source-map.d.ts.map +1 -0
  201. package/dist/internal/source-map.js +225 -0
  202. package/dist/internal/source-map.js.map +1 -0
  203. package/dist/internal/target-compat.d.ts +27 -0
  204. package/dist/internal/target-compat.d.ts.map +1 -0
  205. package/dist/internal/target-compat.js +77 -0
  206. package/dist/internal/target-compat.js.map +1 -0
  207. package/dist/internal/timing-safe-equal.d.ts +6 -0
  208. package/dist/internal/timing-safe-equal.d.ts.map +1 -1
  209. package/dist/internal/timing-safe-equal.js +10 -0
  210. package/dist/internal/timing-safe-equal.js.map +1 -1
  211. package/dist/internal/vitals-runtime.d.ts +18 -0
  212. package/dist/internal/vitals-runtime.d.ts.map +1 -0
  213. package/dist/internal/vitals-runtime.js +38 -0
  214. package/dist/internal/vitals-runtime.js.map +1 -0
  215. package/dist/internal/web-app.d.ts +56 -8
  216. package/dist/internal/web-app.d.ts.map +1 -1
  217. package/dist/internal/web-app.js +215 -772
  218. package/dist/internal/web-app.js.map +1 -1
  219. package/dist/internal/zone-graph.d.ts +89 -0
  220. package/dist/internal/zone-graph.d.ts.map +1 -0
  221. package/dist/internal/zone-graph.js +492 -0
  222. package/dist/internal/zone-graph.js.map +1 -0
  223. package/dist/isr.d.ts +83 -6
  224. package/dist/isr.d.ts.map +1 -1
  225. package/dist/isr.js +301 -39
  226. package/dist/isr.js.map +1 -1
  227. package/dist/llms-txt.d.ts +3 -0
  228. package/dist/llms-txt.d.ts.map +1 -1
  229. package/dist/llms-txt.js +37 -9
  230. package/dist/llms-txt.js.map +1 -1
  231. package/dist/manifest.d.ts +221 -14
  232. package/dist/manifest.d.ts.map +1 -1
  233. package/dist/manifest.js +386 -9
  234. package/dist/manifest.js.map +1 -1
  235. package/dist/module-graph.d.ts +26 -5
  236. package/dist/module-graph.d.ts.map +1 -1
  237. package/dist/module-graph.js +17 -7
  238. package/dist/module-graph.js.map +1 -1
  239. package/dist/navigation.d.ts +17 -3
  240. package/dist/navigation.d.ts.map +1 -1
  241. package/dist/navigation.js +11 -5
  242. package/dist/navigation.js.map +1 -1
  243. package/dist/nonce.d.ts +47 -0
  244. package/dist/nonce.d.ts.map +1 -0
  245. package/dist/nonce.js +63 -0
  246. package/dist/nonce.js.map +1 -0
  247. package/dist/plugins/css-modules.d.ts.map +1 -1
  248. package/dist/plugins/css-modules.js +4 -3
  249. package/dist/plugins/css-modules.js.map +1 -1
  250. package/dist/plugins/kit.d.ts +9 -0
  251. package/dist/plugins/kit.d.ts.map +1 -1
  252. package/dist/plugins/kit.js +18 -0
  253. package/dist/plugins/kit.js.map +1 -1
  254. package/dist/plugins/svg.d.ts +22 -3
  255. package/dist/plugins/svg.d.ts.map +1 -1
  256. package/dist/plugins/svg.js +112 -1
  257. package/dist/plugins/svg.js.map +1 -1
  258. package/dist/plugins/vite-leak-guard.d.ts +107 -3
  259. package/dist/plugins/vite-leak-guard.d.ts.map +1 -1
  260. package/dist/plugins/vite-leak-guard.js +378 -17
  261. package/dist/plugins/vite-leak-guard.js.map +1 -1
  262. package/dist/plugins/vite-zone-guard.d.ts +61 -0
  263. package/dist/plugins/vite-zone-guard.d.ts.map +1 -0
  264. package/dist/plugins/vite-zone-guard.js +208 -0
  265. package/dist/plugins/vite-zone-guard.js.map +1 -0
  266. package/dist/plugins/zone-guard.d.ts +27 -0
  267. package/dist/plugins/zone-guard.d.ts.map +1 -0
  268. package/dist/plugins/zone-guard.js +72 -0
  269. package/dist/plugins/zone-guard.js.map +1 -0
  270. package/dist/prerender.d.ts +10 -0
  271. package/dist/prerender.d.ts.map +1 -1
  272. package/dist/prerender.js +35 -3
  273. package/dist/prerender.js.map +1 -1
  274. package/dist/public-dir.d.ts +9 -0
  275. package/dist/public-dir.d.ts.map +1 -1
  276. package/dist/public-dir.js +131 -48
  277. package/dist/public-dir.js.map +1 -1
  278. package/dist/pwa-manifest.d.ts +68 -0
  279. package/dist/pwa-manifest.d.ts.map +1 -0
  280. package/dist/pwa-manifest.js +178 -0
  281. package/dist/pwa-manifest.js.map +1 -0
  282. package/dist/query.js +4 -4
  283. package/dist/query.js.map +1 -1
  284. package/dist/render-seam.d.ts +42 -2
  285. package/dist/render-seam.d.ts.map +1 -1
  286. package/dist/render-seam.js +6 -0
  287. package/dist/render-seam.js.map +1 -1
  288. package/dist/route-manifest.d.ts +3 -0
  289. package/dist/route-manifest.d.ts.map +1 -1
  290. package/dist/route-manifest.js +26 -3
  291. package/dist/route-manifest.js.map +1 -1
  292. package/dist/route-types.d.ts +24 -0
  293. package/dist/route-types.d.ts.map +1 -0
  294. package/dist/route-types.js +195 -0
  295. package/dist/route-types.js.map +1 -0
  296. package/dist/router.d.ts +28 -6
  297. package/dist/router.d.ts.map +1 -1
  298. package/dist/router.js +129 -40
  299. package/dist/router.js.map +1 -1
  300. package/dist/trusted-html.d.ts +34 -0
  301. package/dist/trusted-html.d.ts.map +1 -0
  302. package/dist/trusted-html.js +35 -0
  303. package/dist/trusted-html.js.map +1 -0
  304. package/dist/vitals.d.ts +33 -0
  305. package/dist/vitals.d.ts.map +1 -0
  306. package/dist/vitals.js +16 -0
  307. package/dist/vitals.js.map +1 -0
  308. package/dist/vite.d.ts +16 -1
  309. package/dist/vite.d.ts.map +1 -1
  310. package/dist/vite.js +187 -36
  311. package/dist/vite.js.map +1 -1
  312. package/dist/zones.d.ts +70 -0
  313. package/dist/zones.d.ts.map +1 -0
  314. package/dist/zones.js +365 -0
  315. package/dist/zones.js.map +1 -0
  316. package/package.json +67 -14
  317. package/src/backend-only.ts +16 -0
  318. package/src/boundary.ts +18 -5
  319. package/src/build-plan.ts +113 -36
  320. package/src/build-vite.ts +124 -15
  321. package/src/build.ts +535 -102
  322. package/src/bun-dev-entry.ts +1 -1
  323. package/src/cdn.ts +216 -0
  324. package/src/client.ts +251 -18
  325. package/src/conformance.ts +16 -3
  326. package/src/csp.ts +194 -0
  327. package/src/css-contract.ts +44 -0
  328. package/src/dev-client.ts +349 -0
  329. package/src/dev-diagnostics.ts +60 -7
  330. package/src/dev-error.ts +49 -5
  331. package/src/dev-feed.ts +1140 -0
  332. package/src/dev-indicator.ts +113 -0
  333. package/src/dev-session.ts +729 -0
  334. package/src/dev-sourcemap.ts +281 -0
  335. package/src/dev-ssr-graph.ts +16 -5
  336. package/src/dev.ts +86 -43
  337. package/src/diagnostic-catalog.ts +243 -0
  338. package/src/diagnostic-prompt.ts +355 -0
  339. package/src/diagnostic.ts +63 -66
  340. package/src/draft.ts +4 -1
  341. package/src/fn.ts +19 -3
  342. package/src/fs.ts +13 -2
  343. package/src/index.ts +57 -10
  344. package/src/internal/cdn/cloudflare.ts +146 -0
  345. package/src/internal/cdn/core.ts +316 -0
  346. package/src/internal/cdn/fastly.ts +62 -0
  347. package/src/internal/cdn/vercel.ts +95 -0
  348. package/src/internal/code-unit-order.ts +5 -0
  349. package/src/internal/codegen.ts +180 -29
  350. package/src/internal/dev-csp.ts +176 -0
  351. package/src/internal/dev-reserved.ts +52 -0
  352. package/src/internal/html-spans.ts +50 -0
  353. package/src/internal/loading-runtime.ts +244 -0
  354. package/src/internal/matches-runtime.ts +62 -0
  355. package/src/internal/mount-shadow.ts +88 -0
  356. package/src/internal/node-builtins.ts +79 -0
  357. package/src/internal/output-guard.ts +701 -0
  358. package/src/internal/page-execution.ts +1371 -0
  359. package/src/internal/parity.ts +150 -36
  360. package/src/internal/private-env.ts +334 -0
  361. package/src/internal/public-url.ts +22 -0
  362. package/src/internal/render-document.ts +153 -73
  363. package/src/internal/request-url.ts +14 -0
  364. package/src/internal/response-controls.ts +284 -0
  365. package/src/internal/runtime-contract.ts +10 -15
  366. package/src/internal/secret-scan.ts +623 -0
  367. package/src/internal/server-boundary.ts +6 -69
  368. package/src/internal/source-map.ts +256 -0
  369. package/src/internal/target-compat.ts +92 -0
  370. package/src/internal/timing-safe-equal.ts +13 -0
  371. package/src/internal/vitals-runtime.ts +53 -0
  372. package/src/internal/web-app.ts +290 -879
  373. package/src/internal/zone-graph.ts +593 -0
  374. package/src/isr.ts +366 -39
  375. package/src/llms-txt.ts +44 -8
  376. package/src/manifest.ts +671 -17
  377. package/src/module-graph.ts +53 -9
  378. package/src/navigation.ts +29 -6
  379. package/src/nonce.ts +104 -0
  380. package/src/plugins/css-modules.ts +5 -3
  381. package/src/plugins/kit.ts +24 -0
  382. package/src/plugins/svg.ts +135 -4
  383. package/src/plugins/vite-leak-guard.ts +529 -16
  384. package/src/plugins/vite-zone-guard.ts +263 -0
  385. package/src/plugins/zone-guard.ts +110 -0
  386. package/src/prerender.ts +49 -3
  387. package/src/public-dir.ts +135 -49
  388. package/src/pwa-manifest.ts +226 -0
  389. package/src/query.ts +4 -4
  390. package/src/render-seam.ts +46 -1
  391. package/src/route-manifest.ts +15 -3
  392. package/src/route-types.ts +264 -0
  393. package/src/router.ts +163 -63
  394. package/src/trusted-html.ts +44 -0
  395. package/src/vitals.ts +44 -0
  396. package/src/vite.ts +207 -36
  397. package/src/zones.ts +430 -0
  398. package/dist/plugins/vite-server-only.d.ts +0 -49
  399. package/dist/plugins/vite-server-only.d.ts.map +0 -1
  400. package/dist/plugins/vite-server-only.js +0 -57
  401. package/dist/plugins/vite-server-only.js.map +0 -1
  402. package/dist/server-only.d.ts +0 -21
  403. package/dist/server-only.d.ts.map +0 -1
  404. package/dist/server-only.js +0 -25
  405. package/dist/server-only.js.map +0 -1
  406. package/src/plugins/vite-server-only.ts +0 -75
  407. package/src/server-only.ts +0 -25
package/dist/isr.js CHANGED
@@ -7,7 +7,7 @@
7
7
  * This module is the store primitive; the SWR wrapper (`withISR`) builds on it next.
8
8
  */
9
9
  import { isDraftEnabled } from "./draft.js";
10
- import { timingSafeEqual } from "./internal/timing-safe-equal.js";
10
+ import { assertTokenSecret, timingSafeEqual } from "./internal/timing-safe-equal.js";
11
11
  const ISR_TAG_PATTERN = /^[A-Za-z][A-Za-z0-9._:/-]{0,127}$/;
12
12
  const MAX_ISR_TAGS = 32;
13
13
  function normalizeTag(tag) {
@@ -16,7 +16,7 @@ function normalizeTag(tag) {
16
16
  }
17
17
  return tag;
18
18
  }
19
- function normalizeTags(tags) {
19
+ export function normalizeTags(tags) {
20
20
  if (tags === undefined)
21
21
  return [];
22
22
  if (!Array.isArray(tags) || tags.length > MAX_ISR_TAGS) {
@@ -27,7 +27,8 @@ function normalizeTags(tags) {
27
27
  unique.add(normalizeTag(tag));
28
28
  return Object.freeze([...unique]);
29
29
  }
30
- function tagsFromHeader(value) {
30
+ /** The route tags a response carries on {@link ISR_REVALIDATE_TAGS_HEADER}; malformed means none. */
31
+ export function tagsFromHeader(value) {
31
32
  if (value === null || value.trim() === "")
32
33
  return [];
33
34
  try {
@@ -44,6 +45,32 @@ export function serializeISRTags(tags) {
44
45
  const normalized = normalizeTags(tags);
45
46
  return normalized.length === 0 ? undefined : normalized.join(",");
46
47
  }
48
+ const warnedTagRoutes = new Set();
49
+ /**
50
+ * The tags `declared` gives this request. A fixed list is returned as declared (it is validated when
51
+ * the header is written). A function's result keeps its valid, distinct tags, at most 32; anything
52
+ * else is dropped with one warning per route, naming the route but never the tag.
53
+ */
54
+ export function routeTags(declared, input, routeId) {
55
+ if (typeof declared !== "function")
56
+ return declared;
57
+ const result = declared(input);
58
+ const listed = Array.isArray(result) ? result : [];
59
+ const kept = new Set();
60
+ let dropped = 0;
61
+ for (const tag of listed) {
62
+ if (typeof tag === "string" && ISR_TAG_PATTERN.test(tag) && kept.size < MAX_ISR_TAGS) {
63
+ kept.add(tag);
64
+ }
65
+ else
66
+ dropped++;
67
+ }
68
+ if ((dropped > 0 || !Array.isArray(result)) && !warnedTagRoutes.has(routeId)) {
69
+ warnedTagRoutes.add(routeId);
70
+ console.warn(`[nifra/web] NIFRA_CDN_TAG_INVALID: revalidateTags of route "${routeId}" returned ${Array.isArray(result) ? `${dropped} tag(s) that are not a letter followed by up to 127 of A-Z a-z 0-9 . _ : / -, or past the first 32` : "something other than an array"}; those were dropped.`);
71
+ }
72
+ return [...kept];
73
+ }
47
74
  /**
48
75
  * In-process ISR cache. Refuses to run in production unless explicitly allowed (mirrors the
49
76
  * rate-limit `MemoryStore` - a per-instance cache is unsafe across instances). Bounded **LRU**: a
@@ -269,10 +296,68 @@ export const ISR_REVALIDATE_TAGS_HEADER = "x-nifra-isr-tags";
269
296
  * refetch): this one is an integer TTL the *wrapper* reads, so the two channels never alias.
270
297
  */
271
298
  export const ISR_REVALIDATE_HEADER = "x-nifra-isr-revalidate";
272
- const defaultKey = (req) => {
273
- const url = new URL(req.url);
274
- return url.origin + url.pathname + url.search;
299
+ /** A `createWebApp` app answers this with a function that turns its ISR headers on. A wrapper that
300
+ * reads them calls it, so an app nothing caches never sends a route's freshness or tags. */
301
+ export const CACHE_CHANNEL = Symbol.for("nifra.web.cacheChannel");
302
+ /** Ask `app` to emit its ISR headers; an app without the channel emits whatever it emits. */
303
+ export function openCacheChannel(app) {
304
+ const open = Reflect.get(app, CACHE_CHANNEL);
305
+ if (typeof open === "function")
306
+ open();
307
+ }
308
+ /** Drop the ISR headers from a response that leaves the cache layer. */
309
+ export function withoutCacheChannel(res) {
310
+ if (!res.headers.has(ISR_REVALIDATE_HEADER) && !res.headers.has(ISR_REVALIDATE_TAGS_HEADER)) {
311
+ return res;
312
+ }
313
+ try {
314
+ res.headers.delete(ISR_REVALIDATE_HEADER);
315
+ res.headers.delete(ISR_REVALIDATE_TAGS_HEADER);
316
+ return res;
317
+ }
318
+ catch {
319
+ // A `fetch()` response has immutable headers: rebuild it around the same body instead.
320
+ const headers = new Headers(res.headers);
321
+ headers.delete(ISR_REVALIDATE_HEADER);
322
+ headers.delete(ISR_REVALIDATE_TAGS_HEADER);
323
+ return new Response(res.body, { status: res.status, statusText: res.statusText, headers });
324
+ }
325
+ }
326
+ /** `createWebApp`'s marker for how its documents meet a CSP (see `DOCUMENT_POLICY` in ./csp.ts). Read
327
+ * through the global symbol registry so a cache wrapper never imports the CSP module. */
328
+ const DOCUMENT_POLICY = Symbol.for("nifra.web.documentPolicy");
329
+ /** Remembered `no-store` keys per `withISR` wrapper. */
330
+ const MAX_UNCACHEABLE_KEYS = 1024;
331
+ /** The default key for a URL under a `query` policy, or `null` when the URL must bypass the cache. */
332
+ export const urlKeyOf = (query = "bypass") => {
333
+ if (query === "all")
334
+ return (url) => url.origin + url.pathname + url.search;
335
+ if (query !== "bypass" && !Array.isArray(query)) {
336
+ throw new TypeError('[nifra/web] ISR query must be "bypass", "all", or a list of parameter names');
337
+ }
338
+ const allowed = new Set(query === "bypass" ? [] : query);
339
+ for (const name of allowed) {
340
+ if (typeof name !== "string" || name === "") {
341
+ throw new TypeError("[nifra/web] ISR query parameter names must be non-empty strings");
342
+ }
343
+ }
344
+ return (url) => {
345
+ if (url.search === "")
346
+ return url.origin + url.pathname;
347
+ if (allowed.size === 0)
348
+ return null;
349
+ const entries = [];
350
+ for (const entry of url.searchParams) {
351
+ if (!allowed.has(entry[0]))
352
+ return null;
353
+ entries.push(entry);
354
+ }
355
+ // Stable by name, so a repeated name keeps its value order (`getAll` can tell them apart).
356
+ entries.sort((a, b) => (a[0] < b[0] ? -1 : a[0] > b[0] ? 1 : 0));
357
+ return `${url.origin}${url.pathname}?${new URLSearchParams(entries)}`;
358
+ };
275
359
  };
360
+ const requestKeyOf = (urlKey) => (req) => urlKey(new URL(req.url));
276
361
  function assertRevalidate(value, name) {
277
362
  if (!Number.isFinite(value) || value < 0) {
278
363
  throw new RangeError(`[nifra/web] ${name} must be a finite non-negative number`);
@@ -293,7 +378,26 @@ const cacheControlHas = (headers, names) => {
293
378
  const hasSetCookie = (headers) => headers.has("set-cookie") || (headers.getSetCookie?.().length ?? 0) > 0;
294
379
  const requestCarriesPrivateState = (req) => req.headers.has("authorization") || req.headers.has("cookie");
295
380
  const responseIsExplicitlyPublic = (res) => cacheControlHas(res.headers, ["public"]);
296
- const isCacheablePage = (req, res) => {
381
+ // `x-nifra-data` alone is not a variation the URL key misses: a navigation data request never reads
382
+ // or writes the store, so every stored entry is the document.
383
+ const responseDeclaresVary = (res) => {
384
+ const value = res.headers.get("vary");
385
+ if (value === null)
386
+ return false;
387
+ for (const part of value.split(",")) {
388
+ const name = part.trim().toLowerCase();
389
+ if (name !== "" && name !== "x-nifra-data")
390
+ return true;
391
+ }
392
+ return false;
393
+ };
394
+ /**
395
+ * Whether `res` may be stored by a shared cache and served to anyone requesting `req`'s URL: a
396
+ * full-document `GET` 200 `text/html` with no Set-Cookie, no `private`/`no-store`, no `Vary` beyond
397
+ * the data header, and, for a request carrying a cookie or Authorization, an explicit `public`.
398
+ * The one rule both `withISR` and `@nifrajs/web/cdn` cache by.
399
+ */
400
+ export const isCacheablePage = (req, res) => {
297
401
  if (req.method !== "GET")
298
402
  return false;
299
403
  if (req.headers.get("x-nifra-data") !== null)
@@ -304,6 +408,11 @@ const isCacheablePage = (req, res) => {
304
408
  return false;
305
409
  if (hasSetCookie(res.headers))
306
410
  return false;
411
+ // The default ISR key is URL-only. A response that varies on request headers must either use a
412
+ // caller-supplied key that includes those headers or bypass ISR; otherwise one language/tenant
413
+ // representation can be served to every request for the URL.
414
+ if (responseDeclaresVary(res))
415
+ return false;
307
416
  if (cacheControlHas(res.headers, ["private", "no-store"]))
308
417
  return false;
309
418
  // Cookie/Authorization requests often personalize HTML without setting a new cookie. Cache them only
@@ -312,19 +421,40 @@ const isCacheablePage = (req, res) => {
312
421
  return false;
313
422
  return true;
314
423
  };
424
+ // Keep representation and security policy headers, plus `Vary` for legacy entries. Transport,
425
+ // request-specific, framework-control, and unknown internal headers stay out of the shared cache.
315
426
  const CACHEABLE_RESPONSE_HEADERS = new Set([
316
427
  "cache-control",
317
428
  "content-language",
429
+ "content-security-policy",
318
430
  "content-type",
431
+ "cross-origin-embedder-policy",
432
+ "cross-origin-opener-policy",
433
+ "cross-origin-resource-policy",
319
434
  "etag",
320
435
  "last-modified",
321
436
  "link",
437
+ "origin-agent-cluster",
438
+ "permissions-policy",
439
+ "referrer-policy",
440
+ "strict-transport-security",
441
+ "vary",
442
+ "x-content-type-options",
443
+ "x-frame-options",
444
+ "x-robots-tag",
322
445
  ]);
446
+ const isCacheableResponseHeader = (key) => {
447
+ const normalized = key.toLowerCase();
448
+ return (CACHEABLE_RESPONSE_HEADERS.has(normalized) ||
449
+ normalized.startsWith("content-security-policy-") ||
450
+ normalized.startsWith("cross-origin-") ||
451
+ normalized.startsWith("permissions-policy-"));
452
+ };
323
453
  const tagsOf = (res) => tagsFromHeader(res.headers.get(ISR_REVALIDATE_TAGS_HEADER));
324
454
  const headersOf = (res) => {
325
455
  const out = {};
326
456
  res.headers.forEach((value, key) => {
327
- if (CACHEABLE_RESPONSE_HEADERS.has(key))
457
+ if (isCacheableResponseHeader(key))
328
458
  out[key] = value;
329
459
  });
330
460
  return out;
@@ -336,12 +466,12 @@ const responseFrom = (entry, status) => new Response(entry.body, {
336
466
  function sanitizeCachedHeaders(headers) {
337
467
  const out = {};
338
468
  for (const [key, value] of Object.entries(headers)) {
339
- const normalized = key.toLowerCase();
340
- if (CACHEABLE_RESPONSE_HEADERS.has(normalized))
341
- out[normalized] = value;
469
+ if (isCacheableResponseHeader(key))
470
+ out[key.toLowerCase()] = value;
342
471
  }
343
472
  return out;
344
473
  }
474
+ const isInvalidationResponse = (res) => res.status === 404 || res.status === 410 || (res.status >= 300 && res.status < 400);
345
475
  /**
346
476
  * Wrap a nifra app with **Incremental Static Regeneration**: a cacheable page is served from
347
477
  * {@link CacheStore} when fresh, served **stale while a fresh copy regenerates in the background**
@@ -356,9 +486,44 @@ function sanitizeCachedHeaders(headers) {
356
486
  export function withISR(app, options) {
357
487
  const { store, now } = options;
358
488
  assertRevalidate(options.revalidate, "revalidate");
359
- const keyOf = options.key ?? defaultKey;
489
+ const keyOf = options.key ?? requestKeyOf(urlKeyOf(options.query));
360
490
  const draftSecret = options.draftSecret;
361
491
  const regenerating = new Set();
492
+ openCacheChannel(app);
493
+ // An outer cache layer (`withCdn`) opens this wrapper's own channel: cached responses then carry how
494
+ // much freshness they have left and their tags, so the CDN never holds a page longer than ISR would.
495
+ let channelOpen = false;
496
+ const advertise = (headers, remainingMs, tags) => {
497
+ if (!channelOpen)
498
+ return;
499
+ headers.set(ISR_REVALIDATE_HEADER, String(Math.max(0, Math.floor(remainingMs / 1000))));
500
+ const serialized = tags.length === 0 ? undefined : tags.join(",");
501
+ if (serialized !== undefined)
502
+ headers.set(ISR_REVALIDATE_TAGS_HEADER, serialized);
503
+ };
504
+ const served = (entry, status) => {
505
+ const res = responseFrom(entry, status);
506
+ advertise(res.headers, status === "stale" ? 0 : entry.revalidate - (now() - entry.storedAt), entry.tags ?? []);
507
+ return res;
508
+ };
509
+ if (app[DOCUMENT_POLICY] === "nonce") {
510
+ console.warn("[nifra/web] withISR wraps an app whose every document carries a CSP nonce. Such documents are " +
511
+ "`private, no-store`, so this cache will never store a page. Use " +
512
+ "`createWebApp({ csp: createCspPolicy(...) })` instead of `nonce` to cache pages under a CSP.");
513
+ }
514
+ // Keys whose last render declared itself `private` or `no-store`, with when that memo expires. A
515
+ // remembered key skips the store lookup (a network round trip on a shared store) and renders fresh;
516
+ // a render that turns out cacheable is stored and forgets the key. So the memo can only cost a cache
517
+ // hit, never serve the wrong page. Bounded, oldest first, so a URL flood cannot grow it.
518
+ const uncacheable = new Map();
519
+ const rememberUncacheable = (key, res) => {
520
+ if (options.revalidate === 0 || !cacheControlHas(res.headers, ["private", "no-store"]))
521
+ return;
522
+ if (uncacheable.size >= MAX_UNCACHEABLE_KEYS) {
523
+ uncacheable.delete(uncacheable.keys().next().value);
524
+ }
525
+ uncacheable.set(key, now() + options.revalidate * 1000);
526
+ };
362
527
  // Per-page TTL (ms): the app's `x-nifra-isr-revalidate` header (seconds) if present, else the default.
363
528
  const ttlMs = (res) => {
364
529
  const header = res.headers.get(ISR_REVALIDATE_HEADER);
@@ -368,8 +533,11 @@ export function withISR(app, options) {
368
533
  };
369
534
  const render = async (req, platform, key) => {
370
535
  const res = await app.fetch(req, platform);
371
- if (!isCacheablePage(req, res))
372
- return res;
536
+ if (!isCacheablePage(req, res)) {
537
+ rememberUncacheable(key, res);
538
+ return withoutCacheChannel(res);
539
+ }
540
+ uncacheable.delete(key);
373
541
  const body = await res.text();
374
542
  const tags = tagsOf(res);
375
543
  const entry = {
@@ -381,10 +549,12 @@ export function withISR(app, options) {
381
549
  ...(tags.length === 0 ? {} : { tags }),
382
550
  };
383
551
  await store.set(key, entry);
384
- return new Response(body, {
552
+ const fresh = new Response(body, {
385
553
  status: res.status,
386
554
  headers: { ...entry.headers, [ISR_STATUS_HEADER]: "miss" },
387
555
  });
556
+ advertise(fresh.headers, entry.revalidate, tags);
557
+ return fresh;
388
558
  };
389
559
  // Background regeneration (single-flight per key) - a failed regen keeps the stale entry; the next
390
560
  // stale hit retries. Never throws (it runs detached / under waitUntil).
@@ -405,6 +575,12 @@ export function withISR(app, options) {
405
575
  ...(tags.length === 0 ? {} : { tags }),
406
576
  });
407
577
  }
578
+ else if (isInvalidationResponse(res)) {
579
+ // A successful deletion or redirect is authoritative. Keeping the old entry would make a
580
+ // withdrawn page stay publicly visible forever because every stale request would retry the same
581
+ // non-cacheable response while continuing to serve the old body.
582
+ await store.delete(key);
583
+ }
408
584
  else {
409
585
  await res.body?.cancel();
410
586
  }
@@ -416,46 +592,75 @@ export function withISR(app, options) {
416
592
  regenerating.delete(key);
417
593
  }
418
594
  };
419
- return async (req, platform) => {
595
+ const handler = async (req, platform) => {
420
596
  // A data-mode soft-nav GET bypasses the cache entirely: entries are full HTML documents keyed
421
597
  // by URL, and serving one to a loader-data fetch would hand the client HTML where it expects
422
598
  // the loader payload. (The write path already refuses to cache data-mode responses.)
423
599
  const key = req.method === "GET" && req.headers.get("x-nifra-data") === null ? keyOf(req) : null;
424
600
  if (key === null)
425
- return app.fetch(req, platform);
601
+ return withoutCacheChannel(await app.fetch(req, platform));
426
602
  // Draft/preview: an editor (valid signed cookie) always renders fresh and is never cached, so
427
603
  // unpublished content can't leak into the public cache (and the editor isn't served a stale page).
428
604
  if (draftSecret !== undefined && (await isDraftEnabled(req, draftSecret))) {
429
- return app.fetch(req, platform);
605
+ return withoutCacheChannel(await app.fetch(req, platform));
606
+ }
607
+ const until = uncacheable.get(key);
608
+ if (until !== undefined) {
609
+ if (now() < until)
610
+ return render(req, platform, key);
611
+ uncacheable.delete(key);
430
612
  }
431
613
  const hit = await store.get(key);
432
614
  if (hit !== undefined) {
433
615
  if (now() - hit.storedAt < hit.revalidate)
434
- return responseFrom(hit, "hit");
616
+ return served(hit, "hit");
435
617
  // Stale: serve it now, regenerate behind it (waitUntil keeps the edge worker alive for the regen).
436
618
  const task = regenerate(req, platform, key);
437
619
  if (typeof platform?.waitUntil === "function")
438
620
  platform.waitUntil(task);
439
621
  else
440
622
  void task.catch(() => { });
441
- return responseFrom(hit, "stale");
623
+ return served(hit, "stale");
442
624
  }
443
625
  return render(req, platform, key);
444
626
  };
627
+ Object.defineProperty(handler, CACHE_CHANNEL, {
628
+ value: () => {
629
+ channelOpen = true;
630
+ },
631
+ });
632
+ return handler;
445
633
  }
446
634
  const jsonError = (status, error) => Response.json({ ok: false, error }, { status });
635
+ /** Most paths and tags one revalidation request may name, so a leaked token cannot fan out. */
636
+ export const MAX_REVALIDATE_PATHS = 100;
637
+ export const MAX_REVALIDATE_TAGS = MAX_ISR_TAGS;
638
+ const stringList = (value) => {
639
+ if (value === undefined)
640
+ return undefined;
641
+ if (!Array.isArray(value) || !value.every((item) => typeof item === "string"))
642
+ return null;
643
+ return value;
644
+ };
447
645
  /**
448
- * An **on-demand revalidation** (purge) endpoint - a `fetch` handler that drops a path's cached entry
646
+ * An **on-demand revalidation** (purge) endpoint - a `fetch` handler that drops cached pages by path
449
647
  * or invalidates every entry carrying a tag. `POST` with the secret in the token header and either
450
- * `?path=/blog/x`, `?tag=products`, or a JSON `{ "path": "/blog/x" }` / `{ "tag": "products" }` body.
648
+ * `?path=/blog/x`, `?tag=products`, a JSON `{ "path": "/blog/x" }` / `{ "tag": "products" }` body, or a
649
+ * batch `{ "paths": [...], "tags": [...] }` of at most 100 paths and 32 tags.
451
650
  * The token is checked in **constant time** (wrong/missing → `401`); malformed targets → `400`;
452
651
  * non-POST → `405`. A store without tag support returns `501` for tag requests. Mount it on a nifra route, e.g.
453
652
  * `app.post("/__nifra/revalidate", (c) => handler(c.req))`.
454
653
  */
455
654
  export function revalidateEndpoint(options) {
655
+ // An empty secret matches a request that omits the header (`"" === ""`), so an unset env var passed
656
+ // through `?? ""` would open the purge to anyone. Refuse it at construction instead.
657
+ assertTokenSecret(options.secret, "revalidateEndpoint");
456
658
  const tokenHeader = options.tokenHeader ?? "x-nifra-revalidate-token";
457
- const keyOf = options.key ?? ((path, req) => new URL(req.url).origin + path);
458
- return async (req) => {
659
+ const urlKey = options.key === undefined ? urlKeyOf(options.query) : undefined;
660
+ // Joined as text, never resolved against the origin: `//host/x` must stay a path on this origin.
661
+ const keyOf = options.key ??
662
+ ((path, req) => urlKey?.(new URL(new URL(req.url).origin + path)) ?? null);
663
+ return async (req, platform) => {
459
664
  if (req.method !== "POST")
460
665
  return jsonError(405, "method_not_allowed");
461
666
  if (!timingSafeEqual(req.headers.get(tokenHeader) ?? "", options.secret)) {
@@ -464,33 +669,90 @@ export function revalidateEndpoint(options) {
464
669
  const url = new URL(req.url);
465
670
  let path = url.searchParams.get("path");
466
671
  let tag = url.searchParams.get("tag");
672
+ let batch;
467
673
  if (path === null && tag === null) {
468
674
  const body = await req.json().catch(() => null);
469
675
  if (typeof body === "object" && body !== null) {
470
676
  const candidate = body;
471
- path = typeof candidate.path === "string" ? candidate.path : null;
472
- tag = typeof candidate.tag === "string" ? candidate.tag : null;
677
+ if (candidate.paths !== undefined || candidate.tags !== undefined) {
678
+ const paths = stringList(candidate.paths);
679
+ const tags = stringList(candidate.tags);
680
+ if (paths === null || tags === null)
681
+ return jsonError(400, "invalid_batch");
682
+ if ((paths?.length ?? 0) > MAX_REVALIDATE_PATHS)
683
+ return jsonError(400, "too_many_paths");
684
+ if ((tags?.length ?? 0) > MAX_REVALIDATE_TAGS)
685
+ return jsonError(400, "too_many_tags");
686
+ batch = { paths: paths ?? [], tags: tags ?? [] };
687
+ if (batch.paths.length + batch.tags.length === 0)
688
+ return jsonError(400, "empty_batch");
689
+ }
690
+ else {
691
+ path = typeof candidate.path === "string" ? candidate.path : null;
692
+ tag = typeof candidate.tag === "string" ? candidate.tag : null;
693
+ }
473
694
  }
474
695
  }
475
- if (path !== null && tag !== null)
476
- return jsonError(400, "choose_path_or_tag");
477
- if (tag !== null) {
696
+ if (batch === undefined) {
697
+ if (path !== null && tag !== null)
698
+ return jsonError(400, "choose_path_or_tag");
699
+ if (path === null && tag === null)
700
+ return jsonError(400, "invalid_path");
701
+ batch = { paths: path === null ? [] : [path], tags: tag === null ? [] : [tag] };
702
+ }
703
+ const tags = [...new Set(batch.tags)];
704
+ for (const candidate of tags) {
478
705
  try {
479
- normalizeTag(tag);
706
+ normalizeTag(candidate);
480
707
  }
481
708
  catch {
482
709
  return jsonError(400, "invalid_tag");
483
710
  }
484
- if (options.store.invalidateTag === undefined) {
485
- return jsonError(501, "tag_invalidation_not_supported");
486
- }
487
- await options.store.invalidateTag(tag);
488
- return Response.json({ revalidatedTag: tag });
489
711
  }
490
- if (path === null || !path.startsWith("/"))
491
- return jsonError(400, "invalid_path");
492
- await options.store.delete(keyOf(path, req));
493
- return Response.json({ revalidated: path });
712
+ const paths = [...new Set(batch.paths)];
713
+ const keys = [];
714
+ for (const candidate of paths) {
715
+ if (!candidate.startsWith("/"))
716
+ return jsonError(400, "invalid_path");
717
+ const key = keyOf(candidate, req);
718
+ if (key === null)
719
+ return jsonError(400, "uncached_query");
720
+ keys.push(key);
721
+ }
722
+ const invalidateTag = options.store.invalidateTag;
723
+ if (tags.length > 0 && invalidateTag === undefined) {
724
+ return jsonError(501, "tag_invalidation_not_supported");
725
+ }
726
+ for (const key of keys)
727
+ await options.store.delete(key);
728
+ for (const candidate of tags)
729
+ await invalidateTag?.call(options.store, candidate);
730
+ const done = path !== null
731
+ ? { revalidated: path }
732
+ : tag !== null
733
+ ? { revalidatedTag: tag }
734
+ : { revalidated: paths, revalidatedTags: tags };
735
+ if (options.cdn === undefined)
736
+ return Response.json(done);
737
+ let outcome;
738
+ try {
739
+ outcome = await options.cdn.purge({ tags, paths }, platform);
740
+ }
741
+ catch {
742
+ outcome = { cdn: "failed", retryable: true, error: "cdn_purge_threw" };
743
+ }
744
+ if (outcome.cdn === "failed") {
745
+ const failure = {
746
+ ok: false,
747
+ error: "cdn_purge_failed",
748
+ origin: "done",
749
+ retryable: outcome.retryable,
750
+ };
751
+ if (outcome.error !== undefined)
752
+ failure.reason = outcome.error;
753
+ return Response.json(failure, { status: 502 });
754
+ }
755
+ return Response.json({ ...done, cdn: outcome.cdn }, { status: outcome.cdn === "queued" ? 202 : 200 });
494
756
  };
495
757
  }
496
758
  //# sourceMappingURL=isr.js.map
package/dist/isr.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"isr.js","sourceRoot":"","sources":["../src/isr.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"isr.js","sourceRoot":"","sources":["../src/isr.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,10 @@
1
+ import { type ProjectEvidenceSnapshot } from "@nifrajs/core/evidence";
1
2
  export declare function generateLlmsTxt(full: boolean, pageRoutes: ReadonlyArray<{
2
3
  readonly pattern: string;
3
4
  readonly id: string;
4
5
  }>, backend: unknown, options?: {
5
6
  readonly includeLocalGuidelines?: boolean;
7
+ /** Reuse the project's canonical route-evidence pass when one is already available. */
8
+ readonly evidence?: ProjectEvidenceSnapshot;
6
9
  }): Promise<string>;
7
10
  //# sourceMappingURL=llms-txt.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"llms-txt.d.ts","sourceRoot":"","sources":["../src/llms-txt.ts"],"names":[],"mappings":"AAoGA,wBAAsB,eAAe,CACnC,IAAI,EAAE,OAAO,EACb,UAAU,EAAE,aAAa,CAAC;IAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;CAAE,CAAC,EAC5E,OAAO,EAAE,OAAO,EAChB,OAAO,GAAE;IAAE,QAAQ,CAAC,sBAAsB,CAAC,EAAE,OAAO,CAAA;CAAO,GAC1D,OAAO,CAAC,MAAM,CAAC,CA4DjB"}
1
+ {"version":3,"file":"llms-txt.d.ts","sourceRoot":"","sources":["../src/llms-txt.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,uBAAuB,EAG7B,MAAM,wBAAwB,CAAA;AA4H/B,wBAAsB,eAAe,CACnC,IAAI,EAAE,OAAO,EACb,UAAU,EAAE,aAAa,CAAC;IAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;CAAE,CAAC,EAC5E,OAAO,EAAE,OAAO,EAChB,OAAO,GAAE;IACP,QAAQ,CAAC,sBAAsB,CAAC,EAAE,OAAO,CAAA;IACzC,uFAAuF;IACvF,QAAQ,CAAC,QAAQ,CAAC,EAAE,uBAAuB,CAAA;CACvC,GACL,OAAO,CAAC,MAAM,CAAC,CAgEjB"}