@nifrajs/web 4.0.0 → 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 (388) 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 +49 -26
  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 +105 -19
  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 +14 -3
  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/plugins/zone-guard.d.ts.map +1 -1
  144. package/dist/plugins/zone-guard.js +10 -2
  145. package/dist/plugins/zone-guard.js.map +1 -1
  146. package/dist/public-dir.d.ts +8 -1
  147. package/dist/public-dir.d.ts.map +1 -1
  148. package/dist/public-dir.js +17 -6
  149. package/dist/public-dir.js.map +1 -1
  150. package/dist/query.d.ts +13 -4
  151. package/dist/query.d.ts.map +1 -1
  152. package/dist/query.js +89 -26
  153. package/dist/query.js.map +1 -1
  154. package/dist/render-seam.d.ts +2 -0
  155. package/dist/render-seam.d.ts.map +1 -1
  156. package/dist/render-seam.js +1 -0
  157. package/dist/render-seam.js.map +1 -1
  158. package/dist/route-types.d.ts.map +1 -1
  159. package/dist/route-types.js +20 -9
  160. package/dist/route-types.js.map +1 -1
  161. package/dist/router.d.ts +9 -2
  162. package/dist/router.d.ts.map +1 -1
  163. package/dist/router.js +39 -46
  164. package/dist/router.js.map +1 -1
  165. package/dist/server-components/build-info.d.ts +3 -0
  166. package/dist/server-components/build-info.d.ts.map +1 -0
  167. package/dist/server-components/build-info.js +7 -0
  168. package/dist/server-components/build-info.js.map +1 -0
  169. package/dist/server-components/build-target.d.ts +12 -0
  170. package/dist/server-components/build-target.d.ts.map +1 -0
  171. package/dist/server-components/build-target.js +153 -0
  172. package/dist/server-components/build-target.js.map +1 -0
  173. package/dist/server-components/build.d.ts +24 -0
  174. package/dist/server-components/build.d.ts.map +1 -0
  175. package/dist/server-components/build.js +366 -0
  176. package/dist/server-components/build.js.map +1 -0
  177. package/dist/server-components/bundle-proof.d.ts +3 -0
  178. package/dist/server-components/bundle-proof.d.ts.map +1 -0
  179. package/dist/server-components/bundle-proof.js +23 -0
  180. package/dist/server-components/bundle-proof.js.map +1 -0
  181. package/dist/server-components/client.d.ts +46 -0
  182. package/dist/server-components/client.d.ts.map +1 -0
  183. package/dist/server-components/client.js +594 -0
  184. package/dist/server-components/client.js.map +1 -0
  185. package/dist/server-components/definition.d.ts +11 -0
  186. package/dist/server-components/definition.d.ts.map +1 -0
  187. package/dist/server-components/definition.js +94 -0
  188. package/dist/server-components/definition.js.map +1 -0
  189. package/dist/server-components/dev-http.d.ts +5 -0
  190. package/dist/server-components/dev-http.d.ts.map +1 -0
  191. package/dist/server-components/dev-http.js +71 -0
  192. package/dist/server-components/dev-http.js.map +1 -0
  193. package/dist/server-components/error.d.ts +9 -0
  194. package/dist/server-components/error.d.ts.map +1 -0
  195. package/dist/server-components/error.js +24 -0
  196. package/dist/server-components/error.js.map +1 -0
  197. package/dist/server-components/frames.d.ts +7 -0
  198. package/dist/server-components/frames.d.ts.map +1 -0
  199. package/dist/server-components/frames.js +169 -0
  200. package/dist/server-components/frames.js.map +1 -0
  201. package/dist/server-components/html-policy.d.ts +6 -0
  202. package/dist/server-components/html-policy.d.ts.map +1 -0
  203. package/dist/server-components/html-policy.js +75 -0
  204. package/dist/server-components/html-policy.js.map +1 -0
  205. package/dist/server-components/html.d.ts +4 -0
  206. package/dist/server-components/html.d.ts.map +1 -0
  207. package/dist/server-components/html.js +67 -0
  208. package/dist/server-components/html.js.map +1 -0
  209. package/dist/server-components/islands.d.ts +44 -0
  210. package/dist/server-components/islands.d.ts.map +1 -0
  211. package/dist/server-components/islands.js +42 -0
  212. package/dist/server-components/islands.js.map +1 -0
  213. package/dist/server-components/native.d.ts +4 -0
  214. package/dist/server-components/native.d.ts.map +1 -0
  215. package/dist/server-components/native.js +81 -0
  216. package/dist/server-components/native.js.map +1 -0
  217. package/dist/server-components/portal.d.ts +6 -0
  218. package/dist/server-components/portal.d.ts.map +1 -0
  219. package/dist/server-components/portal.js +35 -0
  220. package/dist/server-components/portal.js.map +1 -0
  221. package/dist/server-components/props.d.ts +3 -0
  222. package/dist/server-components/props.d.ts.map +1 -0
  223. package/dist/server-components/props.js +14 -0
  224. package/dist/server-components/props.js.map +1 -0
  225. package/dist/server-components/protocol.d.ts +44 -0
  226. package/dist/server-components/protocol.d.ts.map +1 -0
  227. package/dist/server-components/protocol.js +139 -0
  228. package/dist/server-components/protocol.js.map +1 -0
  229. package/dist/server-components/range.d.ts +24 -0
  230. package/dist/server-components/range.d.ts.map +1 -0
  231. package/dist/server-components/range.js +263 -0
  232. package/dist/server-components/range.js.map +1 -0
  233. package/dist/server-components/registry.d.ts +6 -0
  234. package/dist/server-components/registry.d.ts.map +1 -0
  235. package/dist/server-components/registry.js +30 -0
  236. package/dist/server-components/registry.js.map +1 -0
  237. package/dist/server-components/response.d.ts +4 -0
  238. package/dist/server-components/response.d.ts.map +1 -0
  239. package/dist/server-components/response.js +32 -0
  240. package/dist/server-components/response.js.map +1 -0
  241. package/dist/server-components/router-integration.d.ts +9 -0
  242. package/dist/server-components/router-integration.d.ts.map +1 -0
  243. package/dist/server-components/router-integration.js +29 -0
  244. package/dist/server-components/router-integration.js.map +1 -0
  245. package/dist/server-components/runtime.d.ts +14 -0
  246. package/dist/server-components/runtime.d.ts.map +1 -0
  247. package/dist/server-components/runtime.js +276 -0
  248. package/dist/server-components/runtime.js.map +1 -0
  249. package/dist/server-components/scheduler.d.ts +14 -0
  250. package/dist/server-components/scheduler.d.ts.map +1 -0
  251. package/dist/server-components/scheduler.js +74 -0
  252. package/dist/server-components/scheduler.js.map +1 -0
  253. package/dist/server-components/schema.d.ts +4 -0
  254. package/dist/server-components/schema.d.ts.map +1 -0
  255. package/dist/server-components/schema.js +77 -0
  256. package/dist/server-components/schema.js.map +1 -0
  257. package/dist/server-components/server-entry.d.ts +12 -0
  258. package/dist/server-components/server-entry.d.ts.map +1 -0
  259. package/dist/server-components/server-entry.js +90 -0
  260. package/dist/server-components/server-entry.js.map +1 -0
  261. package/dist/server-components/source.d.ts +15 -0
  262. package/dist/server-components/source.d.ts.map +1 -0
  263. package/dist/server-components/source.js +269 -0
  264. package/dist/server-components/source.js.map +1 -0
  265. package/dist/server-components/state.d.ts +4 -0
  266. package/dist/server-components/state.d.ts.map +1 -0
  267. package/dist/server-components/state.js +123 -0
  268. package/dist/server-components/state.js.map +1 -0
  269. package/dist/server-components/stream.d.ts +6 -0
  270. package/dist/server-components/stream.d.ts.map +1 -0
  271. package/dist/server-components/stream.js +70 -0
  272. package/dist/server-components/stream.js.map +1 -0
  273. package/dist/server-components/trusted-html.d.ts +3 -0
  274. package/dist/server-components/trusted-html.d.ts.map +1 -0
  275. package/dist/server-components/trusted-html.js +14 -0
  276. package/dist/server-components/trusted-html.js.map +1 -0
  277. package/dist/server-components/types.d.ts +107 -0
  278. package/dist/server-components/types.d.ts.map +1 -0
  279. package/dist/server-components/types.js +2 -0
  280. package/dist/server-components/types.js.map +1 -0
  281. package/dist/server-components/typescript.d.ts +11 -0
  282. package/dist/server-components/typescript.d.ts.map +1 -0
  283. package/dist/server-components/typescript.js +28 -0
  284. package/dist/server-components/typescript.js.map +1 -0
  285. package/dist/server-components/value.d.ts +5 -0
  286. package/dist/server-components/value.d.ts.map +1 -0
  287. package/dist/server-components/value.js +77 -0
  288. package/dist/server-components/value.js.map +1 -0
  289. package/dist/server-components/vite.d.ts +12 -0
  290. package/dist/server-components/vite.d.ts.map +1 -0
  291. package/dist/server-components/vite.js +197 -0
  292. package/dist/server-components/vite.js.map +1 -0
  293. package/dist/server-components.d.ts +5 -0
  294. package/dist/server-components.d.ts.map +1 -0
  295. package/dist/server-components.js +4 -0
  296. package/dist/server-components.js.map +1 -0
  297. package/dist/service-worker.d.ts +8 -1
  298. package/dist/service-worker.d.ts.map +1 -1
  299. package/dist/service-worker.js +20 -6
  300. package/dist/service-worker.js.map +1 -1
  301. package/dist/vite.d.ts +12 -0
  302. package/dist/vite.d.ts.map +1 -1
  303. package/dist/vite.js +77 -17
  304. package/dist/vite.js.map +1 -1
  305. package/dist/zones.d.ts +40 -0
  306. package/dist/zones.d.ts.map +1 -1
  307. package/dist/zones.js +170 -6
  308. package/dist/zones.js.map +1 -1
  309. package/package.json +97 -4
  310. package/src/build-vite.ts +31 -9
  311. package/src/build.ts +109 -31
  312. package/src/cdn.ts +18 -12
  313. package/src/client.ts +48 -23
  314. package/src/deferred.ts +27 -9
  315. package/src/dev-feed.ts +24 -5
  316. package/src/dev-session.ts +4 -13
  317. package/src/dev.ts +29 -1
  318. package/src/draft.ts +35 -14
  319. package/src/fonts-google.ts +10 -0
  320. package/src/index.ts +3 -2
  321. package/src/internal/codegen.ts +60 -29
  322. package/src/internal/disposable-dir.ts +24 -0
  323. package/src/internal/entry-chunks.ts +18 -0
  324. package/src/internal/evidence-traversal.ts +57 -0
  325. package/src/internal/head-merge.ts +16 -0
  326. package/src/internal/js-string.ts +6 -1
  327. package/src/internal/mount-shadow.ts +1 -1
  328. package/src/internal/output-guard.ts +88 -7
  329. package/src/internal/page-execution.ts +506 -108
  330. package/src/internal/progressive-cookies.ts +60 -0
  331. package/src/internal/public-env.ts +14 -0
  332. package/src/internal/render-document.ts +26 -11
  333. package/src/internal/response-controls.ts +31 -14
  334. package/src/internal/revive-dates.ts +35 -0
  335. package/src/internal/route-path.ts +8 -0
  336. package/src/internal/secret-scan.ts +104 -17
  337. package/src/internal/server-boundary.ts +29 -5
  338. package/src/internal/web-app.ts +116 -37
  339. package/src/internal/wire-date.ts +16 -0
  340. package/src/internal/zone-graph.ts +59 -19
  341. package/src/isr.ts +351 -43
  342. package/src/llms-txt.ts +32 -3
  343. package/src/manifest.ts +43 -7
  344. package/src/open-resolved.ts +64 -0
  345. package/src/plugins/kit.ts +31 -11
  346. package/src/plugins/vite-leak-guard.ts +5 -1
  347. package/src/plugins/zone-guard.ts +11 -2
  348. package/src/public-dir.ts +27 -8
  349. package/src/query.ts +107 -26
  350. package/src/render-seam.ts +2 -0
  351. package/src/route-types.ts +34 -7
  352. package/src/router.ts +58 -55
  353. package/src/server-components/build-info.ts +11 -0
  354. package/src/server-components/build-target.ts +194 -0
  355. package/src/server-components/build.ts +419 -0
  356. package/src/server-components/bundle-proof.ts +33 -0
  357. package/src/server-components/client.ts +663 -0
  358. package/src/server-components/definition.ts +125 -0
  359. package/src/server-components/dev-http.ts +75 -0
  360. package/src/server-components/error.ts +24 -0
  361. package/src/server-components/frames.ts +181 -0
  362. package/src/server-components/html-policy.ts +94 -0
  363. package/src/server-components/html.ts +81 -0
  364. package/src/server-components/islands.ts +111 -0
  365. package/src/server-components/native.ts +101 -0
  366. package/src/server-components/portal.ts +42 -0
  367. package/src/server-components/props.ts +19 -0
  368. package/src/server-components/protocol.ts +167 -0
  369. package/src/server-components/range.ts +313 -0
  370. package/src/server-components/registry.ts +34 -0
  371. package/src/server-components/response.ts +44 -0
  372. package/src/server-components/router-integration.ts +40 -0
  373. package/src/server-components/runtime.ts +376 -0
  374. package/src/server-components/scheduler.ts +84 -0
  375. package/src/server-components/schema.ts +69 -0
  376. package/src/server-components/server-entry.ts +98 -0
  377. package/src/server-components/source.ts +324 -0
  378. package/src/server-components/state.ts +143 -0
  379. package/src/server-components/stream.ts +71 -0
  380. package/src/server-components/trusted-html.ts +21 -0
  381. package/src/server-components/types.ts +138 -0
  382. package/src/server-components/typescript.ts +39 -0
  383. package/src/server-components/value.ts +82 -0
  384. package/src/server-components/vite.ts +242 -0
  385. package/src/server-components.ts +32 -0
  386. package/src/service-worker.ts +24 -7
  387. package/src/vite.ts +68 -17
  388. package/src/zones.ts +208 -7
