@nifrajs/web 4.0.2 → 5.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 (384) hide show
  1. package/README.md +11 -0
  2. package/dist/build-vite.d.ts +19 -0
  3. package/dist/build-vite.d.ts.map +1 -1
  4. package/dist/build-vite.js +31 -10
  5. package/dist/build-vite.js.map +1 -1
  6. package/dist/build.d.ts +8 -10
  7. package/dist/build.d.ts.map +1 -1
  8. package/dist/build.js +90 -31
  9. package/dist/build.js.map +1 -1
  10. package/dist/cdn.d.ts +8 -0
  11. package/dist/cdn.d.ts.map +1 -1
  12. package/dist/cdn.js +14 -15
  13. package/dist/cdn.js.map +1 -1
  14. package/dist/client.d.ts +1 -1
  15. package/dist/client.d.ts.map +1 -1
  16. package/dist/client.js +25 -7
  17. package/dist/client.js.map +1 -1
  18. package/dist/deferred.d.ts +2 -2
  19. package/dist/deferred.d.ts.map +1 -1
  20. package/dist/deferred.js +28 -7
  21. package/dist/deferred.js.map +1 -1
  22. package/dist/dev-feed.d.ts.map +1 -1
  23. package/dist/dev-feed.js +24 -5
  24. package/dist/dev-feed.js.map +1 -1
  25. package/dist/dev-session.d.ts.map +1 -1
  26. package/dist/dev-session.js +4 -14
  27. package/dist/dev-session.js.map +1 -1
  28. package/dist/dev.d.ts +7 -17
  29. package/dist/dev.d.ts.map +1 -1
  30. package/dist/dev.js +13 -1
  31. package/dist/dev.js.map +1 -1
  32. package/dist/draft.d.ts +8 -5
  33. package/dist/draft.d.ts.map +1 -1
  34. package/dist/draft.js +30 -13
  35. package/dist/draft.js.map +1 -1
  36. package/dist/fonts-google.d.ts.map +1 -1
  37. package/dist/fonts-google.js +7 -0
  38. package/dist/fonts-google.js.map +1 -1
  39. package/dist/index.d.ts +2 -2
  40. package/dist/index.d.ts.map +1 -1
  41. package/dist/index.js +2 -2
  42. package/dist/index.js.map +1 -1
  43. package/dist/internal/codegen.d.ts +1 -0
  44. package/dist/internal/codegen.d.ts.map +1 -1
  45. package/dist/internal/codegen.js +56 -29
  46. package/dist/internal/codegen.js.map +1 -1
  47. package/dist/internal/disposable-dir.d.ts +8 -0
  48. package/dist/internal/disposable-dir.d.ts.map +1 -0
  49. package/dist/internal/disposable-dir.js +25 -0
  50. package/dist/internal/disposable-dir.js.map +1 -0
  51. package/dist/internal/entry-chunks.d.ts +9 -0
  52. package/dist/internal/entry-chunks.d.ts.map +1 -0
  53. package/dist/internal/entry-chunks.js +15 -0
  54. package/dist/internal/entry-chunks.js.map +1 -0
  55. package/dist/internal/evidence-traversal.d.ts +12 -0
  56. package/dist/internal/evidence-traversal.d.ts.map +1 -0
  57. package/dist/internal/evidence-traversal.js +48 -0
  58. package/dist/internal/evidence-traversal.js.map +1 -0
  59. package/dist/internal/head-merge.d.ts +6 -0
  60. package/dist/internal/head-merge.d.ts.map +1 -1
  61. package/dist/internal/head-merge.js +9 -0
  62. package/dist/internal/head-merge.js.map +1 -1
  63. package/dist/internal/js-string.d.ts +2 -0
  64. package/dist/internal/js-string.d.ts.map +1 -1
  65. package/dist/internal/js-string.js +5 -1
  66. package/dist/internal/js-string.js.map +1 -1
  67. package/dist/internal/mount-shadow.js +1 -1
  68. package/dist/internal/mount-shadow.js.map +1 -1
  69. package/dist/internal/output-guard.d.ts +7 -0
  70. package/dist/internal/output-guard.d.ts.map +1 -1
  71. package/dist/internal/output-guard.js +80 -8
  72. package/dist/internal/output-guard.js.map +1 -1
  73. package/dist/internal/page-execution.d.ts +6 -0
  74. package/dist/internal/page-execution.d.ts.map +1 -1
  75. package/dist/internal/page-execution.js +377 -108
  76. package/dist/internal/page-execution.js.map +1 -1
  77. package/dist/internal/progressive-cookies.d.ts +14 -0
  78. package/dist/internal/progressive-cookies.d.ts.map +1 -0
  79. package/dist/internal/progressive-cookies.js +43 -0
  80. package/dist/internal/progressive-cookies.js.map +1 -0
  81. package/dist/internal/public-env.d.ts +2 -0
  82. package/dist/internal/public-env.d.ts.map +1 -0
  83. package/dist/internal/public-env.js +13 -0
  84. package/dist/internal/public-env.js.map +1 -0
  85. package/dist/internal/render-document.d.ts +1 -0
  86. package/dist/internal/render-document.d.ts.map +1 -1
  87. package/dist/internal/render-document.js +28 -5
  88. package/dist/internal/render-document.js.map +1 -1
  89. package/dist/internal/response-controls.d.ts +2 -0
  90. package/dist/internal/response-controls.d.ts.map +1 -1
  91. package/dist/internal/response-controls.js +26 -16
  92. package/dist/internal/response-controls.js.map +1 -1
  93. package/dist/internal/revive-dates.d.ts +16 -0
  94. package/dist/internal/revive-dates.d.ts.map +1 -0
  95. package/dist/internal/revive-dates.js +32 -0
  96. package/dist/internal/revive-dates.js.map +1 -0
  97. package/dist/internal/route-path.d.ts +8 -0
  98. package/dist/internal/route-path.d.ts.map +1 -0
  99. package/dist/internal/route-path.js +8 -0
  100. package/dist/internal/route-path.js.map +1 -0
  101. package/dist/internal/secret-scan.d.ts.map +1 -1
  102. package/dist/internal/secret-scan.js +88 -20
  103. package/dist/internal/secret-scan.js.map +1 -1
  104. package/dist/internal/server-boundary.d.ts.map +1 -1
  105. package/dist/internal/server-boundary.js +33 -5
  106. package/dist/internal/server-boundary.js.map +1 -1
  107. package/dist/internal/web-app.d.ts +21 -16
  108. package/dist/internal/web-app.d.ts.map +1 -1
  109. package/dist/internal/web-app.js +73 -21
  110. package/dist/internal/web-app.js.map +1 -1
  111. package/dist/internal/wire-date.d.ts +3 -0
  112. package/dist/internal/wire-date.d.ts.map +1 -0
  113. package/dist/internal/wire-date.js +14 -0
  114. package/dist/internal/wire-date.js.map +1 -0
  115. package/dist/internal/zone-graph.d.ts +4 -0
  116. package/dist/internal/zone-graph.d.ts.map +1 -1
  117. package/dist/internal/zone-graph.js +54 -14
  118. package/dist/internal/zone-graph.js.map +1 -1
  119. package/dist/isr.d.ts +58 -2
  120. package/dist/isr.d.ts.map +1 -1
  121. package/dist/isr.js +296 -39
  122. package/dist/isr.js.map +1 -1
  123. package/dist/llms-txt.d.ts +2 -0
  124. package/dist/llms-txt.d.ts.map +1 -1
  125. package/dist/llms-txt.js +29 -3
  126. package/dist/llms-txt.js.map +1 -1
  127. package/dist/manifest.d.ts +28 -4
  128. package/dist/manifest.d.ts.map +1 -1
  129. package/dist/manifest.js +3 -0
  130. package/dist/manifest.js.map +1 -1
  131. package/dist/open-resolved.d.ts +18 -0
  132. package/dist/open-resolved.d.ts.map +1 -0
  133. package/dist/open-resolved.js +62 -0
  134. package/dist/open-resolved.js.map +1 -0
  135. package/dist/plugins/kit.d.ts +1 -0
  136. package/dist/plugins/kit.d.ts.map +1 -1
  137. package/dist/plugins/kit.js +26 -11
  138. package/dist/plugins/kit.js.map +1 -1
  139. package/dist/plugins/vite-leak-guard.d.ts +3 -1
  140. package/dist/plugins/vite-leak-guard.d.ts.map +1 -1
  141. package/dist/plugins/vite-leak-guard.js +4 -0
  142. package/dist/plugins/vite-leak-guard.js.map +1 -1
  143. package/dist/public-dir.d.ts +8 -1
  144. package/dist/public-dir.d.ts.map +1 -1
  145. package/dist/public-dir.js +17 -6
  146. package/dist/public-dir.js.map +1 -1
  147. package/dist/query.d.ts +13 -4
  148. package/dist/query.d.ts.map +1 -1
  149. package/dist/query.js +89 -26
  150. package/dist/query.js.map +1 -1
  151. package/dist/render-seam.d.ts +2 -0
  152. package/dist/render-seam.d.ts.map +1 -1
  153. package/dist/render-seam.js +1 -0
  154. package/dist/render-seam.js.map +1 -1
  155. package/dist/route-types.d.ts.map +1 -1
  156. package/dist/route-types.js +20 -9
  157. package/dist/route-types.js.map +1 -1
  158. package/dist/router.d.ts +9 -2
  159. package/dist/router.d.ts.map +1 -1
  160. package/dist/router.js +39 -46
  161. package/dist/router.js.map +1 -1
  162. package/dist/server-components/build-info.d.ts +3 -0
  163. package/dist/server-components/build-info.d.ts.map +1 -0
  164. package/dist/server-components/build-info.js +7 -0
  165. package/dist/server-components/build-info.js.map +1 -0
  166. package/dist/server-components/build-target.d.ts +12 -0
  167. package/dist/server-components/build-target.d.ts.map +1 -0
  168. package/dist/server-components/build-target.js +153 -0
  169. package/dist/server-components/build-target.js.map +1 -0
  170. package/dist/server-components/build.d.ts +24 -0
  171. package/dist/server-components/build.d.ts.map +1 -0
  172. package/dist/server-components/build.js +366 -0
  173. package/dist/server-components/build.js.map +1 -0
  174. package/dist/server-components/bundle-proof.d.ts +3 -0
  175. package/dist/server-components/bundle-proof.d.ts.map +1 -0
  176. package/dist/server-components/bundle-proof.js +23 -0
  177. package/dist/server-components/bundle-proof.js.map +1 -0
  178. package/dist/server-components/client.d.ts +46 -0
  179. package/dist/server-components/client.d.ts.map +1 -0
  180. package/dist/server-components/client.js +594 -0
  181. package/dist/server-components/client.js.map +1 -0
  182. package/dist/server-components/definition.d.ts +11 -0
  183. package/dist/server-components/definition.d.ts.map +1 -0
  184. package/dist/server-components/definition.js +94 -0
  185. package/dist/server-components/definition.js.map +1 -0
  186. package/dist/server-components/dev-http.d.ts +5 -0
  187. package/dist/server-components/dev-http.d.ts.map +1 -0
  188. package/dist/server-components/dev-http.js +71 -0
  189. package/dist/server-components/dev-http.js.map +1 -0
  190. package/dist/server-components/error.d.ts +9 -0
  191. package/dist/server-components/error.d.ts.map +1 -0
  192. package/dist/server-components/error.js +24 -0
  193. package/dist/server-components/error.js.map +1 -0
  194. package/dist/server-components/frames.d.ts +7 -0
  195. package/dist/server-components/frames.d.ts.map +1 -0
  196. package/dist/server-components/frames.js +169 -0
  197. package/dist/server-components/frames.js.map +1 -0
  198. package/dist/server-components/html-policy.d.ts +6 -0
  199. package/dist/server-components/html-policy.d.ts.map +1 -0
  200. package/dist/server-components/html-policy.js +75 -0
  201. package/dist/server-components/html-policy.js.map +1 -0
  202. package/dist/server-components/html.d.ts +4 -0
  203. package/dist/server-components/html.d.ts.map +1 -0
  204. package/dist/server-components/html.js +67 -0
  205. package/dist/server-components/html.js.map +1 -0
  206. package/dist/server-components/islands.d.ts +44 -0
  207. package/dist/server-components/islands.d.ts.map +1 -0
  208. package/dist/server-components/islands.js +42 -0
  209. package/dist/server-components/islands.js.map +1 -0
  210. package/dist/server-components/native.d.ts +4 -0
  211. package/dist/server-components/native.d.ts.map +1 -0
  212. package/dist/server-components/native.js +81 -0
  213. package/dist/server-components/native.js.map +1 -0
  214. package/dist/server-components/portal.d.ts +6 -0
  215. package/dist/server-components/portal.d.ts.map +1 -0
  216. package/dist/server-components/portal.js +35 -0
  217. package/dist/server-components/portal.js.map +1 -0
  218. package/dist/server-components/props.d.ts +3 -0
  219. package/dist/server-components/props.d.ts.map +1 -0
  220. package/dist/server-components/props.js +14 -0
  221. package/dist/server-components/props.js.map +1 -0
  222. package/dist/server-components/protocol.d.ts +44 -0
  223. package/dist/server-components/protocol.d.ts.map +1 -0
  224. package/dist/server-components/protocol.js +139 -0
  225. package/dist/server-components/protocol.js.map +1 -0
  226. package/dist/server-components/range.d.ts +24 -0
  227. package/dist/server-components/range.d.ts.map +1 -0
  228. package/dist/server-components/range.js +263 -0
  229. package/dist/server-components/range.js.map +1 -0
  230. package/dist/server-components/registry.d.ts +6 -0
  231. package/dist/server-components/registry.d.ts.map +1 -0
  232. package/dist/server-components/registry.js +30 -0
  233. package/dist/server-components/registry.js.map +1 -0
  234. package/dist/server-components/response.d.ts +4 -0
  235. package/dist/server-components/response.d.ts.map +1 -0
  236. package/dist/server-components/response.js +32 -0
  237. package/dist/server-components/response.js.map +1 -0
  238. package/dist/server-components/router-integration.d.ts +9 -0
  239. package/dist/server-components/router-integration.d.ts.map +1 -0
  240. package/dist/server-components/router-integration.js +29 -0
  241. package/dist/server-components/router-integration.js.map +1 -0
  242. package/dist/server-components/runtime.d.ts +14 -0
  243. package/dist/server-components/runtime.d.ts.map +1 -0
  244. package/dist/server-components/runtime.js +276 -0
  245. package/dist/server-components/runtime.js.map +1 -0
  246. package/dist/server-components/scheduler.d.ts +14 -0
  247. package/dist/server-components/scheduler.d.ts.map +1 -0
  248. package/dist/server-components/scheduler.js +74 -0
  249. package/dist/server-components/scheduler.js.map +1 -0
  250. package/dist/server-components/schema.d.ts +4 -0
  251. package/dist/server-components/schema.d.ts.map +1 -0
  252. package/dist/server-components/schema.js +77 -0
  253. package/dist/server-components/schema.js.map +1 -0
  254. package/dist/server-components/server-entry.d.ts +12 -0
  255. package/dist/server-components/server-entry.d.ts.map +1 -0
  256. package/dist/server-components/server-entry.js +90 -0
  257. package/dist/server-components/server-entry.js.map +1 -0
  258. package/dist/server-components/source.d.ts +15 -0
  259. package/dist/server-components/source.d.ts.map +1 -0
  260. package/dist/server-components/source.js +269 -0
  261. package/dist/server-components/source.js.map +1 -0
  262. package/dist/server-components/state.d.ts +4 -0
  263. package/dist/server-components/state.d.ts.map +1 -0
  264. package/dist/server-components/state.js +123 -0
  265. package/dist/server-components/state.js.map +1 -0
  266. package/dist/server-components/stream.d.ts +6 -0
  267. package/dist/server-components/stream.d.ts.map +1 -0
  268. package/dist/server-components/stream.js +70 -0
  269. package/dist/server-components/stream.js.map +1 -0
  270. package/dist/server-components/trusted-html.d.ts +3 -0
  271. package/dist/server-components/trusted-html.d.ts.map +1 -0
  272. package/dist/server-components/trusted-html.js +14 -0
  273. package/dist/server-components/trusted-html.js.map +1 -0
  274. package/dist/server-components/types.d.ts +107 -0
  275. package/dist/server-components/types.d.ts.map +1 -0
  276. package/dist/server-components/types.js +2 -0
  277. package/dist/server-components/types.js.map +1 -0
  278. package/dist/server-components/typescript.d.ts +11 -0
  279. package/dist/server-components/typescript.d.ts.map +1 -0
  280. package/dist/server-components/typescript.js +28 -0
  281. package/dist/server-components/typescript.js.map +1 -0
  282. package/dist/server-components/value.d.ts +5 -0
  283. package/dist/server-components/value.d.ts.map +1 -0
  284. package/dist/server-components/value.js +77 -0
  285. package/dist/server-components/value.js.map +1 -0
  286. package/dist/server-components/vite.d.ts +12 -0
  287. package/dist/server-components/vite.d.ts.map +1 -0
  288. package/dist/server-components/vite.js +197 -0
  289. package/dist/server-components/vite.js.map +1 -0
  290. package/dist/server-components.d.ts +5 -0
  291. package/dist/server-components.d.ts.map +1 -0
  292. package/dist/server-components.js +4 -0
  293. package/dist/server-components.js.map +1 -0
  294. package/dist/service-worker.d.ts +8 -1
  295. package/dist/service-worker.d.ts.map +1 -1
  296. package/dist/service-worker.js +20 -6
  297. package/dist/service-worker.js.map +1 -1
  298. package/dist/vite.d.ts +12 -0
  299. package/dist/vite.d.ts.map +1 -1
  300. package/dist/vite.js +7 -1
  301. package/dist/vite.js.map +1 -1
  302. package/dist/zones.d.ts +40 -0
  303. package/dist/zones.d.ts.map +1 -1
  304. package/dist/zones.js +170 -6
  305. package/dist/zones.js.map +1 -1
  306. package/package.json +97 -4
  307. package/src/build-vite.ts +31 -9
  308. package/src/build.ts +109 -31
  309. package/src/cdn.ts +18 -12
  310. package/src/client.ts +25 -6
  311. package/src/deferred.ts +27 -9
  312. package/src/dev-feed.ts +24 -5
  313. package/src/dev-session.ts +4 -13
  314. package/src/dev.ts +29 -1
  315. package/src/draft.ts +35 -14
  316. package/src/fonts-google.ts +10 -0
  317. package/src/index.ts +3 -2
  318. package/src/internal/codegen.ts +60 -29
  319. package/src/internal/disposable-dir.ts +24 -0
  320. package/src/internal/entry-chunks.ts +18 -0
  321. package/src/internal/evidence-traversal.ts +57 -0
  322. package/src/internal/head-merge.ts +16 -0
  323. package/src/internal/js-string.ts +6 -1
  324. package/src/internal/mount-shadow.ts +1 -1
  325. package/src/internal/output-guard.ts +88 -7
  326. package/src/internal/page-execution.ts +506 -108
  327. package/src/internal/progressive-cookies.ts +60 -0
  328. package/src/internal/public-env.ts +14 -0
  329. package/src/internal/render-document.ts +26 -11
  330. package/src/internal/response-controls.ts +31 -14
  331. package/src/internal/revive-dates.ts +35 -0
  332. package/src/internal/route-path.ts +8 -0
  333. package/src/internal/secret-scan.ts +90 -18
  334. package/src/internal/server-boundary.ts +29 -5
  335. package/src/internal/web-app.ts +116 -37
  336. package/src/internal/wire-date.ts +16 -0
  337. package/src/internal/zone-graph.ts +59 -19
  338. package/src/isr.ts +351 -43
  339. package/src/llms-txt.ts +32 -3
  340. package/src/manifest.ts +28 -4
  341. package/src/open-resolved.ts +64 -0
  342. package/src/plugins/kit.ts +31 -11
  343. package/src/plugins/vite-leak-guard.ts +5 -1
  344. package/src/public-dir.ts +27 -8
  345. package/src/query.ts +107 -26
  346. package/src/render-seam.ts +2 -0
  347. package/src/route-types.ts +34 -7
  348. package/src/router.ts +58 -55
  349. package/src/server-components/build-info.ts +11 -0
  350. package/src/server-components/build-target.ts +194 -0
  351. package/src/server-components/build.ts +419 -0
  352. package/src/server-components/bundle-proof.ts +33 -0
  353. package/src/server-components/client.ts +663 -0
  354. package/src/server-components/definition.ts +125 -0
  355. package/src/server-components/dev-http.ts +75 -0
  356. package/src/server-components/error.ts +24 -0
  357. package/src/server-components/frames.ts +181 -0
  358. package/src/server-components/html-policy.ts +94 -0
  359. package/src/server-components/html.ts +81 -0
  360. package/src/server-components/islands.ts +111 -0
  361. package/src/server-components/native.ts +101 -0
  362. package/src/server-components/portal.ts +42 -0
  363. package/src/server-components/props.ts +19 -0
  364. package/src/server-components/protocol.ts +167 -0
  365. package/src/server-components/range.ts +313 -0
  366. package/src/server-components/registry.ts +34 -0
  367. package/src/server-components/response.ts +44 -0
  368. package/src/server-components/router-integration.ts +40 -0
  369. package/src/server-components/runtime.ts +376 -0
  370. package/src/server-components/scheduler.ts +84 -0
  371. package/src/server-components/schema.ts +69 -0
  372. package/src/server-components/server-entry.ts +98 -0
  373. package/src/server-components/source.ts +324 -0
  374. package/src/server-components/state.ts +143 -0
  375. package/src/server-components/stream.ts +71 -0
  376. package/src/server-components/trusted-html.ts +21 -0
  377. package/src/server-components/types.ts +138 -0
  378. package/src/server-components/typescript.ts +39 -0
  379. package/src/server-components/value.ts +82 -0
  380. package/src/server-components/vite.ts +242 -0
  381. package/src/server-components.ts +32 -0
  382. package/src/service-worker.ts +24 -7
  383. package/src/vite.ts +8 -1
  384. package/src/zones.ts +208 -7