@@ -1 +1 @@
1
- {"version":3,"file":"service-worker.js","sourceRoot":"","sources":["../src/service-worker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"service-worker.js","sourceRoot":"","sources":["../src/service-worker.ts"],"names":[],"mappings":"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"}
package/dist/vite.d.ts CHANGED
@@ -1,3 +1,15 @@
1
+ /**
2
+ * `@nifrajs/web/vite` - a **dev-only** server with true HMR, backed by Vite in middleware mode. nifra's
3
+ * production pipeline stays Bun-native (`@nifrajs/web/build` → `Bun.build`); this is purely for the dev
4
+ * loop. Bun's own HMR is dev-server-only and DCE's `import.meta.hot` under `Bun.build` (nifra's bundler),
5
+ * so HMR comes from Vite + the framework's official Vite plugin (React Fast Refresh, Vue/Svelte/Solid
6
+ * HMR) - which you inject via `plugins` (the same structural-injection idiom as the Bun/codec plugins).
7
+ *
8
+ * Flow: Vite serves + HMR-swaps the client modules (nifra's codegen'd entry + the route files); nifra
9
+ * still **SSRs** each request, and the rendered HTML is run through `vite.transformIndexHtml` so Vite
10
+ * injects its HMR client + the framework's refresh preamble. Node `http` (not `Bun.serve`) because
11
+ * Vite's `middlewares` are Connect-style - it runs fine under Bun.
12
+ */
1
13
  import { type DevAppHooks } from "./dev-session.js";
2
14
  /** Minimal app surface - `createWebApp(...)` satisfies it. */
3
15
  interface FetchApp {
@@ -1 +1 @@
1
- {"version":3,"file":"vite.d.ts","sourceRoot":"","sources":["../src/vite.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"vite.d.ts","sourceRoot":"","sources":["../src/vite.ts"],"names":[],"mappings":"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"}
package/dist/vite.js CHANGED
@@ -10,9 +10,10 @@
10
10
  * injects its HMR client + the framework's refresh preamble. Node `http` (not `Bun.serve`) because
11
11
  * Vite's `middlewares` are Connect-style - it runs fine under Bun.
12
12
  */
13
- import { writeFileSync } from "node:fs";
13
+ import { readdirSync, writeFileSync } from "node:fs";
14
14
  import { createServer as createHttpServer, } from "node:http";
15
15
  import { dirname, isAbsolute, join, relative, resolve as resolvePath, sep } from "node:path";
16
+ import { singleCopyPackageNames } from "@nifrajs/core/single-copy";
16
17
  import { CLIENT_BATCH_MAX_BYTES } from "./dev-client.js";
17
18
  import { DEV_REQUEST_ID_HEADER, DEV_SERVER_FILES } from "./dev-feed.js";
18
19
  import { listenOrExplain } from "./dev-port.js";
@@ -32,6 +33,7 @@ export { LAST_ERROR_PATH } from "./diagnostic.js";
32
33
  // The codegen'd client entry is written here (at the Vite root) so Vite serves + HMRs it.
33
34
  const DEV_ENTRY = ".nifra-vite-entry.tsx";
34
35
  const VITE_CLOSE_BOUND_MS = 2000;
36
+ const POLL_INTERVAL_MS = 80;
35
37
  /** Candidate spellings for Vite's module-graph map. Vite has used native and slash-normalized
36
38
  * absolute Windows paths across versions, while watcher events can additionally arrive as a file URL. */
37
39
  const modulePathCandidates = (path) => {
@@ -43,6 +45,24 @@ const pathInside = (root, path) => {
43
45
  const rel = relative(resolvePath(root), resolvePath(normalizeFilePath(path)));
44
46
  return rel === "" || (rel !== ".." && !rel.startsWith(`..${sep}`) && !isAbsolute(rel));
45
47
  };
48
+ /** Every file below `dir` as an absolute path. A directory removed mid-walk contributes nothing. */
49
+ const filesUnder = (dir, into = new Set()) => {
50
+ let entries;
51
+ try {
52
+ entries = readdirSync(dir, { withFileTypes: true });
53
+ }
54
+ catch {
55
+ return into;
56
+ }
57
+ for (const entry of entries) {
58
+ const path = join(dir, entry.name);
59
+ if (entry.isDirectory())
60
+ filesUnder(path, into);
61
+ else
62
+ into.add(path);
63
+ }
64
+ return into;
65
+ };
46
66
  const readNodeBody = async (req) => {
47
67
  if (req.method === "GET" || req.method === "HEAD")
48
68
  return undefined;
@@ -246,6 +266,9 @@ export async function createViteDevServer(options) {
246
266
  const manifest = discoverRoutes(routesDir);
247
267
  writeFileSync(resolvePath(root, DEV_ENTRY), generateClientEntry(manifest, { clientModule: options.clientModule, resolve: toUrl }));
248
268
  };
269
+ const usePolling = options.poll ?? process.env.CHOKIDAR_USEPOLLING === "1";
270
+ // Listed before the entry is generated, so a file added in between is reconciled again, not lost.
271
+ const routeFiles = usePolling ? filesUnder(routesDir) : new Set();
249
272
  writeClientEntry();
250
273
  const entryUrl = `/${DEV_ENTRY}`;
251
274
  // Create our HTTP server FIRST, then hand it to Vite as the HMR WebSocket host (`hmr.server`). In
@@ -408,7 +431,6 @@ export async function createViteDevServer(options) {
408
431
  // path-shaped `clientModule` (tests) names no package; there is then nothing to externalize.
409
432
  const adapterPackage = packageNameOf(options.clientModule);
410
433
  const ssrExternal = [...(adapterPackage !== undefined ? [adapterPackage] : []), "@nifrajs/web"];
411
- const usePolling = options.poll ?? process.env.CHOKIDAR_USEPOLLING === "1";
412
434
  // The feed writes its record and log under `.nifra/`: watching them would turn every log flush into
413
435
  // a "file change" that re-creates the app and marks every entry stale.
414
436
  const watch = {
@@ -417,7 +439,7 @@ export async function createViteDevServer(options) {
417
439
  // Poll when native fs events aren't delivered (containers/sandboxes).
418
440
  if (usePolling) {
419
441
  watch.usePolling = true;
420
- watch.interval = 80;
442
+ watch.interval = POLL_INTERVAL_MS;
421
443
  }
422
444
  // Never `import("vite")` directly here: the guard in `importVite` has to run first, and the dev
423
445
  // server importing vite unguarded is precisely what poisoned the module for the whole process.
@@ -440,6 +462,10 @@ export async function createViteDevServer(options) {
440
462
  // Ahead of the user's plugins: the zone guard refuses backend code before anything serves or
441
463
  // transforms it, and a `*.fn` module must be replaced before anything else reads it.
442
464
  plugins: [zoneGuard, viteServerFnStub(), ...plugins],
465
+ // Vite pre-bundles what it finds by crawling `index.html`, and this app has none: every dependency
466
+ // would be found mid-session instead, each one re-optimizing and reloading the page. The client
467
+ // entry imports every route's frontend module, so crawling it covers the whole route graph.
468
+ optimizeDeps: { entries: [DEV_ENTRY] },
443
469
  resolve: {
444
470
  conditions: resolveConditions,
445
471
  // Dedupe each framework runtime to ONE copy. In a multi-root workspace a shared package can pull
@@ -448,7 +474,8 @@ export async function createViteDevServer(options) {
448
474
  // on any hook-using route (the error points at the component, not the resolution - brutal to
449
475
  // diagnose). Same policy table the production builds read, so dev matches prod. No-op per
450
476
  // framework the app does not use (the package simply isn't present to dedupe).
451
- dedupe: [...viteDedupePackages()],
477
+ // The app's single-copy declaration pins its packages the same way.
478
+ dedupe: [...viteDedupePackages(), ...singleCopyPackageNames(root)],
452
479
  },
453
480
  ssr: {
454
481
  // Explicit listing forces external even for workspace-LINKED packages (Vite's default keeps
@@ -554,21 +581,52 @@ export async function createViteDevServer(options) {
554
581
  session.markChange();
555
582
  refreshApp(normalizeFilePath(path));
556
583
  });
584
+ const onAddUnlink = (event, path) => {
585
+ const filePath = normalizeFilePath(path);
586
+ const inRoutes = pathInside(routesDir, filePath);
587
+ if (inRoutes && usePolling) {
588
+ const file = resolvePath(filePath);
589
+ // Whichever of the watcher and the rescan below reports a route file first handles it.
590
+ if (routeFiles.has(file) === (event === "add"))
591
+ return;
592
+ if (event === "add")
593
+ routeFiles.add(file);
594
+ else
595
+ routeFiles.delete(file);
596
+ }
597
+ session.markChange();
598
+ if (inRoutes) {
599
+ writeClientEntry();
600
+ // A newly added route is not in Vite's module graph yet, so invalidating only the
601
+ // route path cannot evict the cached generated entry that imports the route. Evict the
602
+ // generated entry after rewriting it before recreating the SSR app; this also prevents
603
+ // an unlink refresh from briefly loading an entry that still references the deleted file.
604
+ invalidateImporterClosure(resolvePath(root, DEV_ENTRY));
605
+ }
606
+ refreshApp(filePath);
607
+ };
557
608
  for (const event of ["add", "unlink"]) {
558
- vite.watcher.on(event, (path) => {
559
- session.markChange();
560
- const filePath = normalizeFilePath(path);
561
- if (pathInside(routesDir, filePath)) {
562
- writeClientEntry();
563
- // A newly added route is not in Vite's module graph yet, so invalidating only the
564
- // route path cannot evict the cached generated entry that imports the route. Evict the
565
- // generated entry after rewriting it before recreating the SSR app; this also prevents
566
- // an unlink refresh from briefly loading an entry that still references the deleted file.
567
- invalidateImporterClosure(resolvePath(root, DEV_ENTRY));
568
- }
569
- refreshApp(filePath);
570
- });
609
+ vite.watcher.on(event, (path) => onAddUnlink(event, path));
571
610
  }
611
+ // Chokidar reports ready before the poller has taken its baseline stat of a directory (Bun's
612
+ // fs.watchFile takes it asynchronously), and a route added or removed in that gap is folded into the
613
+ // baseline and never reported. The manifest comes from a directory scan, so a scan diffed against the
614
+ // route files already handled recovers those events.
615
+ const reconcileRouteFiles = () => {
616
+ const onDisk = filesUnder(routesDir);
617
+ try {
618
+ for (const file of onDisk)
619
+ if (!routeFiles.has(file))
620
+ onAddUnlink("add", file);
621
+ for (const file of [...routeFiles])
622
+ if (!onDisk.has(file))
623
+ onAddUnlink("unlink", file);
624
+ }
625
+ catch (err) {
626
+ console.error("[nifra/web/vite] route rescan failed:", err);
627
+ session.buildFailed(err, "route rescan failed");
628
+ }
629
+ };
572
630
  await watcherReady;
573
631
  try {
574
632
  await listenOrExplain(server, port, "127.0.0.1");
@@ -588,9 +646,11 @@ export async function createViteDevServer(options) {
588
646
  const address = server.address();
589
647
  const boundPort = typeof address === "object" && address !== null ? address.port : port;
590
648
  session.listening(boundPort);
649
+ const routeRescan = usePolling ? setInterval(reconcileRouteFiles, POLL_INTERVAL_MS) : undefined;
591
650
  return {
592
651
  port: boundPort,
593
652
  stop: async () => {
653
+ clearInterval(routeRescan);
594
654
  session.stop();
595
655
  // Cleared with the server that owns it: the slot is process-global, so a stopped server leaving
596
656
  // its loader behind would hand the next one's adapter a graph that is closed (tests start and
package/dist/vite.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"vite.js","sourceRoot":"","sources":["../src/vite.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"vite.js","sourceRoot":"","sources":["../src/vite.ts"],"names":[],"mappings":"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"}
package/dist/zones.d.ts CHANGED
@@ -5,6 +5,8 @@ export type Zone =
5
5
  | "route-backend" | "frontend" | "backend" | "shared"
6
6
  /** A server-function module (`*.fn.ts`); the browser only ever receives its generated RPC stub. */
7
7
  | "fn"
8
+ /** A compiler-owned server UI module; only opaque reference stubs may reach a browser. */
9
+ | "component"
8
10
  /** Framework output (the client entry, the server composition, generated types). */
9
11
  | "generated"
10
12
  /** A third-party package, or a workspace package declaring `"nifra": { "environment": "library" }`. */
@@ -20,6 +22,8 @@ export type Classification = {
20
22
  } | {
21
23
  readonly zone: "error";
22
24
  readonly reason: string;
25
+ /** The undeclared package this error is about: every file in it shares the one fix. */
26
+ readonly package?: string;
23
27
  };
24
28
  export type PackageEnvironment = "frontend" | "backend" | "shared" | "library";
25
29
  /** Zones whose code may ship to a browser. `fn` is listed because its stub is what ships. */
@@ -34,6 +38,7 @@ export declare const SERVER_PACKAGES: readonly string[];
34
38
  export declare const BACKEND_ONLY_MARKER = "@nifrajs/web/backend-only";
35
39
  /** A route's backend half: `x.backend.ts`. Script extensions only; JSX belongs to the frontend half. */
36
40
  export declare const ROUTE_BACKEND_FILE: RegExp;
41
+ export declare const SERVER_COMPONENT_FILE: RegExp;
37
42
  export interface ZoneClassifierOptions {
38
43
  /** The app root: the directory holding `routes/`, `frontend/`, `backend/` and `shared/`. */
39
44
  readonly appRoot: string;
@@ -41,7 +46,40 @@ export interface ZoneClassifierOptions {
41
46
  readonly routesDir?: string;
42
47
  /** Extra absolute files treated as `generated` - a build's own entry modules. */
43
48
  readonly generatedFiles?: readonly string[];
49
+ /** The app's zone settings. Default: `"nifra": { "zones": ... }` in the app's package.json. */
50
+ readonly zones?: ZoneConfig;
44
51
  }
52
+ /**
53
+ * App-side zone settings, read from `"nifra": { "zones": ... }` in the app's package.json so every
54
+ * build, dev server, `nifra check` and the editor plugin see the same ones without running app code.
55
+ */
56
+ export interface ZoneConfig {
57
+ /**
58
+ * The side of a package that does not declare one in its own package.json, by name: exact
59
+ * (`"@shop/db"`) or a trailing-`*` prefix (`"@shop/*"`). The exact name wins over a prefix, the
60
+ * longest prefix over a shorter one, and a package's own declaration over all of them.
61
+ */
62
+ readonly packages?: Readonly<Record<string, PackageEnvironment>>;
63
+ /** App-relative folders holding backend code, beside `backend/` (`"migrations"`). */
64
+ readonly backend?: readonly string[];
65
+ /** App-relative folders holding frontend code, beside `frontend/`. */
66
+ readonly frontend?: readonly string[];
67
+ /** App-relative folders holding code both sides import, beside `shared/`. */
68
+ readonly shared?: readonly string[];
69
+ }
70
+ /** A `"nifra": { "zones": ... }` setting that cannot be applied. Thrown when a classifier is created. */
71
+ export declare class ZoneConfigError extends Error {
72
+ readonly name = "ZoneConfigError";
73
+ /** The file holding the setting, as the caller named it. */
74
+ readonly source: string;
75
+ constructor(source: string, problem: string);
76
+ }
77
+ /**
78
+ * Validate a `zones` setting. `source` names where it came from in the error. Folders are plain
79
+ * app-relative paths (a trailing `/**` is accepted and dropped); any other glob is refused, so a
80
+ * pattern can never match less than its author meant without saying so.
81
+ */
82
+ export declare function parseZoneConfig(value: unknown, source: string): ZoneConfig;
45
83
  export interface ZoneClassifier {
46
84
  readonly appRoot: string;
47
85
  /** Classify a file by its absolute (or appRoot-relative) path. Results are cached per path. */
@@ -60,6 +98,8 @@ export declare function specifierPackage(specifier: string): string | undefined;
60
98
  * entry is recognized by the import as written (`specifier`) or by the file's path in the package.
61
99
  */
62
100
  export declare function browserDenial(classification: Classification, specifier?: string): string | undefined;
101
+ /** Whether a bare specifier names one of {@link SERVER_PACKAGES} or a database driver entry. */
102
+ export declare function isServerPackageSpecifier(specifier: string): boolean;
63
103
  /** Whether a module in `from` may import (with a value import) a module in `to`. */
64
104
  export declare function importAllowed(from: Zone, to: Zone): boolean;
65
105
  /** The message for an import {@link importAllowed} refuses. */
@@ -1 +1 @@
1
- {"version":3,"file":"zones.d.ts","sourceRoot":"","sources":["../src/zones.ts"],"names":[],"mappings":"AAeA,MAAM,MAAM,IAAI;AACd,6EAA6E;AAC3E,gBAAgB;AAClB,qCAAqC;GACnC,eAAe,GACf,UAAU,GACV,SAAS,GACT,QAAQ;AACV,mGAAmG;GACjG,IAAI;AACN,oFAAoF;GAClF,WAAW;AACb,uGAAuG;GACrG,SAAS,CAAA;AAEb,MAAM,MAAM,cAAc,GACtB;IACE,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAA;IACnB,+CAA+C;IAC/C,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAA;IAC7B,+DAA+D;IAC/D,QAAQ,CAAC,QAAQ,CAAC,EAAE,kBAAkB,CAAA;IACtC,6FAA6F;IAC7F,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAC7B,GACD;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAA;AAEvD,MAAM,MAAM,kBAAkB,GAAG,UAAU,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,CAAA;AAQ9E,6FAA6F;AAC7F,eAAO,MAAM,aAAa,EAAE,WAAW,CAAC,IAAI,CAO1C,CAAA;AAKF;;;;GAIG;AACH,eAAO,MAAM,eAAe,EAAE,SAAS,MAAM,EAiC5C,CAAA;AAMD,wEAAwE;AACxE,eAAO,MAAM,mBAAmB,8BAA8B,CAAA;AAG9D,wGAAwG;AACxG,eAAO,MAAM,kBAAkB,QAA+B,CAAA;AAW9D,MAAM,WAAW,qBAAqB;IACpC,4FAA4F;IAC5F,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,yDAAyD;IACzD,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;IAC3B,iFAAiF;IACjF,QAAQ,CAAC,cAAc,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;CAC5C;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,+FAA+F;IAC/F,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,CAAA;CACvC;AAwDD;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,qBAAqB,GAAG,cAAc,CA0InF;AAmBD;oDACoD;AACpD,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAKtE;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAC3B,cAAc,EAAE,cAAc,EAC9B,SAAS,CAAC,EAAE,MAAM,GACjB,MAAM,GAAG,SAAS,CAmBpB;AAED,oFAAoF;AACpF,wBAAgB,aAAa,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,GAAG,OAAO,CAO3D;AAED,+DAA+D;AAC/D,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,GAAG,MAAM,CAgBhG;AAED,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAA;AACjE,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAA;AAC7E,OAAO,EACL,eAAe,EACf,KAAK,eAAe,EACpB,KAAK,aAAa,EAClB,KAAK,UAAU,EACf,KAAK,cAAc,EACnB,KAAK,eAAe,EACpB,cAAc,GACf,MAAM,2BAA2B,CAAA"}
1
+ {"version":3,"file":"zones.d.ts","sourceRoot":"","sources":["../src/zones.ts"],"names":[],"mappings":"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"}
package/dist/zones.js CHANGED
@@ -77,12 +77,142 @@ const SOURCE = "(?:[cm]?[jt]sx?|svelte|vue|mdx)";
77
77
  export const ROUTE_BACKEND_FILE = /\.backend\.(?:[cm]?[jt]s)$/;
78
78
  const ZONE_SUFFIX = new RegExp(`\\.(frontend|backend|shared|fn)\\.${SOURCE}$`);
79
79
  const LEGACY_SERVER_SUFFIX = new RegExp(`\\.server\\.${SOURCE}$`);
80
+ export const SERVER_COMPONENT_FILE = /\.component\.server\.[cm]?[jt]sx?$/;
80
81
  const ZONE_FOLDERS = {
81
82
  frontend: "frontend",
82
83
  backend: "backend",
83
84
  shared: "shared",
84
85
  public: "frontend",
85
86
  };
87
+ /** A `"nifra": { "zones": ... }` setting that cannot be applied. Thrown when a classifier is created. */
88
+ export class ZoneConfigError extends Error {
89
+ name = "ZoneConfigError";
90
+ /** The file holding the setting, as the caller named it. */
91
+ source;
92
+ constructor(source, problem) {
93
+ super(`[nifra] ${source} "nifra.zones": ${problem}`);
94
+ this.source = source;
95
+ }
96
+ }
97
+ const FOLDER_SIDES = ["backend", "frontend", "shared"];
98
+ const FOLDER_SIDE_NAMES = new Set(FOLDER_SIDES);
99
+ const isPackageEnvironment = (value) => typeof value === "string" && PACKAGE_ENVIRONMENTS.has(value);
100
+ const RESERVED_FOLDERS = new Set([
101
+ "routes",
102
+ "frontend",
103
+ "backend",
104
+ "shared",
105
+ "public",
106
+ "node_modules",
107
+ ]);
108
+ const recordOf = (value) => typeof value === "object" && value !== null && !Array.isArray(value)
109
+ ? Object.fromEntries(Object.entries(value))
110
+ : undefined;
111
+ /**
112
+ * Validate a `zones` setting. `source` names where it came from in the error. Folders are plain
113
+ * app-relative paths (a trailing `/**` is accepted and dropped); any other glob is refused, so a
114
+ * pattern can never match less than its author meant without saying so.
115
+ */
116
+ export function parseZoneConfig(value, source) {
117
+ const fail = (message) => {
118
+ throw new ZoneConfigError(source, message);
119
+ };
120
+ const record = recordOf(value) ?? fail("must be an object");
121
+ const config = {};
122
+ for (const key of Object.keys(record)) {
123
+ if (key !== "packages" && !FOLDER_SIDE_NAMES.has(key))
124
+ fail(`unknown key "${key}" (expected packages, backend, frontend or shared)`);
125
+ }
126
+ if (record.packages !== undefined) {
127
+ const packages = recordOf(record.packages) ?? fail('"packages" must be an object');
128
+ const parsed = {};
129
+ for (const [pattern, side] of Object.entries(packages)) {
130
+ if (pattern === "" || pattern.indexOf("*") !== pattern.lastIndexOf("*"))
131
+ fail(`package pattern "${pattern}" must be a name, or a name prefix ending in one "*"`);
132
+ if (pattern.includes("*") && !pattern.endsWith("*"))
133
+ fail(`package pattern "${pattern}" may use "*" only at its end`);
134
+ parsed[pattern] = isPackageEnvironment(side)
135
+ ? side
136
+ : fail(`packages["${pattern}"] must be one of frontend, backend, shared, library`);
137
+ }
138
+ config.packages = parsed;
139
+ }
140
+ const owner = new Map();
141
+ for (const side of FOLDER_SIDES) {
142
+ const raw = record[side];
143
+ if (raw === undefined)
144
+ continue;
145
+ const entries = Array.isArray(raw)
146
+ ? raw
147
+ : fail(`"${side}" must be an array of app-relative folders`);
148
+ const folders = [];
149
+ for (const entry of entries) {
150
+ const folder = (typeof entry === "string" ? entry : fail(`"${side}" must hold strings`))
151
+ .replaceAll("\\", "/")
152
+ .replace(/^\.\//, "")
153
+ .replace(/\/\*\*$/, "")
154
+ .replace(/\/+$/, "");
155
+ const top = folder.split("/")[0] ?? "";
156
+ if (folder === "" || folder.startsWith("/") || /^[a-z]:/i.test(folder))
157
+ fail(`"${side}" entry "${entry}" must be a folder relative to the app`);
158
+ if (folder.split("/").includes(".."))
159
+ fail(`"${side}" entry "${entry}" may not contain ".."`);
160
+ if (/[*?[\]{}!]/.test(folder))
161
+ fail(`"${side}" entry "${entry}" must be a plain folder path (a trailing "/**" is allowed)`);
162
+ if (RESERVED_FOLDERS.has(top) || top.startsWith(".nifra"))
163
+ fail(`"${side}" entry "${entry}" is inside ${top}/, which already has its own rules`);
164
+ for (const [other, otherSide] of owner) {
165
+ const nested = other === folder || other.startsWith(`${folder}/`) || folder.startsWith(`${other}/`);
166
+ if (nested && otherSide !== side)
167
+ fail(`"${folder}" (${side}) overlaps "${other}" (${otherSide}); a folder has one side`);
168
+ }
169
+ owner.set(folder, side);
170
+ folders.push(folder);
171
+ }
172
+ config[side] = folders;
173
+ }
174
+ return config;
175
+ }
176
+ /** The `nifra.zones` of the nearest package.json at or above `appRoot`, validated. */
177
+ function appZoneConfig(appRoot) {
178
+ let dir = appRoot;
179
+ for (;;) {
180
+ const manifest = join(dir, "package.json");
181
+ if (existsSync(manifest)) {
182
+ let parsed;
183
+ try {
184
+ parsed = JSON.parse(readFileSync(manifest, "utf8"));
185
+ }
186
+ catch {
187
+ return {};
188
+ }
189
+ const zones = recordOf(recordOf(parsed)?.nifra)?.zones;
190
+ return zones === undefined ? {} : parseZoneConfig(zones, toPosix(manifest));
191
+ }
192
+ const parent = dirname(dir);
193
+ if (parent === dir)
194
+ return {};
195
+ dir = parent;
196
+ }
197
+ }
198
+ /** The side `packages` gives `name`: the exact entry, else the longest matching prefix. */
199
+ function mappedSide(packages, name) {
200
+ if (packages === undefined || name === undefined)
201
+ return undefined;
202
+ const exact = packages[name];
203
+ if (exact !== undefined && Object.hasOwn(packages, name))
204
+ return exact;
205
+ let best;
206
+ for (const pattern of Object.keys(packages)) {
207
+ if (!pattern.endsWith("*") || !name.startsWith(pattern.slice(0, -1)))
208
+ continue;
209
+ if (best === undefined || pattern.length > best.length)
210
+ best = pattern;
211
+ }
212
+ return best === undefined ? undefined : packages[best];
213
+ }
214
+ /** How the `packages` setting would name `name`: its scope wildcard when it has a scope. */
215
+ const suggestedPattern = (name) => name.startsWith("@") && name.includes("/") ? `${name.slice(0, name.indexOf("/"))}/*` : name;
86
216
  const toPosix = (path) => path.replaceAll("\\", "/");
87
217
  // `generateServerManifest`'s first line. The manifest composes both halves of every route, so it
88
218
  // imports frontend code from wherever the build wrote it - next to the server entry, often backend/.
@@ -139,6 +269,19 @@ export function createZoneClassifier(options) {
139
269
  const appRoot = realFile(resolve(options.appRoot));
140
270
  const routesDir = realFile(resolve(options.routesDir ?? join(options.appRoot, "routes")));
141
271
  const generated = new Set((options.generatedFiles ?? []).map((file) => realFile(resolve(file))));
272
+ const zones = options.zones === undefined
273
+ ? appZoneConfig(appRoot)
274
+ : parseZoneConfig(options.zones, "ZoneClassifierOptions");
275
+ const configuredFolders = [];
276
+ for (const side of FOLDER_SIDES)
277
+ for (const folder of zones[side] ?? [])
278
+ configuredFolders.push([folder, side]);
279
+ const folderSide = (rel) => {
280
+ for (const [folder, side] of configuredFolders)
281
+ if (rel === folder || rel.startsWith(`${folder}/`))
282
+ return side;
283
+ return undefined;
284
+ };
142
285
  const cache = new Map();
143
286
  const packages = new Map();
144
287
  /** The nearest `package.json` at or above `dir`, cached by directory. */
@@ -188,7 +331,7 @@ export function createZoneClassifier(options) {
188
331
  const info = packageFor(toPosix(dirname(file)));
189
332
  const declared = info?.environment !== undefined && PACKAGE_ENVIRONMENTS.has(info.environment)
190
333
  ? info.environment
191
- : undefined;
334
+ : mappedSide(zones.packages, thirdParty);
192
335
  return {
193
336
  zone: "library",
194
337
  packageName: thirdParty,
@@ -201,6 +344,10 @@ export function createZoneClassifier(options) {
201
344
  if (SERVER_MANIFEST_FILE.test(base) && isGeneratedServerManifest(file)) {
202
345
  return { zone: "generated" };
203
346
  }
347
+ if (SERVER_COMPONENT_FILE.test(base))
348
+ return { zone: "component" };
349
+ if (/\.island\.[cm]?[jt]sx?$/.test(base))
350
+ return { zone: "frontend" };
204
351
  if (LEGACY_SERVER_SUFFIX.test(base)) {
205
352
  return {
206
353
  zone: "error",
@@ -231,7 +378,7 @@ export function createZoneClassifier(options) {
231
378
  return { zone: "shared" };
232
379
  return { zone: "route-frontend" };
233
380
  }
234
- const folder = ZONE_FOLDERS[top];
381
+ const folder = ZONE_FOLDERS[top] ?? folderSide(rel);
235
382
  if (folder !== undefined) {
236
383
  if (suffix === undefined || suffix === folder)
237
384
  return { zone: folder };
@@ -248,8 +395,10 @@ export function createZoneClassifier(options) {
248
395
  }
249
396
  // First-party code outside the app: a workspace package, or a relative import out of the app.
250
397
  const info = packageFor(toPosix(dirname(file)));
251
- const environment = info?.environment;
252
- if (environment !== undefined && PACKAGE_ENVIRONMENTS.has(environment)) {
398
+ const environment = info?.environment !== undefined && PACKAGE_ENVIRONMENTS.has(info.environment)
399
+ ? info.environment
400
+ : mappedSide(zones.packages, info?.name);
401
+ if (environment !== undefined) {
253
402
  return environment === "library"
254
403
  ? {
255
404
  zone: "library",
@@ -258,10 +407,18 @@ export function createZoneClassifier(options) {
258
407
  }
259
408
  : { zone: environment };
260
409
  }
261
- const where = info?.name ?? info?.dir ?? dirname(file);
410
+ const declare = `"nifra": { "environment": "frontend" | "backend" | "shared" | "library" }`;
411
+ if (info?.name === undefined) {
412
+ return {
413
+ zone: "error",
414
+ reason: `"${file}" is first-party code outside the app and declares no side. Add ${declare} to ${info === undefined ? "a package.json above it" : `${info.dir}/package.json`}`,
415
+ };
416
+ }
417
+ // Named per package, not per file, so a build that reaches 50 files of it reports one fact once.
262
418
  return {
263
419
  zone: "error",
264
- reason: `"${file}" is first-party code outside the app (${where}) and declares no side. Add "nifra": { "environment": "frontend" | "backend" | "shared" | "library" } to ${info === undefined ? "its package.json" : `${info.dir}/package.json`}`,
420
+ package: info.name,
421
+ reason: `package "${info.name}" is first-party code outside the app and declares no side. Add ${declare} to ${info.dir}/package.json, or give it a side from the app's package.json: "nifra": { "zones": { "packages": { "${suggestedPattern(info.name)}": "backend" } } } (or "library" if the browser may load it)`,
265
422
  };
266
423
  };
267
424
  return {
@@ -330,8 +487,15 @@ export function browserDenial(classification, specifier) {
330
487
  return `"${driver.replace(/\/$/, "")}" is a database driver entry`;
331
488
  return undefined;
332
489
  }
490
+ /** Whether a bare specifier names one of {@link SERVER_PACKAGES} or a database driver entry. */
491
+ export function isServerPackageSpecifier(specifier) {
492
+ const name = specifierPackage(specifier);
493
+ return (name !== undefined && SERVER_PACKAGES.includes(name)) || SERVER_SUBPATHS.test(specifier);
494
+ }
333
495
  /** Whether a module in `from` may import (with a value import) a module in `to`. */
334
496
  export function importAllowed(from, to) {
497
+ if (from === "component")
498
+ return true;
335
499
  if (from === "generated" || from === "library")
336
500
  return true;
337
501
  if (to === "generated" || to === "library")