package/README.md CHANGED
@@ -1,5 +1,16 @@
1
1
  # @nifrajs/web
2
2
 
3
+ Optional server components are implemented for React, Vue, Svelte and Solid in the post-4.0
4
+ feature branch. React uses native RSC/Flight; the other adapters use native islands in validated
5
+ server ranges. Definitions require closed input/public-props schemas and authorization. Refresh
6
+ executes the actual owner GET, preserving admission, read capabilities, budgets and cancellation;
7
+ output is private/no-store. Mutate through validated server functions or actions.
8
+
9
+ Use the `/server-components`, `/server-components/client`, `/server-components/islands` and
10
+ `/server-components/build` exports with an explicit `componentPipeline` named config export.
11
+ See [the server-components guide](https://nifra.dev/docs/server-components) and the four runnable
12
+ repository examples for complete entries, native outlets, exact compiler pins and rollback.
13
+
3
14
  Framework-agnostic SSR core for nifra - the render seam + HTML document orchestration.
4
15
 
5
16
  Part of the **[nifra](https://nifra.dev)** full-stack TypeScript framework - one core, five UI libraries, every runtime. Scaffold a new app with `bun create nifra`.
@@ -1,3 +1,22 @@
1
+ /**
2
+ * `@nifrajs/web/build-vite` - the **Vite/Rollup production build**: the escape hatch, not the default.
3
+ *
4
+ * nifra's production default is Bun (`@nifrajs/web/build`), and stays so - it is faster and Bun-native,
5
+ * which is what nifra competes on. This exists for the one case that default cannot serve: an app whose
6
+ * client depends on a Vite-only transform with no Bun equivalent. For those, `buildClientVite` /
7
+ * `buildServerVite` produce the SAME artifacts as the Bun build - the same `BuildManifest`, the same
8
+ * `ServerBuild` - through Vite instead, and `buildTargetVite` assembles the same per-target deploy dir.
9
+ *
10
+ * Crucially this is NOT a second orchestrator. `buildTarget`'s deploy assembly, server-entry codegen,
11
+ * prerender and size report are bundler-agnostic; they live in `build.ts` behind `buildTargetWith`, which
12
+ * takes a {@link Bundler} strategy. This file only supplies the Vite strategy - the two bundling steps -
13
+ * so a change to how a deploy dir is shaped happens in one place for both pipelines.
14
+ *
15
+ * And it does not arrive without the client-leak guards: `buildClientVite` wires `viteLeakGuard()`, so
16
+ * server-only code or a `node:` builtin reaching the browser fails the Vite build with the identical
17
+ * error the Bun build raises. A second production pipeline without those guards is exactly the hole the
18
+ * bundler-neutral module graph was built to close.
19
+ */
1
20
  import { type BuildClientOptions, type BuildTargetOptions, type BuildTargetResult } from "./build.js";
2
21
  import type { BuildManifest, BuildTarget, Bundler, ServerBuild } from "./build-plan.js";
3
22
  import { type CssLoadingMode } from "./css-contract.js";
@@ -1 +1 @@
1
- {"version":3,"file":"build-vite.d.ts","sourceRoot":"","sources":["../src/build-vite.ts"],"names":[],"mappings":"AAqBA,OAAO,EACL,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EAIvB,MAAM,YAAY,CAAA;AACnB,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AACvF,OAAO,EAEL,KAAK,cAAc,EAIpB,MAAM,mBAAmB,CAAA;AAwF1B;mEACmE;AACnE,MAAM,WAAW,sBAAuB,SAAQ,IAAI,CAAC,kBAAkB,EAAE,SAAS,CAAC;IACjF,8EAA8E;IAC9E,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,OAAO,EAAE,CAAA;IACzC,gGAAgG;IAChG,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;IACtB;;;OAGG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,CAAA;IAC/B;;;;OAIG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,cAAc,CAAA;CACrC;AAED;;;;;;;;GAQG;AACH,wBAAsB,eAAe,CAAC,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,aAAa,CAAC,CAmQ7F;AAED,0GAA0G;AAC1G,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAA;IAC/C,QAAQ,CAAC,WAAW,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,CAAC,GAAG,SAAS,CAAA;IAC9E,oGAAoG;IACpG,QAAQ,CAAC,UAAU,CAAC,EAAE,cAAc,CAAA;IACpC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAA;IAC3C,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAA;IAC9B,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,OAAO,EAAE,CAAA;IACzC,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IACvC,QAAQ,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;IAClD,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAA;IACzB,yGAAyG;IACzG,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,GAAG,MAAM,GAAG,KAAK,CAAA;IAC5C,8DAA8D;IAC9D,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;IACtB,8FAA8F;IAC9F,QAAQ,CAAC,cAAc,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IAC3C,yEAAyE;IACzE,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAA;CAClC;AAoED;;;;;;;;;;;;GAYG;AACH,wBAAsB,eAAe,CAAC,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,WAAW,CAAC,CAyG3F;AAED;;;GAGG;AACH,eAAO,MAAM,WAAW,EAAE,OAgCzB,CAAA;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAC7B,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAAC,iBAAiB,CAAC,CAE5B"}
1
+ {"version":3,"file":"build-vite.d.ts","sourceRoot":"","sources":["../src/build-vite.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAKH,OAAO,EACL,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EAIvB,MAAM,YAAY,CAAA;AACnB,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AACvF,OAAO,EAEL,KAAK,cAAc,EAIpB,MAAM,mBAAmB,CAAA;AAyF1B;mEACmE;AACnE,MAAM,WAAW,sBAAuB,SAAQ,IAAI,CAAC,kBAAkB,EAAE,SAAS,CAAC;IACjF,8EAA8E;IAC9E,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,OAAO,EAAE,CAAA;IACzC,gGAAgG;IAChG,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;IACtB;;;OAGG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,CAAA;IAC/B;;;;OAIG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,cAAc,CAAA;CACrC;AAED;;;;;;;;GAQG;AACH,wBAAsB,eAAe,CAAC,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,aAAa,CAAC,CAsR7F;AAED,0GAA0G;AAC1G,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAA;IAC/C,QAAQ,CAAC,WAAW,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,CAAC,GAAG,SAAS,CAAA;IAC9E,oGAAoG;IACpG,QAAQ,CAAC,UAAU,CAAC,EAAE,cAAc,CAAA;IACpC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAA;IAC3C,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAA;IAC9B,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,OAAO,EAAE,CAAA;IACzC,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IACvC,QAAQ,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;IAClD,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAA;IACzB,yGAAyG;IACzG,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,GAAG,MAAM,GAAG,KAAK,CAAA;IAC5C,8DAA8D;IAC9D,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;IACtB,8FAA8F;IAC9F,QAAQ,CAAC,cAAc,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IAC3C,yEAAyE;IACzE,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAA;CAClC;AAoED;;;;;;;;;;;;GAYG;AACH,wBAAsB,eAAe,CAAC,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,WAAW,CAAC,CAyG3F;AAED;;;GAGG;AACH,eAAO,MAAM,WAAW,EAAE,OAgCzB,CAAA;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAC7B,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAAC,iBAAiB,CAAC,CAE5B"}
@@ -19,6 +19,7 @@
19
19
  */
20
20
  import { existsSync, mkdirSync, mkdtempSync, readFileSync, rmSync, writeFileSync } from "node:fs";
21
21
  import { dirname, join, relative, resolve as resolvePath } from "node:path";
22
+ import { singleCopyPackageNames } from "@nifrajs/core/single-copy";
22
23
  import { buildTargetWith, copyPublicDir, publicEnvDefines, } from "./build.js";
23
24
  import { assertCssLoadingCompatible, DEFAULT_CSS_LOADING, normalizeCssCodeSplit, normalizeCssLoading, } from "./css-contract.js";
24
25
  import { discoverRoutes } from "./fs.js";
@@ -111,6 +112,8 @@ export async function buildClientVite(options) {
111
112
  ...(routeManifest.notFound ? [routeManifest.notFound.file] : []),
112
113
  // A nested `_404` is an entry only for its stylesheet: it renders on the server, unhydrated.
113
114
  ...Object.values(routeManifest.notFounds ?? {}).map((page) => page.file),
115
+ // A `_loading` page is an entry for its stylesheet too: the bootstrap imports it lazily.
116
+ ...Object.values(routeManifest.loadings ?? {}).map((page) => page.file),
114
117
  ]),
115
118
  ].sort();
116
119
  // Vite manifest keys are the input path RELATIVE TO ROOT - precompute them so the lookup below is exact
@@ -148,7 +151,11 @@ export async function buildClientVite(options) {
148
151
  generatedFiles: [entryFile],
149
152
  verified,
150
153
  ...(options.publicEnvPrefix !== undefined ? { publicEnvPrefix: options.publicEnvPrefix } : {}),
151
- secrets: { env: buildEnv, ...(exemptions ? { exemptions } : {}) },
154
+ // Vite reads `.env.<mode>` files too; a value only there is still the app's secret to keep.
155
+ secrets: {
156
+ env: { ...vite.loadEnv(mode, root, ""), ...buildEnv },
157
+ ...(exemptions ? { exemptions } : {}),
158
+ },
152
159
  };
153
160
  // nifra copies `public/` after the build; the main guard scans it with the bundle.
154
161
  const publicDir = options.publicDir === false ? undefined : (options.publicDir ?? "public");
@@ -178,7 +185,7 @@ export async function buildClientVite(options) {
178
185
  // Same framework coverage as the Bun build's dedupe plugins, from the one policy table: one
179
186
  // physical copy of react/react-dom, preact, and svelte, or a hook-using route gets a second
180
187
  // dispatcher/options global. No-op per framework the app does not use.
181
- dedupe: [...viteDedupePackages()],
188
+ dedupe: [...viteDedupePackages(), ...singleCopyPackageNames(root)],
182
189
  ...(options.conditions ? { conditions: [...options.conditions] } : {}),
183
190
  },
184
191
  css: {
@@ -271,15 +278,26 @@ export async function buildClientVite(options) {
271
278
  const c = chunkFor(routeManifest.notFound.file);
272
279
  routes._404 = c !== undefined ? [c] : [];
273
280
  }
274
- // CSS per route - Vite's manifest `css` is the transitive stylesheet set for that entry.
281
+ // CSS per route. A manifest entry's `css` lists only that chunk's own stylesheets, so a page also
282
+ // needs those of every chunk it imports statically (a component two routes share gets a chunk of
283
+ // its own) and the bootstrap's, which every page loads (a stylesheet the client module imports).
284
+ // The bootstrap's come first: the whole-app stylesheet before any route-scoped one.
275
285
  const stylesFor = (files) => {
276
286
  const urls = new Set();
277
- for (const file of files) {
278
- const key = fileKey.get(file);
279
- const entry = key !== undefined ? viteManifest[key] : undefined;
287
+ const seen = new Set();
288
+ const visit = (key) => {
289
+ if (key === undefined || seen.has(key))
290
+ return;
291
+ seen.add(key);
292
+ const entry = viteManifest[key];
280
293
  for (const css of entry?.css ?? [])
281
294
  urls.add(url(css));
282
- }
295
+ for (const imported of entry?.imports ?? [])
296
+ visit(imported);
297
+ };
298
+ visit(entryKey);
299
+ for (const file of files)
300
+ visit(fileKey.get(file));
283
301
  return [...urls];
284
302
  };
285
303
  // CSS aggregate - every stylesheet the app emits, the always-safe fallback. With native Vite
@@ -298,10 +316,13 @@ export async function buildClientVite(options) {
298
316
  // A single aggregate stylesheet is deliberately the route fallback. A per-route `[]` map would
299
317
  // suppress it in `createWebApp` and produce unstyled SSR on every route.
300
318
  if (css.length > 0 && cssCodeSplit) {
319
+ // A `_loading` page can show on a navigation from ANY page, and a document links only its own
320
+ // route's stylesheets - so every page that can start a navigation carries the loading pages' too.
321
+ const loadingFiles = Object.values(routeManifest.loadings ?? {}).map((page) => page.file);
301
322
  for (const route of routeManifest.routes)
302
- routeStyles[route.id] = stylesFor(chainFiles(route));
323
+ routeStyles[route.id] = stylesFor([...chainFiles(route), ...loadingFiles]);
303
324
  if (routeManifest.notFound)
304
- routeStyles._404 = stylesFor([routeManifest.notFound.file]);
325
+ routeStyles._404 = stylesFor([routeManifest.notFound.file, ...loadingFiles]);
305
326
  for (const [id, page] of Object.entries(routeManifest.notFounds ?? {})) {
306
327
  routeStyles[id] = stylesFor([
307
328
  ...page.layoutIds.map((layoutId) => routeManifest.layouts[layoutId]?.file ?? ""),
@@ -429,7 +450,7 @@ export async function buildServerVite(options) {
429
450
  "globalThis.__NIFRA_EDGE_RUNTIME__": edge ? "true" : "false",
430
451
  },
431
452
  resolve: {
432
- dedupe: ["react", "react-dom"],
453
+ dedupe: ["react", "react-dom", ...singleCopyPackageNames(root)],
433
454
  conditions: [...conditions],
434
455
  },
435
456
  plugins: [...(options.vitePlugins ?? [])],
@@ -1 +1 @@
1
- {"version":3,"file":"build-vite.js","sourceRoot":"","sources":["../src/build-vite.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"build-vite.js","sourceRoot":"","sources":["../src/build-vite.ts"],"names":[],"mappings":"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"}
package/dist/build.d.ts CHANGED
@@ -1,3 +1,4 @@
1
+ export { publicEnvDefines } from "./internal/public-env.js";
1
2
  import { type BunPlugin } from "bun";
2
3
  import { type BuildManifest, type BuildTarget, type Bundler, type ServerBuild, type SizeReport } from "./build-plan.js";
3
4
  import { type CssLoadingMode } from "./css-contract.js";
@@ -51,14 +52,6 @@ export interface BuildClientOptions {
51
52
  */
52
53
  readonly secretExemptions?: readonly SecretExemption[];
53
54
  }
54
- /**
55
- * The `process.env.<NAME>` → `JSON.stringify(value)` define entries for every env var whose name
56
- * carries `prefix` (the Vite/Next public-env convention). Exposing ONLY the prefixed vars is the
57
- * security boundary: an unprefixed var (a secret) never gets a define, so the bare `process.env`
58
- * define resolves it to `undefined` in the client bundle. An empty `prefix` exposes nothing (the
59
- * opt-out). Pure + exported so the prefix/redaction contract is unit-testable without a real build.
60
- */
61
- export declare function publicEnvDefines(prefix: string, env: Readonly<Record<string, string | undefined>>): Record<string, string>;
62
55
  export interface CloudflareRouteRules {
63
56
  readonly include: readonly string[];
64
57
  readonly exclude: readonly string[];
@@ -267,16 +260,21 @@ export declare function generateServerEntry(options: {
267
260
  readonly title?: string;
268
261
  /** Encoded root-relative public file paths copied into the deploy directory. */
269
262
  readonly publicFiles?: readonly string[];
263
+ /** URL paths of the content-hashed client outputs (the build manifest's `assets`). When given, a
264
+ * self-hosted entry caches only these immutably; otherwise every file under `/assets/` is. */
265
+ readonly hashedFiles?: readonly string[];
270
266
  /** Trust the edge platform's client-address header for `c.clientIp`. See {@link ServerEntryClientIp}. */
271
267
  readonly clientIp?: ServerEntryClientIp;
272
268
  }): string;
273
269
  export interface BuildTargetOptions {
274
270
  /** The `routes/` directory to discover (absolute path). */
275
271
  readonly routesDir: string;
276
- /** Output directory for the assembled deploy dir (absolute path). Cleared and recreated. */
272
+ /** Output directory for the assembled deploy dir (absolute path). Cleared and recreated, so the
273
+ * build refuses one that is a filesystem root or is or contains the routes directory, the public
274
+ * directory, an absolute entry module, or the working directory. */
277
275
  readonly outDir: string;
278
276
  /** A scratch directory for intermediate codegen (the generated server entry + manifest) and the
279
- * server bundle, cleaned up after. Absolute path. */
277
+ * server bundle, cleaned up after. Absolute path. Checked the same way as `outDir`. */
280
278
  readonly workDir: string;
281
279
  /** The adapter's client runtime module (exports `mountRouter`), e.g. `"@nifrajs/web-react/client"`. */
282
280
  readonly clientModule: string;
@@ -1 +1 @@
1
- {"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../src/build.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../src/build.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;AAyB3D,OAAO,EAAE,KAAK,SAAS,EAAQ,MAAM,KAAK,CAAA;AAC1C,OAAO,EAEL,KAAK,aAAa,EAClB,KAAK,WAAW,EAEhB,KAAK,OAAO,EAYZ,KAAK,WAAW,EAChB,KAAK,UAAU,EAChB,MAAM,iBAAiB,CAAA;AAExB,OAAO,EAAE,KAAK,cAAc,EAA8C,MAAM,mBAAmB,CAAA;AAEnG,OAAO,EAAuB,sBAAsB,EAAE,MAAM,YAAY,CAAA;AAWxE,OAAO,EAQL,KAAK,eAAe,EAGrB,MAAM,2BAA2B,CAAA;AAwBlC,cAAc,iBAAiB,CAAA;AA+B/B,YAAY,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAA;AAG5E,OAAO,EACL,KAAK,qBAAqB,EAC1B,KAAK,4BAA4B,EACjC,qBAAqB,EACrB,WAAW,EACX,WAAW,EACX,KAAK,YAAY,EACjB,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,eAAe,GAChB,MAAM,gBAAgB,CAAA;AAEvB,MAAM,WAAW,kBAAkB;IACjC,2DAA2D;IAC3D,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,yEAAyE;IACzE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,gGAAgG;IAChG,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;IAC7B,8EAA8E;IAC9E,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAA;IAC3C,4DAA4D;IAC5D,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,SAAS,EAAE,CAAA;IACvC,0EAA0E;IAC1E,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IACvC,qFAAqF;IACrF,QAAQ,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;IAClD,0CAA0C;IAC1C,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAA;IACzB,oGAAoG;IACpG,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;IAC5B;;;;;;;OAOG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,KAAK,CAAA;IACnC;;;;;;;;uCAQmC;IACnC,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAA;IACjC;;;;OAIG;IACH,QAAQ,CAAC,gBAAgB,CAAC,EAAE,SAAS,eAAe,EAAE,CAAA;CACvD;AAiBD,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAA;IACnC,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAA;IACnC,mGAAmG;IACnG,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAA;CACpC;AA2DD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,oBAAoB,CAClC,WAAW,EAAE,SAAS,MAAM,EAAE;AAC9B;;;;GAIG;AACH,aAAa,EAAE,SAAS,MAAM,EAAE,GAC/B,oBAAoB,CAgCtB;AAED,8FAA8F;AAC9F;;;;;;GAMG;AACH,wBAAsB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAqB/E;AAED;;;;;;;GAOG;AACH,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,UAAU,CAAC,OAAO,sBAAsB,CAAC,CAAC,CAAC,CAAC,EACtD,YAAY,EAAE,MAAM,GACnB,MAAM,CAUR;AAED;;;;;;GAMG;AACH;;;;GAIG;AACH,wBAAsB,WAAW,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,aAAa,CAAC,CA6WrF;AAED,MAAM,WAAW,kBAAkB;IACjC,2DAA2D;IAC3D,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B;kHAC8G;IAC9G,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAC5B,+DAA+D;IAC/D,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB;0FACsF;IACtF,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAC5B;;oEAEgE;IAChE,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAA;IAC/C,0GAA0G;IAC1G,QAAQ,CAAC,WAAW,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,CAAC,GAAG,SAAS,CAAA;IAC9E,oGAAoG;IACpG,QAAQ,CAAC,UAAU,CAAC,EAAE,cAAc,CAAA;IACpC;gFAC4E;IAC5E,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAA;IAC3C;wFACoF;IACpF,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAA;IAC9B;gEAC4D;IAC5D,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,SAAS,EAAE,CAAA;IACvC;kCAC8B;IAC9B,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IACvC;+FAC2F;IAC3F,QAAQ,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;IAClD,0CAA0C;IAC1C,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAA;IACzB;;;;6BAIyB;IACzB,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,GAAG,MAAM,GAAG,KAAK,CAAA;IAC5C;;;;2GAIuG;IACvG,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAA;IACvB,iGAAiG;IACjG,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;IACtB;gGAC4F;IAC5F,QAAQ,CAAC,cAAc,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IAC3C;8CAC0C;IAC1C,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAA;CAClC;AA+BD,eAAO,MAAM,iBAAiB,GAAI,MAAM,MAAM,KAAG,SAc/C,CAAA;AAcF,eAAO,MAAM,kBAAkB,GAAI,MAAM,MAAM,KAAG,SAchD,CAAA;AAGF;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,eAAO,MAAM,kBAAkB,GAAI,MAAM,MAAM,KAAG,SAgDhD,CAAA;AAuFF,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AAEzD;;;;;;;;;GASG;AACH,eAAO,MAAM,kBAAkB,QAAO,SAWpC,CAAA;AAqBF;;;;;;;;GAQG;AACH,wBAAsB,WAAW,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,WAAW,CAAC,CA+GnF;AAWD,sGAAsG;AACtG,eAAO,MAAM,oBAAoB,8DAA+D,CAAA;AAChG,MAAM,MAAM,iBAAiB,GAAG,CAAC,OAAO,oBAAoB,CAAC,CAAC,MAAM,CAAC,CAAA;AACrE,oFAAoF;AACpF,MAAM,MAAM,wBAAwB,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC,CAAC,CAAA;AAE3F;;;;;GAKG;AACH,MAAM,MAAM,mBAAmB,GAAG,UAAU,CAAA;AAa5C;;;;;;;;;;;;GAYG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE;IAC3C,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAA;IAC5B,sFAAsF;IACtF,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAA;IAC9B,mGAAmG;IACnG,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAA;IAC/B;mDAC+C;IAC/C,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;IAC3B;0BACsB;IACtB,QAAQ,CAAC,aAAa,CAAC,EAAE,wBAAwB,CAAA;IACjD,mDAAmD;IACnD,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;IACvB,gFAAgF;IAChF,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IACxC;kGAC8F;IAC9F,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IACxC,yGAAyG;IACzG,QAAQ,CAAC,QAAQ,CAAC,EAAE,mBAAmB,CAAA;CACxC,GAAG,MAAM,CAyMT;AAkBD,MAAM,WAAW,kBAAkB;IACjC,2DAA2D;IAC3D,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B;;wEAEoE;IACpE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB;2FACuF;IACvF,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,uGAAuG;IACvG,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;IAC7B,sFAAsF;IACtF,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAA;IAC9B,sGAAsG;IACtG,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAA;IAC/B;;oCAEgC;IAChC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;IAC3B;8GAC0G;IAC1G,QAAQ,CAAC,aAAa,CAAC,EAAE,wBAAwB,CAAA;IACjD;;;;+FAI2F;IAC3F,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,aAAa,KAAK,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAA;IAC/F,iEAAiE;IACjE,QAAQ,CAAC,aAAa,CAAC,EAAE,SAAS,SAAS,EAAE,CAAA;IAC7C,oDAAoD;IACpD,QAAQ,CAAC,aAAa,CAAC,EAAE,SAAS,SAAS,EAAE,CAAA;IAC7C,+DAA+D;IAC/D,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IACvC,mEAAmE;IACnE,QAAQ,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;IAClD,gFAAgF;IAChF,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,KAAK,CAAA;IACnC,4FAA4F;IAC5F,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAA;IACjC,oGAAoG;IACpG,QAAQ,CAAC,gBAAgB,CAAC,EAAE,SAAS,eAAe,EAAE,CAAA;IACtD;;;OAGG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,CAAA;IAC/B;;;;;OAKG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,cAAc,CAAA;IACpC,yDAAyD;IACzD,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;IACvB;+FAC2F;IAC3F,QAAQ,CAAC,QAAQ,CAAC,EAAE,mBAAmB,CAAA;CACxC;AAED,wGAAwG;AACxG,MAAM,WAAW,gBAAgB;IAC/B,KAAK,CAAC,GAAG,EAAE,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAA;CAClD;AAED,qGAAqG;AACrG,MAAM,WAAW,iBAAiB;IAChC,wCAAwC;IACxC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAA;IAC5B,sCAAsC;IACtC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,gFAAgF;IAChF,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAA;IAC9B,6DAA6D;IAC7D,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB;kCAC8B;IAC9B,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAA;CAC1B;AAED;;;;;;;;;;;;GAYG;AACH,iFAAiF;AACjF,eAAO,MAAM,UAAU,EAAE,OAqCxB,CAAA;AAsBD,uGAAuG;AACvG,wBAAsB,WAAW,CAC/B,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAAC,iBAAiB,CAAC,CAE5B;AAED;;;;;GAKG;AACH,wBAAsB,eAAe,CACnC,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,kBAAkB,EAC3B,OAAO,EAAE,OAAO,GACf,OAAO,CAAC,iBAAiB,CAAC,CA4M5B"}
package/dist/build.js CHANGED
@@ -1,3 +1,5 @@
1
+ import { publicEnvDefines } from "./internal/public-env.js";
2
+ export { publicEnvDefines } from "./internal/public-env.js";
1
3
  /**
2
4
  * `@nifrajs/web/build` - the production build (Bun-only, build-time). `buildClient` codegens + bundles
3
5
  * the client entry (content-hashed, code-split); `buildServer` codegens the static-import server
@@ -7,7 +9,7 @@
7
9
  */
8
10
  import { existsSync, mkdirSync, mkdtempSync, readFileSync, rmSync, writeFileSync } from "node:fs";
9
11
  import { cp, lstat, mkdir, realpath } from "node:fs/promises";
10
- import { dirname, join, basename as pathBasename, posix, relative, resolve as resolvePath, sep, } from "node:path";
12
+ import { dirname, isAbsolute, join, basename as pathBasename, posix, relative, resolve as resolvePath, sep, } from "node:path";
11
13
  import { singleCopyPlugin as declaredSingleCopyPlugin, readSingleCopyDeclaration, } from "@nifrajs/core/single-copy";
12
14
  import { Glob } from "bun";
13
15
  import { aggregateSizeReport, detectNodeBuiltinsInClient, detectServerOnlyInClient, formatNodeBuiltinLeak, formatServerOnlyLeak, parseBuildTarget, parseManifestClientEntry, parseManifestCssLoading, parseManifestRouteStyles, parseManifestStyles, planBuildTarget, } from "./build-plan.js";
@@ -15,6 +17,8 @@ import { sanitizeOutputNames } from "./chunk-names.js";
15
17
  import { normalizeCssCodeSplit, normalizeCssLoading } from "./css-contract.js";
16
18
  import { discoverRoutes } from "./fs.js";
17
19
  import { generateClientEntry, generateServerManifest } from "./index.js";
20
+ import { assertDisposableDir } from "./internal/disposable-dir.js";
21
+ import { entryChunks } from "./internal/entry-chunks.js";
18
22
  import { dedupePolicyFor } from "./internal/identity-policy.js";
19
23
  import { assertDevelopmentProductionParity, assertIdentityParity, collectDevelopmentParityInput, } from "./internal/parity.js";
20
24
  import { privateEnvCheck } from "./internal/private-env.js";
@@ -51,18 +55,6 @@ export { cloudflarePagesRoutes, dataFileFor, htmlFileFor, prerenderRoutes, } fro
51
55
  * define resolves it to `undefined` in the client bundle. An empty `prefix` exposes nothing (the
52
56
  * opt-out). Pure + exported so the prefix/redaction contract is unit-testable without a real build.
53
57
  */
54
- export function publicEnvDefines(prefix, env) {
55
- const defines = {};
56
- if (prefix === "")
57
- return defines; // opt-out: bake in nothing
58
- for (const [name, value] of Object.entries(env)) {
59
- // Skip `undefined` (a deleted/unset key can still enumerate) so we never bake in `"undefined"`.
60
- if (name.startsWith(prefix) && value !== undefined) {
61
- defines[`process.env.${name}`] = JSON.stringify(value);
62
- }
63
- }
64
- return defines;
65
- }
66
58
  /**
67
59
  * Cloudflare Pages rejects a `_routes.json` with more than 100 include+exclude rules combined, or any
68
60
  * single rule longer than 100 characters.
@@ -442,21 +434,27 @@ export async function buildClient(options) {
442
434
  // rewrite the references - otherwise the lazy import 404s and the route silently never hydrates.
443
435
  const renamed = sanitizeOutputNames(outputs);
444
436
  const toUrl = (path) => `${publicPath}${renamed.get(basename(path)) ?? basename(path)}`;
445
- // Entry-point outputs come back in entrypoint order: [bootstrap, ...routeFiles]. Map each route file
446
- // to its chunk URL by that order (guarded against drift), then a route's chunks = its layout chain +
447
- // own file.
437
+ // Each entry's chunk is the output the metafile names that entry's source for. The position among the
438
+ // entry-point outputs ([bootstrap, ...routeFiles]) is only the fallback, for an entry the metafile
439
+ // does not name by path (a `resolve` that returns a bare specifier). A route's chunks = its layout
440
+ // chain + own file.
448
441
  const entryPoints = outputs.filter((o) => o.kind === "entry-point");
449
- const bootstrap = entryPoints[0];
450
- if (bootstrap === undefined)
451
- throw new Error("[nifra/web] build produced no entry-point output");
452
442
  if (entryPoints.length !== routeFiles.length + 1) {
453
443
  throw new Error(`[nifra/web] expected ${routeFiles.length + 1} entry-point outputs (bootstrap + ${routeFiles.length} routes), got ${entryPoints.length}`);
454
444
  }
445
+ const bySource = entryChunks(clientMeta?.outputs ?? {}, cwd);
446
+ const chunkOf = (source, position) => {
447
+ const path = bySource.get(resolvePath(source)) ?? entryPoints[position]?.path;
448
+ return path === undefined ? undefined : toUrl(path);
449
+ };
450
+ const entryUrl = chunkOf(entryFile, 0);
451
+ if (entryUrl === undefined)
452
+ throw new Error("[nifra/web] build produced no entry-point output");
455
453
  const fileToChunk = new Map();
456
454
  routeFiles.forEach((file, i) => {
457
- const out = entryPoints[i + 1]; // in range - length checked above
458
- if (out !== undefined)
459
- fileToChunk.set(file, toUrl(out.path));
455
+ const url = chunkOf(resolve(file), i + 1);
456
+ if (url !== undefined)
457
+ fileToChunk.set(file, url);
460
458
  });
461
459
  const chunksFor = (chainFiles) => chainFiles.map((f) => fileToChunk.get(f)).filter((u) => u !== undefined);
462
460
  const routes = {};
@@ -495,15 +493,34 @@ export async function buildClient(options) {
495
493
  // links only its layout chain + own CSS (deduped); an empty array means the page needs no CSS at all.
496
494
  // Absent (→ aggregate fallback) only if Bun emits no metafile/cssBundle - never silently incomplete.
497
495
  const cssByEntry = new Map();
496
+ const bootstrapEntry = resolvePath(entryFile);
497
+ let bootstrapSources = [];
498
+ const routeSources = new Set();
498
499
  for (const out of Object.values(clientMeta?.outputs ?? {})) {
499
500
  if (out.entryPoint !== undefined && out.cssBundle !== undefined) {
500
- cssByEntry.set(resolvePath(cwd, out.entryPoint), toUrl(out.cssBundle));
501
+ const entry = resolvePath(cwd, out.entryPoint);
502
+ cssByEntry.set(entry, toUrl(out.cssBundle));
503
+ const sources = Object.keys(clientMeta?.outputs?.[out.cssBundle]?.inputs ?? {});
504
+ if (entry === bootstrapEntry)
505
+ bootstrapSources = sources;
506
+ else
507
+ for (const source of sources)
508
+ routeSources.add(source);
501
509
  }
502
510
  }
511
+ // A stylesheet the client module imports is bundled only into the bootstrap's CSS, which also holds
512
+ // every route's (the bootstrap imports each route lazily). When it carries CSS no route entry owns,
513
+ // every page links that bundle first, the whole-app stylesheet before any route-scoped one, as a
514
+ // Vite page links the bootstrap's; otherwise the page renders without it.
515
+ const leadingCss = bootstrapSources.some((source) => !routeSources.has(source))
516
+ ? cssByEntry.get(bootstrapEntry)
517
+ : undefined;
503
518
  const stylesFor = (chainFiles) => {
504
519
  const urls = chainFiles
505
520
  .map((f) => (f ? cssByEntry.get(resolvePath(resolve(f))) : undefined))
506
521
  .filter((u) => u !== undefined);
522
+ if (leadingCss !== undefined)
523
+ urls.unshift(leadingCss);
507
524
  return [...new Set(urls)];
508
525
  };
509
526
  const routeStyles = {};
@@ -511,7 +528,7 @@ export async function buildClient(options) {
511
528
  // route entry (StyleX's atomic CSS is one example). In that shape there is no useful per-route map:
512
529
  // emitting `routeId: []` would suppress the aggregate `styles` fallback in `createWebApp` and render
513
530
  // SSR pages unstyled. Keep routeStyles absent until at least one authored route entry owns CSS.
514
- const routeCssEntries = [...cssByEntry.keys()].filter((entry) => entry !== resolvePath(entryFile));
531
+ const routeCssEntries = [...cssByEntry.keys()].filter((entry) => entry !== bootstrapEntry);
515
532
  if (css.length > 0 && routeCssEntries.length > 0) {
516
533
  // A `_loading` page can show on a navigation from ANY page, and a document links only its own
517
534
  // route's stylesheets - so every page that can start a navigation carries the loading pages' too.
@@ -537,7 +554,7 @@ export async function buildClient(options) {
537
554
  // apps have none) and must not fail the build.
538
555
  const publicFiles = publicDir !== undefined && existsSync(publicDir) ? await copyPublicDir(publicDir, outDir) : [];
539
556
  const manifest = {
540
- entry: toUrl(bootstrap.path),
557
+ entry: entryUrl,
541
558
  assets: outputs.map((o) => toUrl(o.path)),
542
559
  routes,
543
560
  ...(publicFiles.length > 0 ? { publicFiles } : {}),
@@ -750,11 +767,24 @@ function withEmittedImports(graph, emitted, publicPath) {
750
767
  }
751
768
  return { ...graph, chunks };
752
769
  }
753
- /** Refusals the bundler stopped on before it produced a graph, so without import chains. */
770
+ /**
771
+ * Refusals the bundler stopped on before it produced a graph, so without import chains. Files sharing
772
+ * one reason share one line: with no chain to tell them apart, 50 lines would say one thing 50 times.
773
+ */
754
774
  function formatRefusedFiles(refused, root) {
755
- const lines = [...refused].map(([file, reason]) => {
775
+ const byReason = new Map();
776
+ for (const [file, reason] of refused) {
756
777
  const rel = relative(root, file).replaceAll("\\", "/");
757
- return ` - ${rel.startsWith("..") ? file : rel}: ${reason}`;
778
+ const shown = rel.startsWith("..") ? file : rel;
779
+ const files = byReason.get(reason);
780
+ if (files === undefined)
781
+ byReason.set(reason, [shown]);
782
+ else
783
+ files.push(shown);
784
+ }
785
+ const lines = [...byReason].map(([reason, files]) => {
786
+ const more = files.length > 5 ? ` and ${files.length - 5} more` : "";
787
+ return ` - ${files.slice(0, 5).join(", ")}${more}: ${reason}`;
758
788
  });
759
789
  return `[nifra/web] the browser build reached code that may not ship to a browser:\n${lines.join("\n")}`;
760
790
  }
@@ -934,7 +964,7 @@ const PLATFORM_CLIENT_IP_HEADERS = {
934
964
  * string out) so the generation is unit-testable without a real build.
935
965
  */
936
966
  export function generateServerEntry(options) {
937
- const { target, adapterImport, backendImport, useImport, optionImports = {}, title = "nifra", publicFiles = [], clientIp, } = options;
967
+ const { target, adapterImport, backendImport, useImport, optionImports = {}, title = "nifra", publicFiles = [], hashedFiles, clientIp, } = options;
938
968
  if (clientIp !== undefined && clientIp !== "platform") {
939
969
  throw new Error(`[nifra/web] generateServerEntry: clientIp must be "platform" or left out, got ${JSON.stringify(clientIp)}`);
940
970
  }
@@ -993,10 +1023,12 @@ export function generateServerEntry(options) {
993
1023
  return `${lines.join("\n")}\n`;
994
1024
  }
995
1025
  // bun / node / deno self-host AND serve the client bundle from disk (it sits next to this entry).
996
- lines.push("// The client bundle and public files live next to this entry; serve only manifest-approved paths.", 'const STATIC_ROOT = new URL("./", import.meta.url)', `const PUBLIC_FILES = new Set(${JSON.stringify(publicFiles)})`, "const staticPath = (pathname: string): string | undefined => {", " if (PUBLIC_FILES.has(pathname)) return '.' + pathname", ' if (!pathname.startsWith("/assets/")) return undefined', ' const segments = pathname.slice(1).split("/")', " // `.` and `..` match the character class, and the path is joined onto a base URL that resolves", " // dot segments - so they are rejected explicitly rather than relying on the request URL having", " // been normalized upstream.", " const safe = (segment: string): boolean =>", ' segment !== "." && segment !== ".." && /^[A-Za-z0-9._-]+$/.test(segment)', " return segments.every(safe) ? '.' + pathname : undefined", "}",
1026
+ lines.push("// The client bundle and public files live next to this entry; serve only manifest-approved paths.", 'const STATIC_ROOT = new URL("./", import.meta.url)', `const PUBLIC_FILES = new Set(${JSON.stringify(publicFiles)})`, ...(hashedFiles !== undefined
1027
+ ? [`const HASHED_FILES = new Set(${JSON.stringify(hashedFiles)})`]
1028
+ : []), "const staticPath = (pathname: string): string | undefined => {", " if (PUBLIC_FILES.has(pathname)) return '.' + pathname", ' if (!pathname.startsWith("/assets/")) return undefined', ' const segments = pathname.slice(1).split("/")', " // `.` and `..` match the character class, and the path is joined onto a base URL that resolves", " // dot segments - so they are rejected explicitly rather than relying on the request URL having", " // been normalized upstream.", " const safe = (segment: string): boolean =>", ' segment !== "." && segment !== ".." && /^[A-Za-z0-9._-]+$/.test(segment)', " return segments.every(safe) ? '.' + pathname : undefined", "}",
997
1029
  // The type table and cache policy `servePublicDir` uses. Without a known type, Bun answers a file
998
1030
  // as an `application/octet-stream` attachment, which a browser downloads instead of showing.
999
- `const TYPES: Record<string, string> = ${JSON.stringify(CONTENT_TYPES)}`, "const staticHeaders = (pathname: string): Record<string, string> => ({", ' "content-type": TYPES[pathname.slice(pathname.lastIndexOf(".")).toLowerCase()] ?? "application/octet-stream",', ` "cache-control": pathname.startsWith("/assets/") ? ${JSON.stringify(IMMUTABLE)} : ${JSON.stringify(ONE_DAY)},`, ' "x-content-type-options": "nosniff",', "})");
1031
+ `const TYPES: Record<string, string> = ${JSON.stringify(CONTENT_TYPES)}`, "const staticHeaders = (pathname: string): Record<string, string> => ({", ' "content-type": TYPES[pathname.slice(pathname.lastIndexOf(".")).toLowerCase()] ?? "application/octet-stream",', ` "cache-control": ${hashedFiles !== undefined ? "HASHED_FILES.has(pathname)" : 'pathname.startsWith("/assets/")'} ? ${JSON.stringify(IMMUTABLE)} : ${JSON.stringify(ONE_DAY)},`, ' "x-content-type-options": "nosniff",', "})");
1000
1032
  // Bun.serve and Deno.serve delimit the body themselves, so its declared length is the transport
1001
1033
  // frame - the guarantee core's own listen() and the Deno adapter mark (see markTrustedBodyFraming).
1002
1034
  const markFramed = '(req as unknown as Record<symbol, unknown>)[Symbol.for("nifra.body.trustedFraming")] = true';
@@ -1079,6 +1111,21 @@ export const bunBundler = {
1079
1111
  ...(input.publicEnvPrefix !== undefined ? { publicEnvPrefix: input.publicEnvPrefix } : {}),
1080
1112
  }),
1081
1113
  };
1114
+ /** Refuse a public file that shares a path with a file the target writes into the same directory: the
1115
+ * build overwrites it, and the server would then answer that public path with its own bundle. */
1116
+ function assertNoPublicCollision(plan, publicFiles, outDir) {
1117
+ if (plan.kind !== "server" || plan.staticDir !== "")
1118
+ return;
1119
+ const owned = [`/${plan.outputFile}`];
1120
+ if (plan.target === "cloudflare")
1121
+ owned.push("/_routes.json");
1122
+ // Compared case-insensitively: on a case-insensitive filesystem `Server.js` is the same file.
1123
+ const clashes = publicFiles.filter((file) => owned.includes(file.toLowerCase()));
1124
+ if (clashes.length > 0) {
1125
+ throw new Error(`[nifra/web] public file(s) ${clashes.join(", ")} would be overwritten by the ${plan.target} ` +
1126
+ `build's own output in ${outDir}. Rename or move them out of the public directory.`);
1127
+ }
1128
+ }
1082
1129
  /** Build a full deploy dir for `target` using the default Bun bundler. See {@link buildTargetWith}. */
1083
1130
  export async function buildTarget(target, options) {
1084
1131
  return buildTargetWith(target, options, bunBundler);
@@ -1094,6 +1141,16 @@ export async function buildTargetWith(target, options, bundler) {
1094
1141
  const requestedCssCodeSplit = options.cssCodeSplit === undefined ? undefined : normalizeCssCodeSplit(options.cssCodeSplit);
1095
1142
  const requestedCssLoading = options.cssLoading === undefined ? undefined : normalizeCssLoading(options.cssLoading);
1096
1143
  const targetPlan = planBuildTarget(parseBuildTarget(target), outDir);
1144
+ const sources = [
1145
+ routesDir,
1146
+ process.cwd(),
1147
+ resolvePath(typeof options.publicDir === "string"
1148
+ ? options.publicDir
1149
+ : join(dirname(routesDir), "public")),
1150
+ ...[options.adapterImport, options.backendImport, options.useImport].filter((file) => file !== undefined && isAbsolute(file)),
1151
+ ];
1152
+ assertDisposableDir("outDir", outDir, sources);
1153
+ assertDisposableDir("workDir", workDir, sources);
1097
1154
  const { rmSync } = await import("node:fs");
1098
1155
  rmSync(outDir, { recursive: true, force: true });
1099
1156
  rmSync(workDir, { recursive: true, force: true });
@@ -1141,6 +1198,7 @@ export async function buildTargetWith(target, options, bundler) {
1141
1198
  const publicFiles = publicDir !== undefined && existsSync(publicDir)
1142
1199
  ? await copyPublicDir(publicDir, staticRoot)
1143
1200
  : [];
1201
+ assertNoPublicCollision(targetPlan, publicFiles, outDir);
1144
1202
  if (publicFiles.length > 0) {
1145
1203
  client = { ...client, publicFiles };
1146
1204
  }
@@ -1193,6 +1251,7 @@ export async function buildTargetWith(target, options, bundler) {
1193
1251
  ...(options.backendImport !== undefined ? { backendImport: options.backendImport } : {}),
1194
1252
  ...(options.title !== undefined ? { title: options.title } : {}),
1195
1253
  ...(publicFiles.length > 0 ? { publicFiles } : {}),
1254
+ hashedFiles: client.assets,
1196
1255
  ...(options.clientIp !== undefined ? { clientIp: options.clientIp } : {}),
1197
1256
  }));
1198
1257
  const { worker } = await bundler.buildServer({